Programming may seem like a daunting affair to throw yourself into, reserved for some sort of computer wizz. Or maybe you think that if you don’t start learning when you are young, first at school and then with specialised studies, it will be impossible to grasp. But in fact, this is a common misconception. Nowadays, it’s sufficient with a little bit of dedication and good will to obtain excellent results, even starting from the absolute basics.
This is true thanks to programming languages becoming easier, with a simpler syntax and also requiring less technical skills. For example, it’s not strictly necessary to be able to use the DOS interface and the related commands. On the other hand, you now have access to so many user friendly and often interactive materials to help you learn. Courses, tutorials, videos, and other resources are widely available so if you want to learn programming, it’s really more a matter of dedication, certainly not of accessibility or of excessive complexity.
Building the background: what you should know before you start programming
Before you start studying coding and coding applied to a particular programming language, you should spend some time understanding the concept of an “algorithm”. Each program is an algorithm and if you don’t know what an algorithm is and how to write a good one, you CAN learn programming but it may take you more time and your code is going to be less “elegant”. This is not strictly necessary, but it’s going to make things much easier in the long run.
You should also understand what you are really doing when you write a “program”: how you manage to make a non-intelligent machine do intelligent things? These competencies pertain to theoretical computer science but it’s not necessary to take a course in computer science to learn them. For example on Code.org you can find excellent, quick introductions to these topics. They are perfectly sufficient to your needs, since to learn programming you don’t need to have a detailed, thorough knowledge of these subjects. You just have to gain a general comprehension of how the things “work”. If you are curious and want to know more you can go deeper and have a look at the O’Reilly books, which represent a true landmark in the field of computer science. The pdf versions of their books are freely available online (for example Algorithms in a nutshell)
Where to start? Choosing your first language
Programming means programming in a certain language. Each language has a certain syntax and is suitable for certain things. Certain languages are more general (i.e. they are appropriate for every task) others are more specific (they were developed with certain tasks or areas of application in mind). Certain languages work on any operating system, others are restricted just to one OS. When you approach programming for the first time, you can try with a simplified interface, that allows you to do some programming without coding (they are like the visual interfaces to write html), but of course this is suitable only as a first approach.
The best way to approach programming is choosing a programming language that is not exceedingly difficult and that is general purpose. Python is the perfect choice: it’s easy to use, it’s general purpose, and it’s full of tutorials, books of any level of difficulty, libraries, support communities. Obviously if you are approaching programming for a specific reason (for example you need to do data analysis, or you want to build an app) you should find the language best suited to your objectives. For example for data analysis R or Julia could be good choices, while to develop apps for IOS you should opt for Swift. So spend some time understanding which language is more suitable to you and to your needs.
Want to go fast? Take a course
If you don’t want to punish yourself with self learning pains, you could opt for an introductory course. There are excellent online courses (an option that – to learn programming – may represent an interesting alternative) or traditional ones. What to choose depends on the time you have, the kind of person you are and how fast you need to go. Talent Garden for example proposes a truly complete and self contained course, the CodeMaster, which in just a few weeks, can bring you from absolute beginner to capable of writing your first programs. Then you can easily continue studying and practising by yourself, or you can take another, less general course that helps you focus on a certain aspect or language. But keep in mind that as in so many other things, when you deal with programming, practice is everything. So do not delegate everything to what you can do or learn during the course. Challenge yourself, experiment, play with code: this is the only way to become a true master.