One question I seem to get a lot is 'what programming language should I learn'. Somehow, this question seems to be preventing the majority of the people from taking up programming in general. However, the question is fundamentally flawed. Having recently completed my first year working as a software developer for a multi-billion dollar company, I have learned a lot of reasons why programming language should be the least of your concerns.
No matter how many programming languages you learn in school, or on your own, none of them will be as useful as your communication skills when it comes to the work place. The ability to understand your boss and co-workers is infinitely more useful than being able to print out the Fibonacci sequence using a purely functional language like Haskell. Without proper communication you will likely end up working for days on code that will never be useful in terms of the final product. I would recommend spending more time working on personal skills, like written and oral communication, than memorizing every C++ library you can get your hands on. This mentality can also be useful to any of you who are still in school studying in the computer science field. If you are able to speak confidently with your instructors, both by email and in person, the assignment questions that have been baffling you all semester, will all of a sudden become easy, simply by spending a bit of time talking about it. (Pro Tip: Professors often make some simple questions overly cryptic on paper, but will give you very clear instructions if you take the time to go talk to them in person) .
Google is a lifestyle...Embrace it. The ability to quickly obtain answers to almost any programming question you may have is within the grasp of anyone with an internet connection. Learning how to efficiently use google is one of the most basic, yet essential, skills you will need if you are looking to get involved in software development. You can spend years of your life taking in depth courses on programming paradigms, but the likelihood that you will end up using that knowledge is relatively slim. Being able to narrow searches using the appropriate keywords will substantially increase your productivity as a programmer. There is a never ending supply of new technologies available, and if you do not work for yourself, the chances that you will be tasked with using your favorites is low. Learn how to use Google to learn quickly and adapt to changing requirements over time.
Spot similarities. As I mentioned above, there is a ton of new programming languages and technologies coming out every day. If you are not already a seasoned software developer, do not spend much time learning about things that are unique to a specific platform. Try to take a step back and look for similarities between things you have seen. Once you start spotting these patterns, you will be able to learn new languages exponentially faster.
Picking a language:
Once you have taken the time to get better at the above three skills, pick a language, ANY LANGUAGE! You will have no real advantage based on which one you choose. If you are extremely indecisive, spend a few hours on YouTube watching how to print "Hello World" in several different languages, then choose whichever language made the most sense to you.
Now that you have spent some time watching and coding along with a YouTube playlist based on your language of choice, take some time to reflect. There is nothing less useful than a programmer who is constantly typing without taking some time to think about what they just did. If you are not happy with your understanding, try the same approach with another language...after a few you will start to notice a lot of the similarities I mentioned earlier.
If you feel overwhelmed after trying to figure all of this out, don't be discouraged. It is complete gibberish to everyone getting started, but learning will come quick. Personally, I only started learning programming 3 years ago...Up until then, it was a miracle i was able to get a computer to turn on.
Once you are comfortable with what you have learned, take another step back and think about the purpose of most software in the world today. In most cases software applications are based on data. The collection, storage, maintenance and visualization of data. This may not seem like an epiphany at first...but learn to appreciate this, and become skilled in those four areas, you will always be in demand as a software developer.
I hope this article helped anyone looking to get into the software development field.
Don't forget to follow @kavemantech on Facebook and Instagram!
Visit our website at www.kavemantech.com