Как стать автором
Обновить

Хороший код до Google не доведет

Терминология IT Исследования и прогнозы в IT Карьера в IT-индустрии Лайфхаки для гиков IT-компании
Из песочницы
Долгое время работая в разных сферах ИТ, мы с исследовательской командой наблюдали все возможные проблемы становления разработчиков и все причины-следствия их дефицита. Нас интересовало: почему программист развивается в senior-специалиста так долго или вовсе им не становится? Откуда неоправданные ожидания с обеих сторон? И главное — что делать разработчику на каждом уровне, чтобы войти в привилегированную касту senior-ов, архитекторов, тимлидов и руководителей?

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

Senior, who the f… is Alice Senior?


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

В результате разработчики получают ряд проблем: без адекватного определения требований нет четкого видения карьерного пути и шагов развития. Вопросы: “Какой уровень у меня сейчас? Зарабатываю ли соразмерно ему? Много ли мне нужно апгрейдить до следующей ступени?” — мы слышим повсеместно.

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

Оценка программиста — дело рук самого программиста?




Ваше развитие зависит от того, на каком этапе вы сейчас. Но как это оценить? Это вторая проблема.

Из проведенных опросов были получены несколько инсайтов: 70% программистов уровней junior-middle пытаются оценить себя самостоятельно. Парадокс: чем ниже уровень оцениваемого, тем больше он оперирует собственными представлениями.
На начальных этапах отсутствует глубина знаний и широта кругозора — картина весьма ограничена. И такая оценка завышает представление о своем уровне в 86% случаев.

Рекомендуем: как можно раньше переключайтесь от “внутренних” способов оценки (собственное мнение, опыт) на “внешние” — сами запрашивайте фидбэк от руководителя, атакуйте наиболее опытных коллег, сравнивайте задачи и способы их решения, ходите на собеседования в топовые компании, где уровень требований выше и тестовая база лучше и т.д. Оценку руководителя обязательно нужно объективизировать результатами из альтернативных источников, чтобы не попадаться в ловушку ограничений текущих возможностей и требований компании/отдела/проекта.

Но есть путь короче. Мы сами сформировали список требований топовых компаний для senior-специалистов. И обнаружили серьезный лаг, который образуется между уровнями middle и senior.

Если вы не знаете, куда идете, то скорее всего окажетесь где-нибудь не там




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

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

Итак, кто же такой super-Senior? Чтобы формализовать требования, нам пришлось пройтись по максимуму и собрать воедино все, что предъявляют компании уровня Яндекс, Luxoft, Mail.Ru Group и даже Google в открытых источниках. А также верифицировали эту информацию в беседах с руководителями разработки именитых компаний.

Hard Skills

1. Чистота кода;
2. Верхнеуровневые Hard Skills:

  • Знание алгоритмов и структур данных (это база, без которой никуда);
  • Знание принципов ООП;
  • Знание современных фреймворков (и чем длиннее список, тем лучше; регулярное пополнение приветствуется);
  • Понимание принципов проектирования, основных архитектур (самостоятельно проектирует систему/модуль как хедлайнер проекта, либо участвует в проектировании крупных систем; минимально — решает объемную задачу с учетом текущей архитектуры проекта);
  • Знание паттернов проектирования (вовремя распознать и применить, а не изобретать велосипед; в широком смысле — это общение в команде на одном языке для быстрого нахождения решения или оценки решения коллег);
  • Опыт взаимодействия как с реляционными, так и NoSQL СУБД, построения к ним запросов, навыки оптимизации и управления;
  • Понимание принципов организации тестирования, владение юнит- тестированием, в идеале — переход на автоматизированное тестирование вместо ручного;
  • Владение хотя бы одной системой контроля версий (чаще всего нужна конкретная, в зависимости от требований компании).

Soft Skills и профессиональный кругозор
Те самые загадочные требования, отчаянно недооцениваемые самими программистами. Зачастую в компании руководство и HR оперируют понятием “командности” и “ответственности”, но никак не формализуют ни их критерии, ни их проявления в жизни. Как следствие — 90% разработчиков не упоминали эти аспекты как важные для развития.

  • Понимание гибких методологий разработки, способность с ними работать и адаптировать их под специфику проекта;
  • Наставничество: умение брать под свое крыло junior-ов, новичков, а иногда и всю команду в случае острой необходимости;
  • Способность находить и предлагать технологии, инструменты для наилучшей реализации, грамотная оценка комплекса задач;
  • Навыки работы в команде: выработка договоренностей, принятие командных решений, поддержание отношений, нацеленность на командный результат, следование общим интересам;
  • Уровень личностной ответственности — принятие ответственности в сферах: целей и планов, профессиональных взаимоотношений, руководства, карьерного развития.

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

Подводя итог, оценивать себя адекватно с использованием максимального количества внешних ресурсов крайне важно. Дабы избежать классической проблемы на рынке труда — “ожидания разработчиков vs. реальность компаний.” Когда разработчики оценивают свои навыки и их стоимость выше, чем это готовы делать компании. А также надеются на быстрый взлет и развитие, чего в такой мере не происходит (подробнее — в следующей статье).

P.S. В первоначальной версии статьи мы предлагали пройти тест всем желающим. Однако, мы не ожидали такого мощного наплыва респондентов. И были вынуждены были закрыть тест, чтобы быть способными обработать текущие ответы и результаты тем, кто оставил контактные данные. Просим заполнивших тест набраться терпения :)
Теги: оценкакарьераразвитиеseniormiddlejuniorтребованияassessmentпродвижениеперспективы профессииинсайтлайфхакskillsкругозорисследованиетест
Хабы: Терминология IT Исследования и прогнозы в IT Карьера в IT-индустрии Лайфхаки для гиков IT-компании
Всего голосов 32: ↑17 и ↓15 +2
Комментарии 218
Комментарии Комментарии 218

Похожие публикации

Лучшие публикации за сутки