Why should electrical engineers learn programming?

Why should electrical engineers learn programming?

Many of you are here because you are in electrical engineering. You find yourself in a course where you are learning to "program", which as far as you're concerned has nothing to do with what you're actually interested in. Indeed, perhaps you picked electrical engineering specifically because you are not interested in programming.

After all, you want to build things to solve problems and to apply the principles of electrical engineering (essentially, applying Maxwell's equations through the lens of calculus to control the emission and flow of electrons and photons) to real-world problems to find solutions that will benefit your employer, your client, and society in general.

Instead, you're here learning about how to calculate Fibonacci numbers (which you can already do), how to search through a sorted list (what you learned to do the first time you needed a telephone book or an index), or how to sort a list of things from smallest to largest (what you learned to do with the Fisher-Price ring stacker). You've probably already solved the problem of classes because you've created index cards that contain, for example, people's names, birthdays, phone numbers, etc. You could sort those cards by the first names, by the last names, or by their birthdays.

To start, it's a question of efficiency: computers can organize and process data much more quickly than a human can, and you will come across situations where you will be required to automate repetitive tasks, and the tools you learn in programming will help you achieve the automation elsewhere. When you perform the above operations, you are using a massively parallel neural network called your brain. In this course and your algorithms and data structures course, you will learn how to perform such tasks efficiently, to minimize cost and the likelihood of error. Over time, you will also learn that many complex problems come down to solving numerous smaller and simpler problems, but the only way to achieve this in a reasonable amount of time is to improve efficiency.

Also, learning a programming language is the first step to learning rigorous logical, structured, and ordered thinking. When you design circuits, you will also be using a language, but it will be a language like VHDL (for VHSIC Hardware Design Language where VHSIC stands for Very High-Speed Integrated Circuit).

Additionally, to learn a programming language, you will learn to understand binary, and binary is in a sense the behavior of a transistor, and transistors are ubiquitous within the field of electrical engineering.

Additionally, you will be running simulations of your hardware. It is possible to build your device and then test it, but given the design of the device, you can also simulate the behavior using a programming language such as C++ or MATLAB, both of which are high-level programming languages. In some cases, you may be collating data in a spreadsheet, and the effective manipulation of data in spreadsheets requires programming knowledge. The language may be different (usually Visual Basic for Applications or VBA), but knowing one language makes learning a second language much easier.

On many occasions, this author has read on various posts that claim there are still electrical engineering careers that do not require programming knowledge, but those are becoming more and more rare. In general, the ability to program has great advantages and is considered an asset. Remember, programming is a skill, not a profession.

To emphasize that it is a skill, remember that there are some elementary-school students learning to program, nearly half a decade before they get to post-secondary studies. You do not, in general, see elementary-school students learning calculus or electronic circuits, although there are kits you can buy that can facilitate learning elementary circuits, too. For those who do not spend time cultivating their ability to program, the exactness that is required is often the most intimidating aspect. One semi-colon out of place can be the difference between a perfectly functioning program and one that will not even compile. At the same time, circuits require equally precise timing in their designs, so the need for rigor will not go away simply because you chose to ignore your introductory programming course.

Post a Comment

Previous Post Next Post