Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's the difference between classical music & jazz.

You're a classical programmer, down to the book. Hit the keyboards just like you learned. It's sometimes good and very desirable.

However, when there's a party going on, and one is needed to freestyle, come up with new sounds and styles on the go, the preference is for a Jazzy programmer.

You can be both, and being one and the other is missing out. Sounds like you will thrive at an enterprise, but suffer at a start up. Now here's the crazy thing, even jazzy types can thrive at enterprise, they are usually the super heroes that wire up the core plumbing of the system. If they get into the ears of one of the high level Cs, they will be paid more than everyone else, they will come in fast with their cohorts, wire up the new system, and no matter how messy, the rest of the classical types get to play only on top of what they built.

Given the choice between being one or another. I rather be the competitive messy code, at least they can solve the problem. The worst thing I've seen is the classical clean programmer, who has "designed an amazing system, UML, nice code/directory layout" tons of clean code, comments, and the dang thing doesn't work.



I really like your classical vs jazz analogy, but I don’t think it applies here.

You can “jazzily” improvise your way through higher levels of abstraction just as much as you can immediate control flow. The folks OP describes aren’t really exhibiting a skill that’s useful in production at all. They’re just venturing out into the creative arts of coding. They break rules to do interesting things. Which is cool, and might sometimes correlate with commercially useful boldness or cleverness, but isn’t a particularly well-tuned signal.

The pressures of competitive coding can open up new ways of thinking about code and about problem solving. But there’s still a big leap from there to any kind of good engineering, startup or enterprise or other.

Idolizing the OP’s coders is only helpful if what they’re doing (competitive coding) is what you want to do. It doesn’f speak to commercial value.


On the other hand, the clean code can be fixed and updated later on, where the fancy mess sometimes just gets worse.

I remember once I found a series of if statements that were so convoluted I needed boolean logic to make sense out of it. In the end, it turned out that half of it was duplication. Nobody could make sense out of it so they simply added on to it each time they had to edit the file.

I'm not convinced that buggy clean code would be worse in that situation: the buggy code would have gotten fixed long ago because it would have been easy to see what was wrong and then fix it.


What the hell are you talking about? Stop spewing bullshit.


from my experience it's the other way around, 5 nested blocks might be a regular thing to see in an enterprise code base rather than at a startup.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: