I’m an aspiring Web/app programmer trying to plan for an uncertain future. How can I make sure that the things I spend time pursuing are going to be relevant five to 10 years down the road? With the rapidly changing tech climate, it’s hard to know what path will best prepare me for times ahead. Any advice? Thanks!
The correct answer depends on guessing at the actual question being asked. If you intend an extremely short-term answer for a very specific task such as “what can I do for money right now?” then the answer is easy. Simply pick one of the currently popular platforms that you like and enjoy working with, and go for it. An expertise with C++ will take you far. HTML5 is not dead right now, and that means it could be the basis of a short-term solution to your career choice.
However, that might not be the real question you are asking. Since you are concerned about the trends and what will be relevant in five years, then you are really asking questions about the probable path your career will take over the next five years and beyond. This is a completely different mindset than finding a job right now to pay the rent.
I suggest starting by looking at mature people in the field now and projecting backward to see how they and the fields they are in evolved. Then using that trajectory, attempt to project forward for yourself. Talk to leaders in any field and you will generally find they are on their third career. Someone might have started as an engineer and migrated into management, and then left to start a business. Very few engineers and technical people continue to pursue exactly what they studied in school in the way they studied it. There are two reasons for this: (1) currently, technology changes faster than a human’s work lifetime, and (2) creative people always look for new challenges. This means they evolve. To take one example, Steve Jobs stayed in technology, but jumped through several areas in his career — the iPhone is a long way from the Apple ][, and do not forget Pixar.
Realistically, in five years you will be doing something that has not yet been thought up, and in 10 years, you will be doing something totally different from that. To prepare yourself, it is better to learn how to learn than to expect to always be using the tricks of coding C++. Aiming for the future, try to look for things about which you are passionate. Look around you again at the mature professionals. Notice the ones who put in their time and instead of getting 20 years of experience, get one year of experience 20 times. The people who are on their second or third careers are probably enjoying life more than the people who learned one thing well and stuck with it. To get started, here’s a video that might help:
We all cannot predict (or drive) the future like Steve Jobs did, but we can stay open to new opportunities and continue to invest in learning. For right now, look around you and try to find employment at something you like and have experience with, but do not think of getting that first job as a project: it is part of a process. The process is building your life, and that is much more important than which programming language you use or which platforms you are familiar with. You will very likely outlive both C++ and HTML5. Be prepared for it. That is my answer: be prepared. There is no magic combination of current software and hardware which is the right answer for the long haul.
By the way, forget Steve Jobs; do you think I took courses in school to do what I am doing now? (Hint: I was an English major in college!)
Image: from The Space Pioneers, by Carey Rockwell (via Project Gutenberg)