How to start
The language itself should be a secondary concern for beginners, and its main purpose is not to be a bad influence and interfere with the training process. Learning programming is comparable to learning English. It’s not enough to know separate words to be able to make sentences out of them. In programming, the ability to think algorithmically is more important than knowing the syntax of a particular language.
Let’s look at the example: a beginner who has learned the basics of a programming language has to algorithmically calculate how many times each word appears in the text. Most likely, it will be difficult to solve this problem — you need to understand how to approach it, how to make calculations and move to the result step by step. That's what algorithmic thinking is for.
Besides, almost any programming language is based on the same concepts, and their basic structures, with rare exceptions, are identical. The core of each programming language consists of variables, constants, functions, loops, recursions, and terms from basic algebra. These entities are present in every language.
Once you master the core, you can move on to working with collections and aggregate functions. You must learn to solve problems with them regardless of the particular programming language specifications: reproduce the solution first in pseudocode, then in a specific language.
How to choose your first language
After completing all previous steps, you need to choose the first programming language. There are two strategies:
- You have time and desire to achieve a better understanding. Here it’s worthwhile to consider the Lisp-family languages (Common Lisp, Racket, Scheme). They differ crucially from the programming languages above: in practice, they are rarely used but are good for the development of algorithmic thinking. These are languages with "no syntax", so they won't frighten you by the complex structure of the basic concepts. The Lisp core is relatively small, but it combines well - due to this, you can solve various tasks using only basic constructs.
A programming language imposes certain limits on programming concepts, and hides or distorts their essence. Some of these concepts may not only interfere with learning but also require additional knowledge.
When you master the basics of the first programming language, it makes sense to supplement it with one more language. It will help you understand how implementations of basic programming concepts may differ from language to language.
Do not stop: In programming, they say that you need to constantly study, just to keep up. Develop with us — Hexlet has a lot of development courses in different languages and technologies.