Код
#Мнения

Почему Python — идеальный второй язык для фронтендера и первый для бэкендера в 2022 году

Программист-полиглот рассказал, почему Python стоит учить даже раньше популярного среди «вайтишников» JavaScript и какие у языка перспективы.

Иллюстрация: Оля Ежак для Skillbox Media

Алексей Шарыпов


Пишет на Perl, Python, Golang. Делает курс по Python в LoftSchool.


Ссылки


Когда меня спрашивают, какой язык программирования лучше изучать начинающим бэкенд-разработчикам, я не задумываясь отвечаю — Python. Я уверен, что Python подходит фронтенд-разработчикам как второй язык, а начинающим бэкенд-разработчикам как первый. Попробую объяснить, что стоит за моей уверенностью, — для этого я сравнил Python, JavaScript и несколько других популярных языков для бэкенд-разработки: изучил сайты с рейтингами языков программирования и вакансиями.

Сложность поиска работы

Как для новичка, так и для опытного разработчика важен порог входа в технологию, скорость её изучения, её популярность, сложность поиска первой работы, зарплата на старте и перспективы развития.

Для уже опытного разработчика второй язык важен ещё и как способ расширить границы понимания разрабатываемых систем и получить новый опыт. Интересный факт: на IT-рынке США разработчик со знанием двух популярных языков зарабатывает в среднем на 50% больше своего «одноязычного» коллеги — при условии, что соответствует вакансии, где требуется кодить именно на двух языках.

Ниже — таблица с результатом анализа количества соискателей, упоминавших конкретный язык в резюме, и количеством вакансий с упоминанием этого языка (я брал вакансии во фронтенде и бэкенде).

Изображение: Skillbox Media

Подсчёты, конечно, не суперточные, но они помогают оценить спрос и предложение на рынке. Важно отметить, что средняя указанная зарплата разработчиков на Golang примерно в 1,5 раза выше, чем у кодеров на других языках.

Из таблицы видно, что Python — довольно востребованный язык, а конкуренция среди кандидатов относительно невысокая. Хотя знание Go или TypeScript позволяет устроиться на работу с большей вероятностью.

Популярность языков программирования

Для сравнения трендов в области языков программирования я решил воспользоваться Google Trends, инструментом, основанным на статистике поисковых запросов в Google. Он помогает оценить динамику поиска конкретных языков в интернете — то есть общую популярность и востребованность. Из-за ограничений сервиса пришлось разбить график на два изображения.

На графике видно, что позиции языка Python укрепились. Прорисовывается спад интереса к Java и PHP. Языки C# и C++ тоже немного теряют в популярности — хотя они всё равно востребованы при решении сложных задач. Из интересного — рост внимания к Golang.

После этого я изучил специализированные рейтинги популярности языков программирования — в частности, TIOBE и IEEE Spectrum. Последний при расчёте популярности использует в качестве источников данных CareerBuilder, GitHub, Google, Hacker News, The IEEE, Reddit, Stack Overflow и Twitter.

Согласно TIOBE, Python в 2022 году вырвался на первую позицию рейтинга и стремительно растёт, обгоняя по скорости роста все остальные языки программирования.

Рейтинг популярности языков программирования TIOBE
Скриншот: Skillbox Media

В рейтинге IEEE Spectrum также лидирует Python.

Рейтинг популярности языков программирования IEEE Spectrum
Скриншот: Skillbox Media

Ещё один важный для фронтенд-разработчика критерий при выборе второго языка — удобство создания динамических заглушек бэкенда. Мои коллеги часто использовали для этого либо бэкенд-фреймворк Node.js, либо Python. Хотя, к слову, заглушка на Golang выглядит не сложнее, чем на Python.

Вот пример заглушки API на Flask.

from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/ok', methods=['GET', 'POST'])
def successful_case():
   if request.method == 'GET':
       return jsonify({'status': 'ok', 'method': 'GET'})
   elif request.method == 'POST':
       return jsonify({'status': 'ok', 'method': 'POST'})
@app.route('/404', methods=['GET', 'POST'])
def unsuccessful_case():
   return jsonify({'status': 'error'}), 404
def main():
   app.run(host='127.0.0.1', port=8000)
if __name__ == '__main__':
   main()

Этот код поднимает сервер на нужном порте, который отдаёт JSON по двум URL-адресам: http://127.0.0.1/ok и http://127.0.0.1/404.

А вот то же самое — но уже на Golang.

package main
import (
  "fmt"
  "log"
  "net/http"
)
func successfulCase(w http.ResponseWriter, r *http.Request) {
  w.Header().Set("Content-Type", "application/json")
  if r.Method == http.MethodGet {
     fmt.Fprintf(w, `{"status": "ok", "method": "GET"}`)
  } else if r.Method == http.MethodPost {
     fmt.Fprintf(w, `{"status": "ok", "method": "POST"}`)
  }
}
func unsuccessfulCase(w http.ResponseWriter, r *http.Request) {
  w.WriteHeader(http.StatusNotFound)
  w.Header().Set("Content-Type", "application/json")
  fmt.Fprintf(w, `{"status": "error"}`)
}
func main() {
  http.HandleFunc("/ok", successfulCase)
  http.HandleFunc("/404", unsuccessfulCase)
  err := http.ListenAndServe(":8081", nil)
  if err != nil {
     log.Fatal("ListenAndServe: ", err)
  }
}

Я руководил несколькими Python-, двумя .NET- и одной Go-командой и обращал внимание на скорость разработки, а общаясь с другими тимлидами и руководителями групп разработки, пришёл к выводу, что создание фич на Golang всё же занимает больше времени, чем на Python. При этом скорость разработки на .NET близка к скорости разработки на Python. Точной причины этого феномена я не выяснил, но всегда учитываю это, планируя дедлайны.

В результате этого мини-исследования я убедился, что Python — довольно перспективный вариант для изучения. Он отлично подойдёт и как первый язык для начинающих, и как второй для фронтенд- или бэкенд-разработчиков. Дополнительный плюс Python — он широко используется для автоматизации тестирования.

Помимо бэкенд и фронтенд-разработки, Python стал одним из наиболее востребованных языков для решения задач, связанных с Data Science, нейронными сетями, машинным обучением и искусственным интеллектом. А популярные Python-библиотеки SciPy, NumPy, Matplotlib помогают упростить сложные расчёты и облегчают жизнь учёных.

Если же вы уже пишете на Python, рекомендую обратить внимание на JavaScript, TypeScript или Golang. JavaScript стабильно востребован, а TypeScript и Golang явно развиваются и набирают популярность.

При этом Golang является довольно перспективным и хорошо оплачиваемым языком с относительно низким порогом входа. Он немного сложнее Python или JavaScript, зато превосходит их в скорости и имеет строгую типизацию. Я в качестве третьего языка выбрал именно Go.

Вывод

Python легко освоить — то есть у него довольно низкий порог вхождения. К тому же сейчас это самый популярный и востребованный язык программирования по данным сразу нескольких авторитетных рейтингов — в том числе TIOBE. Он работает практически на всех платформах, активно развивается и поддерживается большим отзывчивым сообществом.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована