Where do I begin?

If you want to learn how to code, it’s helpful to first understand why you need it. In this YouTube video, Kevin Cheers did a great job explaining how to approach learning programming.

Next, keep in mind that there is no one-size-fits-all way to learn how to code – all people learn a little differently, and you may have to experiment to find the one that works best for you. However, most people use the following approach, which we highly recommend.

How to start programming


Find a small problem or project that will be interesting for you to solve. You can try to create a tool for solving a small life problem, or implement a program from scratch that you find interesting. A project like this will motivate you to keep learning to code and give you the opportunity to put what you’ve learned into practice.
Read the information about different programming languages ​​to find the best one for your project. (See recommendations below).
Find one quality beginner resource for the language and follow it. (Also see below).
In addition to this resource, google and ask questions.
Do some original projects in this language.
These are the things we advise you not to do:

You can’t just passively study the chosen resource: do exercises and homework; practice is an indispensable part of learning to program.
Do not switch unnecessarily from one language to another. Pick one and stick with it, because the main thing in programming is problem solving, not learning languages. Learning to solve problems is difficult, and this skill can only be honed with consistent practice. Every time you switch to another language, you lose time in which you could practice applying the knowledge gained to develop problem solving skills.
Do not stop learning after completing a course. Programming is one of those areas where there is always something to learn.
Finally, remember that learning to code is a long and arduous process. If it’s hard for you, don’t be discouraged! This is completely normal, and many people study and train for years until they feel competent enough to look for a job or contribute to a serious project. Fortunately, just getting started is not that difficult.

Which programming language should you learn first?

There are two common misconceptions that lead people to ask this question. The first is that there is a “best” programming language, and the second is that the first language you learn will determine your programming career once and for all.

In fact, there is no better language that is definitely worth learning first, and it will not play a critical role in your future career. Outwardly, programming languages ​​seem very different, but most of the fundamental principles flow from one language to another. In addition, learning new languages ​​will become easier over time: it may take a beginner months to feel confident in the first language, while an experienced programmer will become familiar with a new language in a matter of days.

Ideally, all programmers should be fluent in different types of languages. Once you have mastered one language, you can take on another, which is fundamentally different from the previous one. As you learn new languages, you will be able to choose from a wider range of tools that are best for solving a specific problem, and this is the indicator of a good programmer. Since the principles of programming are of prime importance, we recommend that beginners start with a popular language from the table below. With any of them, beginners can start building simple applications and practice coding without affecting the language’s overly advanced features.

If you already have a project idea or goal, you will learn faster if you can apply your skills to the task. The table below shows the recommended languages ​​for common projects.

I want to learn…
… Develop iPhone apps – Swift (more)
… Develop Android applications – Java (more)
… create websites – JavaScript, CSS, HTML5 (more)
… write desktop applications for Windows – C #
… create 2D / 3D games – JavaScript, C # or C ++ (more)
… program Arduino / microcontrollers / robots – C
… do scientific / mathematical calculations or data analysis – Julia, Python, R or Matlab
… do automation and script development – many languages ​​(Python, Ruby, Bash, Powershell, AutoHotKey …)

It is a good language accessible to novice programmers with a huge community and many libraries that can be used to do almost anything, from creating games to automating processes at home or at work and analyzing data to build a website. Try to find a learning resource that covers the key principles and fundamentals before diving into more complex application development.