До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Дневник студента

Нужен ли опыт смены четырёх работ за год?

Время чтения статьи ~9 минут
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Нужен ли опыт смены четырёх работ за год? главное изображение

title

Вступление

Привет. Меня зовут Сергей, мне уже 28 лет и я всё ещё алкотрудоголик. На сегодняшний день у меня четвёртая работа в IT-компании и около года стажа учёбы на Хекслете. Хочу поделиться с вами своим опытом смены работы и рассказать об эффекте, полученном от перехода из PHP в NodeJS.

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

котолампа

Мой путь в программировании (sic!)

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

Первая работа. Язык: PHP

Самописный интернет-магазин, который плавно переписывался (и, наверняка, переписывается до сих пор) на фреймворк Symfony. Это был крутой коллектив, хороший менторинг, много времени на изучение технологий, возможность самостоятельно выбрать задачи (приветствовалось брать задачу каждый раз сложнее предыдущей).

Самые яркие впечатления с этой работы:

  1. Очень понравилась концепция request-response у фреймворка. Как позже для себя выяснил, MVC в PHP выглядит как-то с боку прикрученным, в отличие от православного MVC на фронте.
  2. Увидел некоторое... файлы в формате tpl на 8+ тысяч строк, где замешан php, js, html и чёрная магия. Увидеть, потрогать, почуять запах контраста между свежим кодом по PSR + код-ревью и самописными решениями с собственным видением мира — это, наверное, ключевой момент для джуна.

Зарплата на руки: немного выше средней по региону.

Причина ухода: массовое сокращение

Вторая работа. Язык: PHP

Компания-аутсорсер. Несколько команд, у всех разные проекты, а то и не по одному. Основной проект в моей команде - одна из площадок электронных торгов на Zend Framework (вроде бы 2). Второй проект, торжественно переданный мне из другой команды - веб-приложение для маркетинговой кампании одного алкогольного гиганта на Yii 1. Попал к ним летом, как раз когда к 1му июля нужно было перелопатить функционал электронных площадок в связи с изменениями в 223 ФЗ.

Самые яркие впечатления с этой работы:

  1. Ручное тестирование отдельными людьми-тестерами, почти полное отсутствие автоматического; разворачивание проекта локально и пуш в прод - магия, доступная лишь тимлиду;
  2. Старые технологии с требованием фулл-стека, что, насколько я понимаю, нормально для мира PHP, но немного меня не устраивала необходимость самому разбираться с фронтом.
  3. Хорошее обеспечение - качественные одинаковые мониторы, современные системные блоки с нестыдной начинкой, достаточно удобные стулья (не самые удобные, конечно, но не суть), столы с регулируемой высотой.

Зарплата на руки: половина средней по региону.

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

Третья работа. Язык: Русский + PHP

Тут стоит вернуться немного назад:

Первые шаги, которые я сделал в поиске себя, как веб-разработчика — это документация по языку разметки "вики-разметка ВКонтакте"

В процессе поиска новой работы, попалась компания, занимающаяся собственным сайтом электронных торгов с двумя интересными вакансиями: технический писатель и php junior. Внезапно осознал, что зная языки программирования не обязательно работать программистом. Возможно, моя любовь к изучению IT-технологий, написанию статей и скромный опыт в составлении документации — это то, к чему меня готовила жизнь. Поэтому откликнулся на вакансию технического писателя, кем и проработал 4 месяца.

Проект - площадка электронных торгов на Zend Framework 2. На мою долю выпала суматоха с подготовкой к изменениям по 44 ФЗ, но как показала практика, это не помешало ребятам отвечать на мои вопросы, помогать разбираться с устройством проекта, да и самообразование удавалось. Я даже сделал свою первую публикацию на Хабре о базовом устройстве Zend Framework за что покинул ряды бесправных юзеров.

Самые яркие впечатления с этой работы:

  1. Третий раз ощущение, что Symfony во многом лучше, логичнее и концептуально проще, чем любые MVCшные фреймворки для PHP;
  2. Хороший код, несмотря на наличие и легаси, и отсутствие тестов;
  3. Зарплата выше средней по региону :)

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

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

Четвёртая работа. Язык: NodeJs

Это текущее место работы. На момент написания данной статьи я отработал уже два полных месяца. В скором времени предстоит разговор на тему того какие условия компания предложит после испытательного срока и всё в таком духе. Хочу остаться поработать здесь, но увидим (потом отпишусь в комментариях к статье на чём сошлись).

Самые яркие впечатления с этой работы:

  1. Новый язык; совершенно иные подходы к разработке; отсутствие легаси; фронт и бек раздельно; я могу сам развернуть приложение в прод даже если ещё ревьюили;
  2. Отсутствие отдельных людей-тестировщиков (этим занимаемся мы и ПМы, но всё же), возможность и поощрение написания автоматических тестов (не хватает времени, т.к. скрам и аджайл во все щели);
  3. "Собственный" проект уже на втором месяце работы.

Пилю проект пока в паре со фронтендером, рядом со мной сидит скилловый парень в роли архитектора проекта (сам код не пишет, только наставляет на путь истинный и ревьюит). Системы менторинга нет, но при этом все готовы помочь, объясняют тему "от" и "до".

Зарплата на руки: на старте - чуть выше средней по региону. Что будет после испытательного срока пока не знаю, но обещали беспрецедентный рост.

Блок с картинками

Почему я так радостно воспринял отсутствие легаси — проиллюстрирует пара экземпляров из моей скромной коллекции забавных и, одновременно, грустных решений:

  1. Попробуйте, не читая комментарий, "асилить" что же тут происходит:

Ниасилил

  1. Если false не строго равен результату присвоения черновика какому-то пункту, то это исключительная ситуация...

Тут прекрасно всё

Опыт прохождения собеседований

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

Что я делаю на Хекслет?

Пройдя собеседование на текущее место работы понял, что нужно срочно взяться за изучение языка, который знаком едва-едва. И взялся. Сейчас подбираюсь к окончанию профессии NodeJS и думаю потом зарулить во фронтенд, чтобы понимать о чём мне толкует фронтендер, когда он не в состоянии справиться с состояниями Реакта.

На новой работе на бэке используется TypeScript, что сначала дало ощущение "хм, тут есть интерфейсы, абстрактные классы и даже приватные поля классов - жить можно". А в процессе работы с языком выяснилось, что:

  1. статическая типизация через интерфейс — это вам не динамическая типизация через интерфейс;
  2. по-моему, в пыхе много лишнего;
  3. PSR не хватает.
  4. ???????
  5. чтобы понять докер - нужно перестать использовать вагрант, забыть про него и вообще.

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

За этот год, к сожалению, прошёл лишь первый проект в профессии PHP, но зато посетил воркшоп по ООП. Оба этих события взрывали мозг, ломали мир и приближали к мысли о несовершенстве кода, созданного по трём столпам ООП, SOLID, DRY, KISS и чё-то там ещё. Сколько же хлама пришлось запомнить для первых собеседований и построения правильной реализации паттернов на классах. А теперь я решаю задачи функцией в одну строку и это right way, одобряемый коллегами.

PHP или JS?

Или Ruby, или Python, или Clojure, или любой другой язык, где будет крутая команда с адекватным проектом. Кажется, год назад я хотел стать крутым PHP-разрабом, теперь же вижу это как страх перед другими языками, парадигмами, подходами, которые могли не совпадать с моим восприятием мира. Сейчас чётко ощущаю когда чего-то не хватает в JS из PHP, и, наоборот, какие практики из PHP мешают построить что-то на JS. Это увлекательный мыслительный процесс, загоняющий меня самого в рамки мышления и заставляющий их разрушать. Хочется его поддерживать.

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

Резюме

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

В какой момент начинать менять работу? Когда для этого есть повод. Даже если ты ещё не прошёл какую-то профессию на Хекслет, но ощущаешь застой в развитии, то уже можешь искать работу. Пиши грамотно, интересно, будь уверен в себе и признавай ошибки. Учись, практикуйся и ставь адекватные цели, как перед собой, так и перед работодателем.

PS

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


Всё :)

Аватар пользователя Sergei Melodyn
Sergei Melodyn 16 марта 2019
11
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября