Профессия программиста: кому подходит и какие есть перспективы

28 октября 2022 349

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

«Айтишница» из XIX века, Fortran и эзотерические языки. Как появилось программирование и программисты

Первым программистом считается женщина — дочь известного английского поэта Джорджа Байрона, графиня Ада Лавлейс. Именно она в 1843 году, почти за сто лет до сборки первого компьютера, написала первую в мире программу для решения уравнения Бернулли на аналитической машине. Это устройство придумал английский математик Чарльз Беббидж. По его задумке, машина должна была стать универсальным прибором для автоматизации сложных вычислений, но в итоге аппарат так и не построили. Несмотря на это работа Ады Лавлейс имеет большое значение даже для современных айтишников. Именно она ввела в употребление термины «цикл» и «рабочая ячейка», а еще рассматривала такие понятия, как модификация команд, индексный регистр, подпрограмма и ее библиотеки. История сохранила имя удивительной графини — в ее честь назван язык программирования Ада, который используется в военных проектах США и разработках NASA.

Профессия программиста в привычном нам понимании появилась в 50-х годах прошлого века и связана с разработкой Fortran, первого языка программирования высокого уровня. До него специалисты использовали машинный код и ассемблер — язык программирования низкого уровня, близкий по своей структуре к машинному языку. Это было очень неудобно, ведь для такого «общения» с компьютером нужно разбираться в архитектуре вычислительной машины и понимать принцип ее работы. А с помощью Fortran разработчик мог писать программы, используя несложный синтаксис, и получать результат, который не требует расшифровки. К слову, этот язык программирования существует до сих пор. Его дорабатывают, улучшают, расширяют, но при этом он остается совместимым с предыдущими версиями и легко переносится на другие платформы. Сейчас Fortran используют в основном для инженерных и научных вычислений. Например, для прогнозирования погоды, конструирования зданий со сложной архитектурой, анализа физических движений атомов и молекул и многого другого.

По разным оценкам, сейчас в мире существует от тысячи до десяти тысяч языков программирования. Цифры различаются в зависимости от того, что считать самостоятельным языком программирования, а что — его модификацией или синтаксисом, который создавали для узкой задачи или просто ради шутки. К последним относятся языки программирования, которые называют эзотерическими. Например, пародийный язык INTERCAL, придуманный в 1972 году студентами Принстонского университета Доном Вудсом и Джеймсом Лайоном. В отличие от языков, которые стремятся к лаконичности, INTERCAL, наоборот, делает код максимально громоздким и непонятным. Поэтому программиста, пишущего на INTERCAL, трудно обогнать в «продуктивности» или заменить другим специалистом.

Несмотря на внушительное количество языков программирования, в разработке используется не так много из них. Согласно рейтингу популярности 2022 года по версии TIOBE, в тройку лидеров входят Python, C и Java.

Кому нужны программисты и сколько им платят

Спрос на айтишников неуклонно растет во всем мире. Например в России, по данным Росстата, уже сейчас бизнесу не хватает больше миллиона IT-специалистов, а к 2027 году эта цифра может увеличиться до двух миллионов. IT-рекрутинговое агентство Heaad и портал Работа.ру провели совместное исследование и выяснили, что самые дефицитные IT-специальности 2022 года — это программист-разработчик, аналитик и системный администратор. При этом компании готовы платить разработчикам в среднем от 84 500 рублей до 143 000 рублей.

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

Что делает программист

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

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

Женя Редько
Ведущий инженер-программист Контура

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

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

Женя Редько
Ведущий инженер-программист Контура

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

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

Женя Редько
Ведущий инженер-программист Контура

Кем работать в IT

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

Системные программисты трудятся на самом «глубоком» уровне — они разрабатывают программное обеспечение, пишут системные утилиты, плагины и прочее. На основе их работы прикладные программисты создают программы и приложения для пользователей. А веб-разработчики специализируются на производстве IT-продуктов, которые работают в сети.

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

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

Катя Потапова
Тестировщица Контура

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

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

Саша Константинов
Менеджер разработки Контура

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

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

Менеджер разработки — это про управление командой разработки. Хотя у меня есть коллеги, которые еще продолжают частично писать аналитику или код, но на самом деле менеджер разработки не делает подобные задачи «руками», а помогает решению этих задач быстрее оказаться у пользователя.

Даша Филиппова
Менеджер разработки Контура

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

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

Даша Филиппова
Менеджер разработки Контура

Навыки программирования будут большим плюсом и в других IT-ролях. Рассказ о них мы собрали в плейлисте на нашем YouTube-канале.

Кто может стать программистом

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

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

Павел Егоров
Руководитель образовательной программой ФИИТ

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

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

Павел Егоров
Руководитель образовательной программой ФИИТ

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

Существует несколько способов стать программистом:

Самостоятельное изучение IT. Такой способ подойдет людям с высоким уровнем самоорганизации, ведь в этом случае придется самому выстраивать учебную программу и следить за распределением нагрузки. Хорошим подспорьем могут стать занятия на обучающих платформах. Например, на онлайн-платформе ULearn. Её создали разработчики Контура для обучения начинающих айтишников. На платформе представлены бесплатные курсы по разным языкам программирования, тестированию и другим областям IT. Обучающие программы включают видеолекции по выбранной тематике и набор практических заданий.

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

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

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

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

Например, студенты ФИИТ после 1-2 курса стажируются в ведущих IT-компаниях региона, в числе которых Контур, Яндекс, Тинькофф, Точка и другие. После стажировки многие ребята получают оффер и продолжают обучение в вузе, уже совмещая его с работой.

Причины быть программистом

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

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

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

На что обратить внимание

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

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

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

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

Другие публикации

Все публикации

Как с нами
связаться

По всем вопросам можно писать на fiit@kontur.ru
или в телеграм-чат @fiit_urfu