TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Mechanical engineer that wants to work in the programming field

46 pointsby replicantabout 10 years ago
I am a 27 years old PhD in computational mechanics (finite element method, elasticity ...) who should be graduating in around 6 months. I have been tempted for quite some time by the idea of trying to get a job in the US and work as a programmer. A personal dream, I really would like to experience the life in the west coast for a few years. What are my odds of achieving that? Any advices on what I should try to learn or do in the next 6 months? During my PhD, I have been coding in Matlab, Python and mostly in C++ (I have read Effective C++, Modern Effective C++). I have learned OpenMP, MPI and Cuda (though, I don&#x27;t consider myself very experienced in them) and I have taken an introduction course in algorithms.<p>Edit: Since some people have asked, right now I am in UK and I have an EU passport. Thanks for the very encouraging answers.

21 comments

john_babout 10 years ago
I&#x27;m a mechanical engineer by training (B.S. and M.S.) but most of my day to day work is software development, testing, analysis, etc in the aviation industry. I haven&#x27;t done anything &quot;mechanical&quot; for money since graduating.<p>Unless you want to do web development, you shouldn&#x27;t try to sell yourself as &quot;just a programmer.&quot; If a company is only looking for someone with programming skills they will probably favor someone with a CS degree.<p>Instead, leverage your background. There are lots of companies in the US (West Coast included) that do embedded software, robotics, and other types of software development where the software doesn&#x27;t run on x86. Often it needs to run in real time and be qualified for safety. The methodical persistence and attention to detail that companies associate with a PhD is an asset for these types of positions. Your Matlab &amp; Python experience will show that you can do both quick prototyping and heavy analysis, while your C++ experience and interest in Cuda, etc will show that you care about performant software and don&#x27;t mind thinking about the actual hardware your code runs on.<p>If you have any knowledge of sensors, statistics, or signal processing, you&#x27;ll probably be an instant hire for this type of company. Companies of this type (which aren&#x27;t &quot;software companies&quot; by the usual definition, but which have software as a major competitive advantage&#x2F;requirement) have trouble finding people with the right background. Traditional engineers who can&#x27;t program don&#x27;t fill the role, and neither do most CS grads who don&#x27;t have the engineering knowledge to work with the hardware.
评论 #9279957 未加载
scottndeckerabout 10 years ago
I have an MS in Mechanical Engineering from an Ivy League university. While I got my degree I too learned Matlab as well as C. I wrote my masters thesis on a controlled mechanism for the breakup of microdroplets in a bidisperse emulsion.<p>Eight months after graduating and working in industry, I came to the same conclusion as you: that I preferred writing code to working in the mechanical world. I started learning Java and wrote an Android app. I&#x27;d stay up late at night and on weekends pouring over examples and hacking stuff together. Six months into doing that I got an interview at my current employer. I got the job. That was two years ago and it&#x27;s been one of the best decisions of my life.<p>The key to doing it:<p>1) Prove to yourself and others that you want to be a programmer, that you actually enjoy writing code for hours a day<p>2) Have something to show that proves that<p>3) Find a company (like I did) that is more interested in finding people who know HOW to think rather than WHAT to think. As engineers you and I are very good at solving problems. Find people who care about that rather than the programming languages you know<p>4) Once a company takes a chance on you, seize it and run like crazy. Learn as much as you can. In a year or two you can be highly skilled and highly employable in this field.<p>Best of luck!
评论 #9276873 未加载
svecabout 10 years ago
Can you get a job as a mechanical engineer somewhere that would allow you to move into programming at the same company?<p>I ask because it&#x27;s probably easier for you to get a job as an ME (mechanical engineer) than a software engineer, given your background.<p>Silicon Valley has plenty of robotics companies and other companies that make &quot;real stuff&quot; who need mechanical engineers. And once you&#x27;re in a company as a productive ME, you can reach out to your software colleagues and see if you can help &amp; learn. And don&#x27;t just think of northern California - Seattle and southern California have companies that might fit the ME + software profile as well.<p>And if you&#x27;re thinking of the East Coast at all, please reach out - I work at iRobot in Boston, MA, and we have plenty of ME&#x27;s who dabble in software. The Boston area has TONS of other companies who do hardware + software too.
评论 #9278329 未加载
评论 #9276520 未加载
评论 #9280028 未加载
mpdehaan2about 10 years ago
I think in general the field (maybe not HR departments) is pretty accepting of people with alternative majors even outside of engineering - I know some great folks who had music or art history degrees.<p>Your challenge I think is to show initial work for job acquisition purposes, so being able to point to a very technical side project on your GitHub (and of course resume) for your chosen language will be a very good idea.<p>What language you choose depends on what field you want to get into, specially. Python is used in various places including web and database applications, but ultimately I&#x27;d say shoot for something you like. If you can find enough companies you like that work in X language, that can be a good way to go.<p>Good companies will assume smart folks can pick up other tools, but I think your main hurdle is going to be showing something that counts as sufficient &quot;equivalent experience&quot; -- and that should be possible to do.<p>College is highly valuable, but all of college C.S. is not always directly applicable.
krschultzabout 10 years ago
I have a mechanical engineering degree(BS) with a minor in computer science.<p>It is 100% do-able for you to switch in. My college used to say &quot;mechanical engineering is the liberal arts of engineering&quot;. You will be able to handle it. I personally did 2.5 years as a professional mechanical engineer right after college, then switched over to software and have been doing that ever since.<p>Some possible pathways - look for a job that is at the intersection of mechanical engineering &amp; computer science. There are companies that write simulation programs, it&#x27;s harder to find people that understand the engineering math than it is to find people that can write code. They are usually in the oil &#x2F; defense industries. They pay very well.<p>You are also a prime candidate for a bootcamp type program. I don&#x27;t normally recommend them, but you are one of the few people that it actually makes sense for. You need to just work with some people that know software engineering well and you will grow quickly. At the end of that, they will help place you in a job and then you can spend the next 18-24 months learning it all on the job.<p>My personal pathway was a bit different. I grew up hacking, and chose to do mechanical engineering because I felt I wouldn&#x27;t learn enough new stuff in a CS program. When I wanted to get back into software I worked on a sideproject for about 6 months, and used that as an example of my skills when I interviewing. However, I did 3 years of internships in software so I knew what I needed to do.
anon100about 10 years ago
Find a company like Ansys or Abaqus, where you can work on FEM software. This way you can use your training in mechanics while still programming.<p>The big advantage here is that: a) Most engineers suck at programming. b) Most CS majors don&#x27;t understand the mechanics.<p>By having skills in both mechanics and programming, you can be an extremely valuable asset to companies that make high-performance computational mechanics software.
评论 #9276767 未加载
rayinerabout 10 years ago
My advice would be: don&#x27;t underestimate the opportunities available on the east coast of the U.S. There are a lot of companies here in the D.C. area who need programmers with domain expertise in mechanical, aerospace, and electrical engineering. Also, my gut feeling is that the PhD will carry relatively more weight here and that the lack of CS degree will carry relatively less. A who understands the physics is a lot more valuable to many companies than a guy who knows the latest design patterns.<p>FWIW, I&#x27;ve got a BS in AE, and never worked in the field professionally. I went into a software job doing simulations. Most of my coworkers were EEs. We finally hired a CS PhD years in to do AI stuff.
scojabout 10 years ago
I am a mechanical engineer as well that turned to programming. I only had Matlab and Fortran experience of all things out of school. I would be very honest with yourself whether living in the US on the West Coast is your dream or being a programmer is your dream. These are two separate things and are not necessarily related. Assuming that you want to go into programming, then figure out what type of work you want to do. But if you are flexible and not in the goal is more to live in the US then I would suggest going the web development route. I learned pretty much entirely on nights and weekends doing small contract work what we call moonlighting. Then after several years of that I decided to go out on my own. I had never worked officially as a developer but was able to get my first full-time contract job without showing a resume at all. (It was from a reference.) The thing that I love about the web development space especially is that no one cares what your degree as they only care about your experience and knowledge. If you can build a simple web app that does something and it can be simple and put it out there on a real site then you will have no problem getting a job.<p>All of this is assuming that you legally can get a job the US.
thothamonabout 10 years ago
The main thing you need to do is convince HR and then a hiring manager that you have the skills to do the work. The best way you can do that is to have projects on Github that demonstrate your skill, and if you can get a little paid work using the toolset you&#x27;re targeting, that would be great as well.<p>You have six months, so you can&#x27;t be too ambitious on the size of your projects. Maybe target three interesting projects that demonstrate the skills you&#x27;re interested in, each set to take two months of your time.<p>If you really throw yourself into this, you should be doing a lot of hard work, the kind of work a professional programmer does every day. After six months of that, I think you&#x27;ll be well-positioned for a programming interview, and you&#x27;ll have some nice projects on Github that will demonstrate your capabilities.<p>Good luck!
astral303about 10 years ago
Read &quot;Clean Code&quot; by Robert C Martin. It&#x27;s Java-centric, but very applicable nonetheless. It&#x27;s a compilation of years of insight about how to design your programs, and it explains well why you should care about writing your code one way or another. It&#x27;s the first time ever that I have seen an illustration of violating Demeter&#x27;s Law that was actually believable and the proposed solution deeply communicated the intent of the law.<p>The book progresses from smaller details (like code formatting style) to very large concepts, gets very deep towards the end, so don&#x27;t be afraid if you get lost a third of the way in. Just leave it and come back to it as you gain experience.
mschipabout 10 years ago
I have a BS in Mechanical Engineering and fell in love with coding after having to write some pretty basic VB macros in Excel. If your goal is to just live on the West Coast then I would recommend looking for a job in your current field. If your passionate about coding, the best thing you can do in the next 6 months is to build something meaningful that you can speak to. My route was a little different.. I struggled to find the time to learn&#x2F;build while working full time so I decided to fully dedicate 3 months via Hack Reactor. I highly recommend checking out Hack Reactor if you have the means and interest in that branch of programming.
thorinabout 10 years ago
What country are you currently in? If you can get a job at a worldwide software company and then do a placement in the US you&#x27;ll have a much higher chance of getting a visa. If you can handle continuing to work in Engineering there must be a lot of options involving coding. Look at adverts for big engineering companies (in that area) and look for software jobs, that way you&#x27;ll have lots of relevant experience.
评论 #9276505 未加载
vlokshinabout 10 years ago
I&#x27;m a 27 year old and my B.S. was in mechanical engineering -- I work in the &quot;app&#x2F;startup&quot; world. I think MechE helped.<p>Best advice I can give you: Start building things now. The languages are cool, but there&#x27;s so much more value to being able to build complete-loop products, and I think any engineering mindsets are a great start for working with creating digital products (programming). If you want to take part in an opportunity&#x2F;make a shift, (your) value has to meet (market) opportunity.<p>To be honest, I do more wireframing now than anything else (I&#x27;m also lucky enough to now have a team that is much better at designing or programming than I am). I think my undergrad in mechE had a huge impact on where I am now -- (1) from how I think and (2) from how much &quot;programmers&quot; or non-programmers respect engineers, or anyone technical, in today&#x27;s digital world.<p>The shift can be a very natural one, but web and mobile are where you should probably be focused. That&#x27;s simply where there&#x27; a lot more demand.<p>I&#x27;m not sure how helpful I can ever be, but please feel free to email me for any advice or just to chat: Vlad(at)darwinapps.com
mhickieabout 10 years ago
I have a BS in ME and worked ME jobs for about 11 years. During the last 1&#x2F;2 of this time, worked on my MS in IE and was doing simulation modeling. Simulation modeling is where I learned how much I really enjoyed programming but had also been writing some statistical analysis programs for QA on the side. At year 12, I was able to jump to the Information Systems side to write B2B code for outsourcing of manufacturing. I have been doing programming jobs now for the last 17 years and have enjoyed it.<p>My advice is to keep working on your coding skills. You don&#x27;t need a degree in CS. You have proven you can handle technical topics with your current degree(s). Maybe search github for some open source projects dealing with mechanical topics (something like robotic movement or control systems or CNC). Join these and contribute.<p>When it comes to finding a job, there are companies the will value your full skill set. It may take a while and sometimes you might have to work as a ME for a bit. But in some technology companies, you will be able to move horizontal.<p>Wish you the best!
steven2012about 10 years ago
Which country are you from? If not from Canada or Australia, then unless you get into school in the US and get your OPT, or unless you join a U.S. based company that you can internally transfer, your chances are slim. You need to get work authorization which is very hard and most U.S. employers won&#x27;t hire someone outside of the US except in the above situations.
pcvarmintabout 10 years ago
Work in High-Performance Computing [1], whether at a research lab, an HPC manufacturer, or even a big company like Intel, or at an independent software vendor like MSC, ANSYS, LS-Dyna, Cd-adapco, Mathworks, etc.<p>There are usually openings at HPC companies or HPC business units for mechanical or other engineers to port and tune engineering software to supercomputers. At research labs which use HPC, there are usually lots of experts in various fields, and having someone fluent in both mechanical engineering and programming can bridge gaps and fill voids.<p>[1] <a href="http://www.hpcwire.com/" rel="nofollow">http:&#x2F;&#x2F;www.hpcwire.com&#x2F;</a>
zamalekabout 10 years ago
The industry has a high amount of people that don&#x27;t even have a degree. We&#x27;ve found that CS graduates need to be basically re-educated but still prefer to hire them purely because a degree shows that you can complete something. A PhD speaks volumes about your work ethic: you should have no problems getting hired.<p>Salary is a different story entirely: you&#x27;re probably going to be a junior developer and the PhD will go to &#x27;waste.&#x27;
评论 #9276152 未加载
phkahlerabout 10 years ago
I suggest you check out <a href="http://www.altair.com/" rel="nofollow">http:&#x2F;&#x2F;www.altair.com&#x2F;</a> they are a leader in FEA tools of all kinds, with offices in many countries. Software development tends to be concentrated in a few countries (depends on the product), but customization of the tools is done world wide. Check out the web site to learn more and look for open positions.
pickle27about 10 years ago
I have a BS in Mech Eng from there I got a MS in Computer Engineering working on Computer Vision and robotics. If you are good with python and care about good code then it should be no problem to switch.
Dewieabout 10 years ago
Maybe first travel to the West Coast on a vacation or something to get a feel for what it&#x27;s actually like. If you haven&#x27;t already.
评论 #9277332 未加载
balls2youabout 10 years ago
Don&#x27;t join Silicon Valley. Your skills are more valued and paid for in Finance. Real hard cash not worthless options that may have value in the future.<p>EDIT: also do not &quot;commoditize&quot; yourself by becoming a web developer or an iPhone&#x2F;Android developer either. Do the difficult technical stuff, aim for the &quot;non-low-hanging-fruit&quot; and you will make tons of money, esp. in Finance.
评论 #9276854 未加载