Hacker News new | ask | show | jobs
by aroon 6015 days ago
"if you can’t get fired for missing a deadline then you aren’t a real programmer working in the real world"

I thought the essay was pretty good until I hit that line. I feel like mastering something kind of requires rising above the daily grind. In order to master programming wouldn't one have to be a programmer simply by existence? I, for one, don't consider myself a programmer because I write code for Apple or because I have a degree that says I'm a certified computer scientist. I'm a programmer because I write programs.

Did that line bother anyone else?

2 comments

Yes.

If you can get fired for missing a deadline in non-egregious situations, you're working in the real world alright, but as a replaceable cog -- you're a typist, not a programmer.

Firing you means that they're declaring their investment in your thoughts a total loss, implying that they weren't paying you to think (or that you didn't do any of the thinking you were paid for!).

Entrepreneurs have deadlines too.

I interpreted that sentence to mean "If you don't have real-world constraints on your system, you aren't a real programmer." Which I think is true. It's easy to build the "perfect" academic system, exploring every detail until you've got things just right. Problem is, reality tends to bite you in areas that you don't expect (as in, real programmers have real performance/deadline/usability constraints), and those often aren't exposed in an academic paper.

I suspect most of that relates to incompetence. I rarely see unexpected performance issues bite me in the ass. Premature optimization may be the root of all evil, but having a long conversation with the back end database is FAIL.

Most Entrepreneurs are way to young to have the depth of experience to really understand what they are doing. But, they are judged on a separate scale. Twitter design is probably evolving to a reasonable design, and Facebook might be fairly elegant at this point, yet they both started as crap. These entrepreneurs had deadlines but they where not trying to send someone to the moon with the computing power of a watch. Business is about the last hack standing and not creating art, but evolution also works.

I don't think it's incompetence, at least not at the academic/professor level we're talking about. Most people who get to be professors at research universities understand the low-level details of performance quite well.

Rather, I think it's often because the details about how a system will be used aren't clear until the system is built and people actually use it. As you know, engineering involves tradeoffs. It's possible to make one operation run faster by making another slower, or it's possible to make the system easier to use by making them both slower. Academics - and startups - aren't in a position to make those tradeoffs, because they don't know how the system will be used. So they'll micro-optimize along one dimension, but it turns out that people really use the software in a completely different dimension.

Performance under extreme pressure is by definition what sorts out he great from the average in other disciplines: sports, music, performing etc.

If you haven't experienced sport (or similar) at the highest levels you probably won't get how much a few insane minutes can enhance your mastery. It really is a whole new level, where everyone is competing at their peak and you have to greatly improve your level or fail miserably.

This type of pressure & competitiveness just doesn't happen in most business environments, so the degree of pressure to lift your game isn't there.