01 is powered by Vocal.
Vocal is a platform that provides storytelling tools and engaged communities for writers, musicians, filmmakers, podcasters, and other creators to get discovered and fund their creativity.
How does Vocal work?
Creators share their stories on Vocal’s communities. In return, creators earn money when they are tipped and when their stories are read.
How do I join Vocal?
Vocal welcomes creators of all shapes and sizes. Join for free and start creating.
To learn more about Vocal, visit our resources.Show less
You may have heard some people saying that learning to code is so 2012 or that there is no more need to since every Tom, Dick, and Harry are learning to code nowadays and the market is just going to be saturated soon. While no one can say for sure what will happen in the future, I personally think that learning to code right now is pretty much the same as to learning how to speak English in the early 1900s—it is simply the very start of a universal language that is going to be the fundamental language for everything in the long run.
So with that, this article will be going over the following points in two parts:
- What You Need to Get Started – Part I
- What Programming Languages to Learn – Part I
- Where to Learn These Languages – Part II
- How Long It's Going to Take to Get a Job – Part II
It is going to be pretty elaborative (for necessary reasons), but if you are looking for quick one-liner answers, they are highlighted for your quick reference (I just saved you five minutes of your time, you’re welcome).
What You Need to Get Started
Before we began, it would be good to clarify on a common misconception about programmers—that they all have to be some genius eggheads with superhuman math skills and four-digit IQs.
That, for sure, is not true. What is needed is a person’s absolute unwavering focus and determination.
If you are going to be a coder, you should be able to focus. You might be thinking, “no shit, genius.” But it is really as simple as that. Programming is all about problem-solving and solving problems takes time. Sometimes you might be working on a single piece of code for hours or even days. If you feel compulsive to check your Instagram or watch cat videos every twenty minutes, you're not going to be able to focus. As a coder, you know you will end up spending hours and hours in front of a computer screen looking at code like the below.
The important question is to really ask yourself if it’s something you’d like. It's not going to be for everyone, but if you want to become an awesome coder, you really have to fall in love with coding.
The second characteristic you'll need is curiosity and passion for learning. Reason is because software and coding languages are constantly being updated and improve, so you will have to end up unlearning and relearning things all the time. It just never stops. So expect yourselves to read books, online forums, articles, and watch online courses every now and then to get up to speed with what is happening in the industry.
What Programming Languages to Learn
So you may ask now, what programming language should you start with?
This is pretty subjective and it depends largely on who you ask and what you want to build. Many beginners think that they have to start with HTML and CSS, but these are not really programming languages—they are markup languages that describes what a website or mobile apps looks like. So if you want to become a programmer, what you need to learn is a programming language that you can use to define how an app works.
For example, if you're going to build something where performance is a critical factor, you’ll probably want to use C++, but on the flip side that comes with a cost of maintenance because C++ is a complex language. If you want to build an iPhone app, you will have to learn Swift and you also need a Mac computer. For Android, you'll have to learn Java or Kotlin.
My recommendation is not to get hung up on these differences amongst programming languages, once you learn a language, you can always learn another programming language much faster because they have pretty much the same foundation.
Out of all these languages, I will personally recommend one to learn Python because first of all, it is the most beginner-friendly language so you can easily learn the fundamentals of programming. It is versatile so it can be used for a wide range of jobs such as web or mobile development, as well as data science and hacking. This way, you will have more job opportunities as compared to let’s C++. Python is cross-platform so you don’t need a Mac computer per se and can run it on Windows or Linux and the probably the most important reasons of all—Python developers earn more on average.
According to Indeed, the average salary of a Python developer in 2018 is around USD $116,000 a year. Of course, that level of salary requires having additional skills (but you already knew that. I hope). So it is definitely not like one finishes a Python course online or read a Python book and boom, you are on your way to that salary. Nevertheless, learning Python opens up so many opportunities for you and it is really worthwhile to just try.
It's just not going to work like this.
Doing that is like trying to learn multiple string instruments all at once—you learn a bit of violin then viola then cello then double bass, all the while thinking that you will be able to master all the string instruments and able to play one complete song on all of them in a near future when the truth is actually the contrary. The right approach is to learn ONE string instrument first—say, violin—make sure you can play a few songs on it, only then when you move on to viola, the similarity in their fundamentals and skills will enable you to learn the second one much faster and easier.
By the same token, make sure you learn Python first—know the fundamentals of programming well, build a few applications and then a second language.
With this, it wraps up Part I of this article, and in Part II, I will be talking about where to begin learning coding and how long one should expect to learn before being able to land a job in this field.