Learning how to code is the one thing academically that I wish I learned earlier in life. In high school I had no idea about its functionality or uses and it was not until college that I learned what it really meant to program. I started very simple with HTML and Java then moved on to more complex languages such as C, Matlab, and Python and have not looked back.
Ironically, when I first started learning how to code I disliked it and thought that it would never be useful to me, an engineer… I was dead wrong.
If I am on the computer and not working with MS Excel or checking email, I am probably coding. In today’s engineering workforce, knowing how to program is imperative! The brutal truth is that code is very difficult to learn and there are not a lot of young people that are good at it and even less older people that know it.
Also, I know I give a lot of recommendations on this site and recommend that you know all this software, but if there is one piece of advice you do take from this blog: know how to code!
Now Sean, what kind of code should I learn? Well I am glad you asked and my answer is without a doubt: MatLab developed by MathWorks.
In my opinion, a good programming language for an engineer offers four things:
- The ability for interactive sessions
- Linear algebra operations (matrix and vector analysis)
- Quick and powerful graphing
- A large library of built in functions
MatLab offers all the above and preforms the 4 sets of criteria with simplicity. The software has a polished integrated development matrix where you have an interactive workspace and variable viewer all in the main window (see below for a screenshot). To make it even more interactive and user friendly, the editor offers an auto-completion feature which saves time and offers variable highlighting.
Perhaps the one feature which I still am learning to implement is the massive set of libraries. In the latest release of the software, MathWorks expanded the toolboxes and libraries even more. These libraries do the low-level tasks/calculations so that you can focus on what really matters, the engineering.
Yet another feature that makes MatLab the premier coding software for engineers is the graphing capabilities. I will say that it takes a lot of time and practice to learn how to graph in the software, but once you grasp it, the ease at which you can convey data to others is limitless.
Now, I know that I am making MatLab out to be the end all be all of computational/programming software so I think it is important to mention some drawbacks of the software.
The first being that it is closed source and MathWorks software is not published. Meaning that the source code is not shared with the public. This makes it impossible to see how the software preforms certain functions which is critical information to an engineer.
Another drawback that many in academia fail to realize is its cost. MatLab is an expensive software both in terms of money and computing power. I am fortunate enough to attend the University of Pittsburgh who has the capability to budget for programs such as these. However, the company I work for does not have the same luxury so I often find myself using my academic license from the University while in industry.
Side note: A mentor of mine once told me to download as much free software from your college as possible. Quite frankly, he is right. Having the software allows you to practice your skills once you are out of school or it allows you to impress future employers by already having it on your personal computer. Such a situation already happened to me while on co-op by having MatLab on my computer.
In conclusion, learn how to code and learn to code well. What language you learn is up to debate. I prefer MatLab but by learning how to code you not only impress your co-workers and more importantly your manager, but you will:
- Earn more
- Get work done faster
- Hone your problem-solving skills
- Be challenged
- Learn other programming languages easier
Don’t believe me? Ask any engineer in the industry whether it would be beneficial to learn how to code. Most of the time, the answer will be a resounding “yes”!