На чем делать бэкенд сайта

Что нужно уметь бэкенд-разработчику

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Веб-разработка, если упростить, состоит из двух частей — фронтенда и бэкенда. Фронтенд — видимая пользователю часть сайта, картинки, тексты и кнопки. Бэкенд — код, который работает на серверах и обрабатывает запросы пользователей после нажатия на эти кнопки.

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

Что такое бэкенд

Серверного кода не видно — это самое главное, что нужно понять. Если фронтендер может положить в портфолио сайт и будет виден результат его работы, то результат работы бэкендера в том, что сайт вообще работает и откликается на запросы.

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

Фронтенд — это продавец-консультант в Икее, к которому вы пришли и попросили шкаф, а бэкенд — кладовщик, который принесёт ваш шкаф со склада.

Взять даже эту статью: откуда сайт знает, какого числа была опубликована эта статья, сколько у неё просмотров, какие заголовки и откуда брать картинки? Вся эта информация хранится на сервере. Бэкенд-разработчики Академии сделали так, чтобы всю эту информацию можно было сохранить и получить в нужный момент, а фронтендеры — чтобы вы увидели эту страницу такой, как я задумал.

Что делает бэкендер

Если совсем коротко: пишет серверный код, работает с базами данных, пишет API, создаёт библиотеки. Работает с компонентами системы, у которых нет интерфейсов.

Решает задачи. И чем лучше он это делает, тем больше его зарплата и ценность для компании.Код — только один из способов решения. В этом разработчику помогают язык программирования, веб-стандарты, шаблоны проектирования и лучшие практики, наработанные годами опыта других программистов.

Пишет код. Это основная задача бэкенд-разработчика, которая занимает больше всего рабочего времени. При этом есть достаточно большой выбор, на каком языке писать. Например, Python — очень лёгкий для освоения, а PHP — самый популярный серверный язык. Можно писать бэкенд даже на JavaScript в связке с Node.js, Perl или Ruby. Но это не самый простой путь.

Код, чаще всего, обрабатывает разные запросы. Звучит скучно, но запросов может быть тьма.

Что нужно знать бэкенд-разработчику

Новичку нужны не все эти знания и навыки, но чем больше вы знаете, тем больше шансы найти хорошую работу.

Программирование. Нужно знать синтаксис языка и основные конструкции, понимать логику работы. Знать, как применять шаблоны проектирования, алгоритмы и структуры данных.

Базы данных. Как писать запросы и организовывать базы в MySQL, Postgres или NoSQL. Ну или в других системах управления базами данных — тут зависит от конкретной компании. Важно знать, что основные принципы всё равно похожи.

Как работает веб. Два самых важных слова — HTTP и HTTPS.

Веб-серверы. Как настроить Apache или Nginx.

API. Как устроены JSON, REST и XML и как с их помощью эффективнее передавать информацию.

Аутентификация. Как организовать сессии, хранить куки, заводить токены и ключи. Как работает Oauth.

Безопасность. Как избежать CSRF, XSS, SQL-инъекций.

Масштабирование. Как устроены асинхронные запросы и кэширование.

Серверное администрирование. Как настроить Windows, Linux, Unix, OS X. В больших компаниях этим занимаются отдельные администраторы, но в небольших студиях бывает нужно хотя бы представлять, как это сделать.

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

Приходите на профессию «Бэкенд-разработчик»

Мы перезвоним и всё расскажем — вам даже не придётся ничего делать. Только форму заполнить, но куда без этого в 2021.

Нажатие на кнопку — согласие на обработку персональных данных

Источник

На чем писать бекенд?

Проект не коммерческий, просто для души.

PS
Всем спасибо за ваши мнения и рассуждения.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Из бэкендов сейчас стоит двигать в сторону Typesafe Stack или Groovy Grails, и забыть про этот тупой РНР ширпотреп.

Python / PHP / Ruby / Node.js не подходят для реактивных приложений, и долгосрочная поддержка просто сущий ад. В общем рано или поздно приходится пилить Push нотификации и асинхронности и там обычно прикручивают Celery / Gearmand / Benstalk / RabidMQ etc естественно работает это не ахти ввиду накладных расходов на коммуникацию.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

kazmiruk
Берём jMeter или Яндекс.Танк, и меряем что где и кого сливает.
По производительности что CPython что Ruby ужасно слоупочны, просто вам видимо не приходилось гонять нагрузочные тесты.

gevent не повторяет Akka, у неё совсем другая модель передачи сообщений между актёрами, и она скорее похожа на OTP с erlang’a.

В RoR есть нормальный scaffolding, который ведёт к довольно странным костылям, на этом его преимущества заканчиваются. У Django тоже достаточно хорошо развито сообщество, но опять же не ясно как будут обстоять дела с долгосрочной поддержкой.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Источник

8 основных языков для бэкенда

Авторизуйтесь

8 основных языков для бэкенда

Автор Мария Багулина

Бэкенд — это прослойка, которая соединяет интерфейс с базой данных, позволяет получать ответы от сервера и обеспечивает работу сайта. В этом материале расскажем о языках для бэкенда: что на них можно делать и какие крупные компании их используют.

Java — один из самых популярных языков программирования. Он универсален и используется уже более 20 лет.

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

8 декабря в 18:00, Онлайн, Беcплатно

У Java большое сообщество, и в интернете можно найти ответы практически на любые вопросы о языке.

Что можно делать на Java

Технологии Java могут использоваться для многих задач, среди которых:

Какие компании используют Java

Airbnb, Uber, Pinterest, LinkedIn, Groupon, eBay, Evernote, FitBit, Hubspot.

PHP используют около 78% всех сайтов. Язык появился в 1995 году, когда было не так много возможностей для создания динамических веб-страниц. PHP динамически типизирован, и один и тот же фрагмент кода может вести себя по-разному в зависимости от контекста, что делает программы на PHP сложными для масштабирования и иногда медленными.

PHP — отличный язык для начинающих по ряду причин:

Что можно делать на PHP

Согласно официальному сайту PHP, вы можете:

Какие компании используют PHP

Facebook, Lyft, Mint, Hootsuite, Viber, Buffer, DocuSign.

.NET (C#, VB)

Фреймворк с открытым исходным кодом ASP.NET от Microsoft используется для создания веб-сайтов с помощью таких языков, как Visual Basic (VB), C#, F# и других.

.NET работает на основе архитектурного шаблона MVC (Model-View-Controller, Модель-Представление-Контроллер). Контроллер принимает запросы пользователя и взаимодействует с моделью для обработки данных. Затем результат передаётся в представление и отображается в виде интерфейса веб-страницы.

C# — высокоуровневый язык программирования. Это означает, что разработчики могут писать на нём программы, независимые от архитектуры процессора конкретного компьютера.

C# популярен среди разработчиков, потому что он обладает некоторыми преимуществами C++, но на нём проще писать код и избегать при этом грубых ошибок.

Visual Basic — это потомок BASIC, который унаследовал его стиль и сочетает в себе элементы ООП. Это простой язык для начинающих: он широко распространён и обладает несложным синтаксисом. VB часто применяют для прототипирования.
Недостатком программирования на VB является большой объём памяти, необходимый для установки и запуска инструментов разработки.

Microsoft, Starbucks, Docplanner, StackOverflow.

Ruby + Ruby on Rails

Ruby on Rails — это веб-фреймворк на языке программирования Ruby. Ruby on Rails имеет набор готовых инструментов, которые позволяют быстро выполнять базовые задачи.

Ruby достаточно лаконичный и не требует много кода для бэкенда, что позволяет разработчикам быстро создавать и запускать прототипы (этим Ruby похож на Python). Популярность Ruby выросла в начале 2000 годов, но с тех пор заметно снизилась.

Ruby — язык с открытым исходным кодом, а значит его можно модифицировать и дополнять.

Что можно делать на Ruby

Какие компании используют Ruby

Airbnb, Codecademy, TaskRabbit, Kickstarter, RapGenius, Scribd, AngelList.

Python

Python стал очень популярным языком программирования. Он используется как для веб-разработки, так и для создания настольных приложений. В Сети можно найти огромное число обучающих сайтов, учебных пособий и руководств по Python, что делает его доступным языком для новичков.

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

Что можно делать на Python

Некоторые из наиболее популярных применений Python:

Какие компании используют Python

Uber, Pinterest, Mozilla, Spotify, Quora, Pandora, Netflix, Asana.

JavaScript

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

Гибкость JavaScript порой обходится дорого: скрипты работают медленно, их сложно поддерживать и масштабировать, как и в большинстве динамически типизированных языков.

У JavaScript большое сообщество, и для его изучения в Сети есть много полезных материалов.

Значительно расширяет возможности JS программная платформа Node.js. С её помощью код, написанный на JS, можно запускать без браузера на бэкенде. А наличие огромного количества готовых решений в пакетной экосистеме npm позволяет разработчику не тратить время на создание большинства типовых решений.

Что можно делать на JavaScript

С JavaScript создаются веб-приложения и программное обеспечение, а именно:

Какие компании используют JavaScript

Airbnb, Codecademy, HotelTonight, eBay, Square, Asana.

Go (часто также Golang) — компилируемый многопоточный язык программирования, разработанный внутри компании Google. Язык Go разрабатывался для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах.

Go — язык со строгой статической типизацией. Имеет достаточно лаконичный и простой синтаксис, основанный на Си, но существенно доработанный, с большим количеством синтаксического сахара.

Что можно делать на Go

Какие компании используют Go

Dropbox, SoundCloud, Docker, CloudFlare, Alibaba, Xiaomi, Domino’s Pizza, Gett, Avito, Mail.ru, Tinkoff, 2GIS.

Заключение

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

Источник

Самые популярные языки программирования бэкенда: для чего они подходят лучше всего и какие компании их используют

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Что такое бэкенд, на Хабре рассказывать не нужно, поэтому сразу переходим к сути статьи. В ней рассказывается о наиболее подходящих для бэкенда языках программирования. Кроме того, автор рассказывает о задачах, для решения которых эти языки идеально подходят и компаниях, которые используют их у себя.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Сложно сосчитать количество статей на Хабре, которые имеют отношение к этому языку. Это один из самых популярных языков программирования, который используется более 20 лет.

Универсальным он является благодаря виртуальной машине Java (Java Virtual Machine, JVM). Она позволяет коду на Java одинаково работать на всех совместимых платформах. JVM — своеобразная прослойка, в которой Java-программа преобразуется в код, который может выполняться на любой машине.

Несмотря на то, что Java чрезвычайно популярна среди разработчиков ПО, она сложнее для новичка, чем, скажем, Python. Тем не менее, у Java огромное сообщество, которое даст ответ практически на любой вопрос новичка или профессионала.

Что вы можете делать на Java

На PHP работает около 78.2% всех веб-сайтов. Язык впервые был представлен в 1995 году, когда для создания динамических сайтов существовало не так много возможностей.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Поскольку это динамически типизированный язык, для одной проблемы можно найти сразу несколько решений. Правда, это одновременно означает и то, что один и тот же участок когда может вести себя по-разному в зависимости от конкретной ситуации, что делает программы на PHP сложно масштабируемыми и в некоторых случаях медленными.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта
79.1% сайтов, о бэкенде которых известно, используют PHP

Компании, которые используют PHP

А сколько получает PHP-разработчик?

.NET (C#, VB)

Основа языка — архитектурный шаблон MVC (Model-View-Controller). В этой схеме контроллер принимает запросы пользователя и взаимодействует с моделью для обработки данных. Потом результат уже передается в представление, отображаясь в виде интерфейса веб-страницы.

C# — высокоуровневый язык программирования, на котором можно писать софт, независимый от архитектуры процессора конкретного компьютера.

C# популярен среди разработчиков благодаря некоторым преимуществам С++. При этом на нем проще писать код, избегая ошибок, которые характерны для того же С++.

Это язык программирования, который использует графический пользовательский интерфейс для работы с кодом. Это простой язык для начинающих благодаря несложному синтаксису. В целом, чаще всего он используется для прототипирования.

Недостаток VB — большой объем памяти, который необходим для установки и запуска инструментов разработки.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Ruby on Rails — веб-фреймворк на языке программирования Ruby. У него есть целый набор готовых инструментов, которые дают возможность быстро выполнять базовые задачи.

Это лаконичный язык, который не требует много года для бэкенда. Так что разработчики могут быстро создавать и запускать приложения. Также он идеален для прототипирования — примерно так же, как и Python. В начале 2000-х популярность Ruby выросла, но затем снизилась.

Достоинство Ruby в том, что это открытый язык, так что он может быть модифицирован и дополнен.

Python

За последние несколько лет он стал чрезвычайно популярным языком программирования. Язык универсален и используется как для веб-разработки, так и для создания настольных приложений. В интернете есть огромное количество различной информации об этом язык, так что он неплохо подходит для начинающих.

Более того, синтаксис языка простой и понятный, по сравнению с другими бэкенд-языками. Те, кто программирует на Питоне, говорит о коде, как об «элегантном», «читаемом» и «красивом».

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Что можно делать на Python

JavaScript

Этот язык можно использовать как для фронтенда, так и для бэкенда. Это отличный язык для новичков. В нем относительно простые настройки, а код можно писать прямо в браузере.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

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

При этом сообщество у языка просто огромное, в Сети большое количество материалов для изучения.

Что можно делать на JavaScript

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта
Языки, на которых пишут разработчики, принявшие участие в опросе Stack Overflow

Комментарий эксперта

Даниил Пилипенко, директор центра подбора IT-специалистов SymbioWay и евангелист бэкенд-направления онлайн-университета Skillbox, дополнил перевод экспертным мнением о востребованности самой специальности “бэкенд-разработчик”.

Спрос на разработчиков последние 20 лет продолжает постоянно расти: каждый год количество вакансий разработчиков увеличивается примерно на 15%. При этом количество самих программистов растет не более, чем на 5% ежегодно. Это приводит к постоянному росту дефицита и, соответственно, зарплат этих специалистов.

На чем делать бэкенд сайта. Смотреть фото На чем делать бэкенд сайта. Смотреть картинку На чем делать бэкенд сайта. Картинка про На чем делать бэкенд сайта. Фото На чем делать бэкенд сайта

Найти хороших и сильных разработчиков становится всё сложнее. Если вы решили создать какой-то проект, лучше выбирать наиболее популярные в настоящее время технологии и языки программирования.

Часто встречаю проекты, на которых в качестве основных технологий выбирают что-нибудь очень редкое вроде Go, Erlang или Flutter, и потом месяцами не могут найти разработчиков.

Как уже было сказано в статье, самые распространённые сейчас языки для backend-разработки — это Java (для крупных решений), PHP (для веб-сайтов) и Python (для небольших веб-решений и научных задач). В случае выбора этих технологий вы сможете относительно быстро находить сильных специалистов, расширять команду и заменять тех, кто выгорел или ушёл. Благодаря этому ваш проект сможет не только появиться на свет, но и вырасти.

Источник

Так ли важно, на каком стеке вы умеете писать бекенд? А фронтенд?

Первая история: Jaskell

Мне рассказывали когда-то о компании, которая писала бекенд на Java и хотела нанимать талантливых разработчиков. Чтобы привлечь их, эта компания размещала вакансии на Haskell, и потом уговаривала этих кандидатов все-таки писать на Java. По-моему, это не очень красиво (вешать ложное объявление — нехорошо), но нас сегодня интересует сама идея, лежащая в основе этой тактики: толковый разработчик важнее, чем стек, которым он пользовался в последнее время.

Вот небольшое видео, иллюстрирующее эту идею:

Вторая история: Kotlin

Когда мы нанимали разработчиков в проект Kotlin, мы не могли ограничиться только теми, кто уже разбирался в разработке компиляторов. На рынке было просто слишком мало таких людей, а наш проект еще не имел мировой известности. Тогда я и начал учиться распознавать на собеседованиях тех, кто сможет разобраться на месте и будет двигать проект вперед, хотя раньше работал в другой сфере.

Это оказалось не так-то сложно: все-таки любой программист пользуется каким-то языком программирования каждый день, и на собеседовании можно поговорить про то, как все это работает внутри. Любознательные инженеры знают, как устроены их любимые игрушки, так что с темами для разговора проблем не было.

По сути, мы брали в Kotlin тех, кто хорошо понимал не как работает компилятор, а что такое виртуальная машина, как устроены блокировки потоков в ОС, как устроены структуры данных, которые любой из нас использует каждый день и т.д.

Со временем Kotlin стал известным и успешным, и нам стало проще нанимать людей с профильным опытом. Они принесли в команду очень ценные знания, и мы все вместе сделали крутой востребованный продукт. Но по сей день, насколько я знаю, опыт именно в компиляторах не является обязательным условием для найма в Kotlin.

Из этой истории у меня два вывода:

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

Специалисты в узкой области дают большой буст, и их обязательно надо тоже нанимать.

Третья история: Alter

Сейчас мы нанимаем разработчиков в Alter. Тут мы не компиляторы пишем, а платформу для психотерапии. Ничего особо экзотического: Python, Django, MySQL, вот это все. Каждый день помогаем сотням людей.

А принципы найма остались те же: мы упоминаем стек в описании вакансий только в разделе «Будет плюсом, но необязательно» потому, что кандидатам хочется знать, на чем написан проект. Не было ни одного кандидата, которого мы не стали бы рассматривать из-за стека.

Но почему-то мы время от времени слышим от знакомых и знакомых знакомых: «а вот я хотел(а) к вам в команду, но я на Java пишу, а у вас Python». Так я и решил написать этот пост.

Мы нанимаем опытных разработчиков (Senior и Middle), учить с нуля нам не выгодно. Когда берем Middle, следим, чтобы был потенциал роста до квалификации Senior. Если кандидат застрянет на уровне Middle навсегда, в небольшой команде такой разработчик не очень нужен.

На собеседовании мы обсуждаем вопросы, общие для всех бекендовых стеков: как работает HTTP, что делать, чтобы сервис держал нагрузку, как проектировать схемы БД, как искать и устранять ошибки и т.д.

А зачем вообще так делать? Вам что, питонистов не хватает?

Если вам хватает, мы за вас рады 🙂

Делать так стоит, только если затраты на поиск разработчиков на нужном стеке превышают затраты по онбордингу в этот стек. Ясное дело, если у вас очередь отличных специалистов, которые вдоль и поперек знают какую-нибудь Django (или на чем там у вас бек), то вы не будете смотреть кандидатов с опытом на FastAPI, PHP, Java и т.д. А если вы из десяти кандидатов скрепя сердце готовы взять одного, а он вам говорит, что неделю подумает, потому что у него тут еще три оффера намечается, то, наверное, вам имеет смысл подумать, как расширить воронку.

И, судя по общению с коллегами из других компаний, ситуация большинства работодателей в последнее время больше похожа на второй вариант.

То есть фундаментальная идея проста: человек, хорошо освоивший один инструмент, быстро переучится на другой, достаточно похожий. Если опытному человеку сложно освоить новый стек, то он, вероятно, достиг своего потолка, а это не очень хороший знак. Это дает нам возможность нанимать толковых программистов со всего рынка, а не только с некоторой его части.

Еще один момент, хоть и не такой важный: если кандидат выбирает компанию, а не стек, можно предположить, что он будет больше мотивирован в этой компании и оставаться, а не перейдет через полгода в другое место. Мелочь, а приятно.

Это как у Джоэла: Smart and gets things done?

Еще в 2006 года Joel Spolsky писал в своем The Guerrilla Guide to Interviewing (version 3.0), что достаточно знать о кандидате две вещи: толковый и доводит дело до конца (smart and gets things done). Зачем же тогда этот пост?

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

Во-вторых, если ограничиться «smart and gets things done», онбординг может оказаться существенно дороже, чем если брать человека, который решал похожие задачи, просто другими инструментами. Так что мы для себя считаем, что бекендер-джавист превращается в бекендера-питониста как на том видео выше, а вот что там насчет других специализаций — это уже сложный вопрос, который в каждом конкретном случае надо решать индивидуально. Массовому читателю я готов рекомендовать только быстрый онбординг в другой стек, не в другую специализацию.

А всегда ли это так хорошо работает?

Как уже было сказано выше, главное, о чем нужно подумать: окупятся ли затраты на онбординг. При этом надо учитывать несколько существенных моментов.

Не любой разработчик захочет поменять стек

Кто-то привязан душой к своему любимому фреймворку и ни за что не «предаст» его. Ну, это не наш клиент, что делать.

Кто-то боится, что не справится быстро освоить новый стек. Даже если вокруг будут отзывчивые коллеги, готовые подсказать. Ну, имеет право, тоже не наш клиент.

Некоторые стеки отличаются сильнее, и между ними переход значительно тяжелее

Как правило, это связано с тем, что и задачи надо другие решать: если вчера писал обычный бек на PHP, а завтра надо делать highload на Java, онбордиться будет сложновато.

Некоторые платформы/проекты до сих пор используют более низкоуровневые абстракции. PHP, Node.js и Python более-менее избавляют от необходимости думать о тредах, а в Java при желании можно этого счастья хлебнуть ого-го сколько. Это зависит от того, как написан ваш Java-проект. Не надо ожидать, что онбординг питониста в мультитрединг будет таким же легким, как онбординг джависта в Django.

Чтобы быстро поменять стек, надо хорошо понимать основы

Если кандидат не очень уверенно пользуется своим основным языком программирования, то и новый ему осваивать будет не просто

Если HTTP-заголовки или SQL для кандидата — темный лес, тут не до смены стека

Если кандидат совсем не понимает, что его любимый фреймворк делает под капотом, ему будет сложно освоить новый фреймворк, который делает под капотом что-то другое

Команда должна помогать осваивать новый стек. Одно дело учиться самому, другое — когда вокруг сидят люди, которые знают новый стек вдоль и поперек. Только нужно, чтобы знания передавались, а для этого важно:

Поощрять вопросы и запросы на ревью

Быстро отвечать на вопросы, чтобы разблокировать товарища (если вопросы выглядят моментально гуглящимися, дружелюбно спросить в личке, в чем дело)

Вежливо и аргументированно подсказывать идиомы и разные фишечки на code review

Не ругать стек, с которого человек пришел, за недостаточно православное мировоззрение

Получается, для джунов этот подход не работает?

Тут как посмотреть. С одной стороны, для быстрого освоения нового стека надо хорошо знать старый, а Junior еще не успел в нем толком разобраться. С другой стороны, если ты и старый стек не очень знал, много ли ты потерял, пересев на новый?

На самом деле с Junior разработчиками вопрос вообще лежит в другой плоскости. Далеко не всем командам в принципе имеет смысл брать неопытных людей. То есть, если честно, скорее всего на предложение «нам трудно искать синьоров, давайте наберем джунов и доучим на месте», ответ: «отличная идея, но нам это не выгодно».

Не буду тут углубляться в анализ, но в целом понятно, что за обучение джунов вы платите не только их зарплатой, но и большим количеством внимания, которое их обучению уделяют более опытные разработчики. А они в это время могли бы двигать проект вперед. Ясно дело, что бывают очень бодрые джуны, которые учатся супер-супер быстро, и тогда их учить мега-выгодно, но если вы уже умеете нанимать таких джунов, то вы, наверное, или в хорошем ВУЗе преподаете для души, или у вас такие бюджеты на хайринг, что вам этот пост не очень интересен.

А разве смена стека — это не шаг назад в карьере?

Рекрутеры, а иногда и кандидаты, говорят: если я перейду на новый язык/стек, я в нем не буду таким профи, как в своем привычном языке/стеке — это ведь я стану менее ценным специалистом!

Честно говоря, мне немного грустно от такого подхода к жизни, но я стараюсь отнестись с пониманием и ласково объяснить, что

синтаксис языка выучить — это только в первый раз сложно, а третий-пятый язык уже учится гораздо легче,

твоя ценность как специалиста состоит не в том, что ты знаешь синтаксис языка и название стандартных функций фреймворка, а в том, что ты понимаешь, как система должна работать и в деталях, и в целом,

изучение нового иногда дает свежий взгляд на знакомые вещи, а это приносит многим людям удовольствие.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *