5

Ответ на пост «Похоже, это глобальная проблема» - Часть 2

Этот пост - продолжение вот этого поста.

Дисклеймер: все нижеперечисленное является квинтэссенцией моего восьмилетнего опыта разработки приложений и может отличаться от вашего.

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


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


Собрав и подключив дом, мы можем начать в нем жить. В самом простом случае мы будем единственным собственником дома, и наш дом будет занимать весь участок. В этом случае мы просто берем наш собранный код и загружаем его по определенным правилам на наш сервер. Если вы хорошо построили дом, и больше ничего в нем менять не планируете, то вы можете дальше жить счастливо. В программировании дом постоянно развивается: появляются новые этажи, приходится менять коммуникации и снова все согласовывать и переподключать. Делать это вручную, да еще и по нескольку раз в день, бывает достаточно накладно, поэтому используются различные системы (TFS, GitLab, Jenkins и др.) для автоматизации этого дела, которые, конечно же кому-то надо настраивать. Их можно было бы сравнить с агентством, которому вы могли бы поручить заниматься всеми согласованиями перепланировок и подключением коммуникаций от вашего имени.


По мере роста Интернета начали появляться так называемые "облачные" сервисы. Теперь вам не нужно самому искать участок, на котором строить дом, и заниматься коммуникациями - за вас все сделает облако. От вас только требуется решить, насколько большой участок вы хотите. На данный момент существуют три основных игрока на "облачном" рынке - Microsoft, Amazon и Google. Они предоставляют схожий набор услуг, но каждый из них предлагает работать со своими по-своему. При этом и типов участков стало больше: вы можете получить полноценный участок в свое личное пользование с полным доступом к коммуникациям (выделенный сервер), можете выбрать только участок, а коммуникации оставить управляющей компании (например, через WebApp в Microsoft Azure).


В добавок к этому появилась мода на микросервисы, когда ваш дом спроектирован так, что каждая отдельная квартира или комната в доме, — это своего рода отдельный дом, и вы можете компоновать его в зависимости от своих потребностей. Накопили в начале только на однушку, потом "докупили" еще одну комнату, потом еще; дети съехали жить к себе - продали лишние комнаты. И все это без переездов и каких-либо перепланировок благодаря Docker и Kubernetes.

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


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


Поясню: недостаточно просто написать код. Нужно уметь этот код собрать, оттестировать, если нужно, задокументировать/внести изменения в процессе сборки и развертывания и, собственно, "загрузить" собранный код.


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

Теперь попробуем "перевести" вакансию из оригинального поста с HR-ного на человеческий:

Есть проект, написанный на React с использованием библиотеки Redux, с бэкендом на NodeJS и базой данных в MongoDB. При этом проект развернут в облаке Amazon с использованием Kubernetes.


Вряд ли тут от человека требуется доскональное знание всего. Хотя не стану отрицать, что есть конторы, в которых и такое бывает. Но что бы ты ни делал, ты должен иметь полную картину рабочего процесса в голове. Если ты фронтендер, то помимо, собственно, React'а и Redux'а ты должен знать, как запустить свой код в Docker и Kubernetes, а если ты бэкендер, ты должен знать, как там развернуть свою часть кода вместе с базой. И если ты претендуешь на должность junior разработчика, то я могу понять незнание чего-то, но если ты middle или тем более senior, то такая вакансия не должна быть для тебя чем-то из ряда вон.


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

Ответ на пост «Похоже, это глобальная проблема» - Часть 2

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества