Hacker News new | ask | show | jobs
by totorovirus 1120 days ago
What I've seen in the past two years, a lot of people who have seemingly no fit to a life of a programmer have joined software industry. In my experience the best devs were the people who self-taught programming for pure joy of building a software, making a glimpse of imaging to something real through writing code. The others who were on this job because the compensation was hefty - they were likely to opt out to a manager. I am not saying that hobby-devs are better people or co-worker. Every people has their role in a team. Nevertheless these people who habitually code are the ones who remain as devs after all.
5 comments

There is middle ground though. I love to code and am doing this job for that reason, but there’s a lot of other things I want to do while I’m alive, too.

When I’m done coding all day I want to do other things like exercise, climb mountains, learn instruments, etc. My motivation to do other things isn’t due to a lack of curiosity, but curiosity channeled into other activities.

And that's understandable. What John was saying and many of us here echo is that, for us, we'd like to want do the other things, but programming (outside of the commercial grind) is sweeter than all those things. To be consumed by (personal) work, working late into the night only to wake up and continue, uninterrupted and enjoying the bliss of focus, well, it can't be beaten. There's nothing like it.

> Programming is beginning again to be to the exclusion of all else in my life. (The table saw sits slowly rusting. The bike hangs on the wall in the garage.)

This in particular hits home. Programming, to the exclusion of all else in life.

> What am I trying to say? I have a programming addiction? (Maybe.)

There are times that I feel pulled in every direction by life, family, work, being alive, and it keeps me from this software ambrosia, even though I know that spending my life in front of a CRT/LCD/TFT/whatever they are these days is in a way wasted. I've spent 23 years doing it and I'm 33 now, and it feels like life has flown by in the glow of a terminal prompt.

That's interesting to me. Personally, I feel like you can apply the same mindset to a lot of other activities, which makes them satisfying in the same "way" that programming is.

Putting things in neat little boxes, solving little puzzles... it's kind of hard to describe, but at least personally there are other things that give me the same sense of satisfaction.

I would suggest reading a book called Zen and the art of motorcycle maintenance. It might help to align your feelings of addiction with your feelings of “spread” :)

Engineering is a wonderful tool but also a form of art. It’s ok to indulge your passion with some balance to the rest of life without calling it addiction.

I used to love code in school. Never ended up coding for work: Went from finance to analysis, biz dev and management. Work was work.

The happiest I’ve been is in the past few months, in a new role. There are several reasons, but one of them is definitely that i have ann excuse to get back to code.

I find myself waking up early, and having work to finish, on a Saturday - that I enjoy. It’s feeding my ability to work on other personal projects, that make me happier and I learn new things.

> To be consumed by (personal) work, working late into the night only to wake up and continue, uninterrupted and enjoying the bliss of focus, well, it can't be beaten.

I think I’m conditioned to have reduced respect for managers because in my experience they are former devs who were “promoted” out of touching the code. As a result, when they offer technical advice, it’s bad technical advice, or at best merely “unhelpful”, usually because it’s obvious (e.g. “did you try {first thing I tried}?”

I pose that such people shouldn’t be devs or managers, but “manager” is a role that tends to be forgiving of under-qualification… because ultimately the good devs don’t need to be “managed.”

Those kinds of managers may not be coders but assuming they are actually good at managing (and know their limitations), they play an important role.

It’s important to respect that other people are bringing different things to the table. Everyone’s got different strengths and weaknesses.

> It’s important to respect that other people are bringing different things to the table. Everyone’s got different strengths and weaknesses.

It is also important to respect that there are a lot of people that may bring something to the table, but not necessarily a whole lot. Sure, they'll have strengths and weaknesses and they are whole human beings with lives and people that love them, but this doesn't mean they are good at their job. And it also doesn't mean that they're good in a management or dev setting.

> Those kinds of managers may not be coders but assuming they are actually good at managing (and know their limitations), they play an important role.

What role is that?

Translating good decisions from these genius coders into management-speak (aka justifying good technical decisions with sound business acumen) and managing political capital in order to be able to push through non-negotiable technical efforts or, on the flipside, gain favor in exchange for not being able to do all the things we want to do.
Adding on to ambicapter:

Get the high-performing devs their good ratings and promotions. Get the low-performing devs moving better or off the team. Bring in more good devs.

Scenario 1: Bad Manager

- manager tells engineer to do something but doesn’t fully understand the context

- the engineer doesn’t fully understand it either but thinks they do, jumps to the conclusion that what’s needed is something complex, and thinks “no problem I’m 1337 and I got this”

- engineer spends the next three months crafting the Mona Lisa of code

- feature gets shipped and users… just don’t care about it since it didn’t actually solve their issues

- three months wasted from the perspective of the business, opportunities missed

- next time the engineer wants to do something technically great, the higher ups smack the plan down and tell them to get in line

- engineer quits in frustration

- company weakens

Scenario 2: better manager

- manager aligns with leadership to understand the end goals

- then works with product and engineers to figure out the best way to achieve that goal. Turns out some of it is minor product changes but most of it maybe is just clearer messaging, education, etc

- then ensures the engineers tasked to implement it are fully aligned on what they’re building and know who to go to for reference, so that there is no ambiguity from what the higher ups want vs what the engineers think they’re supposed to do

- this simpler idea is implemented in a week and released

- users love it

- the team gets more resources from higher up because of a track record of doing useful things

- engineer feels greatly productive and vital to the team

- this is 10x better than scenario 1 outcome and it’s mostly thanks to a good manager doing their job

The best engineers I know all started coding for fun too. Not to build "real-life" usable software, but to solve algorithmic puzzles.
My fun is building real-life usable software and seeing people getting value out of them, so I guess YMMV. I'm very lucky that I really like doing this, as it makes work as fun as my hobby, and my personal portfolio has a bunch of finished (if generally small) products in it.
I enjoy this too, but predicting who is going to like what exactly is still a mystery to me. Programs I built that I think are the most beautiful and useful thing around get ignored or just tolerated and some silly bash script or Word macro I wrote in five minutes as a one-off for someone has been passed around multiple times and is still in use 20 years later.

Where I get my fun is that I live to increase my understanding of something. This code should be doing "this", but it's doing "that" instead. Is there something I'm missing in my basic understanding of this particular topic? When I follow it through and get that "Ahh, I get it!" moment, it's like a drug for me. All is suddenly right with the world again. It's why I gravitate to lower level languages and languages that give me more control.

The rest is building scaffolding and applying standard recipes and carefully laying things out as I go. I still enjoy it, but I don't get the happiness that I get from getting one of those "aha!" moments. Or being told my stupid Word macro saved someone hours of work in some random meeting somewhere, I guess.

Yeah, I definitely get that a lot, I build things I think are amazing, and then nobody uses them ever. Oh well.
I'm getting my kicks from finding out why things don't work and making them work.
I think the important thing is that people enjoy it. They may enjoy other things too, maybe more, and have other responsibilities and that's fine. One of my kids is obsessed with cars, she's a proper petrol head, but she's going into software engineering. I told her that's fine as long as you genuinely enjoy programming, cars can be a great hobby. Life doesn't have to be about one thing.

Anyway in IT there are loads of different jobs other than programming. There's QA, application support, databases, project management, team leads, all sorts and it's pretty easy to switch tracks once you're on the inside.

In my experience as a non programmer, the best devs are hobbyists. Having taught myself Python so I could empathise with my team I can confirm that the passion and enthusiasm for programming as a hobby can be strong indicator of a high performing engineer.