5 ms·
Not the previous poster, but I'd argue that being able to point to something meaningful (doesn't have to be the whole system, but a coherent component) and say
by dasmoth 9y ago
Not the previous poster, but I'd argue that being able to point to something meaningful (doesn't have to be the whole system, but a coherent component) and say "I made that" brings satisfaction that's hard to beat.
This seems tricky to reconcile with the "everything is done by a team" model that's currently in vogue.
- akavel 9y agoAlso: http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-a-programmer/ http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-... The above comic strip absolutely perfectly shows what's it about for me. Though I agree there is stuff better done with others (brainstorming, or discussing hard problems where you're stuck; also variants of rubber-duck debugging/designing; I'd say it boosts "breadth" and "lateral thinking"). But for many people there is most certainly also stuff better done alone ("depth" I suppose? often things like analysing interactions between subsystems; or building an algorithm; or reading docs or a paper; researching existing apps/solutions/libs in order to "spreadsheet" their pros & cons; also analysing/designing thread interactions; or debugging, building internal knowledge of a problem - which is also a required step before rubber-ducking, or generally discussing it, is even possible; also arguably maybe reviewing someone else's code).
- TeMPOraL 9y ago+1, this comic strip is perfect. It describes the issue precisely, in a way rarely seen even in best comic strips. Things I have to do fall into two categories - either I immediately know how to approach them, at which point I can code while having conversations and there's little you can do to distract me - or, I don't immediately know how to approach them, at which point I need time alone and in peace to load the whole system into my head and think through appropriate steps, possibly running mental simulations of several solutions in my head. The second kind of work is when I turn into a pretty antisocial person - I don't just avoid conversations, I avoid being in the same room with other people. And frankly, second kind of work is kind of more important. It doesn't take skill to pump out hundreds of lines of code an hour. It takes skill and concentration to write those and only those lines that move the project forward in a way that's maintainable down the road.
- erikb 9y agoI also have that feeling, but only when coding with other people. The only time I really need to think that complex on my own is when I learn a really new topic. E.g. two weekends ago I really wanted to learn how iptables work because I was so frustrated that most SO/blog answers are not agreeing with each other, they often don't work when just copy&pasting, and nobody really explains why he chose that way and not another. [1] Then I really need to spend like 24h just reading docs and building these complex systems in my head. With two people these complex systems often also end up in actual diagrams or code, which then can be tested or used for documentation and later lookup. [1] http://stackoverflow.com/questions/43375012/wrapping-ones-head-around-port-forwarding-with-iptables http://stackoverflow.com/questions/43375012/wrapping-ones-he...