Is Programming harder than Engineering?
Engineering is generally harder than programming, but this is not the full picture, the answer to this is not as red, and blue as it seems, there are a number of factors to consider to properly understand which is harder between the two.
Back in my university days, I studied Electrical and Electronics Engineering and I was going to major in Electronics and Telecommunications but I withdrew from my studies in my third year. During these three years, I learned a lot that gives the confidence to say that Engineering may be harder than programming.
I have also learned programming in the last few years to be able to develop Mobile Applications, Desktop Applications, and Web applications. I love programming and I have dedicated this website to sharing programming insights that promote growth.
This means that I have been to both the programming universe and the engineering universe, in my experience, I have found engineering to be harder and more involving than programming. This may not be the case for other people.
It may depend on your area of interest and strength, others may find Engineering easier than programming while others may find programming easier than Engineering.
In the third year of my engineering study, we took a computer engineering class, there was a lot of low-level programming involved, we were using programming languages such as Assembly, C, and C++. I didn’t have difficulties with this class but a lot of my friends struggled, it is perhaps a glimpse of how some Engineers may find programming hard.
There are many Engineering disciplines such as Mechanical, Civil, Chemical, Electrical, Geomatic, Agriculture, etc. Going forward in this article, I will focus mainly on Electrical Engineering because, apart from Computer Engineering, it is the closest to Programming (Computer Science) and the one I have experience with.
WHAT MAKES ENGINEERING HARD?
There are many factors that make engineering challenging, here are a few of them.
- LOW-LEVEL PROGRAMMING
If you major in Electrical Engineering or related, you will take some classes that require programming, most of this programming is done with low-level programming languages such as Assembly, VHDL, C, or C++, high-level programming languages such as MATLAB are also heavily used.
Now, you ask any programmer or Computer Science graduates, one of the hardest things in programming is to code using low-level programming languages, this is why there are only a few low-level programming tutorials on YouTube, not because the languages are outdated but because they are hard to work with.
Engineers have to contend with low-level programming for nearly the whole of their careers. Low-level programming is applicable in microcontrollers and embedded systems, compilers, device drivers, operating systems, dynamic systems and control engineering, microprocessors, and Integrated Circuits (ICs).
On the other hand, most programmers (Computer Science majors) code with high-level programming languages. Although Computer Science majors are exposed to many programming languages, there is always one language which is the major concentration, Java is a common choice for many universities and colleges.
- LENGTH OF STUDY
Engineering training generally takes a lot of time to complete than computer science (programming). This may not be the case in every country but it is quite common. An engineering degree program takes 4-5 years while a computer science degree program takes 3-4 years of full-time study.
The length of study may not conclusively determine whether a major is hard but it is a sign that more time is needed to understand the program.
- LEVEL OF MATH INVOLVED
Although Math is the foundation of Computer Science, it is Engineering that is more Math-intensive than Computer Science. In Engineering, you will be required to study Engineering Mathematics I, II, and III, and Numerical Analysis. These classes are calculus heavy and quite challenging.
In Computer Science on the other hand, you will take math classes which include Analytic Geometry and Numerical Analysis. Between these, you will do Discrete Math, Set Theory, Number Theory, Graph Theory, Information theory, Calculus, etc.
Whenever I was going through the math papers from Computer Science, I had no problems solving most of the questions except for Discrete Math, I generally found that the math from computer science was easy than the engineering math.
This makes sense because Engineers rely on the applications of advanced math for Signals and Systems, communications theories, Digital Signal Processing, Electronic Engineering, and many other engineering principles.
Engineering especially Electrical and Electronic Engineering involves a lot of laboratory work and reporting. This lab work is not all ice cream and Pizza, most of it is challenging, frustrating, and time-consuming, honestly, I really dreaded this part of Engineering but it is very important.
On the other hand, Computer Science does not have many labs and most of them are not as difficult as engineering labs. Think of it this way, computer science is mostly software programming and Electrical Engineering is mostly hardware programming.
WHAT MAKES PROGRAMMING HARD?
Although I have a good level of training in Engineering, I found myself gravitating toward programming. Even the engineering classes that I enjoyed were those that involved a lot of programming like computer engineering, microcontrollers, and embedded systems.
Even though I find programming interesting, there are some things that make it quite challenging and hard.
What makes programming hard and challenging is keeping up with the changes, updates, and the introduction of new programming tools, languages, and frameworks. Some of these tools are adopted quickly as industry standards and you will have to keep up with the changes.
Choosing programming is choosing a lifetime of learning, you will easily become irrelevant if you are not learning as a programmer. This is not easy, keeping up with never-ending changes is hard but it is for the ultimate good.
Whether you are a programmer or an engineer, you are trained to be a problem solver, this is why your training will not be easy, solving problems for the world is not easy, the engineering or programming training will shape you to think differently.
Engineering is generally harder than programming, it is more involving and more math-intensive. Engineers are trained to code at a low-level, mostly hardware level while most Computer Scientists code at high-level, mostly software programming.
There are also other great programmers who have taught themselves programming and have been so good that a lot of big companies are after their services. But there are very few self-taught engineers, this is another sign that engineering is hard. You almost always have to be trained to be an engineer.
It is worth noting that there are some people who regard programming (Computer Science) to be harder than engineering, but in my experience, I had found Engineering to be harder than programming.