I am a programmer because I like solving problems. And the process of creating something - it is usually a nice feeling to be able to build something tangible from scratch (a blank editor screen). No, I don't see myself programming forever.
As an old programmer told me once, the most qualified programmers are usually the ones who are not programming. When you first come out of school and/or first start programming, you are young and excited and eager to learn the latest/coolest technology. After several projects and/or years of experience, you start to realize it's not about the technology - there are commonalities/patterns. And maybe after that point (when you start to become uber efficient and deadly) you start to think about transitioning out and getting married/starting a family.. Then the freshman cycle continues.
Creation. Transforming thought into action with a few keystrokes (or a few million...but who's counting?).
I enjoy creating other things as well; programming has such amazingly instant feedback, and the results generally do interesting things. My next favorite form of creation is glass blowing...and while controlling heat flow to make something beautiful is deeply satisfying, the result just sits there, unable to be debugged or extended or tweaked.
Yes, I like programming, but the day work is
sometimes really boring. Yes, it's nice to solve
problems. But most of the problems are just futile,
and therefore boring.
Compared to other jobs programming is quite nice, but
it doesn't fulfill me. Why? I would like to get more
connected with nice, intelligent and empathetic people.
Yes, most programmers are intelligent in a way, but
with most programmers I can't get connected, they just
bore me. Their behavior is so predictable.
Get help immediately. Your life is too short and precious to be wasted on something unfulfilling. I don't know who you've met in this field, but my experience suggest that if you find them boring and predictable it is because you find the field boring.
I don't mean this as criticism, but when discussing programming you probably find yourself boring as well. If you aren't passionate about it... what is there that could hold your interest?
Please get some help finding something meaningful or finding meaning in what you are doing.
I can't not be a programmer. Even if I were to leave the profession I love the practice and theory too much to give it up.
I love solving problems and thinking logically. Breaking down a situation into its constituent parts and solving them one by one is an immensely satisfying activity. Programming is the embodiment of that act.
There's something magical about programming. I give the right incantations based on a fundamental understanding of both the computer and the problem at hand, and the code does something. The fact that a program has... a will and personality and actually performs an activity is still astonishing to me. I know I'm anthropomorphizing but the idea that I can write all these little workers which go out and change the world (even if just in small ways) is fantastic.
I had a coworker who was a game programmer in California before moving to New England and finding his way as a defense contractor. He preferred defense contracting, by far. He told horror stories of death march after death march for less pay than as a government contractor.
But what I referred to was that it's not that cut-and-dry. You can work for two different companies and have different experiences. It's why I named Valve in particular: I would be willing to state, despite no knowledge of their work environment, that the people there love working there. It comes through in their games.
Oh, I'm sure there are differences between companies. However, your measure of "people love working there" might be misleading. All of my ex-colleagues loved working on games, and almost all were pretty happy at the company, because, you know, the previous company they worked for had worse death marches - 7 days a week, not 6! and from the start of the project, not just the last year of development! - and wow, our company paid up to GBP 7.50 for takeaway dinners when you worked more than 11 hours that day! Plus, the previous company went out of business and didn't pay the last 3 months of salary, whereas this one was still hanging on.
I don't know exactly how it happens, either that people talk themselves into being grateful for their situation, or they just drink enough game industry Kool-Aid to not see how it's completely broken.
Don't get me wrong, I don't regret working in games for a year - I'd almost certainly be wondering what professional game development was really like if I hadn't. I also don't know if the leap into self-employment had come so soon or at all if my quality of life had been better at some other job. In any case, I'm glad to have left that behind, and glad to have done it when I did.
Plus, I discovered I like programming more than I like game development, which means that I'm actually working on more fun and interesting stuff now - although my job at the time was tech/engine programming, most of it wasn't actually that challenging; I wasn't solving interesting problems. There's a lot of reinventing the wheel (and the bugfixing that goes with it) in the game industry...
Oh, and by the way: getting into game development as a competent programmer isn't nearly as hard as they like to make it out to be. (I was also involved with recruitment) I'm guessing they have to maintain that air of elitism to keep people interested. If you're itching to work on games, I'm not going to try and talk you out of it; you'll have to decide for yourself if that kind of life is for you. If you have a wife or girlfriend you'd like to hang on to, I'd make sure your notice period is short, though...
Valve may be great. I don't know, but from what I've read online and heard people talking in RL (and not just from my coworker I mentioned above) I'm inclined to believe that if Valve is great, it is an exception, rather than the rule.
Gymnastics & figure skating, though very few people can make it as professional gymnasts. That's largely because their bodies give out before they're 20, though.
Lots of the manual trades - isn't their a huge uproar about child labor in textile & small goods factories? Probably not what you had in mind, though.
I'd disagree, just because I think the bar for "passable work" in mathematics is a lot higher than the bar for "passable work" in programming.
Passable work, for a mathematician, still means proving something original and nontrivial, whereas passable work for a programmer just means creating something that works.
10 Start programming on a Commodore PET at a really young age.
20 Keep going on a C64
30 Rediscover interest/passion with open source.
40 Learn lots with open source.
50 Profit!
60 GOTO 40
I love programming - what else lets you learn so much on your own? I always thought I'd go into science of some kind, but programming is way better: a decent laptop and an internet connection are all you need to do all kinds of cutting edge work. Compare and contrast to my wife who is home with our newborn, and almost completely cut off from her biotech work:-(
For me, it's neither the geekiness or the pay. Neither are present in excess anyway. I do it for the view. The mental view. I do OOP and visualize buzzing, moving, clicking, rotating little mechanism that do orchestrated work. And join powers to create biger, more complex mechanism. And I get to make it (design/write), adjust it (debug) and see it work (run). Hellboy II's intro comes to mind.
I didn't choose to be a programmer, programing chose me, i was forced in to it, because its the least boring thing from all my hobbies. I love it, and if suddenly programing ceased to exist i would probably kill my self, or die of boredom. Also all the cool programmers are really weird, some of them even get sexually aroused by programing. weird==cool!
I'm a programmer because I enjoy solving puzzles, enjoying applying my skills to other domains, and enjoying making computers do cool things.
As an example I recently built a caching layer for a database that improved the performance of an editing screen by 100x. I could have used a local SQLite database, or a remote. I could have used C or C++ or memcache. I could have used Apache. I could have used JSON.
I did in fact use Clojure, XML and basic sockets, with the pure java oracle and pure java sql server drivers.
These choices, and the code that needed to be written to make it all work, are what makes me a programmer.
But really, I am a programmer because I'm somewhat critical and suspicious, enjoy language and get a bit of a power trip from creating/fixing things. Programming unites all of these and pays me handsomely for it.
Sure, sometimes we all feel a little like a code monkey, but I realize that what I do is far more empowering than what many of my friends do in order to grind out a paycheck.
Where I grew up, it wasn't socially acceptable. Now, I had other nerdy characteristics, but I purposely stayed away from programming, D&D, and Star Trek precisely because they were nerdy.
Now I'm trying to learn to program. It's slow, and I wish I had started earlier. I'm too old for this shit (http://xkcd.com/447/).
Don't take it at face value; "I'm to old for this shit" is a reference to the link. I was pointing out some of the (unjustified) frustration of a guy who started at 20 when others started out at 12 or so.
In the link there's a comic of a guy who says he can't do math like he used to, until it's revealed he's thirteen. My point was, I'm aware I could have started younger, but I didn't. That doesn't mean I'm off the hook, though. I'm still learning to hack. I agree with you that giving up on programming just because I didn't start very early on would reveal a bad attitude.
Because I am lazy. Hardware is cool, but too complicated and tedious. With programming, I hope to eradicate boring tasks from my life. Most of the time I am too lazy to actually program the computer to do the task for me, though. But it is nice to know that I could if I really wanted to.
When I was young it was interesting. Now that I'm older I still find it interesting but possibly more importantly it allows me to remove a lot of the repetitive and tedious aspects of my job, which technically is not programming.
I tell everyone that I have a hobby that just happens to pay well.
Writing software is like solving puzzles to me; it's very enjoyable, and I get a tremendous sense of satisfaction every time I solve a problem or ship some software.
yet not a working programmer, but it surely is fun… specially when you do something challenging, solving programming problems gives the maximum thrill.
and by the way nice design! love it!
As an old programmer told me once, the most qualified programmers are usually the ones who are not programming. When you first come out of school and/or first start programming, you are young and excited and eager to learn the latest/coolest technology. After several projects and/or years of experience, you start to realize it's not about the technology - there are commonalities/patterns. And maybe after that point (when you start to become uber efficient and deadly) you start to think about transitioning out and getting married/starting a family.. Then the freshman cycle continues.