Hacker News new | ask | show | jobs
by larve 5242 days ago
There is the CS theory aspect to it, of course. I don't encounter that all-to-often in my daily development. Things I encounter that definitely took me as long to learn, if not even more (in the context of web development):

- decomposing my code into patterns, abstractions, without going overboard,

- documenting stuff so that I will understand or other people will understand things in 6 months time,

- writing code on a team,

- having a good project workflow to handle source code versioning, releases, packaging

- knowing how to deploy things to a multitude of servers

- debugging caching problems, optimizing a DB for performance, understanding runtime performance of javascript,

- dealing with customer expectations,

- dealing with deadlines, unexpected events, etc...

- dealing with legacy sourcecode of hundreds of thousands of crappy bullshit.

Even in the aspects that "could" involve more theory, like optimizing a DB for performance, I find that theoretical aspects have pretty much nothing to say. There may be some CS involved on the patterns / abstractions level, like which data structure to choose or how to structure a communication protocol. But to be honest, I don't really have the time and the need and I just resort to whatever library people think is cool and stable. And that works pretty well.

None of the things above is simple, and pretty much none of it is taught in CS. And that's what makes a good developer I think, not whether I'm able to bang out a petri net or a neural network.