По данным платформы «Авито Услуги», 23% жителей России хотели бы начать карьеру в сфере информационных технологий. Но состояться в профессии сразу же после пары курсов и стажировки не получится. Путь от студента образовательной платформы до разработчика, которого можно назвать хорошим, непростой. Мы собрали рекомендации от тех, кто добился успеха в сфере информационных технологий, чтобы помочь новичкам построить свою карьеру.
Чем хороший разработчик отличается от посредственного
Почему стоит стремиться стать хорошим разработчиком? Ответ очевиден: у специалиста, постоянно совершенствующего свои навыки, шире окно возможностей. Он может работать в компаниях с лучшими условиями, выбирать более интересные проекты и, конечно, получать соответствующую зарплату. Нельзя забывать и о том, что сфера IT крайне динамичная, и без постоянного развития можно обнаружить, что твои навыки стали невостребованными.
Хороший разработчик не обязательно занимает высокую ступеньку в корпоративной иерархии. Во-первых, в разных компаниях грейды могут серьёзно различаться: требования к джуну в одном месте могут соответствовать позиции хорошего мидла+ в другом (уровня дохода, кстати, это тоже касается). Во-вторых, стремление развиваться в профессии, интерес к своему делу и перспективы нужны как новичку, так и разработчику со стажем.
Дмитрий Федоров
Начальник отдела разработки ПО в НИЦ «ИРТ»
Хороший разработчик не стоит на месте. Каждый год выходят новые технологии или новые подходы к решениям задач. Необходимо быть в курсе того, что происходит в профессиональном мире, в противном случае через несколько лет разработчик может стать невостребованным.
Важно, чтобы человек стремился к изучению нового, осваивал как базу, так и новые технологии. И нельзя забывать о мягких навыках — умении взаимодействовать с командой и заказчиком, распределять рабочее время, анализировать ситуацию.
Григорий Вахмистров
Главный инженер-программист в «ПСБ Лаб»
Понятие хорошего разработчика весьма субъективно. На мой взгляд, такой специалист автономен и может самостоятельно разобраться практически в чём угодно: как в технологиях, так и в бизнес-требованиях. При этом он не стремится выполнять подряд все указания руководства или старших коллег, а умеет обосновать, почему не стоит браться за те или иные задачи — например, внедрение технологий, которые затруднят поддержку продукта, неверные архитектурные решения, ошибки проектирования бизнес-требований и так далее.
Почему вообще стоит прислушиваться к сеньорам
Каждый тимлид, сеньор или технический менеджер когда-то был стажёром и джуном. Исключения, конечно, есть, но они достаточно редки. Каждый из опытных разработчиков совершил достаточное количество ошибок, которые и помогли ему получить опыт. Благодаря советам старших коллег можно ускорить своё профессиональное развитие, осознанно выбирая лучшие практики.
Ещё один важный момент: опытные разработчики заинтересованы в развитии молодых специалистов. На рынке остро ощущается дефицит квалифицированных кадров, способных решать задачи самостоятельно — Минцифры оценивают этот показатель в 500–700 тысяч человек. Поэтому тимлиды искренне заинтересованы в расширении команды перспективными новичками.
При этом стоит отдавать себе отчёт в том, что опыт одного человека не может быть универсальным. К любому совету стоит подходить с долей здорового скептицизма. Иногда на задачи лучше взглянуть с нескольких точек зрения.
Совет 1. Слушайте советы старших коллег, но не забывайте о критическом мышлении.
Какие пути развития есть у хорошего программиста
Прежде чем приступать к каким-то действиям, нужно определиться с вектором своей карьеры. Для этого нужно понять, в каком направлении вам интереснее развиваться. Одним разработчикам интереснее техническая часть, другие хотят расти как управленцы, третьи мечтают создать собственный продукт. Для каждого из направлений нужно развивать собственный скиллсет.
Совет 2. Составьте дорожную карту своего профессионального развития.
Григорий Вахмистров
Главный инженер-программист в «ПСБ Лаб»
Если вы хотите составить индивидуальный план развития для роста в конкретном проекте, должности или зарплате, подойдите с этим вопросом к руководителю. Сделать это можно на встрече 1-1 или в рамках отдельного обсуждения. По итогу встречи должен быть сформирован документ, в котором чётко прописаны цели, сроки и критерии их достижения. Если такие документы в компании не предусмотрены, сформулируйте то же самое устно. Лучше сразу договориться с руководителем о регулярном совместном отслеживании прогресса. Можно назначить для этого ежемесячные встречи 1-1. Такие митинги помогут выровнять ожидания как сотрудника, так и руководителя. У обеих сторон будет понимание, возможно ли достижение договорённостей в указанные сроки, либо же есть какие-то отклонения от графика. Заодно сразу можно обсудить причины отклонения и способы их коррекции.
Будем честны: не во всех компаниях внедрены процессы, направленные на развитие сотрудников. В этом случае заниматься составлением дорожной карты придётся самостоятельно. Определите для себя, в какую сторону вы хотели бы расти, составьте список необходимых навыков и подумайте, как можно их развить. Обязательно ставьте себе внутренние дедлайны — например, через полгода изучить новую технологию или через месяц прочитать книгу по тайм-менеджменту.
Можно попросить помощи в профессиональных сообществах — более опытные коллеги подскажут, в каком направлении двигаться и где искать нужную информацию. При этом не забывайте о критическом взгляде на чужие советы.
Дмитрий Федоров
Начальник отдела разработки ПО в НИЦ «ИРТ»
В первую очередь необходимо развивать те навыки, которые трудно даются. Можно составить список задач, которые не получается выполнять самостоятельно, обобщить их и подтягивать скиллы, которых не хватает для решения.
Важно определиться с направлением работы. Например, если разработчик пишет на С++ в компании, которая занимается ИИ, нужно изучать, что нового происходит не только в С++, но и в ИИ, а также в смежных областях.
Дорожная карта развития будет инерционной: получение первоначальных знаний — устранение пробелов, мешающих работе — изучение профессиональной области — применение полученных знаний на практике — снова изучение.Если фирма, в которой работает программист, может не дать ему профессионального развития (например, пилят старый проект на старом стандарте, и новое в нём не появляется), нужно выбирать: возможно, стоит выбрать другую компанию, в которой будет больше простора для развития, или в этой компании искать другие пути.
Что делать, чтобы стать хорошим разработчиком
Дорожная карта позволит понять, на развитие каких навыков нужно сделать упор. Среди них будут как знания технологий, так и мягкие навыки.
Конкретные знания и умения будут зависеть от разработанной вами дорожной карты, но есть набор навыков, которые пригодятся любому разработчику. Например, если вы хотите публичности, стоит подтянуть умение выступать перед аудиторией и создавать эффектные презентации, а если вам интереснее менеджмент, углубить знания психологии.
Совет 3. Изучайте базовые технологии.
Некоторые технологии быстро изменяются, но существует база, знание которой необходимо на любом этапе карьеры.
Игорь Симдянов
Архитектор в Нетологии
Ряд технологий можно смело изучать в любой момент, хоть в начале карьеры, хоть в зените:
любой императивный или объектно-ориентированный язык программирования;
реляционные базы данных и язык запросов SQL;
операционная система UNIX (в 2024 году речь исключительно о Linux);
регулярные выражения;
система контроля версий git;
технология Docker;
объектно-ориентированное программирование;
NoSQL-базы данных, хотя бы Redis.
В зависимости от интересов разработчика этот список можно расширять дополнительными технологиями и возможностями. Однако перечисленные выше будут жить долго, и поэтому потраченное на их изучение время многократно окупится.
Совет 4. Учитесь писать хороший код.
Довольно очевидный пункт, но его нельзя не упомянуть. Хороший разработчик в первую очередь должен уметь писать хороший код. При этом не нужно бояться делать ошибки: без них не получится освоить новые навыки. Однако каждая ошибка должна учить вас чему-то.
Игорь Симдянов
Архитектор в Нетологии
Разработчику нужна постоянная тренировка в написании кода. Не можете придумать себе задач? Идите на codewars.com, решайте задачи оттуда. Не думайте о том, что у вас получается хуже, чем у других: главное — решить задачу. Мастерство придёт. Остальные зачастую совершенствовали свои навыки годами, и у вас тоже, наверняка, на это уйдёт изрядное количество времени.
Часто новички (и не только они) боятся разрабатывать плохой код, и навык в кодировании не совершенствуется. Человек годами живёт в мечте: когда-нибудь я освою язык программирования и буду программировать как профи, но до этого я писать код не буду. Это очень плохой подход. Никто не может вам запретить тренироваться в программировании, ссылаясь на то, что у вас неэффективный или не соответствующий соглашениям код.
Совет 5. Полюбите процесс написания кода.
Чтобы развиваться в профессии, нужна сильная мотивация.
Причём одной лишь финансовой составляющей для мотивации недостаточно — важно искренне интересоваться технологиями. Пробуйте необычные подходы к работе — например, геймефицируйте рабочий процесс — изучайте новые стеки, ищите направление деятельности, которое вам наиболее близко. Возможно, для этого придётся несколько раз менять сферу, чтобы попробовать разные подходы. В больших компаниях это можно сделать внутренним переводом.
Совет 6. Изучайте не только свою предметную область, но и соседние.
Важно знать общие принципы создания программного продукта. Если вы в будущем хотели бы возглавить подразделение, важно иметь представление о задачах и процессах каждого участника команды. Но даже если вы не стремитесь в управленцы, такие знания позволят более эффективно взаимодействовать с коллегами из других подразделений, а также откроют новые карьерные перспективы.
Григорий Вахмистров
Главный инженер-программист в «ПСБ Лаб»
Если говорить про развитие в целом, то рано или поздно разработчик приходит к тому, что бывают ситуации, когда необходимо взять на себя ответственность за ту или иную часть проекта, которая изначально не входила в его зону ответственности. Например, ушёл аналитик и нужно собирать требования с бизнеса самостоятельно; архитектор в отпуске, а нужно срочно согласовать архитектуру нового сервиса и приступить к реализации; пришли в стартап/новый проект, где ещё нет DevOps, и нужно настроить хотя бы какую-то базовую инфраструктуру, чтобы обеспечить процесс разработки для себя и коллег... На мой взгляд, должно быть понимание всего процесса разработки программного обеспечения, начиная со сбора и формирования требований, заканчивая инфраструктурой, эксплуатацией и поддержкой. Безусловно, основной фокус должен быть на разработке, но важно понимать не только свою работу, но и работу коллег, а также весь процесс разработки ПО в целом.
Совет 7. Спокойно относитесь к рутине.
Программирование — это не только решение интересных задач. Разработчику приходится сталкиваться со скучными однообразными задачами или нудным поиском ошибок. Это часть профессии, в которой тоже нужно искать положительные моменты. Изучая непонятные и запутанные области знаний, вы тренируете нейронные связи. В дальнейшем осваивать новые технологии будет быстрее.
Игорь Симдянов
Архитектор в Нетологии
Запаситесь терпением и не гипнотизируйтесь историями успеха. Все любят рассказать про то, как они за неделю освоили новый язык программирования. Однако почему-то нигде не встречаются рассказы, как в программе на 60 строк двое суток можно искать пропущенную точку с запятой, попутно поссорившись со всеми друзьями и родными из-за скверного настроения. Но только такие ситуации вас приближают к профессиональному уровню. Причём поначалу это может показаться бесполезной потерей времени. Это не так. Это и есть процесс обучения, именно через неприятности, отладку вы и становитесь профессионалом. И не смотрите на часы и рекламу. Идите к своей цели, даже если это займёт 10 лет. Оно того стоит.
Совет 8. Развивайте навык понимания задач.
Если руководитель просит вас сделать что-то, убедитесь, что вы правильно уяснили цель задачи. Для этого нужно уметь правильно формулировать вопросы — и не стесняться их задавать.
Дмитрий Федоров
Начальник отдела разработки ПО в НИЦ «ИРТ»
Хороший руководитель должен уметь поставить задачу, а хороший разработчик — правильно понять её. Если что-то непонятно, не нужно стесняться задавать вопросы и просить объяснить подробнее. Здесь разработчик и руководитель должны работать совместно.
Парадоксально, но с опытом этот навык может стираться. Когда разработчик чувствует себя достаточно уверенно, он считает, что подсказки ему не нужны — и в результате на получение нужного результата тратится больше времени. Такое вот проявление эффекта Даннинга — Крюгера.
В дальнейшем придётся развить ещё одно умение, связанное с задачами — а именно постановка. Всем известно, какой результат получается без внятного ТЗ. По возможности стоит избегать этого.
Совет 9. Учитесь писать хорошие тексты.
Разработчику приходится много писать — письма коллегам и клиентам, комментарии к коду, техническая документация. Важно, чтобы тексты были понятными. Это существенно сократит объём коммуникаций, освободив время для решения других задач. Можно развить навыки в написании текстов, прочитав книги Максима Ильяхова — «Пиши, сокращай», «Новые правила деловой переписки», «Текст по полочкам».
Совет 10. Тренируйтесь искать информацию.
Для многих задач уже существуют готовые решения. Хороший разработчик не будет изобретать велосипед и воспользуется другими наработками. Умение находить ответы на свои вопросы — важный скилл, развитию которого нужно уделять внимание.
Дмитрий Федоров
Начальник отдела разработки ПО в НИЦ «ИРТ»
Умение гуглить — важное качество разраба. Хороший разработчик умеет найти информацию для решения той или иной проблемы. Благо сейчас ресурсы позволяют это сделать. Если бегать по каждой мелочи к старшим коллегам, то хорошим это точно не закончится.
Совет 11. Не забывайте о soft skills.
Любой программный продукт — это не техническая система, а социально-техническая система. Эффективное взаимодействие с коллегами и понимание потребностей заказчиков не менее важно, чем написание качественного кода.
Григорий Вахмистров
Главный инженер-программист в «ПСБ Лаб»
Чтобы добиться успеха в профессии, нужно 100% уметь в софты — выяснять требования у бизнеса, согласовывать их с заказчиком, планировать выполнение задач с менеджером, защищать свои решения на design review, онбордить коллег, менторить новичков. Программные продукты — это не техническая, а социально-техническая система, и эффективное взаимодействие с коллегами не менее важно, чем написание качественного кода. Его, кстати, тоже нужно уметь писать: требования по софтам не отменяют требований по хардам.
Заключение
Путь разработчика, возможно, не проще пути джедая. Важно понимать, чего вы хотите, и слушать советы наставников и старших коллег.
Слушайте советы старших коллег, но не забывайте о критическом мышлении.
Составьте дорожную карту своего профессионального развития.
Изучайте базовые технологии.
Учитесь писать хороший код.
Полюбите процесс написания кода.
Изучайте не только свою предметную область, но и соседние.
Спокойно относитесь к рутине.
Развивайте навык понимания задач.
Учитесь писать хорошие тексты.
Тренируйтесь искать информацию.
Не забывайте о soft skills.
Ваш план развития может меняться со временем — почти каждый разработчик на своём карьерном пути проходит ряд трансформаций. Но знания и умения, которые вы приобретёте в процессе, помогут вам добиваться профессиональных целей и стать тем, на кого будут равняться джуны нового поколения.
Ближайшие курсы по программированию:
Топ бесплатных курсов и занятий:
Kerman
Очень хороший разработчик должен уметь писать плохой код. С полным пониманием того, какие углы срезал и какой ценой. Собственно, чтобы осмысленно писать плохой код, надо сначала научиться писать хороший. А чтобы научиться писать хороший код, надо написать много плохого. Собственно, Programming, Motherf*cker