I agree, there are tons of videos, articles, blogs, all over the internet on how to pick one programming language and if you are a beginner, it’s just super confusing.
But this blog post will be different, I wish I had seen something like this when I was starting. I PROMISE!
I was in secondary school when I decided that I wanted to code. I was not happy with the school curriculum as it was too easy and boring and wanted to learn something out of the school syllabus. One of my seniors told me he had created an app using Xcode. At that point, I wanted to become an automobile engineer but as I could not work on cars (come on- I was 14), I thought, well why just not learn to program and, anyway, I have got a lot of free time so if a senior can find time to do it then why can’t I.
The biggest problem deciding which programming language to use. I only had heard about C++ (I didn’t know that Xcode is an IDE and Swift is used to write code in it). I asked my teachers about it and all of them told me to wait for 3 more years to learn it in high school. Well, I couldn’t wait that long, So I asked the senior. Now you might wonder: why I didn’t ask my senior before? Well, in my school there was a lot of bullying and ragging, so it scared me. Finally, after a lot of thinking and convincing myself that one question wouldn’t get you killed, I got the courage to ask him. Surprisingly, he answered politely that I should learn Swift and use Xcode to create apps, he also suggested that I use edX to learn how to code.
Now, I was lucky enough to get advice from him, otherwise, I would have learned C++ and probably stopped programming (I still don’t like C++)
So, here is my advice to you.
How will I do it?
I will first categorize you into one of the two groups (Zeros or Ones) based on what you are expecting out of programming, using a Matrix.
Then I have a flowchart to help you decide the optimum language for specifically YOU.
Let’s start with 2 questions!
These questions would help me figure what kind of programming languages would suit you best.
Do you want to start your career in programming or you just want to learn and see how it goes?
If you have decided that you want to spend your life writing code, then you should choose harder/lower-level languages. Why? because you will learn a lot more about how computer works, lower-level languages give you more control over the system, it allows you to tweak every single knob available. This might be useful later in your career when you are working on a large-scale project where efficiency is a must.
I would not suggest that hobbyists or those who just want to explore choose this path because, initially, programming can be frustrating when you do not know what’s going on. For you guys, you should start with easier languages that will allow you to easily work on projects, not caring about the minor things happening underneath the system. You will complete multiple projects in a brief period, this would encourage you to learn more, and probably you would then consider programming as your potential job.
Are you dumb or good with computers? Do you ever feel sick looking at code?
If the answer is yes, then I would suggest that you start with easier programming languages which are more beginner-friendly so that you won’t feel like- ‘programming isn’t for me’. This is true for both kinds of people, those who are planning to work and for hobbyists. For hobbyists, who are good with computers, you can choose harder languages.
Note- There is no rule that if you want to be a software developer, you need to learn hard/lower-level languages. I am just suggesting that here because it would give you a better understanding of lower level tasks such as memory management and buffer management.
Now, let’s see where you fit in.
I created this using Figma, you can use it if you like on your own articles
So if you are ‘start with scratch’, you don’t have to read more, head over to scratch website, to experiment with it. Scratch — Imagine, Program, Share Scratch is a free programming language and online community where you can create your own interactive stories, games…scratch.mit.edu
From now on, ‘Smart and Job ones’, I’ll call you Zeros and the other two I’ll call you Ones.
Now let’s see which language suits you
Choosing the path
There are multiple career paths to choose from within Computer Science, so before going further, it is important to choose one. Now, you can switch to another path later, so don’t put too much stress on this one.
In the image below I have color coded each language green or red, based on the level of complexity.
I created this using Figma, feel free to use it on your posts.
In app development you have several options, you can either build IOS or Android apps or both at the same time using cross-platform development tools.
I would recommend Ones to start with Swift because it is very easy to use, Xcode (IDE to write IOS apps) is beginner-friendly, and it is fun to code in Xcode. However, you would need a system running Mac OS on it to use Xcode. If you can’t get a Mac, no issues you can still make android apps using Kotlin or cross-platform apps using Flutter or React. I would not suggest you use Java or Xamarin because they are a little difficult to understand and work with initially. Xamarin requires you to know about both android and IOS development, which can overwhelm the beginners.
There are plenty of other options also available, such as using Python and Kivy to create cross-platform apps, but I have selected the most famous ones.
For a more comprehensive guide about cross-platform development, read this post by Sophia Martin- Flutter vs React Native vs Xamarin: Which is the best choice for 2019? In 2019, Flutter vs React Native vs Xamarin has been a burning question that is in the list of every app developer and…towardsdatascience.com
If you are looking to publish your games on IOS or Android, then you can go ahead with the App development section above. The process for creating a game for these platforms is similar to making apps.
I would suggest you start with IOS or Android game development as they are easier than using C# to work on a game engine like Unity or Unreal. You will also be able to launch your app on App Store or Play Store and if you like, you can even start earning from it. Another option is to use Python to create games using Pygame, which is also straightforward. I would only recommend using Python if you are not just looking to make games, but also something else like AI/ML or Web development, or if you are confused. This is because python is not the best language to make games. In the long run, you will have to switch to C# or C++.
Game development is much easier if you use some gaming engines such as Unreal and Unity. To use these engines, you need to know C# or C++. The best thing about using Unity is that you can create cross-platform games for Xbox, Windows, PS4, and on the mobile side both IOS and Android. C++ is slightly harder than C# but I would suggest you use C++ initially because if you can get fluent in it, you can easily learn any other language. So if you are not sure about game development, learn C++ as later you can easily switch to another language based on what you like, later. Some gamer developers, however, prefer C# because of its ease of use and less headache when compared to C++.
For a more comprehensive guide about game development, read this post by Software Programmer- Best programming language for games development? Looking for your breakthrough into game development? Here is what you need to know. If you want to create the next…medium.com
For web development there are many options you can go for, I’ll be discussing the most famous ones here.
The best option for you would be to use Django. Django is a free open-source python based web framework. It allows you to build a scalable website easily, another benefit of using Django is that you need not learn SQL to get started, Django automatically handles all the database work for you. It even provides a built-in admin page to handle all the admin and database stuff. Another option on the easier side is Flask, but it is not easily scalable and developers are now preferring Django over Flask.
For you guys, I would suggest you try Ruby on Rails. Rails is a powerful web framework and Ruby is the scripting language used to run over it. Ruby on Rails is used widely in the industry but it is a little difficult to work with, at least for beginners. If you are having issues learning ruby on rails, I would highly suggest you go with Django as it is scalable and can create complicated websites very easily. Also, many companies are now switching from Ruby on Rails such as Twitter. But a large community of developers still believe in Ruby on Rails.
A more detailed comparison between the two is given here by Sravan Cynixit- Which Framework is Best For 2020 — Ruby on Rails vs. Django? Ruby on Rails and Django are both best web development frameworks–but how do you choose one over the other. The aspects…medium.com
I have not discussed various other fields within computer science such as AI, Blockchain, Computer System analysis, etc. This is because they are more advanced and require more mathematical understanding to create large-scale software solutions. If you wish to learn these technologies, I would suggest you to first start with the ones mentioned above, and ones you are comfortable with them, move into career paths of your choice.
I hope I did not miss out on anything important. If I have, please comment and I will add it here.
Did you find this article valuable?
Support Shubh Patni by becoming a sponsor. Any amount is appreciated!