
If you are thinking about how to master the first programming language in your life, then you have to break your head over what to choose from the variety of existing languages. In the world of web development reigns JavaScript, in many universities and schools offer to learn Python. If you ask around on the forums, you will get a bunch of options, including Haskell, Scala and Erlang. The wealth of choice is good in almost every business, and the abundance of programming languages indicates that this area of scientific and applied activity continues to evolve. One person is no longer able to study all existing languages, so you have to decide which language is best to start learning. Often, they study what is accepted in a particular company or market segment. But if you are only going to take the first steps in the field of programming, then we can recommend starting with one of the C family languages. This will be the most far-sighted choice that will help you in your career. You may not write daily in this language, or you will not study it very deeply. But if you want to be treated as a serious developer, then you definitely need to own one of the C family languages.
What kind of "family C"?
The answer to this question depends on who you ask. Developers love only one thing more than debates about the origin and mutual influence of programming languages - the debate about which language is better. But regardless of this, there is a generally accepted opinion that C, C ++, C #, Objective-C, and Java itself belong to the C family.
As a very rough definition, we can say that a language belongs to the family C, if it uses curly brackets {} to extract functional blocks. Many languages of this family (but not all) are strictly typed. Most of the most popular languages are object-oriented (C ++, C #, Java), however, this does not apply to C. Many common languages not related to the C family experienced its influence: Python, Perl, PHP, Ruby and etc. However, assessments of the degree and importance of this influence vary greatly. For example, JavaScript uses C-type syntax, but if you dig deeper, these languages are very different from each other.
')
If you learn one of the C family languages, this will give you an understanding of the fundamental principles of programming: variables, values, types, assignments, expressions, functions, parameters, return values, command flow, etc. These are basic concepts that any programmer should know, and, having studied the language of the C family, you will be on the same wavelength with most other developers, and this is important for many employers.
Latin is not dead, she is just resting
Just in case, let us clarify that it is not necessary to study all the languages of this family, it suffices to restrict ourselves to just one. The specific choice depends on the prevailing conditions in your company. Well, or on what exactly in the field of development you plan to do in the future. If you work with
Microsoft products , it makes sense to choose C #. If you are developing applications for Android, learn Java. If you create embedded systems or something similar, then the good old S. will be the most useful option. If you work in some other sphere, then grab C ++.
Languages of the C family have a very convenient feature: if you have studied one of them, then the others “go” much easier. Today, no one speaks Latin, but it is still useful to learn it, because it facilitates the development of Italian, Spanish and French. Having mastered one of the C-languages, you will not become an expert in other languages of the family, but the
learning curve will become less gentle. It's safe to say that if you know C #, you are unlikely to have trouble reading the Java listing. Of course, to start writing on it, you will have to learn the syntax of Java, but it will take days, - as a last resort, a week, - and not months. Of course, to masterly program in any language, you have to spend much more time on learning and practice.
Many developers, deep down, dream of becoming “polyglot programmers” (or already consider themselves as such). Although this term often means "I know something else besides one of the languages of the C family." Nevertheless, the C-language is a kind of foundation on which to rely when learning other languages. C-languages form characteristic "correct" programmer thinking. And if you learn one of these languages, you can easily move on to learning, for example, a functional language. Switching to a language with a different paradigm implies a change in the programmer’s way of thinking. For many, this is difficult, but it gives useful experience. This does not mean that the study of the language of the C family will cause problems with the development of other languages in the future. A good developer should be able to think in terms of different paradigms, both functional programming and imperative. In any case, you will have to spend time learning the basics, so it’s best to start with one of the most common languages.
Your personal airbag
All this arises from the assumption that you want to study programming in order to earn it later. But not everyone is driven by such a motivation. If you want to learn how to program for fun, then choose any language at all, what your heart desires.
If you really want to make programming your profession, it is better to get acquainted in advance with the list of languages most in demand by employers. In
the TIOBE ranking, the first four languages belong to the C family, and almost all the rest of the Top 10 experienced the influence of C. Do you prefer
the PYPL rating ? In his Top 10, half of the languages also belong to family C. You can question the relevance of any rating, but if you put them all together, you can accurately estimate the demand for specialists in various languages on the market. Of course, there are employers who do not insist that you know exactly the language that they need, but any businessman is interested in that new employees can start fulfilling their duties as quickly as possible. In this case, the learning curve should be as steep as possible. And knowledge of the language of the C family, as mentioned above, is very helpful.
Even if you are an employer yourself, the ability to write in C-language can be very useful if you suddenly have to look for work. Perhaps you adore Haskell and spent years improving in this language, but anything can happen in life, and knowing one of the C-languages is more likely to help you find a job. Otherwise, you will have to explain a lot during interviews why you never learned C ++ or Java.
Programming good habits
Most likely, you will have to choose a language to learn based on what problems you want to solve. Or you will be offered one or another option in the company where you work. No less important criterion may be the "relevance" of a language. Undoubtedly, it is cool to be one of the first to master a new programming language, which is spoken on every corner of the
forum . If you are lucky, this new language will become popular and you will be able to remove the "cream".
If you study one of the C-languages, it is unlikely that someone will reward you for it, but one day this experience and knowledge can provide you with invaluable support.