Most Software Engineers Know Nothing About Hardware
It’s often said in jest that most software engineers know nothing about hardware. But could there be any truth to this harmless jibe? Well, it turns out that a lot of people agree with it. In an online discussion, a surprising number of developers, programmers, and software engineers chimed in not just to agree with it but also ascribe reasons to why that may be the case. A software engineer said, “It’s easier to count on someone than to count on yourself.” This might encapsulate a fundamental reason why many software engineers don’t delve into the hardware side of things. It’s simpler to rely on hardware experts rather than spreading oneself thin by trying to master both the fields. However, not everyone fits this stereotype. Another user proudly declared, “Imma Software engineer, Knows about hardware, Including networking (sic).” Clearly, there are software engineers who bridge the gap to understand the intricacies of hardware. Yet, they might be the exception rather than the rule. Is There a Need? “Highly accurate, when someone speaks about hardware or how software interacts with hardware that’s where I get silent,” said a software engineer. “I only know about hardware things or gadgets I use.” This indicates that many software engineers have a practical, user-oriented knowledge of hardware rather than a deep, technical understanding. While most software engineers would want to believe that there is not a need for them to know the intricacies of hardware, as long as what they are using offers support for the software they want to use and build. But on the contrary, a user offered a thought-provoking take, suggesting that understanding hardware could bolster several fields, such as cybersecurity. “I think it would help in programming to know how the chip and memory think only to secure the program from hackers,” he said. This highlights a practical benefit of hardware knowledge that goes beyond mere academic interest. Moreover, software engineers who know a thing or two about hardware can create better softwares and build good software capability on the hardware. This perspective suggests that a deeper understanding of hardware can lead to more efficient and innovative software solutions. The roles of software engineers are also changing with the advent of AI tools. For over a decade, a popular belief has been that a computer science degree is all you need to tread the path to wealth, especially in a country like India. “Winter is coming for software engineering,” said Deedy Das from Menlo Ventures, sharing a graph about how by 2040, software engineering roles will almost become a distant memory. Besides, educational background also factors in this debate. “Unless you were a computer engineering major…,” quipped a user, implying that those with a more hardware-focused education are better equipped in this area. This distinction highlights the difference in curricula between software engineering and computer engineering programs. What’s the Future? Another one gave a very basic analogy to highlight the importance of understanding hardware for people in developer jobs. “Have you ever dealt with keyboards with wrong wiring?” Practical issues like these can starkly expose a software engineer’s hardware limitations, turning theoretical gaps into tangible challenges. However, not everyone sees this disconnect as a negative. This is both good and bad. And it’s supposed to be that way. “Specialisation allows professionals to excel in their chosen fields, fostering expertise rather than spreading knowledge too thinly,” said a user. “Most hardware engineers know nothing about software,” another turned the tables. This two-way street suggests that both domains have their own complexities and require dedicated focus. Keeping up with hardware innovations is a formidable challenge in itself, demanding constant learning and adaptation. Ultimately, the consensus suggests that while many software engineers may lack a deep understanding of hardware, this isn’t necessarily a problem. The specialisation in their respective fields allows for more focused expertise, though cross-knowledge can certainly offer significant benefits. While it’s often true that most software engineers know little about hardware, this division of knowledge is not inherently detrimental. As technology evolves, perhaps we will see more integrated roles bridging this gap. For now, we can appreciate the humorous takes and real-life insights that illustrate this dynamic. Every time a program goes “brrrr”, a software engineer is happy, perhaps unaware of the hardware magic at work. Knowledge of platform or the hardware on which a ML algorithm is run is extremely important for quick convergence of the optimizing algorithms. When Frank Rosenblatt,( Frank Rosenblatt ) the father of Artificial Intelligence, first simulated the Perceptron or the first working model of a Neural Network based learning algorithm in Cornell University in 1957 he used the IBM 704 mainframe machine. Though the IBM 704 was the most powerful machine the world had known in that time, Rosenblatt and his students (including my own thesis advisor George Nagy) worked hard on the best arrangements so that the deep learning algorithms can converge to an optimal or near optimal solution in a reasonable time.Since then, hardware have become enormously powerful and the advent and use of GPUs have ushered in a new era in the ML domain. Unfortunately, as the hardware have become more powerful so did the complexity of the algorithms running on them as well as the volume of data. The feature size has exploded with the beginning of Generative AI. So, in other words optimal use of hardware are still very important for ML experts so that they can ensure that their algorithms converge in a timely manner.The cost of hardware is another aspect that also drives the total solution cost of ML. GPU banks have become very expensive and given that most of them are produced by TSMC whose foundry is back ordered for GPU banks for next few years, one cannot put their hands on a GPU bank even if they have a lot of money.The hardware optimization is also important for the energy cost. ML applications have become one of the most energy intensive computer applications which is expected to grow every day. ML experts also need to take that into account and become a bit more climate conscious and use their hardware platform more efficiently.
On the other hand, most hardware engineers know nothing about software.
It’s often said in jest that most software engineers know nothing about hardware. Well, it turns out that a lot of people agree with it.
["AI engineers", "AI in Software"]
["Go", "artificial intelligence", "programming_languages:R", "AI", "neural network", "AI engineers", "ML", "innovation", "deep learning", "generative AI", "AI in Software", "R"]
["AI", "artificial intelligence", "ML", "deep learning", "neural network", "generative AI", "R", "Go", "innovation", "programming_languages:R"]
Mohit writes about AI in simple, explainable, and often funny words. He's especially passionate about chatting with those building AI for Bharat, with the occasional detour into AGI.