Happy #TechTuesday! Are you holding back from learning more than one programming language? Don't, says this coder.
By Rachel Walker (Consultant Software Developer)
One question I get asked a lot is "Which programming language should I learn?" Even if you know what kind of programming you want to do (front-end, back-end, mobile, functional, etc...), there are still multiple languages to decide between. The truth is, it doesn't really matter which language you choose.
Technology changes so fast that by the time you've mastered one language, everyone has already moved on to the next. If you know Python and the job description wants someone who can program in Ruby, are you still qualified for the job? Yes! I'll let you in on a little secret: if you know one language, you probably know many more.
Software applications are built using various paradigms, and if you can recognize and implement these patterns, overlaying the syntax is relatively easy. Start by identifying the type of language you want to learn (scripting, functional, object-oriented, etc.) and pick one to master. Then, use these tips to increase your pattern recognition skills so you can become a polyglot.
Learn the design patterns
This is arguably the most important step to quickly being able to understand programs. If you've been programming for a while, you are probably able to recognize certain patterns just by having seen them so many times. If you don't have that level of experience, picking up a book or searching the internet for programming design patterns should suffice.
Read and understand other people's code
Comprehending legacy code can be extremely difficult, especially if you are just starting out. Don't be discouraged. Knowing how to read other people's code will ultimately make you a better developer. Run the code so that you know what it does, and then start checking out what's under the hood. Documentation and comments are usually outdated, so look for unit tests and the design patterns you learned. Don't just read codebases in the language you know, branch out. Recognize these design patterns in languages you don't know so that you can see how the implementation differs from what you already know.
Implement the same pattern in multiple languages
Now that you know what the patterns are, you can try them out yourself! Write a small program in the language you know, and convert it to the language you want to learn. Different languages may have different programming styles, so when you're done, refactor this new program in the style of the new language. This helps on the pathway to mastery.
Becoming a polyglot is not just useful for your portfolio, it also helps in solving big challenges. For one, you'll understand the perks and limitations of many languages so you can confidently choose the best language for the task at hand. Furthermore, you can pull style elements from other languages and implement them in your chosen language to strengthen your solution.
So don't let the anxiety of choosing a first programming language prevent you from becoming a seasoned developer. As long as you keep your mind open and recognize the paradigms of your chosen language type, you'll be a senior engineer in no time.
Employers looking for coders, what languages would you like your hires to know?
About the guest blogger: Rachel Walker is a consultant software developer at ThoughtWorks, Inc in San Francisco. Even though she's a dedicated nerd, she has a diverse set of interests ranging from cycling to photography to participating in a drag troupe boy band called Every Direction. Follow her on Twitter @raychatter.