At one job interview they gave me a full page list of computer programming languages and asked which ones I knew. There were hundreds on the list! I thought SNOBOL was a trick question, turns out there really is a language called SNOBOL. AT&T Labs, mid-60’s. Wow.
Job analysts say the ability to program, even at a basic level, is becoming a necessary general skill. Being able to break huge problems down to smaller solvable tasks, helps us overcome many challenges. And programming can be really fun!
Which one do you learn?
Each language has strengths; people who love the language say it is the best. What they really mean is “It is the best to me.” That’s nice. How do you find the best for you? Use the “Observe, Orient, Decide, Act” (OODA) loop to find the answer.
Observe – Yourself, actually. What do you like to do? What problems do you like to solve? Some people like to work statistics for sports teams. Others like to build web pages to share information. I like to play Role-Playing Games (RPGs) and a lot of my coding is centered on that. Be honest with yourself at this stage and it will pay off soon.
Orient – Each language has strengths and challenges. C is a powerful language that works for systems programming but is not as good for web pages. PHP is exactly the opposite. Note that both languages can be used where they are not best but you will have to work harder at it. Focus on the strengths a language has and find half a dozen or so that work really well with what you want to do. If you have no idea where to start, check out the TIOBE index. Do a little research on the top twenty languages and see which ones seem interesting. If you don’t find several choices then go on down the page, they list the top 100 according to their metrics.
Decide – This is both fun and risky. The way to decide is to spend a few days with each language on your list. See how much you enjoy doing the things you want to do. Do not pick a language based on TIOBE ranking or number of jobs on Dice. Pick the one that works best for you. For what you want to do. Decide based on actual experience with the language. Starting out can be frustrating; how do you compile code? Is this even a compiled language? How do I do simple stuff like “Hello World”?
Act – This is the big step; the real challenge. You have spent a few days with multiple languages, now you commit the next ninety days to just one. That’s right, about three months. Focus on one language and learn the basics. Do the things you want to do with it, research how to do those things. Do not pay attention to claims about other languages being better, faster, more modern, or whatever. You have your language, get to know it. Work side by side to get things done.
Does all that sound like a lot of work? Yes! That’s part of the learning process. A big part of coding is breaking the problem down and figuring out how to test each question. Then you put the parts back together and test the questions again.
The critical point is this: if you choose a language that you enjoy coding in, you will code more. That is the only way to get better at coding; code more. Learn new things and then code them. Go back to your old code and make it better. Look at some library code from your language and work to understand it.
Soon you will be solving the problems you like to solve with the language you want to code in. That’s the best place to be, and with the best language.