Main | All posts | Motivation

How to Choose Your First Programming Language

Time Reading ~3 minutes
How to Choose Your First Programming Language main picture

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:

  1. Resources are limited and you need to take a new job as soon as possible. In this case, it's worth looking at which programming languages are the most mentioned in your region’s vacancies. In the last two years, PHP, Python, Ruby, and Javascript have been on top of the list. These are dynamic languages used in application development. Studying them is probably the easiest entry into the industry.
  2. 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.

Conclusion

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.

If the entry speed into programming is in the first place, consider learning some dynamic languages. Static languages have their own scope of application, but the entry threshold is higher, and some implementations are overly complex for a beginner. For example, if in JavaScript you can reverse a string with 10 lines of code, then in Java there will be more than 100 lines.

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.

User avatar Oleg Sabitov
Oleg Sabitov 14 April 2022
0
Related posts
Suggested learning programs
profession
Development of front-end components for web applications
10 months
from scratch
Start at any time
profession
Layout with the latest CSS standards
5 months
from scratch
under development
Start at any time
profession
new
Developing web applications with Django
10 months
from scratch
under development
Start at any time