Как стать разработчиком

Добавлено 3 октября 2023 г.
Как стать разработчиком

По данным Forbes, в январе 2023 года количество вакансий для IT-специалистов в России увеличилось на 63% по сравнению с аналогичным периодом 2022-го. Спрос на квалифицированных разработчиков растет, зарплату им предлагают высокую. Но можно ли войти в профессию, не получая образования в университете?

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

Введение: кто такой разработчик и почему это хорошая профессия

Перед тем как начать рассматривать профессию разработчика, стоит понять, кто это вообще такой, чем он занимается и чем привлекательна работа на данной позиции.

Определение профессии разработчика

Разработчик в IT — специалист, создающий программное обеспечение, которого в обиходе чаще называют программистом. Это широкое понятие, поскольку термином «разработка» обозначают программирование на разных языках для решения разных задач:

  • Десктопная разработка. Подразумевает разработку программного обеспечения, использующегося в быту и на производстве для решения повседневных и рабочих задач. Самые распространенные языки в этой сфере — C#, C++, Python. Как раз на них написана большая часть софта для Windows.

  • Веб-разработка. Создание программ для обеспечения работы сайтов и серверов. В основном они пишутся на языке JavaScript, но могут использоваться и PHP, Python. В широком смысле веб-разработка включает не только создание скриптов, но и написание кода на HTML.

  • Data Science. Включает анализ. обработку и представление данных с помощью программных инструментов. Чаще всего использует языки Python и R.

  • Системное программирование. Включает разработку неприкладных программ. Обычно они обеспечивают деятельность операционных систем. Чаще всего используют языки Python и Bash.

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

Преимущества профессии

Вот несколько причин, по которым стоит получить профессию IT-разработчика:

  • Заработная плата. Пожалуй, это главная мотивация желающих освоить навыки программирования. Квалифицированным IT-разработчикам хорошо платят, их заработная плата на начальных позициях может превышать ₽150 000, и это не в Москве и Санкт-Петербурге, а в регионах.

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

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

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

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

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

Программист должен обладать навыками, необходимыми для работы. Их можно разделить на две большие группы: технические и так называемые soft skills. Для успешного развития в профессии и карьерного роста одинаково важны и те и другие.

Технические навыки

Технические навыки, или hard skills — это совокупность профессиональных знаний и умений, которые определяют квалификацию специалиста и позволяют ему работать. В IT к ним относятся следующие:

  • Основы информатики. Ее нужно знать от самых азов. Конечно, никто не требует уметь доказать теорему Фуко. Но понимать принципы работы ЭВМ, различать типы данных и их особенности, знать булеву алгебру, двоичную, шестнадцатеричную систему счисления необходимо — все это и есть математическая основа разработки.

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

  • Знание принципов объектно-ориентированного программирования (ООП). При его использовании за основу берут абстрактные объекты, а не конкретные функции и процедуры. ООП сейчас применяется практически во всех современных языках программирования, поэтому без его понимания их освоение невозможно.

  • Знание работы алгоритмов. Они представляют собой последовательность действий, применяющуюся к входным данным для получения результата, и являются основой любой программы. Чтобы решить конкретную прикладную задачу, нужно понимать, как они работают.

Помимо этого, для работы нужно знать языки программирования. Обычно специалист начинает с какого-то одного и доводит его до совершенства. Конечно, можно владеть несколькими сразу, но это непросто. У современных языков обширная документация, которую долго, а иногда и трудно осваивать. Ее изучение может занимать первые год-два работы новоиспеченного разработчика. В качестве примера можно привести Python, по которому есть огромное количество технических материалов.

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

Soft skills

Soft skills — это совокупность неспециализированных навыков, которые нужны в работе. Они важны не меньше технических, поскольку от них зависит скоординированность и умение работать с другими членами команды. К ним относятся:

  • Стрессоустойчивость. Разработчик часто сталкивается с непредвиденными событиями и авральными ситуациями. Он должен спокойно их переносить и преодолевать возникшие в ходе работы трудности.

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

  • Способность к самообучению. IT постоянно развивается: появляются новые языки, методики. Поэтому просто получить образование в соответствующей сфере мало — нужно еще регулярное самообразование, без которого знания специалиста быстро станут неактуальными.

  • Тайм-менеджмент. Разработчик часто выполняет несколько задач одновременно, поэтому он должен грамотно распределять свое время и быть дисциплинированным. Это особенно важно при удаленной работе.

Также почти всегда нужно знание английского языка. Часто приходится работать с клиентами, коллегами или руководством из-за рубежа, поэтому общаться придется на нем. Степень владения им зависит от целей специалиста и особенностей работы. Где-то достаточно поверхностных знаний, в других случаях нужно свободно читать и разговаривать по-английски.

Образование и подготовка

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

Степень в области информатики или смежной области

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

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

Есть промежуточный вариант — обучение в ССУЗах, где также готовят разработчиков. Из-за отличающейся программы знаний там дают меньше, поэтому придется изучать много материала самому. Минус этого пути в том, что некоторые компании не рассматривают кандидатов со средним специальным образованием или ограничивают их в карьерном росте. Но в IT это скорее исключение, так как в отрасли ценятся в первую очередь реальные навыки специалиста, а не пройденное им обучение.

Самообразование и онлайн-курсы

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

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

Поэтому лучше выбрать онлайн-курсы, где студенты занимаются под руководством наставника. Они помогут не только освоить программирование с нуля и получить стартовую практику, но и повысить квалификацию или сменить направление работы.

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

Еще один весомый аргумент в пользу онлайн-курсов — удобство. Заниматься можно из дома, получая при этом знания от реальных преподавателей на вебинарах. График обучения подбирается с учетом возможностей студента, поэтому подготовку можно совмещать с учебой или работой.

Сертификаты

Этот путь подходит специалистам, уже обладающим навыками в программировании и желающим подтвердить их. По сути, сертификация — это что-то вроде экзамена на профессиональную пригодность.

Большая часть сертификатов международные и дают возможность устроиться в зарубежную компанию. К числу наиболее авторитетных можно отнести:

  • AWS Certified DevOps Engineer — Professional;

  • Microsoft Certified: DevOps Engineer Expert;

  • сертификат Linux Foundation;

  • Puppet Certified Professional;

  • сертификат Йоркского университета.

Всего же их более двух десятков. Сертификацией занимаются независимые аккредитационные центры, образовательные организации или компании, разрабатывающие программное обеспечение (как в случае с Linux Foundation или Microsoft).

Общероссийская сертификация пока что не развита. Министерство цифрового развития ввело ее для работников информационной безопасности, но на этом процесс приостановился. В настоящее время сертификаты выдаются отдельными компаниями, работающими в IT. Но они признаются не всеми участниками отраслевого рынка, поэтому большого смысла в них нет. Так что целесообразнее смотреть в сторону международной сертификации, дающей программисту гораздо больше возможностей.

Сертификат выдается и по окончании онлайн-курсов. Но такая бумага не всегда котируется за рубежом. Впрочем, для международной сертификации все равно нужны профессиональные навыки, ведь именно их она подтверждает. Поэтому доступа на старте к ней все равно не будет. Зато будет возможность получить начальные знания на курсах для дальнейшего развития.

Реальный опыт

В разработке важна практика. Без нее работодатели берут неохотно, а если и предлагают вакансию, то на низкооплачиваемые позиции.

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

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

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

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

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

Проекты с открытым исходным кодом

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

Сейчас крупнейший opensource-проект — Linux. Подключение к нему происходит поэтапно. Сначала разработчикам предлагают отслеживать и устранять ошибки. Если участник хорошо себя зарекомендовал, спустя определенное время они начинают писать код, то есть выполнять полноценную работу.

Linux не единственный проект с открытым исходным кодом. Кроме него, есть много других крупных opensource-разработок, среди которых:

  • Chatwoot;

  • Amplication;

  • Dokz;

  • Partyrown.

Главный плюс наработки опыта в крупном opensource в том, что там нужны специалисты разного профиля, поэтому работа найдется для каждого.

Если условия проекта позволяют, то результат работы в нем можно добавить в портфолио и показать работодателю при трудоустройстве. Как правило, положения о том, можно ли это делать, содержит лицензионное соглашение, поэтому перед участием стоит с ним ознакомится.

Так как большинство проектов opensource зарубежные, для работы на них потребуется хорошее знание английского языка.

Стажировка

Отличный способ набрать опыт — работа стажером в IT-компании, предлагаемая многими фирмами. Занимающий эту должность трудится под руководством более опытного сотрудника, выполняя простые задачи начального уровня. При этом он также получает заработную плату, хотя и меньше, чем полноценный программист. Например, в Москве доход стажера составляет в среднем ₽40 000–50 000. По меркам программирования это мало, но попасть без опыта на другие позиции бывает крайне сложно.

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

Портфолио

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

Поиск работы в области разработки

Итак, знания и навыки получены. Но это только полпути — теперь нужно найти работу. Несмотря на спрос на кадры в IT, начинающему специалисту бывает трудно это сделать. Но, если правильно подойти к поиску, он будет эффективнее и быстрее.

Резюме и сопроводительное письмо

Первый шаг после подбора вакансий — это рассылка резюме в подходящие компании. Оно должно содержать следующую информацию:

  • Основные данные о соискателе. Это ФИО, контакты, другая информация, которую пожелает указать специалист.

  • Сведения об обучении. Это данные о профессиональной подготовке, ее продолжительности, направлении, организации, где она проходила.

  • Информация об опыте работы. Указывается, когда, где и на каких позициях работал соискатель. Если он трудоустраивается впервые, об этом заявляют прямо или исключают соответствующий пункт из резюме.

  • Профессиональные навыки. Здесь указывают, что умеет соискатель. Например, умеет писать программы на Python. Конечно, это утрирование — навыки нужно расписать более подробно.

  • Дополнительная информация. Тут кратко рассказывают о себе, своих положительных и отрицательных качествах. При составлении данного пункта лучше проявить умеренную креативность — это может улучшить впечатление работодателя.

Если у соискателя есть рекомендации от кого-либо (например, от преподавателя), об этом тоже надо сообщить.

Резюме нужно подкрепить сопроводительным письмом. Оно составляется в свободной форме, но есть общепринятые стандарты документа, устанавливающие его содержание. Он должен включать:

  • информацию о получателе;

  • данные об отправителе;

  • сведения о приложениях (то есть резюме).

Если документы направляются в электронном виде, то все это можно прописать в письме email, к которому будет приложено все остальное.

Поиск вакансий

Откликаться на вакансии стоит уже во время обучения. Если делать это после выпуска, поиски могут затянуться — давшие объявление компании иногда подолгу рассматривают резюме или даже игнорируют его, найдя нужного специалиста.

Многие при подборе обращают внимание в первую очередь на заработную плату. Безусловно, это важно, но у программиста без опыта доход всегда будет ниже. Главное, что он получает на старте, — это опыт, способный помочь в карьерном росте и профессиональном развитии. Из этого и надо исходить:

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

  • Искать компании с опытными разработчиками. Именно у них и будет перенимать опыт начинающий. А он в IT очень важен.

  • Искать проекты с серьезными задачами для новичков. Если начинающему разработчику постоянно будут поручать легкие задания, он ничему не научится. Поэтому нужно уточнять, в чем суть работы, — она не должна ограничиваться самым простым.

Также нужно узнать, есть ли возможность работать удаленно.

Подготовка к собеседованию

Во многом успех трудоустройства зависит от того, как соискатель покажет себя на собеседовании, поэтому к нему важно правильно подготовиться. Для этого нужно:

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

  • Уточнить, что нужно взять с собой. В разных компаниях требования могут отличаться. Обычно при себе нужно иметь портфолио, резюме, но есть вероятность, что потребуются другие документы.

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

Также стоит проработать ответы на вопросы, которые могут задать на собеседовании:

  • какую пользу соискатель принесет компании;

  • каким он видит свое развитие на новом месте;

  • какие профессиональные достижения у него есть;

  • какие у него положительные и отрицательные стороны.

Все это надо подать так, чтобы выставить себя с положительной стороны и понравиться потенциальному работодателю. Часто как раз от ответов на данные вопросы зависит, примут на работу или нет.

Непрерывное обучение и развитие

Повышение квалификации — важная часть IT. Сами языки программирования и документация к ним меняются, поэтому, чтобы сохранять профессиональные навыки, нужно постоянно узнавать новое. Это можно делать разными способами.

Обучение новым языкам программирования

Часто программистам приходится осваивать новый язык программирования. Ситуацию можно легко проиллюстрировать примером из реальной жизни. В 2015 году требовались специалисты, пишущие на Java, — в это время активно развивался рынок мобильных приложений и онлайн-сервисов, где требуется этот язык. В 2023 году лидирует Python, так как спрос в основном на десктопные, прикладные и системные программы. В секторе Java уже нет такого спроса на кадры и таких доходов, как раньше. Поэтому многим пришлось переучиваться.

Учить новый язык бывает сложно и долго, но это единственный способ сохранить на рынке труда конкурентоспособность. Чтобы облегчить его освоение, можно воспользоваться онлайн-курсами. Это поможет получить новые знания, навыки или вводную информацию для самостоятельного изучения.

Участие в IT-сообществах и конференциях

Часть самоподготовки — участие в профессиональных мероприятиях:

  • семинарах;

  • конференциях;

  • презентациях.

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

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

  • Stack Overflow. Англо-американский проект, цель которого — сбор знаний о программировании.

  • Хабрахабр. Одно из крупнейших русскоязычных сообществ программистов, публикующее информацию о решении прикладных задач, фрагменты кода и другие полезные данные.

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

Это лишь часть комьюнити программистов. Русскоязычных среди них мало, поэтому для получения данных потребуется знание английского языка.

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

Чтение IT-литературы и блогов

Онлайн-курсы, ивенты и сообщества — эффективные способы повышения уровня знаний, но никто не отменял классический способ — чтение литературы. А ее много, причем для разных направлений IT. В профильных книгах раскрываются особенности практического применения языков, полезные фишки и другие вещи, необходимые в работе. Однако программисту, осваивающему их, потребуется знание английского языка — сейчас большинство материалов на нем. Русскоязычные тоже есть, но их мало и многие в переводе, который зачастую искажает информацию.

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

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

Только у нас Только у нас