3 ms·
At 41, I've been wondering the same thing except that I'm basically a C++ generalist. I'm finding it hard to find a new job because well paying companies want s
by OnionBlender 2y ago
At 41, I've been wondering the same thing except that I'm basically a C++ generalist. I'm finding it hard to find a new job because well paying companies want specialists with experience in domains like graphics, HPC, embedded, or finance. I'm undecided where to invest my time in order to become more valuable than a simple C++ generalist.
- Graphics: I'm interested in graphics (I learned some OpenGL years ago) but the amount of material is vast and it appears that there are many sub-domains to specialize in.
- HPC: With zero experience, I'm unsure if hobby projects would be enough to get a HPC role.
- Embedded: I've heard embedded doesn't pay great. Also, different people have different definitions of what qualifies as embedded. I've worked on car software but it was basically just a headless POSIX app.
- Finance: No real interest. Looks stressful.
- JTyQZSnP3cQGa8B 2y agoRandom comments: I’m the same age and I was a generalist too. You become a specialist by surrounding yourself with specialists, you work on the same tasks and this allows you to learn specific topics. Finding a job is one way of finding those people. No one is born a C++ master except a few crazy guys who got lucky at birth, I know that because I worked with a few of them, at most 4 people in 20 years. You talk about money but that’s not what I want first. It’s better to work with good people around you in a respectful environment. And anyway, C++ jobs always have a better salary than other jobs. If you want to be better on your own, read and use good code in C++20: cppreference, the core guidelines, GSL, etc. Do all the exercises and understand what you do. Add some CMake and Conan and you’ll be able to work everywhere. The only common thing with experts is that they know most of the C++ and the STL, there is no additional secret. If you want to learn graphics, do a bit of everything to get a feeling of how that works. Use OpenGL, Vulkan, and VTK. Not all at the same time of course. I worked for awful companies who had great projects (or at least they lied about it). Finance is not always stressful and can actually be fun. Games can be awful. Medical software is very fun in my experience. I helped a team switch an embedded piece of old crap to C++20. Good projects are actually random and may not be where you expect them. I talk about medical software and devices because I actually love it. I hate the human body and its flaws, but I accidentally found a job working on some robot and it was very fun. I knew nothing about that field but I learned in this job and it’s great. Specifications are mandatory and you always know what you do. Also it’s not gloomy and filled with sick people and diseases, no one thinks about that part. We want to have fun while writing good software. You may want to try that. That’s all for now I guess.