Ok, sorry about the title. I’m sure there are many many great professions and I have no idea how to make a legitimate argument that being a programmer is the best profession, but I do think it’s a very very good profession.
Here I am, working on a Sunday not because I have to, but because I want to. I legitimately enjoy programming so much that I would do it if I had all the money in the world.
Why do I enjoy it so much? Here are some initial thoughts:
- Creativity
There are numerous opportunities for creativity when you are programming. Even if you are implementing a feature someone else has designed for you, there still a lot of ways you can approach the problem, giving you ample opportunity to be creative in how you implement it.
- Puzzle-like
I think this is the most important aspect of programming for me. Programming is like solving a puzzle. It’s actually more enjoyable to me than solving a puzzle because it has more purpose. I’m not just solving a sudoku puzzle just because it’s fun to solve sudoku puzzles, I’m building something that could actually have an impact on the world.
- Impact
There are few professions where I can have this much impact from my living room. If I build the right product then my efforts right now could be used by thousands or millions or billions of people. I mean it’s more likely that it will be used by 10 – 20 people, but it is possible. That’s a pretty powerful idea. Already products I have built have been used by millions of people. I may not be curing cancer, but a good product can benefit people in a lot of different ways. It can also impact me and my family in a significant way, making it possible for me to become financially independent, which is huge.
- Accessibility
There are so few barriers to entry if you want to learn how to program these days. All you have to do is go online and there are thousands of tutorials, sites dedicated to helping answer questions, etc. If you have the motivation there’s no reason you can’t learn how to program online completely for free. I taught myself how to program almost completely online. So you don’t have to go get a fancy degree in order to become a programmer. It has to be one of the more accessible professions out there.
- Demand
Programmers are in very high demand these days and I think it’s only going to increase. More and more our lives are surrounded by programming. It’s how we communicate with the tools we leverage in our every day lives. It’s why I think programming should be in the same category as reading and writing (it will be for my daughter at least). Even if you don’t become a professional programmer, the demand for programming extends in to every day life much the same way that reading and writing extend in to every day life. If you know how to program there will be ample opportunities for you to use the skill outside of a work environment.
Anyways those are just my initial thoughts as I sit here programming on my next project and loving every minute of it.
Tim
December 12, 2011
Good. There’s also the idea that one usually gets concrete feedback … it works or it doesn’t. However one thing you haven’t addressed is future prospects …. are you going to be a programmer when you are in your 50′s? You’ll probably have to continue learning new skills, new languages, new frameworks throughout your working life … I dunno … is that a good thing or not?
irrationaljared
December 12, 2011
I think right now there is a good deal of ageism within developer communities, but I think that has more to do with the fact that as people age they become more complacent and don’t learn new skills. I don’t have any problems with an industry that requires constant learning. I think more industries are going to demand this as time goes on as well. Complacency only breeds problems. You stop learning new skills and then all of a sudden you’re laid off and can’t find new work. This is happening to many people outside of software, so I don’t think it’s only an issue for programmers. At least with programmers the second you get laid off you can go figure out what skill is most in demand and start learning it, posting to message boards, blogging about it, and contributing to open source and you can make a name for yourself in that new technology.