Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

401–410 of 869 posts

Re: The pool of talented C++ developers is running dry

#401

Earlier quoted context omitted.

Yes, the embedded space pays terrible, and the employers don't seem great on the whole. When I was at Google I got to work on embedded stuff and really liked it; but I was getting a Google salary. When I left Google I pursued IoT and embedded jobs a bit and while I was not expecting Google level compensation at all, I was astounded at what was going on there, pay wise. General software eng back end jobs pay better. T…

system programming is a tough and low reward path indeed, be it in c/c++ or whatever. embedded/EE is worse. unless you made into the big few(google,amazon,meta,apple,microsoft,...), salary will plummet by half in general, or even more.

Well, I am happy I transitioned from C/C++ to backend. And frankly, I do like backend more.

Re: The pool of talented C++ developers is running dry

#402

"eFinancial careers"? "ProfitView, a crypto trading tools developer"? "former software engineer at Barclays and Bank of America"? ... cry me a river. Maybe they're seeing less C++ developers because more of us developed a bit of a moral backbone and don't go working for those socially parasitic enterprises.

I believe it also entails unreasonable working hours like a lot of things in the financial world.

Re: The pool of talented C++ developers is running dry

#403

Earlier quoted context omitted.

I agree. No matter gray beards bashing Rust on HN every time it comes up, programming in Rust brings me joy and I will never use C++ again if I have a choice.

Interesting; could this be because you've been using outdated C++ ? (legacy codebases started before C++98 tend to be particularly painful) FWIW, I prefer the power of C++ over Rust's hand-holding; but can also see its appeal for someone that's not as confident over the minutia.

Not the person you asked, but for me (coming from C++20, with lambdas, async, etc), the big win is that the borrow checker automates away boring PR comments about "you used std::unique_ptr in a non-idiomatic way that is technically safe, and it bleeds memory unsafety into some random API, so write this level N+1 magic instead".

It also checks that all my threaded code is data race free.

On the downside, it's support for safe (in the sense that the compiler checks it) lock free programming is basically non-existent, which means that stuff that would be easy in C++ ends up being in Rust unsafe blocks that you need a PhD in type theory to reason about.

Re: The pool of talented C++ developers is running dry

#404
post #27

Earlier quoted context omitted.

Having recently learned C++/C.. I don't see why it would be taught as a first language outside of specializations. The gains from C/C++ coding are vastly outweighed by the costs. The reality is that there is no good, agreed upon standard in C++ for how to manage memory... how would you teach this to junior engineers at university?

I learned programming in the 90's using C++. When someone expresses this intent I always ask the same question. Am I a supergenius or are you mistaken?

The C++ of the 90s was a much simpler language, closer to "C with classes" (and often used as such) than modern C++. It was much easier to learn everything about C++ back then.

Re: The pool of talented C++ developers is running dry

#405

For anyone looking for a junior who knows C++ in Canada, we've had good luck with Sheridan College in Oakville ON.

Is this for graduates coming directly from high school or are you seeing success with people that already hold degrees and are going for retraining or up-skilling?

Re: The pool of talented C++ developers is running dry

#406

As a talented C++ developer... yes there is a dearth of talented C++ developers. I've been to several C++ conferences. Even there, many of the engineers end up learning "new" things that are IMO basic concepts that have been around for years. I recently went through a hiring phase for Senior C++ engineers and most of the applicants were familiar with old tech. It was really disheartening to me to realize how many "se…

I can't help but wonder if developers are simply off-put by the complexity of the language itself. Way back in 1989 I was fortunate enough to get Borland's C/C++ compiler, the K&R C book, and Stroustrup's C++ book - which, at the time, was about the same size as the K&R C book. The C++ language was relatively simple to learn at that time: no STL, no odd pointer types, no template metaprogramming, etc. Fast-forward to…

I'm with you mostly, although as the mostly sole maintainer of an 22 years old and still evolving C++ codebase (among some other responsibilities) I do try to keep up with the language. But if I didn't feel this was necessary for my job I probably wouldn't do it or at least won't sink too much time into it.

I've also programmed in Haskell and I've had the same reaction as you, as to the things I can easily express there and not in C++. However I think the 2 cultures (Haskell and C++) are similar in that they both attract people who like to produce clever code which is unreadable to other people, even though the base language is not that complicated.

As for your questions:

1) shared_ptr / unique_ptr: Personally I liked this presentation. Watch it on x2 speed until it gets to parts that are difficult for you.

https://www.youtube.com/watch?v=xGDLkt-jBJ4

2) lambdas:

https://www.youtube.com/watch?v=3jCOwajNch0

This is more dense than the previous one. As for your question "how do lambdas interact with C function pointers": rough explanation is they are not the same, since they can possibly allocate memory if they capture. But if they don't capture anything they are just like a (static) function, and can be converted to a function pointer.

As for concepts / traits, rough answer is that you don't need to know about them for everyday work, unless you write a library / API for consumption by other C++ developers. In that case, they help the compiler provide better/shorter error messages in case template functions/classes aren't used properly.

Re: The pool of talented C++ developers is running dry

#407
post #47

Earlier quoted context omitted.

Yep. I build glorified CRUD apps in NodeJS + React, my friend works on some embedded C++ stuff. - My working hours are way more flexible. I pretty much only have to attend meetings which are rare, so I can basically work whenever I want during the day. That means that I can go to the dentist and stuff like that without taking the day off. She has pretty strict hours. - I can work from anywhere, only requirement is de…

Probably less related to C++ as a language and more so an "embedded" issue or down to the specific industry that your friend is in. E.g., there are hundreds of C++ devs at my company that have the same work from home options and flexible hours as their frontend peers. So these jobs exist.

Agreed. My friend - a kernel dev - and I - a non-specialized SDE - have the same benefits and flexible hours.

Re: The pool of talented C++ developers is running dry

#408
post #9

Because Python pays more. Or Javascript. Or Ruby. More demand, more salary. Apart from finance, pay is lower than web languages. And finance is small. Embedded systems programming, that also uses the language, pays 30% less than web jobs from my last job hunting period. Employees may be leaving the embedded space (and C++) for web tech because of this. This is the feeling I get from my local job market (western Europ…

A lot of C++ jobs are at FAANG companies. At least at the ones I’ve worked, nothing serious (ie in prod) is implemented in Python or Ruby. It’s Java for stuff that doesn’t need to be fast, C++ for stuff that needs to be fast, and Go for random stuff where people were able to shoehorn it in.

I think the problem is more that asking someone to accept low pay to work in C++ (one of the hardest languages to be productive in) doesn’t make any sense. If I’m good at software and know C++ I’ll work at a FAANG, AI company, self driving, or HFT/Hedge Fund for 3x-10x what a random C++ embedded role would pay.

Re: The pool of talented C++ developers is running dry

#409

Earlier quoted context omitted.

I’m building a house at the moment and I have been insisting that I am able to actually test all the built in appliances with power to see if the software is garbage. I have found that most of the high end brands have a completely horrible user experience. Miele is the worst I’ve tried, and I found that as you go up the price range even inside that brand the experience gets worse. The top end Miele induction cooktop…

The mere idea of waiting for a kitchen appliance to "boot up" makes me angry. How did we normalize this madness? Telephones, TVs, car engine instruments, HVAC thermostats, why can't any of these be instant-on like in the 80s? Apply power and it starts working is a basic design principle.

Meh. Bootup time is irrelevant if the thing is always on. Many "dumb" microwaves won't let you use them until you set the clock after a power loss which creates an artificial "boot up time" of 5-120 seconds (depending on how complicated the procedure is; I remember microwaves that had absolutely obtuse clock-setting procedures).

Re: The pool of talented C++ developers is running dry

#410
post #173

Earlier quoted context omitted.

I've had the same experience in Java. Experienced engineers that are learning "new" Java even though those features came out years ago. I really think this will be the case for any language. Most people are not the HN type that are going to live and breath programming.

I prefer to be proud that I've never touched Java... for Old Reasons. But that said, it's a valuable language. It's nice to know that other languages have similar problems :)

I'll probably get down voted, but I honestly really enjoy Java. The language, while it has some legacy verbosity, is in my opinion the perfect balance of simplicity and complexity. It has just enough language features without becoming Scala/Rust/C++ levels of complexity, while still being competitive on performance.
Post reply on HN