According to the TIOBE ranking in January 2019, python won the title of programming language of the year in 2018 due to the highest increase in global popularity (3.62%) in the past year. In fact, over the past few years, python has been expected to surpass Java and become the dominant programming language.
(As of March 2019, TIOBE's Python programming community index chart)
Is the future of Python engineers optimistic?
From the perspective of data performance, the overall trend of Python engineers in the talent market in recent years is optimistic. From 2016 to 2018, the average annual salary of face-to-face invitations increased steadily. Horizontally, compared with other technical positions, salary increases like Python can be regarded as outstanding and the year-on-year increase ranked third among all technical positions. So, Python engineers are in short supply.
What kind of python engineer does the employer prefer?
Python has experienced three waves in China. The first was the wave of search engines in 2007, and Google entered the Chinese market, and the high penetration rate of Python in this star company also attracted people's attention; the second was the wave of Chinese Internet entrepreneurship from 2009 to 2012, many emerging companies were eager to quickly build network architecture, and the development of environment-friendly Python became the first choice of many engineers. The third time is from the beginning of 2015 to now, the concept of deep learning technology with fire. In these three tides, Chinese programmers showed their thirst for catching the technical wind direction and strong learning ability. Like golang and many front-end frameworks, python has always been mastered by domestic technicians in a short period of time and tested by the huge population of the Internet market, although they are all born and originated overseas.
① Working years
People engaged in Python are younger, and senior programmers are still scarce. In terms of the working years of job seekers, there has been little change in the composition of personnel in recent years. Most of the python engineers are young people, and nearly half of the engineers are in the range of 3-5 years of experience, and less than 30% of them have more than 6 years of experience. At the same time, job seekers with different work experience get more face-to-face opportunities and pay differences. On the one hand, the more senior the employee, the higher the annual salary.
② Education background
Employers choose the best from the best, and the job hunting space of people with low education background is compressed. It also encourages people to study, and the overall education level of Python engineer job seekers has been improved in recent years.
③ Technical background
Python programmers with a complex background are more popular. From the job seeker's previous work background, there are not many "single" Python programmers. Most of them have compound backgrounds. One of the objective reasons why Python job seekers have such an "all inclusive" technical background is that it is more concise, easy to learn, readable, easy to maintain, and relatively short learning cost and time.
What qualities do excellent network engineers need?
Python positions are mainly back-end development and architecture, supplemented by algorithms and data mining, and have a small number of front-end, full-stack development posts, and operation and maintenance. The advantages of the Python language itself determine that development engineers engaged in Python learning have more job development options than other programming languages.
The expectations of various companies for outstanding Python talents are summarized as follows.
① Python back-end development
·Programming language: Have more than 2 years of development experience, and be familiar with at least one development language: Python, Java, PHP, C/C++.
·Service Framework: Familiar with common Python frameworks, and master one of Django, Tornado, Flask, etc.
Database: Familiar with common databases, at least one of Mysql, Mongodb, Redis; familiar with large-scale data storage and analysis systems is preferred.
·Familiar with Unix/Linux operating system, with good coding standards.
·A comprehensive understanding of the web back-end technical architecture and familiarity with machine learning frameworks such as TensorFlow is a plus.
② Algorithms, big data
·Strong coding skills, solid internal skills; familiar with Linux development environment, familiar with Python, at least proficient in C / C + + or Java programming language.
·Familiar with crawler mechanism, distributed crawler development experience is preferred, familiar with scratch / redis / mongodb / MySQL is preferred.
·Understand a variety of network communication protocols, familiar with thrift RPC or grpc.
·Familiar with common machine learning algorithms, strong business understanding, good data thinking.
·Master's or doctor's degree in mathematics, with certain mathematical background
·Experience in image recognition, deep learning, machine learning, natural language processing and so on
③Python front-end development/full stack development
·Familiar with at least 2 of languages such as Python, Java, PHP, Shell and familiar with Linux operating system.
·Proficient in webpack /gulp /rollup and other construction tools, and have rich practical experience in front-end engineering.
·Bonus points for those who master Tornado/ OpenERP / Django / Flask.
·Familiar with MySQL, PostgreSQL and other databases, able to write and debug SQL statements, stored procedures, indexes, and performance optimizers are important bonuses.
In fact, there are many overlaps in the knowledge structure required for each application scenario, and each Python engineer needs to consciously build a knowledge system according to his own career plan.