One question I get more than any other is "how do I select from XYZ technologies what to learn?" Not everyone knows what they want to do within the development industry, and given the costs (time and money) associated with learning new skills, it is important to make the right choice.
I have written numerous forum responses and emails with the same basic set of instructions, so it is clear to me that people are interested in this topic. I also wrote a TechRepublic post on the topic in 2009 in which I outlined five questions you should ask yourself before choosing which programming language to learn. Here are four more tips I give anyone who asks me this question.
1: Pick a place to work
You have to pick your skill set by the geographic location where you want to work. When I was in New York City, all Java was very popular because the big companies had deep investments in Unix and mainframes that could run Java, so it was a way for them to get away from COBOL and other legacy systems without abandoning their commitment to those platforms. But when I moved to South Carolina, .NET was much more prevalent even for the same kinds of industries, even though it was fairly new, thanks to a ton of local shops migrating from VB6.
2: Develop a profile of the companies where you want to work
Most people want more than just "a job" — they want to work for a company they enjoy working for, and might even have a specific industry in mind. This is especially true for people making software development a second career and who may already have some experience in a specific industry.
If your wants are not too specific, the profile of the company you write down does not have to be specific, just try to be as accurate as possible. Some things to include:
- Size of company
- Publicly traded or private firm
- Maturity of company
- Rate of growth
- Risk/reward tolerance (can you work for a poorly funded startup in exchange for stock options and growth opportunities?)
- Office environment
- Team size
- Management techniques
A word of caution:The more specific you make your profile, the harder it will be for you to get any meaningful data.
3: General job preference
You will want to put together a general idea of what kind of job you want. This should not be very specific, because unless you live in a huge metro region, it is unlikely that you will see any jobs even close to it.
Using your geographic preference, company profile, and ideal job, start digging through job ads. Use the largest variety of resources possible, and do your best to identify duplicate postings (even if the duplicates are different recruiters, they will probably copy/paste the job description). Make a chart of the skills that you see listed in the ads, and make sure to note if they are "required" or "preferred" skills. The chart should also show the things that you care about, like where the jobs are located, the type of company they are, etc. Once the chart is made, rank the jobs in the order of attractiveness to you. Finally, look for the commonalities among the top ranked jobs.
This approach should not take you more than a few hours, but once you have done it, you should have a crystal clear idea of the kinds of programming skills you should be mastering to get the job you want.
Also read on TechRepublic
- Tips on choosing a programming language to learn
- Strategies for learning programming languages - what works and what doesn't
- Seven ideas for learning how to program
- What is your preferred approach to learning programming skills?
- 10 tips to go from a beginner to an intermediate developer
- Write a resume that will land you a programming job
- 10 skills for developers to focus on in 2012
- Programming language choices for an IT manager
Justin James is the Lead Architect for Conigent.