Which Programming Language Should I learn?
Life will always bring us to junctions where decisions have to be made. There is this saying that goes like this, "what you are today is a result of the decisions you made in the past". As accurate as this saying is about the past so is it for the future. The decision one makes today will definitely be what drives his future outcome. Amongst the many decisions to be taken in life is that of which programming language one should learn.
Choosing a programming language to learn has proven to be a question I get from several newbies as they begin their programming journey. It has come to my notice that the reason for this question is simply because one fundamental question is left unanswered. It's just like writing an examination and you try to solve question number two(which depends on the answer you got from question number 1) when you've not answered question number one. Before I answer the question of which programming language you should learn I will advise you to read my previous article https://ezehash.hashnode.dev/tech-journey-where-should-i-start.
The question of which programming language to learn can only be adequately answered when you have been able to tell yourself clearly what is your driving force for tech or rather what career are you following after. If at this point you're still not sure of which path you would like to follow then, don't panic!!! this is the very reason why I am here.
I will like to guide you through some things you need to know that will help you to make the right choice. But before I take you through that guide, there's something I think you need to know that should help you a great deal in this journey.
One thing I advise every newbie to learn first before talking about a programming language is to learn how the Web works. I am studying Information Technology in school and one thing I noticed about our school curriculum is that we were introduced to the web and the internet before we were ever introduced to any programming language. At first, I was mad at it because all I wanted was to learn programming to build massive applications that would revolutionize our world; and this is me sitting in that class listening to my lecturer talk about how the web works. I can tell you that after three years of writing programs those lessons on the web are proving to be one of the best foundations that I got.
I am sure you must be like "Hey!!! I did not come here for you to talk to me about the web, but I came here to know which programming language I should learn". I will plead with you to follow me as I drive you. It will spare you a lot of headaches. The majority of applications out there live on the web. so, no matter the programming language you would choose, later on, it will still be used to write a program or application that will in most cases live on the web. please take note that the web and the internet are not the same. The web is one of the services provided by the internet.
What do I mean, when I say I learn how the web works? I mean understand what client-server architecture means. whenever you enter an address on your preferred browser like chrome, what happens behind the scene before a web page is delivered for you to see? Understand the request-response cycle. when I say know how the web works I do not mean you should go very deep into it. it is good enough if you have a basic knowledge of it.
I did my first Industrial training with an IT company that specializes in networking. I learned a lot of things like how the client-server architecture works, how the internet works, what are the different protocols that help the internet to function the way it does, what is a network, and what are subnets and CIDR blocks. To be honest it wasn't fun then. It looked so boring but I kept learning. Three months ago I started following a DevOps track and I can tell you that the networking I learned from that firm is playing out today. I am so happy I have an understanding of how the web and the internet work. I don't know how far you want to go in this tech but one piece of advice I will for sure give my younger self is to take out time and understand the internet and the web before choosing a programming language.
Also, the next thing I can tell you I did in my early days in programming was to learn HTML, CSS, and Javascript. I am currently a Full stack Software Developer with much experience in the Java programming language but I started with those basic things. After one has known how the internet works, the best thing is to know how to build the web pages you see all over the place. This lays a very good foundation because when I started learning mobile development I applied the same principles I had learned from my experience with HTML, CSS, and JavaScript. So, learn these and build a couple of projects with them.
Lastly, before choosing a programming language read up on each programming language and know exactly what prompted the creation of those programming languages. It baffles me that someone can be writing python programs for years but doesn't really know why python came to be in the first place. I had to study the reason why James Gosling(founder and lead designer behind the Java programming language) had to design and build a new programming language like Java when C++ seemed to be doing the job then. Every programming language has its use case scenario and what they do better than other languages. After you have known the area of application of each programming language then you ask yourself which of these ones best aligns with your career objectives. For example, if you want to be an android developer and you discover that the language that is most suitable for android applications is Java(about 90% of android apps are written in Java) that should tell you automatically which language you should learn.
The points above are the things I would tell anyone who comes to me with the question " which programming language should I learn?", and I hope with these few points the ambiguity that lies within that question has been cleared.
Subscribe to my newsletter
Read articles from Chinemeze ThankGod directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Chinemeze ThankGod
Chinemeze ThankGod
Software Engineer | DevOps Engineer | Problem Solver | Mentor | Systems Designer | Tech Enthusiast With 5 years of experience in software development, I specialize in creating robust Java applications and solving complex problems. I have a passion for teaching and mentoring, having guided many aspiring tech professionals on their journey. In addition to coding, I enjoy writing technical articles, indulging in music, and tackling challenging math problems. Always eager to learn and share knowledge, I thrive on innovation and creativity in the tech world.