Unlike other areas of programming such as mobile there is a huge number of languages available, some being more popular than others. This can be reduced to only a few of the more popular languages which would be a better option for beginning programmers. This does not mean that you should not try learning one of the others as the choice of which language you do learn ultimately remains with you, but these will give you more options in terms of learning resources.
There are two types of languages for you to choose from, these are compiled and interpreted languages. Compiled languages have to be converted into machine language before it can be run. This is so the computer can understand what it is being told to do, as while we can understand these languages (well at least some of us can) the computer can not and it has to be converted into something the computer can understand before the application can be run (machine language). This is called compiling And depending on the size of the application it can take a while to complete. Interpreted languages however are compiled on the fly using what is called an interpreter. This interpreter needs to be run at the same time the application runs, this adds an overhead to the application that would not be there with a compiled language. Interpreted languages also tend to be a little slower than that of compiled languages. Although with that being said with how powerful computers are today this is becoming less of an issue and will only be a problem for things like 3D graphics and artificial intelligence work. Due to this and how quickly you can create a working application, interpreted languages are becoming more and more popular.
Listed below are a small number of languages that you may want to consider learning, but remember like I said above there are many more, so do a little research yourself and don’t limit yourself to only the ones below although these will be a good starting point for your introduction to programming.
(At the bottom of the page are some things you should be aware of about c++ and Python)
While some of these languages are better for different purposes, that is something that you will have to discover for yourself. But that being said I did attempt to choose languages that would give you a lot of options in terms of their usage.
Some of the places you can learn from
- C++ primer plus by Stephen Prata(recommended book)
(as well as the resources above the books from the publishers O’Reilly and Addison Wesley are of high quality, although make sure you get a recently published book so it is up to date).
If at this point you still not sure which language to choose I would recommend you look at Python and c for the following reasons.
- Available libraries
- Learning resources
- Portability (can be used on many different operating systems)
- Both have graphical user interfaces available
Things to note about c++ and Python
Things have changed a bit over time and while this could be said about any of the languages above there are some special things of note about these two languages. First due to the latest version of the standard there have been some changes to the language that It is recommended that you implement in your own code that can help reduce bugs in your code. Because of this make sure you learn from resources that at least use the c++11 standard.
The change to Python 3 has resulted in a break in backwards compatibly with older versions making Python 2.7 and Python 3.x incompatible with each other. As Python 3.x is the one that will be used in future that is the one that I recommend that you learn unless you are working with old Python code. Also make sure that the resources that you learn from are for at least Python 3.0.