Ask HN: Is there a spectrum of difficulty/prestige in programming?

16 points by JohnnyBrown ↗ HN
I'm a CS student and I've been wondering about this. It seems most professions have this type of thing.

For example in engineering you would have chem eng at one end and maybe mechanical or something at the other. Doctors would have a scale that goes from, say, brain surgeons to (just guessing) podiatrists. In the military it would go from (probably) fighter pilots or Delta Force to basic infantry.

My question is, Does the programming/software eng. profession have a similar scale (or the perception of one, which is basically the same thing)? Or in other words, what would be the opposite of writing unit tests at your local insurance company? A web startup? AI? Trading bots?

19 comments

[ 2.8 ms ] story [ 35.1 ms ] thread
Maybe Wall Street quants and startup founders on one end, with Fortune 500 IT individual contributors (hardly what I'd call computer scientists) on the other.
Or kernel/compiler/AI hackers on one end and clueless Java school grads building "enterprise grade software" on the other.
I'd say that being a startup founder is less about code hacking abilities and more about hacking real-life (product, market, customer, code, whatsit.)

Personally I'd go with GeneralMaximus.

Here's a hierarchy of programming languages (meant to be tongue-in-cheek): http://blogs.msdn.com/blogfiles/steverowe/WindowsLiveWriter/...
Haskell (omitted) probably comes in somewhere at the top :)
gasp what about erlang?!

i like erlang :(

But they are all beneath Verilog, which is slightly below VHDL :-)
Note: blogs.msdn.com
Your examples seem slightly wack:

"For example in engineering you would have chem eng at one end and maybe mechanical or something at the other"

OK, I don't know from engineering, but mech is pretty high up there. The low prestige engineers are probably civil engineers, not mechs.

"Doctors would have a scale that goes from, say, brain surgeons to (just guessing) podiatrists."

Fun fact: the low end of prestige is probably GP's. Podiatrists are specialists, and there's prestige in that. Some of them even perform surgery, which is worth considerable prestige. Very high prestige goes to medical researchers. ("Research" is a high prestige modifier to many fields. Consider engineers vs. research engineers.)

"In the military it would go from (probably) fighter pilots or Delta Force to basic infantry."

These actually depend on the individual military service, aside from certain generalities (combat people are higher prestige than support people, command is higher prestige than staff). As a result, infantry would actually be higher prestige than, for instance, mechanics or supply.

Army, I couldn't speak for. I know Rangers and Special Forces and Airborne are higher prestige than "leg infantry", and the cavalry were high prestige in their era, but I can't say for sure.

Navy is hard to say, since there's a rivalry between aviators, surface guys, and submarine guys. But all three of those can be unrestricted line officers, and that's the higher prestige track since it leads to command. If I had to hazard a guess I'd say the aviators have the edge--they command the biggest ships, and ever since WWII it's been demonstrated fact that the real power of the Navy lies in its air.

Air Force is run by the pilots, obviously. Combat pilots over cargo pilots.

Believe it or not the highest prestige component of the Marine Corps is probably the infantry. Everything else is there to support the infantry. Added to this is that every Marine is trained as a light infantryman, and every Marine officer is trained to command a rifle platoon. The Marine Corps doesn't really operate on these terms much, as they simply consider the entire Corps to be the best part of the military.

Podiatrists are doctors to the same degree that dentists are doctors. (Which is to say, they don't obtain the same degree obtained by physicians.) I think that research prestige is orthogonal to clinical prestige. Even then, I think that clinical fields do not have a linear order of prestige. It's more like individuals carry their own prestige (for research or for patient care).
I don't think Chem Es have any more prestige than any other major. They may net a higher salary, but that doesn't mean anything. My Chem E friend makes more than me, but he works in a plastics factory monitoring gauges all day with no design work involved. That doesn't seem very prestigious.
I've found kernel and embedded programming to be the most difficult, particularly when there are big-endian/little-endian issues. Porting Linux to a new SBC is challenging, as is writing the board support package for it. Also fun is having to squeeze the last ounce of performance out of a CPU that some dingbat hardware engineer decided to use because it was cheap.

Prestige depends on how many people will die if you make a mistake. I've done medical equipment and air traffic control software. The sensible companies require at least twenty years experience before they'll even let you touch the code.

In terms of prestige, I think it goes something like this (from most to least prestiges)

0) Turing

1) Kunth/Pike/Ritchie/Englebert/Kay/Steele

2) People who wrote a language or operating system people actually use. Linus, Matz, Wall, van Rossum, Hejlsberg etc.

3) Theoretical computer scientists who have developed stuff people actually use

4) Low level specialists: security specialists, people who work on operating systems and/or performance specialists

5) People who developed a programming framework in wide use today, and have good taste (Cutting/Williamson/Rod Johnson/DHH)

6) Developers on apps used by huge numbers of people. Core Windows/Linux/Parts of Google/Parts of Facebook/Parts of Apple/some embedded systems

7) Theoretical computer scientists who've never developed anything used by anyone beside themselves

8) Developer at a software company or open source project with a good reputation for writing solid software (Google/some Apache projects/3rd party Webkit committer/some parts of Microsoft or Oracle)

9) Developer at a software company (ie, software is the company's primary focus)

10) Developer in some Financial Services companies

11) Enterprise developer/Web developer

12) VB6 developer/COBOL developer/Pick programmer

13) Developer in some proprietary language

14) Your work features on http://thedailywtf.com/

I'm not sure 4 is in the right order, considering you didn't name anyone/anything. I would put kernel dev's above framework devs. 0 and 1 are equal in my mind. Basically you should be able to give names for up to your #8 if you can't name person/company/project it should probably be lower.

I would order 0 1 (etc), 2, 3, 5, 8, 4, 7, 9, 10 11, 12, 13, 14 (comma placement is explicit where I find those levels equivalent)

Would Tim Berners-Lee or DJB fit as a good example of #4?
DJB would. I was thinking of http://www.google.com/search?q=Dmitriy+Vjukov when I thought of that category. Also Tomek (http://www.topcoder.com/tc?module=SimpleStats&c=coder_ac..., T.O.M.E.K from http://www.mcplusplus.com/downloads/)

Tim Berners-Lee is maybe 3, or maybe category for people who "got lucky once and are now famous". Or maybe there should a separate category called "semantic web specialists". That may or may not be the same category as "Don Quixote, and other windmill tilters"

Yeah, I was thinking kernel dev's would be the people who work on operating systems in #4. I didn't say "Linux devs" because I didn't want to include people who wrote some weird GTK/KDE apps used by one person to be included.

But kernel dev's would have been better terminology.

John McCarthy is an interesting person to try to slot into your scheme, since he qualifies for 2 but deserves a higher place than Matz and Guido. You have a theorist at 0 and people who established tools and practices at 1, so maybe McCarthy belongs at 0.