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.
The pool of talented C++ developers is running dry
201–210 of 869 posts
Re: The pool of talented C++ developers is running dry
#202As 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…
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
#203Earlier 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…
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
#204Earlier 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.
Re: The pool of talented C++ developers is running dry
#205Earlier 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.
Re: The pool of talented C++ developers is running dry
#206Re: The pool of talented C++ developers is running dry
#207Most 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.
Re: The pool of talented C++ developers is running dry
#208> 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 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
#209I 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
#210Earlier 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?