Когда вы только начинаете изучать программирование, вы полны энтузиазма. Кажется, достаточно выучить нужный язык и устроиться в крупную компанию. На деле оказывается, что нужно знать все функции языка наизусть, выбирать лучшие решения на ходу, ещё английский учить и формировать команду. Рассказываем, как стать хорошим разработчиком и дорасти от джуниора до руководителя команды.
Выберите свою сферу
Чтобы не потерять интерес к работе через год, детально изучите разные направления и остановитесь на том, которое вам точно нравится. Подумайте, чем бы вам хотелось заниматься и какими видите свои результаты работы. Осознайте, что стать программистом быстро не получится, сколько бы вам ни говорила об этом реклама в интернете.
Вот какие направления в программировании сейчас актуальны:
- Фронтенд-разработка. Фронтенд — это то, что пользователь видит на сайте. Фронтендер верстает интерфейсы, продумывает кнопки, раскрывающееся меню, поп-апы и другие элементы интерфейса. Во фронтенд-разработку обычно приходят дизайнеры, которые умеют верстать сайты по готовому макету и способны научиться создавать макеты самостоятельно.
Если вы точно знаете, что хотите создавать интерфейсы, посмотрите подборку курсов для фронтенд-разработчиков. Средний срок обучения — от 6 до 12 месяцев
За это время вы научитесь прорабатывать макеты страниц в фигме и фотошопе, программировать интерактивные элементы на JavaScript, вносить в код изменения через систему контроля версий Git и работать в команде разработчиков
- Бэкенд-разработка. Бэкендер взаимодействует с серверной частью. Пользователи не видят его работы, но ощущают, когда сайт быстро грузится или, наоборот, не грузится вообще. От бэкендера, например, зависит, какие товары вам будут рекомендовать в интернет-магазине.
Узнайте, на каких языках чаще всего программируют бекенд-разработчики и как им обучиться, из нашей подборки
- Разработчик приложений. Разработчики приложений специализируются на iOS или андроид-разработке. По внешнему виду приложения могут быть одинаковыми, но операционные системы отличаются, поэтому код под них пишут на разных языках и в каждом свои особенности. Сравните плюсы и минусы разработки под iOS и андроид конкретно для вас, и после этого выбирайте язык программирования для обучения.
Подробнее о профессии разработчика приложений читайте в подробном обзоре профессии «Мобильный разработчик». Вы узнаете, сколько зарабатывают разработчики, что специалист должен знать и уметь, и как им стать
- Разработчик игр. Игровой программист разрабатывает игровой движок, пишет скрипты, создаёт визуальный интерфейс игры, продумывает программы для упрощения работы дизайнеров и реализует игровые механики. Часто в игровой индустрии хотят работать геймеры. Но помните, что программист занимается внутренней частью игры. Он не создаёт персонажей и сюжеты. Поэтому, если вы — фанат игр, подумайте, хотите ли находиться по эту сторону создания игр.
Собрали подборку курсов для разработчиков игр на Unity. Это популярная среда разработки онлайн-игр. Она позволяет создавать игры для смартфонов и планшетов
- Дата-сайнс. Дата-сайнс — это новая, но востребованная область разработки. Результаты работы дата-сайентиста вы можете видеть в общении с ботом, данные используют в машинном обучении и компьютерном зрении. В этом направлении навыки завязаны на математике.
В подборке «Топ-9 курсов по data science для новичков» вы кроме математики и программирования, изучите особенности использования нейронных сетей для решения реальных задач. С этими знаниями вы сможете строить модели машинного обучения и визуализировать большие объёмы данных
Как выбрать сферу программирования
Если с ходу выбрать одно направление сложно, воспользуйтесь этими советами:
- Общайтесь со специалистами. Даже если у вас нет таких знакомых, обратитесь на профессиональные форумы вроде Хабра, задайте интересующие вопросы. Спрашивайте про опыт работы, сложности и перспективы.
- Посещайте бесплатные вебинары. Онлайн-школы проводят бесплатные вебинары по профессиям, где вы на практике поймёте, чему придётся учиться и чем занимается специалист той или иной области.
- Учитесь программировать. Пробуйте написать несколько программ на разных языках программирования. Возможно, вам понравится один из них больше и вы определите для себя путь дальнейшего развития.
Пройдите наш тест на определение подходящих вам профессий. Он займёт пару минут, а в конце вы получите подборку курсов в соответствии со своими способностями и интересами
Далее подробно рассказываем, что нужно знать и уметь, чтобы получить первую работу, и как развиваться дальше — до мидла и сеньора.
Как стать с нуля джуниор-разработчиком
Если вы определились с профессией в IT, приступайте к обучению. При должном упорстве вы можете устроиться на работу стажёром уже через полгода.
Учитесь программировать
Для начала определитесь с языком программирования. Если вы уже выбрали сферу разработки, вам проще будет определиться с языком программирования. Для фронтенд-разработки учите JavaScript; для бэкенд-разработки дата-сайнс — Python; для разработки игры — C++, C# и Java; для разработки андроид-приложений — Java, для разработчика iOS-приложений — Swift.
Вам необходимо изучить переменные, типы данных, функции — это основа кода. Научитесь пользоваться средой разработки для написания и отладки кода — она упростит программирование и укажет ошибки. Изучите справочники и спецификации языка — это главные документы о языке программирования, из которых вы узнаете детальную информацию о нём: возможности языка, примеры использования.
Удобно учиться не по книгам или по видео, а на интерактивных онлайн-курсов вроде Hexlet. Практические упражнения здесь проходят на тренажёре. В нём вы попробуете свои силы в реальной среде разработки
Вспоминайте или учите математику
Больше всего она понадобится дата-сайентисту — ему нужны знания матанализа, линейной алгебры, теории вероятности и статистики и анализа временных рядов. Остальным программистам достаточно знания математики на уровне 11 класса, умение придумывать свои формулы и понимать, зачем нужна формула и что она делает.
Развивайте математическое мышление — оно помогает удерживать в голове больше информации, искать решения задач и выявлять взаимосвязи. Чтобы его развить, не пользуйтесь калькулятором, считайте в уме. Решайте задачи на логику, решайте головоломки, кроссворды и ребусы, играйте в шахматы и математические игры.
Придумайте пет-проект
Пет-проект— это проект, который вы делаете для себя в свободное время. Он поможет прокачать навыки, у вас появится проект для портфолио, а ещё полезное приложение или сайт. Вы можете придумать что-то новое или улучшить то, что уже существует.
Любое приложение для изучения иностранного языка, подсчёта калорий, чтения книг, прослушивания музыки можно улучшить. Подумайте, каких функций вам не хватает, какие лишние и загромождают приложение. И сделайте своё
Вы можете многого не знать в разработке, когда начнёте создавать свой проект. Но, пока вы над ним работаете, вы будете гуглить и разбираться, как работает каждая функция и как делать код красивым и коротким.
Устройтесь на работу
Ищите стажировку или вакансии, где готовы рассмотреть людей без опыта. Хорошо, если в компании за вами закрепят более опытного разработчика, который будет проверять ваш код и подсказывать, как исправить ошибки. Если компания маленькая, обучаться придётся самому: гуглить, спрашивать на форумах и в профессиональных чатах. В любом случае вы получите реальный опыт и поймёте, действительно ли разработка вам подходит.
Варитесь в среде
Посещайте профессиональные мероприятия — митапы и конференции. Там вы можете слушать лекции опытных разработчиков и узнавать новое, чтобы потом применять в своей работе. Такие мероприятия позволят вам сформировать профессиональные связи и ближе познакомиться с профессионалами из сферы IT.
Собрали для вас курсы для новичков в программировании. Выбирайте направление и учитесь у опытных разработчиков из goods.ru, EPAM, NVIDIA
Как стать мидл-разработчиком
Мидл-разработчик самостоятельно выполняет задачи — он сам разберётся, где взять макеты и какие инструменты использовать. Он знает язык программирования, среду разработки и Git, умеет использовать инструменты для упрощения работы: фреймворки, библиотеки, инструменты для тестирования. Он способен представить общую картину проекта и понять необходимость выполнения каждой конкретной задачи. Вот несколько советов для развития до уровня мидл-разработчика.
Улучшайте код
Чтобы стать мидл-программистом, впитывайте знания, которые дают вам старшие разработчики. Когда они проверяют ваш код, разбирайтесь, почему они советуют сделать так, а не по-другому. Анализируйте, старайтесь самостоятельно улучшить свой код.
Расширяйте кругозор в IT
Посещайте тематические мероприятия, развивайте общий кругозор в IT. Читайте тематические каналы в телеграме вроде «Типичный программист», следите за IT-мероприятиями на Timepad и в разделе «Мероприятия» на сайтах любимых компаний. Полезно общаться с разными специалистами из IT — разработчиками, тестировщиками, дизайнерами и проект-менеджерами. Каждый из них в дальнейшем может стать вашей путёвкой на новую работу или в интересный проект.
Работайте в компании с перспективами для развития
Для роста нужна сильная команда, где есть опытные разработчики. Если их нет, некому будет указывать на ваши ошибки, не у кого будет учиться. Устройтесь в компанию, которая разрабатывает крупный проект, а не создаёт однотипные сайты. В крупной компании вы разберётесь, как работает продуктовая команда и чем занимаются руководители команд. Даже если не захотите оставаться в ней надолго, вы сможете здесь создать собственный проект, продвинуть его в среде разработчиков и найти единомышленников для его развития.
Получите сертификат
Для разработчиков есть сертификации. Так, для Java есть сертификации от Oracle, а сертификацию для python-разработчиков проходите на сайте Microsoft. Работодатели редко смотрят на сертификат, но получение сертификации поможет вам понять свой уровень в разработке, вы выявите свои слабые места и сможете их исправить.
Прокачивайте отдельные навыки
Проще прокачивать скилы под руководством разработчиков с большим опытом. Они подскажут, как упростить решение задачи и как сделать лучше. Вы можете сосредоточиться на создании игр или мобильных приложений.
Топ-3 курса для мидл-разработчиков
Курс «Middle-разработчик игр на Unity» от Skillbox. За 6 месяцев вы научитесь лучше программировать на C#, делать сетевые игры и разрабатывать визуальные эффекты для игр. Вы поймёте как распределять игровые ресурсы и оптимизировать нагрузку на устройства
На курсах OTUS для дата-сайнс разработчиков, вы за 5 месяцев научитесь ускорять код, прогнозировать события и создавать рекомендательные системы. Вы последовательно освоите современные инструменты анализа данных и сможете на профессиональном уровне создавать модели машинного обучения
На продвинутых курсах от OTUS вы научитесь оптимизировать сборку, писать качественный код, проектировать сложные UI-компоненты и архитектуру приложения. Вы сможете определять целесообразность применения архитектурных паттернов и выстроите архитектуру под конкретное приложение
Как стать синьор-разработчиком
Синьор-разработчик — это программист и управленец, он ставит задачи программистам, следит за ходом разработки и помогает менее опытным коллегам решать задачи. Он способен вести проект с нуля: создавать команду, помогать менее опытным программистам и программировать самостоятельно. Он умеет вести переговоры с клиентом и своей командой, обсуждать с разработчиками их слабые и сильные места и предлагать способы улучшения навыков. Разберём, что именно поможет вам в развитии.
Общайтесь с людьми
Больше общайтесь с командой, учитесь конструктивно решать проблемные вопросы и учитывать мнение каждого. Важно уметь налаживать и внешнюю коммуникацию. Выступайте на конференциях и митапах с докладами — так вы научитесь говорить на публику, поделитесь знаниями, которые кому-то могут помочь и станете лицом компании.
Повышайте квалификацию
Развивайтесь дальше в тимлида-руководителя команды или оставайтесь в программировании и обучайте других. Предложите джуниор-разработчикам свою помощь: проверяйте код, отвечайте на вопросы из сферы программирования. Изучайте смежные сферы — если раньше только разбирались в технической части разработки, углубитесь в создание и продвижение продукта.
Изучайте психологию
Если вы всё же решите руководить командой разработки и общаться с клиентами, вам нужно развивать эмоциональный интеллект. Работая в команде, вы должны чувствовать настроение своих коллег, чтобы не было конфликтов и все чувствовали себя комфортно. Интересуйтесь, всё ли у них получается, нужна ли им помощь. Будьте другом и поддержкой для них. Вам поможет книга Марины Перескоковой «Мама, я тимлид!». Автор работала в «Яндексе» 10 лет и прошла путь от рядового сотрудника до управленца. Из книги вы узнайте, как организовать работу, чтобы все были довольны, как растить сотрудников и побороть синдром самозванца.
В подборке курсов для будущих управленцев собрали курсы, которые помогут стать эффективным менеджером и руководителем. Вы научитесь управлять командой, мотивировать и обучать коллег, оценивать ресурсы, использовать в работе технологии скрам и канбан
Коротко о главном
- Чтобы стать хорошим разработчиком, необходимо постоянно развивать свои навыки.
- Читайте новые статьи о разработке, смотрите недавно вышедшие видео.
- Общайтесь с другими разработчиками, задавайте вопросы. Нетворкинг даст новые знания и откроет новые возможности.
- Работайте в крупной компании, где будут специалисты уровнем выше вас — у них вы сможете многому научиться.
- Чтобы достичь высшего уровня разработки, важно развивать коммуникативные навыки, уметь выстраивать отношения с командой и клиентом.