Найти в Дзене

Как стать программистом? Восемь шагов к профессии

Оглавление

Мир программирования кажется простым и понятным: интересная специальность, высокий доход, заманчивые перспективы. Как приобрести такую профессию? Анастасия Зеленская, руководитель БЮ «Программирование» онлайн-университета digital-профессий «Нетология», рассказывает о том, как стать программистом и какими качествами для этого нужно обладать.

Сколько программистов требуется сегодня?

Качественные программисты нужны всегда. Согласно исследованию ФРИИ, через 10 лет на рынке IT не будет хватать двух миллионов специалистов, из них 14% – разработчики. Существует большой кластер программистов, имеющих опыт работы на иностранных рынках: к примеру, среди моих знакомых, а также преподавателей «Нетологии» много профессионалов, работавших в крупных IT-компаниях за рубежом. Рынок IT-технологий развивается быстро – появляются новые стартапы без крупных портфелей инвестиций и небольшие веб-студии, которым требуются программисты среднего уровня. Такие специалисты  развиваются в рамках небольшой компании, переходят в крупные корпорации, а иногда уезжают за рубеж.

-2

Какие программисты нужны стране больше всего?

Сегодня самый востребованный язык программирования в мире – Java. Также в списке семи наиболее популярных языков программирования: Javascript, С++, С#, Ruby, PHP, Objective-C и Python. Большинство программистов, которые уже знают какой-либо язык, в качестве дополнительного хотят изучить Python. Как отмечают на HackerRank, «Python славится своей простотой, читабельностью кода и широкой доступностью библиотек для научных исследований».

Где учат на программиста?

Во всех крупных вузах, таких как МГТУ им. Н. Э. Баумана, МФТИ, МИФИ, ВШЭ и МГУ, есть кафедра информатики, которая готовит крутых программистов с хорошей базой знаний. Если вы планируете в дальнейшем развивать практические навыки, то вам потребуются прикладные курсы, например, программы «Нетологии» по направлению «Программирование». Вы сможете освоить профессию fullstack-дизайнера, front-end- и back-end-разработчика, стать экспертом по аналитическим данным (data scientist), разработчиком на языках JavaScript, Ruby on rails, Python, специалистом по мобильной и адаптивной верстке или Android-разработчиком.

-3

Сколько получают программисты?

По данным сервиса Мой Круг, средняя зарплата программиста в 2018 году составила 101 847 рублей в месяц.

Начинающие программисты зарабатывают 50-80 тысяч рублей. Стоимость более опытных специалистов зависит от языка программирования, на котором они работают, специальности (front-end, анализ данных или мобильная разработка) и опыта. Программист продвинутого уровня (senior) может зарабатывать от 200 тысяч рублей, программист среднего уровня (middle) – около 120 тысяч рублей. Android-разработчик получает уже от 150 тысяч рублей.

Как стать программистом?

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

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

Общие упражнения:

  • Project Euler содержит более 500 математических задач (на теорию чисел, числовых систем и пр.), которые нужно решить, используя программирование (на любом языке).
  • Code Abbey хранит более 200 задач по программированию. За решения 125 из них выдают сертификат, чем мотивируют многих студентов.
  • Rosalind – это еще один сайт наподобие Project Euler, который предоставляет на выбор более 200 задач по биоинформатике.
  • Codingbat.com дарит упражнения по Java и Python как для новичков, так и для продвинутых программистов.
  • codegolf.stackexchange.com – сайт, на котором публикуют и обсуждают программистские головоломки.
  • Ruby Quiz – серия головоломок, в которых вас просят написать короткие программы различной сложности. Исходные решения описаны на Ruby, но их можно реализовать на любом языке.
  • Задачи с IT-собеседований – подборка задач на логику и программирование, к каждой есть подробный разбор решения.

Задачи из олимпиад по программированию:

  • UVa Online Judge – коллекция из сотен задач с олимпиад по программированию с онлайн-системой проверки решений.
  • TopCoder содержит сложные задачи на алгоритмы, собранные за годы с разных соревнований. Также несколько раз в месяц проводит олимпиады по программированию.
  • CodeForces похож на TopCoder, но содержит больше задач на соревнованиях и несколько особых фишек, включая «виртуальные соревнования».
  • Timus – то же, что и UVA. Содержит задачи с последних соревнований (мирового и регионального уровней).
  • SPOJ – похож на UVA, с огромным числом языков программирования на выбор.
  • USACO содержит несколько задач на алгоритмы с руководством по их решению.

Под определенные языки:

  • Для Prolog, Lisp и подобных языков посетите P-99 и L-99, наборы из 99 задач для повышения вашей эффективности в данных языках.
  • Python Challenge – объединяет загадки и головоломки, которые помогут вам серьезно прокачаться в Python.
  • 4Clojure – набор упражнений по программированию, специально разработанных под Clojure, Lisp-подобный язык.

Не ограничивайтесь задачами в рамках образовательного курса, ищите и выполняйте новые задания самостоятельно. По ссылке представлен список из 49 клонов игр, которые вы можете написать – выбор зависит от уровня сложности.  Хотите создать что-то новое? Посмотрите Idea Machine и The Internet Wishlist, где люди публикуют свои пожелания по программам, которые они хотели бы увидеть.

В большинстве учебных заведений можно приобрести базовые знания, в некоторых университетах – получить немного сверх базы, но всегда есть моменты, которые специалисту нужно найти в поисковике Google самостоятельно. Работа программистом предполагает решение нестандартных задач: чтобы с ними справиться, необходимо уметь ориентироваться в коде и понимать, как задачу решали другие разработчики.

-4

Где можно работать программистом?

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

Часто ли люди приходят в программирование из других специальностей?

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

-5

Существует ли в программировании гендерная дискриминация?

На мой взгляд, программисты – достаточно лояльное сообщество. Гендер и возраст не имеют особого значения. Самое важное – это твое портфолио.

В России и в мире существуют сообщества женщин-программистов, такие как Women Who Code Moscow.