There’s a fantastic thread on the JoS discussion board in which the original poster was considering leaving a career in programming for some other field. This spawned lots of comments (including from Joel himself) that touched on everything that it means to be a programmer (or not), working in corporate IT, and so on.
This got me thinking about software development as a career choice for me:
- Other than wanting to be a fast jet pilot (eyesight too short, legs too long), I’ve never considered a career in anything other than software.
- I have no desire to leave the software development industry.
- I enjoy programming to an extent that I do it in my spare time (but it’s not all I do in my spare time).
- I don’t enjoy sitting down for 8 hours a day. I need fresh air and a walk a few times a day.
- I’m currently employed by a huge software company, at a low level position, doing not very interesting work
- I don’t see much of a career path within those types of organisations which have the potential to support a family
- I am very excited by the potential to create small businesses based on software. The costs and lead-in times have never been shorter although you still need to actually sell the product.
- I program because I want the end result to exist. I don’t particularly care whether it is me or someone else that develops it, just so long as the product exists.
- Since I’m motivated by the result, I often get very frustrated when the actual development gets in the way. If the documentation is lacking, or a piece of code isn’t working as expected, I get annoyed.
- Since I care about the result, I’ve become extremely disillusioned with convoluted architectures. My experience is that they cause more problems than they actually solve and rarely live up to the expectations.
- If I had the money to hire a designer and programmer to implement my ideas, I would. I don’t care about the code that much.
- I don’t know a great deal about low-level details of hardware or software. I generally don’t care about algorithmic complexity until I have to care about it.
- I prefer clean, obvious, well-commented code to “smart” or “clever” code. I’ve found that extremely smart people (up in the genius IQ range) tend to make terrible software engineers.
- I am surprised by the lack of outside programming interest by my colleagues. They don’t code at home, buy programming books, or learn new technologies on their own initiative.
- I despise restrictive development practices and micro-management (either by people or systems). Trust and respect me. Don’t build in systems and “process” that prevents me from doing my job.
- I don’t like being treated like a hammer (“Hammer, go hit that nail”). If there’s no creativity then the enjoyment is lost too.
- I cannot stand technology that doesn’t actually help anyone (particularly expensive, broken technology that is sold to the unsuspecting user)
>I am surprised by the lack of outside programming
>interest by my colleagues. They don’t code at home,
>buy programming books, or learn new technologies
>on their own initiative.
Perhaps they are the sensible ones? I.e. they treat their job as a job. Come in, do it, go home. Perhaps because they aren’t that into programming they are never going to feel let down, frustrated or like they are being wasted at work.
I know that is/was my problem with Engineering. The fact that I was passionate, opinionated and did give a damn is/was my biggest downfall. If I could have just come it sat down and done as I was told I would have been happier. But it wasn’t in my nature.
Outside learning can be bad as well, especially if related to your job. It just adds fuel to the fire of the whole ‘frustrated at work, not being used to full potential’ thing.
> I don’t like being treated like a hammer
> (â€Hammer, go hit that nailâ€). If there’s no
> creativity then the enjoyment is lost too.
Too true.