Hacker News new | ask | show | jobs
by CliffyA 3359 days ago
As someone who can code in C/C++ and was recently looking for work, I don't think someone should learn low level programming for a career. What I would consider simple PHP jobs were easily paying more than C++ jobs.

If you look at everyone reinventing the wheel in electron and not caring about performance I don't think the situation is going to get better anytime soon.

12 comments

Please don't spread generalizations like these. I'm sorry about the job situation in your area but I live in a Canadian metropolis where 1) there's no shortage of low-level work and 2) they will pay much more than your average PHP consulting shop. In fact, I maxed out very early what someone can hope to earn at my level of experience.

My point is that your job market is not representative of the whole world and you're acting as if it were.

what the flying fuck. I live in Toronto and all I see is cloud this and cloud that. I'm an embedded software guy with a lot of embedded software experience and the only people who contact me in Linkedin focus on the one or two lines in my resume about web development.
Yet if you did web development you'd (likely) be making 2X+ in America -- provided you were willing to move. Canada doesn't pay.
According to vocal Trump supporters, America doesn't need or want anything to do with my ethnicity anyways ;)
Same with me, but Trump supporters are in low volume in areas where you want to live anyway. :)
Which metropolis are you talking about?
I'm willing to bet he means Montreal, no shortage of programming jobs over here.
So I can only speak for myself, but I've been exclusively working in low level C type work for the last 9 years. Think embedded, kernel dev, reverse engineering, etc. type stuff. I'm good enough at it, but hardly an expert.

I can't say I've ever lacked for work and I make $125k in a very low cost of living area, and if I wanted something new I could have interviews arranged tomorrow both where I currently live and pretty much any major US city.

It's probably not on the same scale as web dev, but there's also a lot fewer of us working on this side of things.

Do you have a background in electronic engineering / good understanding of hardware issues beyond cpu caching ? Just trying to understand what $125k requires in this space.
My degree is in Computer Science and my hardware skills are mostly nil. I mean I know how to read data sheets and talk to hardware through memory mapped IO or ports, but as far as circuits, hardware design, etc. nothing more than a rudimentary understanding.

I wound up in this field doing a co-op during college with an employer that had a variety of different job types. I have always liked C so I went with more low level jobs during my co-op rotations.

My primary skill set is being comfortable developing on bare metal or in the kernel, reverse engineering, and debugging painful problems. One of my first tasks was porting part of a custom OS to hardware that didn't have JTAG (it wasn't our hardware... someone else made it and we were tasked with getting our OS on there.)

The only thing I had to debug with were memory dumps in raw hex. It was painful but a lot of fun. It's not so much that I'm particularly bright but I'm too dumb to know when to give up.

Interesting, thank you.
Actually now that I think about it, being too stupid to know when I'm in over my head and being willing to dive into an impossible task are probably the most valuable skills I have.
dumb enough to jump, smart enough to not die... the secret to success.
Sounds like the tag-line to one of those fake movie trailers on SNL. I like it!
You're taking a very specific case and generalizing it like crazy. The CS industry isn't all Electron apps and simple jobs.

The most obvious example would be the video game industry were you're not straying very far from C++ anytime soon. Performance, speed and native compatibility are a big deal there.

There's definitely a valid career path there.

Games programmers are notoriously poorly paid, are they not? More fuel for the GP's fire, I think. :)
I went to college with a guy who did industrial, embedded stuff you see in factories. One of his projects he told me about was a robot that cut the glass windows or something like that at a Volvo plant. Anyway, he wrote the software for sensors, control, etc. Integrated it into GUI tools or backends. I said something kind of like you said to him.

He replied that he'd have better job security than any of us in IT doing stuff like PHP or Java. He said the reason is he had to be on-site to do his work. Impossible to out-source. When I pointed out in-sourcing (H1-B, etc), he said they preferred people with both strong command of English (avoid costly misunderstandings) and experience (avoid costly mistakes). The experience often comes from working locally in colleges or companies.

So, I definitely encourage people to explore coding in C and C++ for local, embedded systems at the least. There's other jobs that don't require local or embedded where those languages are used. They're not outsourcing-proof w/ consistently good pay, though. ;)

The problem is skill transfer. What does he do when Volvo shuts down his factory? Even if there are other potential employers nearby, they are unlikely to be hiring because they already have their guy.
You kidding? His company builds the equipment for one deployment. Then they do that for another. Then another. He might get sent in for maintenance or they might send someone else. He isn't doing day-to-day admin at the factor or something.
Myself and my colleagues do a lot of work in finance and machine learning where low level C++ is king, and we are highly paid for knowing the language intimately. You can generalize this across many parts of the finance industry in my experience (I own a mid-sized ML consulting firm).
Interestingly, from what I'm seeing, in London even most HFT jobs are in Java now. From what I've read, they figure it's easier to write HFT Java than C++, which says a lot about their difficulties with C++ (not only the language itself, but difficulties with hiring people expert enough in C++).
Depends on your location. Canada for example has very few embedded/hardware dev jobs vs. Israel were there is a huge amount of C/C++/Assembly jobs for the Aerospace/Military industry.
That's disappointing to hear but thank you for the honest response. I currently work in Ruby but my favorite language is C, I feel like it helped me become a better developer and improved my understanding of imperative languages. Sucks that something so useful is cast aside for something like PHP.
Seconded. Low-level programming is not the future and the decreasing demand for said skill is reflected in the market/prospects.
I respectfully disagree. We've recently seen a lot of development in the space and there will always be a need to make new hardware work. Yes, margins for hardware companies will always be slimmer than CloudWidgets Inc. but there's a very solid demand for people who know what they're doing in this space. Just about every electrically powered product you buy will have a uC in it, from your flashlight's led controller to the hundred+ that exist in your car.
Can I ask where you live? Maybe this was just the spot market at the time you were looking? That seems odd.
This is Melbourne, Australia.

I'm the following is not very scientific, but just to give you an idea of where I'm coming from.

Firstly comparing just the numbers of jobs (even tho this is probably a bad time of year near the holidays):

PHP Jobs, 100k/year minimum: 3 added today, 7 the day before https://www.seek.com.au/php-jobs/in-All-Melbourne-VIC?salary...

C++ Jobs, 100k/year min: 0 today, 1 yesterday https://www.seek.com.au/c%2B%2B-jobs/in-All-Melbourne-VIC?sa...

And some of those aren't even C++ jobs, switching sorting from date to relevant gets you C++ jobs from 14 days ago that would already have moved along in their hiring process.

As a cherry picked example, dropping down to 80k/year there's this Embedded C role that requires specific experience in card payment software: https://www.seek.com.au/job/33166443?type=standout&tier=no_t...

To me those requirements seem stricter than what i see in the PHP jobs (experience with MySQL + some form of MVC framework). And on top of that it's paying less.

Another example is the finance job I applied at that was paying 70-90k. But to get in the high end of that range you would need previous stock trading software experience. They also wanted 5 hours of my time for the interview process, but that's a separate topic.

This is mostly true for remote jobs.
Yea, it's hard to work remote when you occasionally need $100K in test equipment to do your job
Embedded/devices aside, regular/high-level C/C++ jobs are scarce as well, in REMOTE space.
I've never been somewhere where I can't work remote at all, but you end up having to work closely with electrical engineers and that often leads to needing to be near an office. I'd say I actually need to be in my chair about 20-30% of the time
That is an exaggeration, for most embedded jobs you don't need $100k in test equipment. I am sure there are exceptions, but usually you will need the target, a debugger and _maybe_ a logic analyzer or an oscilloscope.
Usually it's around $10K (sig-gen, scope, logic analyzer, jtag) but occasionally there's an RF test chamber and associated gear involved :)

Also, if you're dealing with uCs, you'll almost always want at least a Saleae and a 100+mhz scope.

Interestingly enough, I worked as an embedded dev for 3 years already and I used a scope and a Logic analyzer maybe 1 week during this time. I do admit that my job is kind of shitty and I'm working on messy in-house frameworks. I bet Saleae + oscope are indispensable when doing board bringup or things like that tough.

For my home-lab I went the el cheapo way and bought my own hackable Rigol (brought it to 100 Mhz) and, to my great shame, I bought a Saleae clone. I promise, Sealae guys, I'll buy an original on my next raise, I promise!

Yea, it depends on what you're up to. Post setup, when you're just doing DSP or something you're not going to need much at all but we spin boards pretty frequently due to our contract cycle.

I've gone the same direction with my home setup. "hacked" Rigol DS1054Z + power supply and anti static mat. It's not as nice as my Tek at work but it'll do most of what I want. I usually just borrow the saleae from work if I need one and I have a little bus pirate that's occasionally indispensable for SPI/serial/I2c stuff

what... read: the trading firms / hedge funds developing their propriety trading platforms. Those salaries aren't too shabby.
Yeah, C/C++ is gradually becoming a lost art. Many game developers don't even bother with it anymore, instead just scripting out Unity.
I think that's probably true for indie game developers, but in the AAA space C++ is still king
C/C++ is not going away anytime soon in realtime audio DSP.