Оглавление
Профессия программист – обобщение целого ряда специальностей IT-сферы. Суть – человек, который пишет компьютерный код, профессиональный разработчик ПО, хотя такое описание деятельности мало что скажет непосвященному. Поэтому разберем подробнее.
Описание профессии
Огромное количество уже привычных вещей, с которыми мы взаимодействуем каждый день – смартфон с его приложениями, обучающие курсы онлайн, агрегаторы и доставки, более сложные системы – дело рук программистов. Такой профессионал создает программу, а это все те же сервисы и платформы. IT-специалист – это, кстати, совсем необязательно программист, например, менеджер IT-проекта. Обобщение "IT-специалист" включает в себя более полусотни специальностей, направлений и должностей. Всех их объединяет работа с информационными технологиями и системами, однако различия в некоторых вещах так велики, что просто "перепрыгнуть" из одной области в другую без переобучения очень сложно. С другой стороны, получив образование программиста, можно дальше двигаться в любом IT-направлении. И не нужно думать, что компьютерный мастер ("компьютерщик") и программист – это одно и то же. И нет: программист не должен (хотя зачастую и может) разбираться, что у вас там с кулером или видеокартой, и уж тем более не надо к нему приставать с поломками дисплея какой-нибудь стиральной машины или утюга.
Программист пишет софт, создавая код на одном из языков программирования – определенной системы набора и составления символов, букв, слов, цифр. Языков существуют уже сотни, но самые часто используемые среди них – это Java, Python, Perl, PHP, C#, JavaScript, C, С++, Objective-C, Swift. Разные задачи и продукты требуют использования разных языков. Какой язык программирования выбрать для изучения, человек решает сам, отметил в комментарии для радио Sputnik эксперт по информационной безопасности, программист Тарас Татаринов.
«
"Нельзя сказать, что сейчас моден какой-то конкретный язык программирования или платформа. Можно сказать, что надо развиваться именно в выбранном направлении IT. Универсальных направлений или специалистов не существует".
Востребованность
Что касается востребованности, то нужны программисты практически всем и везде, практически в любых современных компаниях: на чуть ли не самом популярном сайте по поиску работы в России размещено около 15,5 тысячи IT-вакансий, и это только в Москве – не все ищут именно кодеров, но мы уже знаем, что образование программиста открывает очень многие двери в индустрии. Спрос на таких специалистов будет только расти, ведь и человечество движется по пути все большей цифровизации жизни и всех ее аспектов. Поэтому профессия точно входит в топ-5 перспективных и необходимых, если вообще не самая востребованная на рынке.
Особенности профессии и специализации
Специальности можно перечислять долго, еще дольше – рассказывать о каждой подробно, так что остановимся лишь на нескольких. Начнем с того, что есть три больших сегмента в смысле области разработки – системные программисты, прикладные и веб.
Системное программирование
Это создание операционных систем, обновлений и прошивок для них, например, мобильная разработка – iOS-разработка и Android-разработка (кстати, эти две платформы настолько различны, что программисты обычно занимаются лишь одним направлением, то же самое касается и создания мобильных приложений для этих ОС).
Прикладная разработка и бизнес ПО
Это как раз про конкретные приложения и сервисы, которые должны работать на определенной "операционке", под заказ.
Веб-разработка
Она, в свою очередь, посвящена созданию сайтов и программ для их функционирования, веб-приложений. Frontend-разработка, Backend-разработка, Fullstack-разработка – это все про интернет-пространство, правда, не всегда про программирование. Первое – о создании графического пользовательского интерфейса: такой специалист по-хорошему должен быть и дизайнером (веб-дизайн полон своих тонкостей), и программистом. Второе – о разработке сути, "начинки", мозга ПО: простой пример – некий агрегатор, который подбирает поисковую выдачу по вашим запросам и предпочтениям, фильтрам с учетом заданных по умолчанию настроек сайта. Третье (fullstack-разработка) – фактическое сочетание двух вышеописанных специализаций, такой программист работает и с тем, и с другим.
© Depositphotos.com / spaxiax
Создание сайта
Другая тема – деление кодеров по языку программирования, о чем было сказано выше. Само собой, желательно владеть сразу несколькими языками, тем самым улучшая и свои карьерные перспективы.
Отметим еще специалистов DevOps/DevSecOps – это инженеры, которые в своей работе совмещают системное администрирование, разработку, тестирование и менеджмент. А еще внедрение принципов безопасности.
И еще немного о сферах разработки. Такую любопытную область, как нейронные сети и компьютерное зрение, стоит упомянуть отдельно.
Нейросеть – это цифровая интеллектуальная система, которая чем-то напоминает то, как работает человеческий мозг. Такие "компьютерные мозги" необходимы для анализа и распознавания звуков, речи, изображений. Системы видеонаблюдения и распознавания, домашние умные колонки с голосовыми помощниками, даже развлекательные видео с заменой лица DeepFake – все это существует и работает с помощью нейросетей. За нейросетями будущее, они обеспечат нам высокотехнологичную жизнь с по-настоящему "умной" и обучаемой техникой, так что направление исключительно перспективное.
Компьютерное зрение – технология, принадлежащая к области разработки искусственного интеллекта: машину можно научить "видеть" изображения, распознавать их и анализировать. Безопасность, медицина, промышленность, торговля – сфера внедрения и потенциального использования обширна. Проверка выпущенного товара на брак, оценка снимков и результатов других исследований, выдающих изображение, беспилотники и роботы – вот лишь несколько примеров.
Кроме того, анализ данных и статистика, технологии машинного обучения, специальность data scientist – все это тоже относится к сфере IT, в целом, и программированию, в частности. Анализ и статистика подойдут тем, кто готов иметь дело с огромным количеством баз данных, Big Data, чтобы, возможно, обнаруживать новые закономерности, выявлять тренды, генерировать идеи на основе тех самых аналитических и статистических результатов.
Еще стоит обратить внимание на "работу мечты" для многих, кто увлекается компьютерными играми: GameDev – разработка игр для различных платформ, смартфонов и ПК.
Где получить образование
Освоить профессию программиста можно классическим способом – в вузах, средних специальных учреждениях и колледжах. Или альтернативным: на очных и дистанционных курсах, в том числе при крупных компаниях с последующим трудоустройством, или вовсе самостоятельно, ведь необходимой литературы и ресурсов предостаточно. Учиться, кстати, в той или иной форме придется постоянно – таково одно из требований профессии.
Учебные заведения
Обучение в высшем учебном заведении займет стандартно 4-6 лет по курсам бакалавриата и магистратуры. Выбирать логично ведущие технические вузы, для поступления нужно знание математики, физики и информатики, помимо обязательного русского языка – набор вступительных экзаменов может варьироваться в зависимости от конкретного образовательного курса. Выбирать стоит специальности "Прикладная математика", "Информатика и вычислительная техника", "Прикладная информатика", "Программная инженерия", "Информационная безопасность", ориентируясь на личные стремления и предпочтения.
Из-за востребованности IT-специалистов большинство вузов или уже добавили в список своих программ обучения соответствующие направления, или вот-вот это сделают. Тем не менее, в первую очередь следует обратить внимание на ведущие учебные заведения с надежной репутацией: Московский физико-технический институт (МФТИ), который, помимо прочего, имеет связи со знаменитым Массачусетским технологическим институтом (MIT), Московский государственный технический университет им. Н.Э. Баумана, Санкт-Петербургский государственный университет информационных технологий, механики и оптики (ИТМО), Санкт-Петербургский политехнический университет Петра Великого. И "классика" – Московский государственный университет им. М. В. Ломоносова и Санкт-Петербургский государственный университет.
© Фото : Евгений Пелевин, пресс-служба МФТИ
Программисты из МФТИ, создающие "разговорные" системы искусственного интеллекта
Курсы
Обучающие курсы, специальные программы есть также при вузах и в крупных компаниях, могут проходить онлайн или оффлайн. Их ведут, как правило, преподаватели все тех же ведущих вузов. Надо также понимать, что работодатель при трудоустройстве обязательно проверит практические умения соискателя, скорее всего, в форме тестового задания. Именно реальные навыки, а не "корочка", играют решающую роль, однако не стоит думать, что профильное образование не нужно.
Устройство на работу и место работы
Разработчики программного обеспечения, как мы уже отмечали, нужны везде. Работа программиста при этом может сильно различаться. В первую очередь, это зависит от типа организации. В IT-компании, скорее всего, надо будет решать строго профильные задачи, заниматься созданием новых продуктов и технологических решений, вырабатывать обновления для имеющегося ПО. В компании же, не связанные напрямую с IT-индустрией, нужны, как правило, "программисты-многостаночники", которые будут заниматься всем и сразу: налаживать работу всех цифровых систем, улучшать и корректировать работу сайта, корпоративного ПО и решать проблему или задачу, которая звучит в духе "я что-то нажал, и все исчезло" или "хотим, чтобы это вот так работало, сделай". Таким образом, между прочим, можно получить больший опыт и развить новые навыки, пополнив свое резюме.
Кстати, совсем нелишним пунктом в нем будет указание лингвистических успехов: без владения английским языком работать программистом вполне можно, но его знание все же очень и очень приветствуется на такой работе. Это увеличивает и возможности решения задач в рамках профессиональных обязанностей. А еще открывает перспективы трудоустройства в крупнейшие международные компании.
Личные качества
Чтобы стать программистом и преуспеть на этом поприще, необходимы способности к математике, усидчивость, внимательность, логическое мышление, креативный подход. Запас терпения тоже не повредит, как и хорошая память, многозадачность, гибкость. Эксперт по информационной безопасности, программист Тарас Татаринов обращает внимание еще на некоторые аспекты.
«
"В первую очередь, нужно желание разбираться и желание постоянно учиться, потому что технологии прогрессируют очень быстро: то, что было актуально буквально полгода назад, сейчас уже официально признано устаревшей технологией. Необходимо постоянно обучаться и повышать свой персональный уровень, актуализировать свои знания и навыки. Опыт, который имелся, допустим, пять лет назад в современном мире имеет уже мало стоимости, поэтому мы видим такую тенденцию, что даже на лидирующих позициях среди программистов часто находятся совсем молодые люди, потому что они более прогрессивно мыслят, больше учатся, чем люди постарше, которые уже не так активно осваивают новые технологии, полагаясь на свой прошлый опыт, который может уже быть нерелевантным".
Программисты часто разрабатывают проекты группой, поэтому нужны в этой профессии и soft skills: пресловутая коммуникабельность (даже если выполнять задания удаленно, не в офисе, общаться с коллегами и руководством все равно придется) и умение работать в команде.
Оплата труда
Широко распространено мнение, что в зарплаты в IT очень высокие. Отчасти это правда, ведь специалистов требуется много, а квалифицированных кадров пока не хватает для покрытия спроса. С другой стороны, новичок с ограниченным набором "скиллов" вряд ли может рассчитывать на шестизначные суммы. Junior-разработчики (первая карьерная ступень) могут получать и 30-40 тысяч рублей в месяц (что, впрочем, для студента очень прилично), зато специалисты с большим стажем и опытом, например, архитекторы ПО, претендуют на сотни тысяч.
Программист Тарас Татаринов оценил ситуацию с зарплатами в IT-сегменте рынка труда.
«
"Разброс зарплат очень большой. И очень зависит от профессиональных навыков. Для хорошего программиста в крупной компании цифра 500 тысяч рублей в месяц – вполне реальна".
Плюсы и минусы профессии
Любая работа состоит из плюсов и минусов, и программирование – не исключение.
Плюсы очевидны: востребованность и отсутствие карьерного "потолка", пространство для творчества, высокая зарплата (по сравнению с большинством других сфер точно), возможность путешествовать и работать удаленно, гибкий график.
Минусов, однако, тоже немало – Тарас Татаринов назвал некоторые из них.
«
"Работа в IT – это довольно тяжелая интеллектуальная работа, это сложный каждодневный труд, работа с очень сложными технологиями и освоением вещей, которые являются экспериментальными. Если ты претендуешь на то, чтобы быть хорошим высокооплачиваемым специалистом, просто приходить на работу и отсиживаться не получится. Это действительно очень тяжелый труд, который требует каждодневной вовлеченности. Да, действительно, есть некий стереотипный образ IT-шника, который нажимает на кнопки и получает за это огромные деньги, но это все не соответствует действительности. Ответственность очень высокая, требования очень большие, поэтому та же проблема профессионального выгорания стоит. Физическая нагрузка не такая уж высокая, но эмоциональная нагрузка и эмоциональная утомляемость очень высоки. Сейчас это отмечают даже те, кто профессионально занимаются психологией – что очень подвержены высокому стрессу IT-специалисты".
Добавьте к этому списку необходимость постоянно актуализировать и пополнять багаж знаний, сидячий образ жизни и вечно горящие дедлайны.
Перспективы
Сфера информационных технологий расширяется со все возрастающей скоростью, так что в ближайшие 5-7 лет программистов ждет довольно-таки спокойная и обеспеченная жизнь без пауз в карьерном росте. С другой стороны, по истечении этого срока рынок может насытиться кадрами, а молодых специалистов начнут взращивать чуть ли не в детском саду и начальной школе – информационные технологии и умение с ними обращаться ведь являются требованием времени.
Уже сейчас на работу берут и совсем юных профессионалов, студентов – это полезно и для компаний, и для самих учащихся: первые получают сотрудника со свежими знаниями и незамыленным видением, а также не слишком высокими зарплатными запросами. Студент же начинает получать практический опыт, который в дальнейшем может вылиться в полноценное трудоустройство.
Карьера
Карьерные уровни с точки зрения опыта и продолжительности реальной занятости следующие:
– junior developer (младший разработчик) – начальный этап, который длится около года;
– middle developer (разработчик среднего уровня) – со второго по четвертый, иногда пятый год работы в сфере;
– senior developer (старший разработчик) – уровень, которого программист достигает, в среднем, после пяти лет работы в IT.
Сотрудница IT-компании
Само собой, такое деление и указанные временные рамки несколько условны, потому что при большом желании и еще большем старании можно "дослужиться" до статуса senior и за 3 года, как говорят сами специалисты. Помимо прочего, можно двигаться не только линейно по одной стезе вперед, но и в смежные сферы – горизонтальный карьерный рост тоже доступен.
Знаменитые программисты
Конечно, всем известны имена Билла Гейтса, Марка Цукерберга, Сергея Брина, Евгения Касперского и Павла Дурова – безусловно, эти люди выдающиеся программисты, которые внесли большой вклад в то, какими IT и наш мир вообще стали сейчас. Однако необходимо назвать и тех, кто, может, не так популярен у широкой публики или не стал миллиардером, но не менее важен и чей труд не менее ценен. Эксперт по информационной безопасности, программист Тарас Татаринов назвал двух знаковых для индустрии людей.
«
"Линус Торвальдс, создатель операционной системы Linux. Нельзя сказать, что он является какой-то легендой, но он создал вещь, которая во многом определила облик современного IT вообще. С другой стороны, нельзя сказать, что он является некой иконой в IT-мире, но он определенно вошел в историю. Или тот же Деннис Ритчи, который создал язык С – его тоже помнят, любят и ценят его вклад. Но он тоже не медийная личность, как тот же Стив Джобс или другие. Вряд ли эти имена знакомы кому-то, кто не имеет отношения к IT-миру".
© AP Photo / Paul Sakuma
Создатель операционной системы Linux Линус Торвальдс
Говоря о зарождении информационных технологий и программирования как таковых, нельзя не упомянуть первопроходцев, отцов- и матерей-основателей. Кстати о матерях: ученый-математик и дочь лорда Байрона Ада Лавлейс считается создателем первой в истории программы (середина XIX века) – алгоритма вычисления чисел Бернулли машинным способом. Венгеро-американский математик Джон фон Нейман намного позднее фактически изобрел конструкцию предшественника современного компьютера – машины, в которой "хранятся" и программы, и данные, которые они используют для работы. Если же переместиться в современность, то не обойтись без упоминания идеолога программирования и автора монументальнейшего труда "Искусство программирования" Дональда Кнута: считается, что его знаменитая книга обязательна к прочтению всеми разработчиками мира. Британец Сэр Тим Бернерс-Ли создал протокол HTTP, на работе которого фактически зиждется весь интернет. URL и HTML – тоже детища Бернерса-Ли, как Всемирная паутина. Джеймс Гослинг изобрел популярный язык программирования Java, Брэм Коэн создал протокол BitTorrent, Бьерн Страуструп – язык C++ (усовершенствованную версию языка С). И это далеко не полный список важных в мире IT людей. Хочется верить, что с бурным ростом этой сферы громких имен будет становиться все больше.
Автор Мария Меркулова, радио Sputnik
Коротко и по делу. Только отборные цитаты в нашем Телеграм-канале.