Which programming language to choose?
This is often the first problem that stumbles most beginners as there are hundreds if not thousands of programming languages out there. As for that, I propose two ways that you can pick a programming language:
1. Based on what your goal is
What do you want to do with programming? Making your own android app? A website? Building a game? Different programming languages usually are better in some of the fields than others. Therefore, if you have anything specific in mind, you may consider following my list:
- Creating a website
To write a webpage, you must learn HTML and CSS at least. Then, you might want to learn Javascript to add more functionalities to your webpage. For this, I recommend starting with Free Code Camp’s Responsive Web Design Certification. Afterwards, you may want to learn Python if you want to build a fully functional web application. This blog is made up of HTML, CSS and Javascript! (using jekyll)
- Creating a computer/desktop application
To make an application for your computer, either Java, C++ or C# will be fine. I personally recommend learning C++. C++ may be very difficult at start, but as you become more familiar with this language, you’ll be able to learn other programming languages very quickly. C++ is great because of its versatility, and easy to make apps using its Qt framework.
Java is used a lot for many people are using it (popular because popular) and has a lot of documentation on it. If you’re interested with Java instead, you can learn from this book Java: A Beginner’s Guide, which I learned a lot from it. Meanwhile, C# is mainly for Windows application, I don’t have much experience with it, so yeah.
- Analyzing data or Creating an AI
Wants to make an AI chatbot? Wonders what is the relationship between wealth and lifespan? Python is the best option for you! I will be mentioning more about Python below.
- Creating an app for your phone
Interested to run a personal app in your Android phone? (Sorry, I have no experience in IOS) Then perhaps you can look for Java or Kotlin. Personally, I think Java would be better for beginner because there are a lot of resources online (see above on computer application part).
2. My recommendation
Okay, cool, what if I have no idea on what I want to do with programming? Here are my recommendations based on my past experience.
Python
I personally have started programming in Python with this amazing app Sololearn. But why choose python? Here are the reasons:
-
Like English
print("Hello world")
The simple short code shown above is how you want to display something in Python. Pretty neat, isn’t it? The way how you write Python codes are very similar to English without too many strange symbols (at least at the start) that will confuse you.
-
No deep concepts
Unlike other programming languages that will slam you with strange curly braces ({}) or strange keywords, Python is very direct, you write what you want to do. It’s just easier for beginner to learn in my opinion.
-
Many tutorials available
As one of the most popular programming languages, it is needless to say how many tutorials are available out there. Beside Sololearn, you can easily find tonnes of tutorials out there especially from online learning platforms like coursera, datacamp, codecademy and more!
Wow, that’s nice, are there any drawbacks learning Python first?
-
Harder to learn other languages
Due to how Python is different from other languages, you may experience difficulties when you want to learn languages like Java or C++. However, it’ll still be easier than learning from scratch. (this difficulty will disappear once you learn another language)
-
Vague Object Oriented Programming (OOP) concepts
This is a slightly advanced concept that you’ll only learn later. OOP is very useful and is widely used. However, this concept is not very direct in Python. It took me several months to comprehend this concept after feeling confident about Python basics. If you come to this point, I’d recommend you to learn OOP from Java and come back to Python afterwards.
So, in short, starting with Python is easy first, hard later. However, I believe that starting easy is a very important factor to motivate people to learn programming.
C++
If you don’t mind difficulty or like challenges, you can try learning C++ first! After learning it, I can promise to you that most other languages can be picked up easily. However, it might be suffering when you learn C++ first. It is like the reverse of Python, bitter first, sweet later.
Learn from where?
Another problem may be the vast amount of available platforms to learn them from.
Here are some of my recommendations:
-
Sololearn is especially suitable if you’re learning on your phone. It has a very simple design that you can read and learn from it!
-
Datacamp has one of the best courses out there. However, unless you have a student account, you have to pay to unlock all the courses (student account gives you 3 months free trial). It is better than sololearn as it provides videos and better programming problems. I personally have took their Data Scientist Career Track with R previously and am very satisfied with their courses.
-
Freecodecamp’s courses are free, and also has videos for their courses available in youtube. However, it is mainly for web development and some Python courses. If you’re interested in other languages you can only watch from their videos.
So which platform should I start learning?
- If you have a student account and are somehow interested in data analysis/statistics, I recommend you to start from datacamp.
- If you are learning from phone, try sololearn.
- If you have a student account but not interested in data analysis, maybe you can try codecademy.
- Otherwise, try freecodecamp or coursera.
These are just my opinions, do share your opinions below too :)