4 ms·
Hmm. How about actually building stuff? For most software engineers, thats a very important part of their job/life/happiness. That requires long focus and flow.
by nyrulez 9y ago
Hmm. How about actually building stuff? For most software engineers, thats a very important part of their job/life/happiness. That requires long focus and flow. And in my personal opinion has a great sense of fulfillment attached to it compared to lot of scattered micro impacts. Ultimately you need to learn to balance both otherwise it gets very frustrating.
- grogenaut 9y agoDo you have to personally write every single line of code or are you happy when the whole team builds the code?
- dasmoth 9y agoNot 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...
- TeMPOraL 9y agoSomebody has to do something. If everyone is running around talking to everyone else like a bunch of agitated monkeys, no real work actually gets done.
- erikb 9y agoWell, have you noticed that I argued exactly the opposite?
- TeMPOraL 9y agoI did, but I was replying to 'grogenaut in reply to 'nyrulez, by pointing out that while one doesn't have to feel responsible for writing all code, somebody has to feel responsible for writing some code, at least some of the time.
- erikb 9y agoYeah, not for me. My experience with building stuff on my own: Very stressful and long winding, a lot of procrastination and unsocial habbits start to creep in after a week, solution is not really valuable to anybody since nobody is familiar with it. The biggest, most used solutions I helped building usually happened when I cooperated with others. The same discussions that happen in your head, just that part of it is coming from another brain.
- srean 9y agoMost of this kind of 'collaboration' that I have seen have fallen in the bikeshedding or superficial variety. Not all work is of this kind. Some require building mental constructs and contexts that are easily derailed and painstaking to reconstruct