Author Topic: So...could I become a software engineer? Currently a mechanical engineer...  (Read 8130 times)


  • 5 O'Clock Shadow
  • *
  • Posts: 48

I'm a little curious about my prospects as a software engineer.  I graduated from college in 2005 with a mechanical engineering degree and have been an ME for 8 years.  I was actually 1 class away from a computer science minor and in the past 8 years I've written 2 large pieces of custom software (VB.NET - GUIs and databases (ADO.NET)) for my employers.   1 project was rolled out to about 50 engineers and got great reviews. 

I know VB and C++, but most importantly (I think) I've got an analytical mind and I understand the fundamentals - I could learn the syntax of a new language quickly (and have) and I am good at problem solving (bug squashing).  Could I swing it as an entry level software engineer?  What would be my best bet? 


  • Pencil Stache
  • ****
  • Posts: 801
  • MMMing in MN
Crap, I was an English major and I learned to code. You have everything you need, you just need to bone up on one or two popular languages and get your feet wet. (Ruby is red hot round these parts right now. Experienced Ruby dev contractors are fetching $100 / hour. And they don't care what your degree is in - or if you even have one. One extremely successful Ruby guy I know was a college dropout.)

Btw, you have a unique benefit in deep understanding of MechE that only adds to your resume!


  • Handlebar Stache
  • *****
  • Posts: 2264
Go for it!

What you should learn first depends on your area.  In the Great Lakes area of the USA, right now it seems to be mostly .Net, Java, and Groovy with a little PHP and iOS.


  • 5 O'Clock Shadow
  • *
  • Posts: 74
  • Location: San Francisco, CA
I'd say you're qualified, but I wouldn't recommend you rush into applying for jobs just yet. I'd take some time to tackle a couple personal projects. That's the most significant way a candidate can distinguish themselves. Since you're considering entering the industry from a non-traditional route I'd say distinguishing yourself is particularly important.

Here's the general roadmap I'd follow if I were in your shoes:
1) Learn a hipper language, VB.NET is great for getting things done, but it won't impress anyone. Java, Python and Ruby are all pragmatic choices here. Furthering your C++ or C skills would also be good. Objective C and C# are good languages too, but they more or less lock you into the Apple and Microsoft ecosystems respectively.
2) Learn version control (git is the most popular/pragmatic choice) and host your code on one of the popular online code repositories (GitHub is the most popular, BitBucket is cool too). You will be using some kind of source control wherever you work. If you already know the ins and outs of it you will be a step ahead of most entry level applicants. This will also the first step of #4.
3)  Build something fun. If you work on something that interests you you'll be more motivated which will help you with #1 and #2.
4) Document what you've done. Take screenshots, make a homepage (through GitHub or on your own), give it some polish. Put a link to your GitHub profile or personal homepage on your resume.

Going through all of that will take some time (6-18 months? depends on how dedicated you are), but it will pay off. Having a GitHub link on your resume will get it past the initial screen. Having experience on personal projects will give you things to talk about at the interview. Those two things alone will set you ahead of every other entry level applicant.

Good luck =)