Hacks For Imagine Math

0 views
Skip to first unread message

Darnell Rempe

unread,
Aug 4, 2024, 10:11:44 PM8/4/24
to unarotun
Inthe 1970s, when Microsoft and Apple were founded, programming was an art only a limited group of dedicated enthusiasts actually knew how to perform properly. CPUs were rather slow, personal computers had a very limited amount of memory, and monitors were lo-res. To create something decent, a programmer had to fight against actual hardware limitations.

This comment demonstrates the reality that creating a simple piece of software was a complex engineering task, even though software engineering only "emerged as a discipline in its own right" later on in the 1980s, as Ian Sommerville said in his 1982 book Software Engineering ( =1841764).


First of all, the cost of computing power gets cheaper every year. For example, one gigabyte of computer memory cost about $1,000 in 2000; in 2018, it costs less than $5. That is 200 times cheaper in the span of only 18 years. The same is true for hard drives, monitors, CPUs, and all other hardware resources. As James Somers noticed in his analysis of industry problems in The Coming Software Apocalypse ( ): "Computers [have] doubled in power every 18 months for the last 40 years."


Second, the growth of open source is massive. The majority of software is available for free now along with its source code, including operating systems, graphics processors, compilers, editors, frameworks, cryptography tools, and whatever else we can imagine. Programmers do not need to write much code anymore; all they need to do in most cases is wire together already available components.


Third, despite an increasing population of programmers in the world, the field is still in a deficit. In some European countries, the demand for highly skilled IT personnel is twice as high as their market supply of talent. According to Iamexpat.nl, in the Netherlands "a whopping 76% of HR employees reported having difficulty finding enough candidates with this qualification."


Fourth, programmers now work remotely instead of in offices or cubicles. Thanks to the growth of high-speed Internet, conferencing software like Zoom and Skype, messaging tools like Slack and Telegram, and distributed repository managers like GitHub and Bitbucket, along with many other innovations, remote work has become more comfortable than the alternative of working in the traditional office setting.


Taking these five variables into account, it would appear that the skills required of professional and successful programmers are drastically different from the ones needed back in the 1990s. The profession now requires less mathematics and algorithms and instead emphasizes more skills under the umbrella term "sociotech." Susan Long illustrates in her book Socioanalytic Methods: Discovering the Hidden in Organizations and Social Systems ( ) that the term "sociotechnical systems" was coined by Eric Trist et al. in the World War II era based on their work with English coal miners at the Tavistock Institute in London. The term now seems more suitable to the new skills and techniques modern programmers need.


They need to know how to communicate with the open source community to find the needed components, to request features, and to learn bug fixes from their developers. Moreover, they have to be ready to contribute to open source software by submitting pull requests or even creating their own programs. Those who used to work only with commercial and private software will soon be far behind other programmers.


They have to know how to get help outside of an office or even a project team when working remotely and alone. Aside from Stack Overflow, which dominates the Q&A platform for programming market, there are documentation and code repositories that a professional programmer must know how to navigate. Those who previously only relied on colleagues and friends will now lose to those who know how to learn from the entire Internet.


Programmers have to know how to write maintainable code that other programmers will be able to easily understand. Since hiring personnel grows more expensive every year, businesses emphasize the maintainability of their code bases over developing exceptionally complex code. It is easier for them to buy a larger server if the algorithm is not fast enough, rather than lose what previous programmers created when a new team or a replacement shows up and fails to understand how to modify the project. Because the cost of computers continues to grow cheaper and the cost for employing programmers continues to increase, maintainability continues to dominate the programming landscape as the primary virtue of almost any software. The end result is that these "Hackers" who spend their days writing complex, cryptic code will soon find themselves out of the market.


Does the future of programming rest less in math? Coding more efficient algorithms (regardless of RAM price dropping) or writing more efficient code requires mathematical thinking. Had our developers known Z-Specification (a formal specification method based on Set Theory), they would have written much more reliable software than we have experienced. The future of programming may be dominated by data-analytics, machine-learning and deep-learning applications. Developers are not just to collect data and hit a button to invoke "shop-provided" models; rather, they are to tweak the models and, by all means, develop new models to be trained by datasets unique to the local business environment. To the opposite, the future of programming rests more in mathematics. After all, computing, by its very nature, is a mathematical discipline.


Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and full citation on the first page. Copyright for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or fee. Request permission to publish from permi...@acm.org or fax (212) 869-0481.

3a8082e126
Reply all
Reply to author
Forward
0 new messages