Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

381–390 of 869 posts

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

#381

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…

>EE salaries are sadly lower than they rightfully should be. Profit margins of an EE will almost always be lower than profit margins of a software engineer. A team of software engineers can quickly scale to selling to millions of users (and collect nearly 100% of the resulting revenue as pure profit), whereas a team of EE's cannot a) scale their customer base as quickly, since scaling up manufacturing takes time and…

In the long run, yes.

There are shorter term effect where for at least a generation there's been too many new grads able to design hardware I2C devices, resulting in too many new grads also able to write I2C driver software as a backup career, resulting in low pay across the board for both fields.

Just because a student likes the field, and can pass the ever more difficult filter classes along the way, doesn't mean there's a job waiting after graduation in that field. For some reason students keep signing up for an EE education even though the odds of them getting an EE job after graduation are very low. The odds of them getting any job, even a high paying one, are good because the majority of the graduating class goes into software development, mostly embedded, but most kids who can, like, bias a class-C amplifier transistor, will never have a job doing EE stuff, there's just too many EE grads for too few EE jobs.

As another example of that effect, see also K-12 education where for at least one generation, the bottom half of the graduating class was never employed in the field, at least in my state. Enrollment for K12 has absolutely cratered in recent years, and now most grads have a reasonable chance of getting a job in their field.

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

#382

There's lots of C++ programmers out there. But they're bottled up in FAANG, I think. So you have to be able to compete with that. Working at Google is on the whole a lot of C++. Major parts are moving to Go, certainly. But there's absolutely giant code-bases of pretty cleanly written C++ services, and most Googlers are quite proficient in it and there's whole teams at Google that work on improving C++ standards and t…

From what I understand, Google is really about a crippled subset of C++, that people jokingly call "C+-". I ran a C++ shop for 25 years. I used to program in it, but stopped, many moons ago. The new C++ is a huge change from what I knew. I am expecting to see a lot of hate for the language, in this thread. Regardless, it is a very powerful language, and it is not for the faint of heart. I attended a Swift conference,…

"From what I understand, Google is really about a crippled subset of C++, that people jokingly call "C+-"."

Chrome is pretty good at using modern C++ FWIW.

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

#383
post #27

> People are seemingly scared away from the language by a terrible stigma: the notion that it is a legacy program. My personal experience: Universities (in Germany) simply stopped teaching C++. Most of it is now Python or C#.

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?

Having learned C/C++ as my first languages I can say I'm quite glad for it. I was able to learn so fucking much.

1. Object oriented programming, complete with inheritance and virtual dispatch

2. Pure Functional Programming, lambdas, const correctness, template metaprogramming

3. Type system fuckery - the things you can do in C++'s TMP is insane. Both nominal and duck typing in the language.

4. Hardware - I watched so many talks on how CPUs work that explained things via C/C++. I learned about tools like valgrind and cachegrind, how to profile code, etc.

5. Security - The original reason I wanted to learn them, to understand how to exploit C and C++ programs and their common vulnerabilities

6. Data structures - C++ is awesome for building data structures from scratch and understanding their low level semantics

I don't want to write them professionally, but learning them was massively helpful, with skills propagating through every other language I've used.

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

#384
post #41

I've seen this story several times. Once a language no longer has a developer pipeline, it becomes a language with no future. No matter how important and widely used. You wind up with jobs begging for qualified developers. Given how systems last, the language may survive indefinitely. As nobody dares migrate projects off of it. But employers will struggle more and more to find employees. The first language that this…

C++ is not going anywhere. All operating systems and almost all compilers for every other language (plus many of their runtimes) are written in it.

When the heat death of the universe is upon us and all other languages have ceased to exist and re-emerged thousands of times over, C++ will still be here, driving the lower-most layers on top of hardware.

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

#385
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…

It's amazing how badly embedded programming and C++ programming in general pay compared to the others you mention like Python & Ruby. A good C++ programmer has to know a whole lot more (and be careful about a whole lot more) than a Python or Ruby programmer does. C++ is well known to be a complicated beast - probably the most complicated programming language in existence with plenty of footguns. And an embedded devel…

I'm about a decade removed from a C++ shop and I disagree with this.

I've found C++ shops have "lower" standards for C++ developers. I'm putting "lower" in quotes here because I'm talking relative skill within a given language. It just seems way more common in C++ shops to have situations where "20% of the developers do 80% of the work". This isn't to say there's dead weight in Python/Ruby shops, but my experience in the C++ world was there was always a small group of developers doing most of the work and this is considered normal whereas the same situation in a Python/Ruby shop would be a major crisis.

Despite the demand, if you're a low output Python/Ruby dev you'll likely struggle to hold a career together; hiring will be a slog and you'll get squeezed out of orgs with PIPs every 6 months. The same low output C++ developer could probably stay gainfully employed once hired.

Hopefully this fact might encourage others to pursue C/C++ jobs. There is zero expectations towards being a "rockstar" - if you know the fundamentals and can plod through work at whatever pace you're comfortable with there's probably a job out there for you.

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

#386

Earlier quoted context omitted.

> glorified CRUD apps Why is API design/backend engineering the only software discipline that gets maligned like this? These are bread-and-butter operations. I don't mean to attack you, just noting that I never hear anyone talk about mobile development in the same way, for example.

A lot of CRUD app development feels like tedious, repetitive busy work. Data entry was a solved problem in COBOL if not earlier, it's not gotten any harder in the decades since, it's just gotten more tedious. There are generic data entry tools that solve the entire class of problems in that space. In web tooling there are things like Django's Admin app. In "the ancient world" there is Excel for good and bad and ugly.…

The same can be said for dentists or architects or chemical engineers or whatever. Teeth and houses and oil refineries are “solved” problems in that we know how to do it.

But each instance is a little different. Each customer wants their flavour of the problem solved.

Long story short: don’t get into a line of work if you don’t like churning out multiples of the same thing for years.

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

#387
I'm surprised to not see any comments mentioning Rust and Go. (Rust is mentioned in the article)

Go intends to bring better team efficiency without giving up much performance. Rust intends to bring safety with similar performance to C++.

There's mentions of Python (and some others) in comments, but those language stray a bit too far from being useful as general purpose languages where C++ has been used historically (but that's not too say there aren't efforts to use Python/Cython embedded).

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

#388

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…

Slightly off topic but imagine an induction cooker with the original iPod control wheel as it's power control. We opted for a gas hob when we installed our kitchen. Mostly because I like the controllability when cooking. Obviously it's a nightmare for health and the environment but man it makes cooking easier.

how is it a nightmare? if you aren't getting that energy from natural gas, you'd mostly get it from a CO2 producing power plant, with efficiency losses going from heat (steam) -> electric -> heat (cooktop)

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

#389
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…

> glorified CRUD apps Why is API design/backend engineering the only software discipline that gets maligned like this? These are bread-and-butter operations. I don't mean to attack you, just noting that I never hear anyone talk about mobile development in the same way, for example.

Why does that seem maligned to you? I don't see it as negative at all, just descriptive.

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

#390

Earlier quoted context omitted.

> You may also look into Kernel Programming for a lucrative systems programming career. This is the road I have taken since I started to work professionally, but I yet have to find a lucrative job. I know that I am paid more than microcontroller devs, but less than web devs. The market for kernel developers is not that big either.

That's insane to me... getting into systems programming recently I am well aware of how much harder it is than web dev.

I did embedded and now I do backend. I wouldn't say one is harder than other. Things are very different.
Post reply on HN