How is your new job? What technologies? What technical challenges?
(I just turned down a windows c++ dev role, partly because I’m more interested in linux. I feel there are fewer online resources to help with vc++ developers.)
I now have a little theory on the relative importance of some c++ tech skills in a job candidate. I feel all of the skills below are considered “secondary importance” to most of the (10 – 20) interviewers I have met.
c++11 —— is not yet widely used. Many financial jobs I applied have old codebases they don’t want to upgrade. Most of the c++11 features we use as developers are optional convenience features, Some features are fundamental (decltype, constexpr …) yet treated as simple convenience features.
I feel move semantics and r-value references are fairly deep but these are really advanced features for library writers, not app developers.
Boost —— is not really widely used. 70% of the financial companies I tried don’t use anything beyond shared_ptr. Most of the boost features are considered optional and high-level, rather than fundamental. If I tell them I only used shared_ptr and no other boost library, they will usually judge me on other fronts, without deducting points.
Q: Are there job candidates who are strong with some boost feature (beside shared_ptr) but weak on STL and core c++?
A: I have not seen any.
Q: Are there programmers strong on core c++ but unfamiliar with boost?
A: I have seen many
sockets —— is relevant to some low-latency, network teams. Call them infrastructure team, or engineering team, or back-end team. I just happened to apply for too many of this kind. To them, socket knowledge is essential, but to the “mainstream” c++ teams, socket is non-essential.
(Actually socket api is not a c/c++ language feature, but a system library. Unlike STL, socket library has narrower usage.)
templates —— another advanced feature primarily for library developers. Really deep and complex. App developers don’t really need this level of wizardry. A few experienced c++ guys told me their teams each has a team member using fancy template meta-programing techniques that no one could understand or maintain. None of my interviewers went very deep on this topic.
IKM —— is far less important than we thought. I know many people who score very high but fail the tech interview badly. On the other hand, I believe some candidates score mediocre but impress the interviewers when they come on-site.