Possibly the trickiest part of learning to program is simply knowing where to start. For a first time developer, which I am assuming you are as you are reading this, there are a lot of options out there of things to learn.
What do most people start with
There are so many programming languages, and new ones are being created every day – check out www.lolcode.org for example, or an extensive list can be found on Wikipedia. There are generally three choices for someone getting started in programming. One is to use a language known as pseudocode. Pseudocode will let you concentrate on simply learning the logic you need to apply to solve a problem. It does have some drawbacks, for example, isn’t really a language that has been developed to be used in real environments, it runs ok in its compiler, and you can add some libraries, but it doesn’t have all the options of an actively developed language.
Another option is to pick a language that you generally know you are going to use for the project which you intend to build. Learning a specific language means that your time is dedicated to the one language you are actually going to use and once it is learnt you don’t then have to learn another language. For instance, if you only ever want to create iPhone apps then you might choose Swift for example, the Apple programming language which can be used to create apps for Apple iOS systems. Both of these choices have their advantages. Learning a specific language can also be risky too as sometimes languages lose popularity and can limit your prospects as to what you can do, if you then want to learn a new programming language in the future it can be harder as the syntax and ways of working with different languages can be difficult.
Option number three
There is a third way, and it is generally the most accepted and preferred language to learn to program (at least right now). Python. No this isn’t an Amazonian snake, but it is a high-level language that can be used in hundreds of contexts. It is a general purpose do it all programming language, and it is used pretty extensively in loads of different kinds of companies such as Google, NASA, and Reddit.
What is a good programming language to learn
Different programming languages can each have different benefits and drawbacks. For example, some can be better for a website or faster for programming machines. They all work in the same way though as at the end of the day they are each getting translated into binary by a compiler a language that the computer can understand. So really, in the end, it is not so much the importance of which language you learn that makes the difference. So then why have we chosen Python over all the others to learn to program if that is the case?
Python itself is a very clean language, what this means is that you shouldn’t get caught up in the syntax and instead can concentrate on the logic of the code, there are also a lot of courses out there for beginners in Python. Python is also incredibly versatile and can be used to create actual products whether they are web-based, mobile, or enterprise and is renowned for being a good language for quickly making things from idea to ideation, meaning you can start with a minimum viable product prototype quite quickly and from there build on it. It is a general-purpose programming language and a scientific programming language which means there are loads of opportunities across different fields to put it to use, so it is not limited to just one aspect of web development as say Ruby might be.
The snake in the grass
Python does have some drawbacks though, for instance, it is much more difficult to make an installer for Python. What this means is you can’t easily create a self-standing product off the bat and give this to all your friends to simply install on their computers. Python is executed by an interpreter which can cause it to be slower than if it was compiled and then executed. It can also be said to be too easy. Because of its ease to use and inbuilt functionality, it might be difficult to learn and become comfortable in other programming languages especially for some of the more annoying parts of them like syntax such as adding semicolons to everything to make it work.
This though is what I am going with. It may not be right for you and your situation. The resources shared will hopefully not disqualify you from learning along with me if you do choose a different language, as there are always some alternatives out there. If you want to follow through with me exactly, I will provide all the resources I use, if not, it is also no problem I will include tasks which are not language specific and areas covered which will be useful no matter what language you are set on. Other particular recommended first languages are:
C# – this is a good language as it can be used to make applications for your windows computer. It can do a lot and interact with some of the other Microsoft owned software such as Microsoft SQL. So if you generally want to program in this type of environment then this is a solid choice.
C++ – this is one of the hardest languages, but if you can learn this, then you are in good form to create whatever you want. By going for a language this advanced you will really understand in coding in depth, as you won’t have many of the simple syntax invented for newer languages.
Java – again this is a really really diverse language which can be used for just about anything and on a lot of different platforms which can be useful if you want to make applications for not just one specific platform.
So to sum it all up
So to sum up what we have been talking about. Computer languages communicate with computers in binary; each language is essentially doing the same thing. So the language isn’t as important as it might seem, at least not to start programming. We are choosing Python though because it does have a lot of resources for beginners to learn and it offers the same capabilities as most of the other languages too. Python too is seemingly future proof as it is used throughout the growing industries and technologies such as Big Data science and AI so there is a huge potential to do new things and be on the cutting edge of this. But the choice is yours, I will be sharing resources related to Python; so to get the most out of this series I would recommend you start with Python and an optimistic outlook. In the next post, we will be looking at all the resources and working out what there is out there.
So I have given my reasons for picking Python as a first language to learn. It may not actually suit your needs though. Your homework is to check out what would make the most sense for you. If you are interested in a particular aspect of programming search around and see what the developers in that area generally use. There are no right answers if you want to learn programming, in general though, Python does have a lot of huge benefits included.