Hacker News new | ask | show | jobs
by contingencies 2348 days ago
Don't forget the benefits of portability and the need to hire people as factors contributing to the use of higher level, generally less efficient languages: a few days back I read a description of C as a "hard to find skill these days".
2 comments

There are plenty of people with real skills in C working in embedded. It might even be easier to find C than C++ developers.
I challenge you to find a C “boot camp.”

In fact doesn’t this point to a gap in the marketplace? Where are my “IOT ALL THE THINGS / 5G / Edge” bootcamps? Where are the “leetcode” challenges that talk about proper sampling rates for an 8-bit A/D converter, or implementing a closed loop PID in a 16-bit architecture?

I suspect that that’s what the Grandparent comment is commenting on — there’s so much talking about the former and so little talking about the latter - even if every computer engineer graduating from a ABET-certified institution is these skills.

> I challenge you to find a C “boot camp.”

C isn't a language that lends itself to bootcamp-stye learning.

With Javascript, you can get something on-screen in a few minutes, and even if you make mistakes, you will normally see something. It's a more forgiving environment.

With C, a small error prevents compilation at all, and it's going to be a relatively long time before you're ready to progress past the "printing text to the console" stage.

C is flatly harder to learn, and unless you're the kind of person who likes mental challenge, it's less rewarding than Javascript. It isn't the kind of thing you tackle because you need hirable job skills by the end of the month.

There are still some excellent C tutorials out there (for example, I think Handmade Hero's[0] intro to C is good, and Handmade Hero itself gets you to the "shiny colors on the screen" stage very quickly), but HH has a different mentality than a bootcamp. HH is about learning, exploring, breaking things, and figuring them out on the fly. A bootcamp is about gathering the minimum knowledge necessary to be productive as quickly as possible.

[0]: https://www.youtube.com/watch?v=F3ntGDm6hOs

A bootcamp is about gathering the minimum knowledge necessary to be productive as quickly as possible.

...and that nicely sums up the problem with software today.

That's a sunny view of the software of yesteryear.
That's what the market wants. Too many buyers who don't care about what's under the hood
> it's less rewarding than Javascript.

This varies with goals, attitudes, background, bias, etc. Besides, if you know a little C, you can livecode over at glslsandbox or shadertoy and be immediately rewarded.

> It isn't the kind of thing you tackle because you need hirable job skills by the end of the month.

No, not really. This also roughly says "JS doesn't necessarily require lots of experience" which is not much of a plus, as someone already pointed out.

The C "boot camp" is called K&R (plus a plain Linux development environment). Plenty of devs have gotten started with just that, and in around the same time.
The problem with K&R is that is useless for building actual, working C applications. Even being up to date with the language's specs means very little as getting every different library up and running in each platform is a fairly high barrier, much more so than other platforms.
The companion Kernighan and Pike is very good on building full Unix command line utilities. But yes, the platform learning process of getting to hello world can be remarkably hard.
I never thought of "The UNIX Programming Environment" and "The C Programming Language" as companion books. Thanks for opening my eyes to that.
Looking at the typical salaries in embedded, can't be that hard to find ...