Salute everyone, friends! Let’s talk a little about programming, if you don’t mind.
How does the programming path begin for many? Someone saw big salaries, someone just likes the process of building something new, someone is forced to do it … and most often this whole story begins with the phrase in Google or Yandex “How to learn …”. But what to teach? How can a person who has absolutely nothing to do with programming be able to decide for himself which programming language to choose?
Python is one of the most powerful programming languages you can use to develop different types of applications. It’s object-oriented and is interpreted instead of being compiled.
Many people reason like this “Most often I heard something about Java. I think this is what I need, ”or“ Haskell. He’s at the peak of his popularity. It’s scary to think what will happen next. Definitely Haskell “, and maybe even so” That gopher in the Go logo is so cute. I want to know Go. ”
Those who are smart enough to type in the search engine YouTube or Google this is: “Which programming language to learn first?”
a similar question is asked very often, therefore, in order to correctly answer it, whole schemes are created. For example, one of them is dedicated to the choice of the first programming language.
(I deliberately chose the English-language scheme, like most of the pictures below, because knowledge of the language is one of the most important factors in learning programming.)
After we carefully consider the scheme, we can conclude that Ruby, for example, is suitable for those who loved to sculpt from plasticine as a child.
Choosing your first programming language is very exciting, this is how to take a survey like: “Which Pokkemon are you?”
but before you delve into the study of Ruby, moreover, only because in childhood you could not live without plasticine, please note that the first programming language is MOST important! A lot of things depend on him!
To understand the selected language in general terms, you will have to spend over a hundred hours of practice. Therefore, you do not need to look at pretty pictures and funny schemes, they can confuse you if you are new to this business.
What to look for when choosing your first language:
- Labor market.
- Long-term perspectives of the language.
- Difficulty in learning a language.
- What exactly can you create in the process of learning, and by showing others, keep you motivated.
New programming languages appear about every few years. They write articles about them in scientific journals, they devote comics that can be found on the Web, here is one of them. (Try to translate it and understand the meaning if you have time)
If you are faced with choosing your first programming language, you have tons of options. I will help you narrow your search a little by providing Google Search Analysis Coding Learning.
What conclusions do we draw?
Java has had its ups and downs.
Python gradually became almost the most popular programming language.
Before talking about these programming languages, let me clarify something.
· I do not undertake to argue that a certain language is objectively better than any other.
· I agree that developers ultimately learn more than one language.
Let’s start our conversation about the first language by looking at how programming is taught today.
Fundamentals of information technology and teaching programming
In our universities, they usually teach to program within the framework of information technology subjects, which often look like additions to math courses, or are tied to some basic specialty, say, electrical engineering.
I would like to introduce you to a wonderful statement by Eric Raymond: “Education in the field of computer technology will not make you an excellent programmer in the same way as learning brushes and paints will not make you a wonderful artist.”
For a long period of time, most educational programs equate programming and information technology, and information technology is equated with mathematics.
As a result, a large number of introductory programming courses are built around fairly low-level abstractions in languages like C, or languages used in mathematical packages like MATLAB.
And those who make decisions about what to teach in programming courses usually adhere to all sorts of official sources that regularly publish reports with ratings of languages .. And here is the leaderboard according to the IEEE version.
These “leaderboards” look almost exactly the same as ten years ago. However, things are changing, even in academia.
By now, Python has surpassed Java to become the most popular programming language in leading information technology courses in the United States.
Looking at the languages used by programmers on real projects, we see a very different picture.
But the question always remains, is JS right for you? Should you choose this as your first programming language? Let’s take a closer look at several factors.
Factor # 1: the labor market
If you, like a lot of other people, study programming in order to find a job, pay attention to what is discussed here.
As I mentioned earlier, Java is the most common reference in job advertisements.
But JS is already in second place.
Here’s the data from Indeed.com, showing the job to jobseeker ratio.
What we get as a result. There are 2.7 programmers for one place of Java developer. In the field of jobs that require knowledge of PHP, as well as in the iOS development environment, a similar situation develops.
Factor # 2: long-term prospects
JS projects on GitHub receive, on average, twice as many pull requests as projects in Java, Python, or Ruby. And besides that, JS is growing faster than other popular languages.
Here is the relevant data Github octoverse:
The JS ecosystem is also positively influenced by serious investments, both financial and in terms of the human capital of talented engineers, from companies such as Google, Microsoft, Facebook and Netflix.
For example, more than 100 developers have contributed to the open source programming language TypeScript (an enhanced version of JS with static typing). Many of them are Microsoft and Google employees who are paid for this work.
Factor # 3: Difficulty learning a language
This cartoon from XKCD shows the difficulty of learning languages.
And although in educational institutions the languages from which they begin to learn to program are still such as Java and C ++, it is much more difficult to understand them.
Factor 4: projects that can be created using the knowledge gained
Here JS is already ahead of all 100%. It can work on any device with a browser. With JS it is possible to create almost anything and distribute it around the world with the confidence that it will work on almost anything that resembles a computer or mobile phone.
Over time, this statement, which is also called “Atwood’s Law”, does not lose its relevance.
In the environment of other languages, we can observe slightly different trends. For example, it was once promised that Java will work literally everywhere. Have you heard about Java applets? Oracle officially dropped them earlier this year.
Here’s a 1970s style game called Simon.
Here is an implementation of John Conway’s math game Life.
Here – search page for Wikipedia, stylized as “Star Wars”.
Here’s a roguelike game with a traditional dungeon.
First language: go to the top, or dig deeper?
I advise you to first thoroughly study one language, spend at least 6-8 months on learning it, and preferably 2-3 years. Then take the next one.
When studying several languages at the same time, you will not really linger anywhere, and in principle you will not learn anything. In order to move much further than “Hello World”, you need to learn your first language well. After that, the second and subsequent languages will be much easier to understand.
Having mastered the first language well, you will be able to expand your knowledge by learning other languages and developing as a programmer.
- Learning C is a great way to understand how computers actually work, particularly in terms of memory management. C is especially good at high performance computing.
- C ++ is great for game development.
- Python has no equal in scientific and statistical computing.
- Java is useful for those who see themselves as a programmer in a large company.
Software architecture is the practice of implementing structures and systems that streamline the software development process and improve the quality of an app. This fully revised and expanded second edition, featuring the latest features of .NET 5 and C# 9, enables you to acquire the key skills, knowledge, and best practices required to become an effective software architect.