Hacker News new | ask | show | jobs
by constantcrying 1046 days ago
Learning to program is the most important thing you can do. As long as it isn't web applications everything is fine. Programming isn't really about knowing the syntax of some language or having memorized a list of algorithms, but understanding how to build an appropriate architecture for your system.

>but it seems of dubious usefulness when it comes to finding a job.

There is a very large embedded industry if you want that. Learn about basic electronics as well if you are interested. I highly recommend learning C and (C++ and/or rust) if you want to enter there.

>combinatorial optimization

Nobody in the industry would hire you for that specifically. You might find a role where it is also needed/usefull but it isn't a career path.

>blender/3D modelling

I would absolutely avoid that as a career unless it is a major passion. Maybe you are interested in computer graphics though? That could be an option. Computer graphics is a major industry, video games, professional software for artists or engineering software are some of the larger groups there.

I would focus on R&D positions at large companies or institutions. Engineering positions are more process focused ("do what you are told") and it gets worse the more regulated the industry is (e.g. aerospace).

4 comments

> There is a very large embedded industry if you want that.

I'll second this. Embedded programming will probably only get bigger from IoT, and a large chunk of new coders entering the job market these days don't really understand how a computer works as a machine; which is why you tend to see older folks doing embedded software.

The pay isn't going to be FAANG but you might end up doing more interesting things than your standard CRUD webapp.

> There is a very large embedded industry if you want that. Learn about basic electronics as well if you are interested.

What is the hiring process typically like for inexperienced embedded software positions? Is a portfolio of personal projects important or is it coding test heavy or something else?

"It depends". Having a mathematics PhD likely means people will absolutely believe in your ability to learn new things and overcome problems. Being able to demonstrate some actual ability and/or projects would be very good. Often engineering positions have certain "requirements", particular languages or software packages and in an interview you likely get asked question about those, either structured "solve problem X" or unstructured "what have you worked on using Y". Not ticking all the boxes is okay, but I wouldn't apply if you don't have any experience with any of the languages asked for. R&D positions are usually more loose on that and you should expect to get asked more questions about your previous research, oppinions on certain subjects and so on.

In general I would say that applying never hurts. Make sure that any application includes something which makes it clear what you are interested in. Likely your particular mathematics skills won't be that relevant, so don't overly focus on them.

Embedded is a large world, from small Linux machines down to 8-Bit controllers. Knowing that landscape and where your skills/interests are in is important. I would suggest looking which companies are interesting to you and/or near to where you want to live. Also make sure where in the supply chain you want to be. At the bottom you have semiconductor manufacturers (TI, Microchip, st, NXP, etc.) and at the top you have "real products" (Boeing, Ford, Raytheon, etc.) in between there is an enormous range of suppliers and sub suppliers.

IMHO, it varies wildly from company to company. A portfolio is great and I'd expect some sort of general coding test. In general, if you can do the usual leet code tests (I know, but it's the world we live in...) can demonstrate a good knowledge of C/C++ and show you actually understand how pointers and memory work, you're probably hireable as a beginning embedded software engineer.

If you're looking for bare metal work (as opposed to embedded linux) being able to read and understand schematics is useful, though I've never had anyone ask for that in an interview.

> As long as it isn't web applications everything is fine.

The irony!

What’s wrong with web applications?
Nothing wrong with web applications. It was about "web applications everything" attitude...