Free as in Will
Submitted by Matthew Turland on Tue, 12/30/2008 - 15:47Also known as: Let's See How Many PHP Advent Posts I Can Link In One Blog Post.
Someone once asked J. D. Rockefeller the question, "How much money is enough?" He gave the answer for the ages: "A little more." To paraphrase this, here's a more direct quote: "If your only goal is to become rich, you will never achieve it."
This applies not only to wealth in the monetary sense, but also in the sense of the knowledge portfolio concept described by Dave Thomas and Andy Hunt in The Pragmatic Programmer. I'd wager that among professions where the value of knowledge depreciates at a rapid rate, those in the field of information technology probably make up a large percentage. As such, it is important to "invest regularly," to borrow a phrase. There's no endgame to this situation as long as you're a developer: technologies change, the market changes, and you inevitably have to change with it or face being left behind. There is no final destination, just a journey.
How do you know where to invest? That's a difficult question, one of those for which it is unfortunate that life does not come with an instruction manual. Ultimately, it boils down to two things: choice and experience, or trial and error. We're human and that's how most of our learning happens. Most times, such knowledge won't be dropped into our lap; we have to make an effort and earn it.
Sometimes, however, choice isn't necessarily as liberating as it might seem by its nature. The other side of the coin is this: like the plethora of software options in the PHP market for blogging or issue tracking or what have you, the sea of technologies and skills out there can make it difficult to choose where you're going to go and what you're going to follow.
Sadly, there are so many hours in the day, and they compete for your energy and attention. Family obligations, running a household, going to school, and (when you have time) your own interests are all in this race together. Unfortunately, there is no silver bullet: you simply have to make a decision about how you invest the time you have. It's a never-ending cycle, or to quote Tommy Lee Jones from Men in Black, "There's always an alien battle cruiser, or a Corellian death ray, or an intergalactic plague..."
One piece of advice I can offer that seems to prove itself time and time again is this: when examining your options, don't restrict your view to a technology's demand in the market. Another factor that should comprise a large part of your evaluation is the community behind that technology. Your investment in being a part of that community will outlive any project or any employment position you may take on. It will help you to meet new people, form connections, find answers, discover new opportunities, learn how to get involved in cool projects, and ultimately improve yourself as a developer. I wouldn't say that these possibilities are always present in every community, but they do contribute largely to the coolness factor of the PHP community.
If you want to investigate a particular language, database, library, framework, or what have you, start with a small throw-away project. Inevitably, you might run into an issue for which the documentation or your preferred search engine doesn't yield satisfactory results. Who can you turn to? Other users, people who work on the project itself, people who develop the project documentation or unit tests -- find out who these people are and how approachable they are. Look at bug reports, forums, and mailing lists, and get a feel for the speed and manner in which questions or issues are addressed. These are things that you can do to test the waters of any prospectively adopted technology and see if it's a good fit for you.
So that's my two cents for 2008, and you can take it to the bank. Have a Happy New Year!

