📜 ⬆️ ⬇️

Why it is not necessary to learn python in the first language

If you look for the answer to the question: “Which programming language should I choose first?”, Then in 90% of all cases, you will be offered Python - as the most simple language to learn. And it is obvious that a certain number of people who have not studied programming before will choose Python because of these recommendations. And here we have a problem, which will be discussed below. Of course, with a description of how I came to such a life.

About myself


When I was still a student, I realized that my specialty is not as bright as I thought at the age of 18. Therefore, I began to think about how to earn adequate money. And having heard a lot of stories about how my cousin was receiving money that was insane at that time in 1C, I also decided to connect my life with IT.

Initially, these were template sites on the designers and wordpress, then I started SEO, and at one point I came across Habr, after which I decided to become a full-fledged programmer. I did not have a higher mathematics, so I decided to choose a sphere where it is not required - web development.

I have an obvious question: which language to choose - php / python / ruby. Having seen articles on Habré, read the heit in the direction of php, after watching a couple of motivational clips from Yandex. I chose Python. The advantages of the language, I hope you know, so I will not talk about it.
')

Primary language training


I combined language training with the main work, so I read books, watched tutorials, sawed small projects in the evening. In general, for the year I

1) Studied books:


2) Studied a lot of clips from Ukrainian / Gourmet authors on Django
3) Passed the course from codeacademy
4) Mastered PyCharm

My first project


Then I had the idea of ​​a small service on a very specific topic, which I decided to do in order to consolidate my knowledge of Python + Django.

In creating the site I

1) Studied books:

2) I studied the Django documentation for my tasks
3) I studied warming projects on Django Gunicorn + nginx + centOS

Its first normal project


After the first adequate site failed, I decided to create something worthwhile, chose an idea, chose an implementation scheme and in the evenings I did it in 3 months.

The project showed its viability (to this day it brings me some money, which I am extremely happy about). And I have already decided to pump it better.

After reading the book "Percival H. - Test-Driven Development with Python", I decided to write tests first, based on the components of Django, then I picked up the documentation of the selenium, and already did external tests.

I want to be cool


Having opened vacancies on Python-Django developers, I looked at what else is usually required in such vacancies:


Spent 3 months getting to know / trying these things. Also raised the standard Python library + external library for parsing beautifulSoup.

You can’t work without C / C ++


There is an opinion that without knowledge of C / C ++, a programmer cannot call himself a programmer. So when I had free time, I became acquainted with books:


I read books, dig through the code, looked at the compilation, looked at code examples. In general, now I did not make big eyes when mentioning references, pointers, sorts, OOP and a cloud of different arrays with different element processing speeds, depending on its position.

I'm ready for battle!


And here we come to the most important point. Having spent in total 2 years on the study of all elements of web programming, which I mentioned above. I thought I was ready enough to claim the position of a web developer in Python. Of course, I did not know something very well, something was superficial, but something I did not know at all (for example, Flask), but my general understanding and skills were not bad.

And here began problems with Python on which people most often do not focus attention. Namely, the demand for business in Python-developers junior / pre-middle level.

With this question I entered the market


Although at first glance it seems that there are quite a lot of vacancies in Python, but when specifics begin, things change dramatically.

1. Immediately comes a large dropout of vacancies, where Python is exclusively an auxiliary language. Most often, these are positions of Java developers, System Administrators, QA-Automation. Also, there is a big dropout in Data Learning, where mat-education + R language is required. That is, with one Python you will not be able to pick up this job.

2. It turned out that in my city there are no vacancies for Python, there is no word at all. Expanding the search throughout the region, I also received an unsatisfactory result. A couple of vacancies in PHP, where Python went "will be a plus." Having opened the filter for the last 3 years, I also found that there were no vacancies in Python at all. Those. Business in the province often selects simpler and more popular technologies than Python.

3. Having opened jobs for Python in a general search engine, I discovered the following trends:

In other words, the situation turned out that if you do not live in Moscow, St. Petersburg and you are not going to go to “conquer” them, then you practically have nowhere to get your first job.

Of course, there are a couple of foci, where Python is still used, for example, in Kazan. But more often it is some kind of one company, where with Vacancies there is also quite a middle + / seniour.

4. The search option at the current level also showed that employers are not ready to take such a risk. Little experience + remote = this is some kind of fantasy.
Nevertheless, I still managed to find a couple of options, but already during the initial interview it became clear that this is nonsense: “You’ll work with us for three months, and if the client pays for your work, we will pay you, too.” Not the best option.

5. Talked to a pair of HR from large companies, they expressed this tendency. “We usually take people with experience in Python from the year, plus experience in another language (3+ years). Most often php / java. In other words, they did not consider the options at all to take a person with only Python.

6. After talking with the guys from the relevant forums, it became clear that this is a fairly typical situation. From their stories it became clear that after a vain search, people either went to work on php / 1c, or somehow got through upwork / own project / test automation.
But again, occasionally.

In general, it turned out that Python is a great language that allows you to make powerful projects. And it so happened that their concentration is in the capitals. And since these are complex projects, then the staff there already requires the level of middle +. Is the person who just learned Python ready to get such a job? Difficult!

But there is another way!


At the moment, only in my city there are 24 vacancies on php at various levels (starting from small companies that need to maintain the current site, ending with e-commerce giants that offer a consistent expansion of functionality). And about the same vacancy at 1C. And somewhere in half of these vacancies are ready to take a person who at least knows something in programming. Most likely, these are not the best places, but this is already the first job, after which you will officially become an experienced programmer for HR.

So in the end


It turns out that you can learn the cool programming language Python and stay on the street. And you can learn the "hated" php / 1c and get a job. The quality of this work, of course, leaves a lot of questions - but this is already experience.

As for me, in my conditions (not to go to Moscow / St. Petersburg) I actually spent time learning the language, which is now in demand exclusively in my own projects. I did not manage to find a job on site or remotely. Now I go to the side of php, as it is corny work.

Therefore, if you do not live in Moscow, St. Petersburg, you are not a student of a technical institution of higher education, I would not advise you to learn Python in the first language. Pay attention to PHP - there are always places for it, there is work, there is experience. And the further path of development is yours.

PS As my friend suggested to me, the situation is almost the same in Ruby. But here I can not speak with certainty.

Source: https://habr.com/ru/post/322332/


All Articles