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

I think for me at least, the difference between "programming for fun/own projects" and "programming for work" goes deeper than the difference between say a company with neutral/bad values and a company you might be passionate about mission-wise. At the end of the day, as the software guy, your job still consists of:

1) taking instructions from someone else on exactly what to build, and how (choice of framework etc)

2) working backwards from someone else's code to figure out what they were thinking and how to modify it to the requirements/add a new feature/whatever

I got into programming because it was a great form of self-expression. I've had some great jobs that related to my interests, e.g. adding variants to Chess.com, but at the end of the day that was still someone else's project and I was just the guy they were getting to build it for them. The inherent satisfaction wasn't there. YMMV though obviously, but I like to use an art analogy: if you're a painter, you'll always be frustrated and demotivated painting portraits of people's pets -- even if it's for charity, or you like the person, or whatever.



Another way personal projects are different is the fact that there's not usually someone depending on you- whether that's in the form of timelines, API stability, tech choice, etc.

I'm working on a large breaking change to a personal codebase right now, and its taken almost 3 years of procrastination, lazy research when I feel like it, and the API changing and changing again due to rewrites. I'd like to finish by 2025, but if I don't, nothing happens!

The whole thing has felt fun due to the lack of pressure and just... not working on it when I feel like doing something else.

Very different from work projects, even the interesting ones with great bosses and teammates.


1/ SWE jobs where you have some agency on what to build and the tooling choice do exist. Try working as an employee for an engineer-driven company.

2/ that can be rewarding. I have found nuggets of genius in other people's code. Being able to think like someone else is a valuable intellectual exercise.

On self-expression: the most highly trained musicians at the best orchestras spend their time refining the interpretation of music they didn't write. The more constraints are written into the sheet music, the more creative you have to get.

I'm not saying your perspective is wrong. I'm just saying someone could have your job and come to completely different conclusions.

Maybe you have to change your perspective or find an occupation which matches your perspective on life and work. Or you could keep your job and rant on your blog from time to time if that's what you need. Ranting is sometimes necessary for mental hygiene.

Out of curiosity: What exactly kept you from working on a pet project instead of adding variants to Chess.com? Fear of failure? Fear of rejection from your audience? Something else entirely? Sometimes a little courage is all it takes to bring more happiness into your life.


> [highly trained musicians in orchestras spend all their time playing pieces they didn't write]

That's an interesting point, but if you got into programming via working on your own projects, the musical analogy is "I loved play jazz saxophone with my cool cats, but every paid gig I get just wants me to play note-for-note Duke Ellington transcriptions." The essence of jazz is improv, but playing classical music is more about playing/experiencing beautiful music which I am probably lack the capacity to write myself. (Not saying classical is better than jazz or vice-versa, you just go into them for very different reasons.)

But the analogy is kind of interesting, since there might be jobs for which the outcome (e.g. beautiful music) is so compelling that I will happily take their directions. I got in software to do jazz, and would be willing to do pre-scripted beauty, but unfortunately, most software jobs are not either of those.




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

Search: