While your college courses can help you with the theory of a subject, they can’t help you much with the practical pieces of a career--especially when you're becoming a software engineer. Because of the computing power we have at our fingertips in this day and age, the practical side of engineering isn’t building things with your hands; it really boils down to simulation and modeling.
In my field of electric propulsion, for example, if one is interested in the performance degradation of a thruster at the end of its lifetime, they can either fire the thruster for 12,000 hours or they can run some code that takes a few hours on the intern’s laptop. I’m sure you can imagine how easy of a choice that is for management. A senior engineer’s knowledge is much more valuable than their time, so the impetus lies on the younger engineers to work the software.
Now that I'm finishing up graduate school and looking for my first real job, I’m starting to learn what companies are looking for in their entry level engineers. These are aspects of the feild that I never paid much mind to during my studies, but are nevertheless essential to life after graduation.
1. Specialize your Technical Skill Set
It is extremely rare to find a job posting for an entry level engineering position that only requires theoretical knowledge that you acquired over your college career; it will probably also require experience using software, whether that is programming languages, design tools, or the wealth of analysis programs.
Of course, I've had experience with a popular programming language from my Introduction to Programming class, but I never dealt with it much after I left the course, and instead opted for other languages that fit my needs. While I’ve used design tools to design a bracket that one year or another bracket that other year, I never had to focus on developing this skillset. I've ended up having to refresh my memory with tutorials and loads of google searching every time I return to the language. Instead of focusing on a single language and becoming proficient, I used only what I needed at the time, which was a huge disservice to me in the long run. Whenever you can, finish what you've started so you can specialize as opposed to generalize.
2. Know the Technical Requirements of your Ideal Entry Level Position
In order to break this down even further, you should be asking yourself about the technical requirements of your ideal entry-level position. Do employers want experience in the programming language used for testing and data acquisition? Or maybe the ones for rough initial analyses or data visualization? Or do they want experience in the languages that are actually implemented in the final hardware?
Of course, it depends on the position, but there are too many desired experiences and skills that it’s impossible for us to be to be qualified for every one. Furthermore, a company’s software is so embedded into their projects (either because of expensive licensing fees or because that’s the way things have always been done) that there is hardly any flexibility for the employees to choose their own software of choice. So you’d better hope or make sure that your skill set aligns with what your dream company is after.
3. Start as Early as Possible
I would recommend learning which discipline you are most interested in early so you have as much time as possible to learn the relevant tools. If you’re interested in robotics, you should develop a specific skill set that would be different than, say, someone interested in aerodynamics. Classes help specify which programs are commonly used as you may have to use one on a homework problem or two, but a quick search of entry level jobs in these fields will tell you exactly what industry is looking for. Much of the software is open source, so it is easily obtainable and you can hone your skills with side projects that can later be an impressive point on your resume. I would even recommend side projects, which can be fun and give a sense or achievement that you don’t get from classwork. If you can write some code coupled with a 10 dollar temperature sensor to control the fan in your room, you’re already one step closer to landing that internship or career designing the control systems of next generation spacecraft.
Spenser grew up in the suburbs of LA. He attended Purdue University and graduated in 3 years with a degree in Aeronautical and Astronautical Engineering with distinction for having a 3.86/4.0 GPA. In his undergraduate career, he had two summer internships at NASA’s Jet Propulsion Laboratory. He is currently pursuing a Master’s degree in Aeronautics and Astronautics at MIT as a Lemelson Engineering Presidential Fellow. His research focuses on advanced space propulsion.
Are you interested in learning more about our computer science tutoring services?