Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

201–210 of 869 posts

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

#201
post #186

Earlier quoted context omitted.

Many hardware companies still see software as just another line item on the BOM: Like a screw or a gasket. It's something you build cheaply or buy from a supplier and sprinkle it on the product somewhere on the assembly line. These hardware companies have no concept of typical measures of software quality, building an ecosystem, release management, sometimes even no concept of source control. They tell an overworked…

At a previous company our firmware was literally called by a part number. So I would regularly work on the repos 5400-520, 5400-521, 5400-524, 5400-526, etc.

I remember an embedded company I joined; when I asked how they manage releases, the eng manager said, "well, we find an engineer who has a copy of the source code that can successfully build with no errors, copy it off their workstation (debug symbols and all), and send it to the factory to get flashed onto devices." Total clown show.

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

#202

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…

C++ has fantastic docs, books, videos, so much. You shouldn't need to read the std library code, and shouldn't read it to know what is safe to do. There are many implementations and they differ in details but all have really good standards compliance, except where they document deviation (like EASTL omits some slow stuff).

If you want to iterate over a container, know promises about algorithmic complexity, have strong guarantees about type safety, or know what smart pointers promise to do then you can get all that without digging into the stdlib's code.

I know this wasn't the main point of your comment but shared_ptr can be thought of as a reference counted pointer. It cleans up the pointed to object when all the pointers to that object go away. It doesn't need to be reference counted, there are implementations that do goofy ring lists under the hood but all the operations on it are cheap O(1) operations and it is only slightly slower than a raw pointer, looking at the code might cause someone to miss the promises of computation complexity. For object you only want one of there is unique_ptr. You give it a pointer or constructor to make an object and when that pointer leaves scope it cleans up the object. Both are great for managing things like memory, connections, file handles, anything you want automatically cleaned up when the pointers leave scope.

Not all languages have the robustness that comes with a 40 year history, so learning last year's hotness and C++ are going to be different.

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

#203
post #127

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…

I did a few a few months of contracting at a major voting machine company. They make a significant portion of all US voting machines. They had 4 developer teams Firmware (C++ where I was), UI (web tech on a voting machine), poll book (java), and a web/support team. Before I was hired in a massive influx of contractors each team was something like 3~5 people, except UI which was a new team with the contractor hiring s…

Ah yes I used to work at a california company as c++ developer.

There was no automated test whatsoever. QA department was just manually clicking things on a client that would connect to my c++ thing.

When I wrote a couple of unit tests I got told off because I was wasting time not doing features.

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

#204
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 definitely would not advocate teaching students C++. C on the other hand is a relatively compact language and is the lingua franca of operating systems and shared libraries.

My recent hot take is that students should never learn on a language older than they are. There are so many options, why did I have to battle linker errors in my intro to CS class with C++? Nothing we were doing required C++.

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

#205

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.

Payment is not based on hardness, it is based on demand and supply.

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

#207
post #161

Most of C++ programming is tied in legacy code and tech debt, that is why it has that image. Only so few modern green field C++ projects with latest standard out there.

That's true, but if you can find a place that isn't just new features all the time and you can refactor, it's so satisfying cleaning up some shit ancient c++ with clean modern c++.

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

#208
post #137
post #57

> Hickling pointed to Java, which has long “seemed to be replacing C++ itself,” but hasn't. This is inaccurate. Java completely ate C++'s lunch in the enterprise space back around the turn of the millennium. Java doesn't need to continue to eat into C++'s marketshare in other domains, because it has more than enough mindshare to sustain itself (there are more Java programmers than C++ programmers), and its very exist…

Correct me if I'm wrong here, but now that everything is run in a docker container anyway, doesn't most of Java's appeal of "write once, run anywhere" from the turn of the millennium go away? At this point all it has is garbage collection and a network effect.

I don't think WORA was ever a really big deal for server-side work. In practice, you know what platform you're developing for, and even if you were developing on Windows and deploying on Solaris, you would have plenty of opportunities to test on Solaris before deploying.

I think the reason that Java beat C++ for boring line of business apps is that it was much, much quicker to write code which ran fast enough and didn't crash much. Having nice easy to use URL/HttpURLConnection classes built in was probably also a surprisingly big part of it!

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

#209
I’ll offer a perspective unrelated to pay: It’s a pain to start learning C++, and even after you do, older devs will roast the hell out of your code because your book/tutorials of choice forgot to mention a crucial (in their opinion) feature that you absolutely should/shouldn’t use! Not to mention you’ve only programmed on Mac/Linux so far & windows is totally different, has a different compiler, different ways to install libraries, different C++ standard features supported, etc.

I like C++, and tooling has come a long way, but it’s so much easier to download rust/Python/node and you’re basically set on every platform & immediately ready to go. NOW consider pay, and even someone enthusiastic about programming C++ will reconsider.

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

#210

Earlier quoted context omitted.

You may also look into Kernel Programming for a lucrative systems programming career. It is more C and low-level oriented though.

Interesting, what types of companies pay well for kernel programming?

Defense industry has a few such jobs, working a lot with RTOS's, network devices, sometimes even embedded for signal processing/control systems, etc... The big defense contractors probably pay better than working directly for the govt depending on where you live.
Post reply on HN