Качества программиста

Содержание

Программер и девелопер Феликс в блоге своего имени разместил статью, в которой попробовал разграничить такие виды деятельности, как разработка и программирование. По его мнению, деление по уровням (junior, middle, senior) и ролям (front-end, back-end, админ) является недостаточным. Феликс предлагает различать разработчиков и программистов и учитывать этот раздел при найме специалистов.

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

Разработка программного обеспечения

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

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

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

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

Программирование

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

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

Как определить и кого выбрать?

Определить, кто перед вами, по мнению Феликса, довольно просто. На собеседовании стоит задать вопрос, не относящийся непосредственно к сфере деятельности потенциального работника. У специалиста по JavaScript спросите о Python и наоборот. Разработчик скорее всего не будет знать ответов, а программист погрузится в рассуждения.

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

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

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

  • интересные обязанности;
  • гибкий график труда;
  • достойный уровень зарплаты.

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

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

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

Творческая работа за компьютером

Итак, кем может стать человек, мечтающий трудиться за ПК и имеющий какой-либо талант? Вариантов множество. Перечислим основные:

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

Сюда же можно отнести профессии верстальщика (в СМИ) и дизайнера — они трудятся исключительно за ПК.

Технические компьютерные специальности

Выбор опять же достаточно велик:

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

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

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

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

Всё зависит от особенностей работы в конкретной компании

Рекомендуется брать поправку на личные особенности при выборе работы. Например, интроверту, скорее всего, будет комфортнее работать удаленно. А экстраверту — в open space-офисе.

Игорь Селецкий, CEO & Founder в Cloud Linux Inc.:
«Все люди разные и программисты в том числе. Одни могут летать в облаках, другие будут «цепляться” к деталям — и те и другие важны, пусть и для различных позиций, задач и даже компаний.
А так, главное, чтобы человек был хороший.
Я могу назвать качества, которые значимы для работников в моей компании. Но ведь это не важно. Есть другие компании, где эти качества не играют никакой роли или, наоборот, очень мешают.
У нас вся работа удалённая, поэтому необходимо, чтоб программисты могли сами следить за своим временем и умели работать сами по себе. А люди, которым обязательно нужен тесный контакт («face to face”) у нас не приживаются. Но это наша специфика. У большинства компаний наверняка наоборот. Но это всё «качества” нужные отдельным компаниям, позициям, а не программистам в общем.”

«Работа программиста — это решение задач”

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

Дмитрий Ейбоженко, Development Team Lead в Яндекс:

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

Аналитический склад ума, упорство и умение работать в команде

Иван Луковников, вице-президент по разработке и облачным технологиям в Acronis:

«В первую очередь, хороший разработчик должен обладать аналитическим складом ума. Даже самые сложные задачи программирования имеют логическое решение. В идеале, программист должен получать удовольствие от решения таких задач; особенно, если все решено просто и красиво.
Второе качество — это, конечно, упорство. Чтобы по-настоящему изучить основы компьютерных наук, необходимо достаточно много времени. Придется потратить тысячи часов, программируя и решая подчас головоломные задачи. Разумеется, если вы любите свое дело, вам это будет не так сложно. Но, тем не менее, потребуется много терпения и большая целеустремленность, чтобы достичь на этом пути настоящих успехов.
Третье качество — умение работать в команде. Написание кода в — большинстве случаев вещь коллективная. Современному разработчику необходимо постоянно контактировать с коллегами, работать синхронно, легко читать чужой код и работать с ним.”

Хорошая концентрация, усидчивость и алгоритмизированный подход

Александр Решетков, ИТ-директор компании Softline:

«В первую очередь, стоит обратить внимание на сам характер работы. Это вдумчивая работа, требующая длительной концентрации и усидчивости. По характеру работы можно представить «портрет» среднестатистического разработчика — это, в основном, люди, ориентированные на процесс, концентрирующиеся на деталях, с алгоритмизированным подходом, аналитическим складом ума. Люди с такими личными качествами могут разобраться с любой задачей, требующей алгоритмизации.
Всё, что не соответствует вышеперечисленным качествам и компетенциям — может оказать негативное влияние на качество и результаты деятельности разработчика. И важно это понимать на начальных этапах сотрудничества.”

Хороший программист умеет презентовать свои идеи и общаться с людьми

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

Александр Горный, директор по информационным технологиям Mail.Ru Group:

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

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

Наиболее ценные качества программиста по мнению работодателей:

  1. Умение решать задачи
  2. Аналитический склад ума
  3. Упорство
  4. Умение работать в команде
  5. Хорошая концентрация
  6. Усидчивость
  7. Алгоритмизированный подход
  8. Ответственность
  9. Коммуникабельность
  10. Инициативность

Нужно понимать, что эти качества крайне желательны, но не обязательны. Здесь всё зависит от компании и специфики должности. Ларри Уолл, создатель Perl, сказал: «Многие знакомы с достоинствами программиста. Их всего три, и, разумеется, это: лень, нетерпеливость и гордыня.” Объясняется это просто: ленивый человек, скорее всего, найдет наиболее эффективный способ решения задачи. Поэтому, если вы обнаружили у себя несоответствие с вышеперечисленными пунктами, то не теряйте энтузиазма. Найдите «позитивное” применение своим особенностям.

Михаил Климов

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

Помните время, когда всем понадобился сайт? Именно тогда разработчики принялись покорять зарплатные вершины. Что мы видим сегодня? Веб-разработчики по-прежнему востребованы, но на рынке появилась огромная армия начинающих программистов. К ним примкнули мобильные разработчики, которые сейчас на самом пике востребованности.
Потребности бизнеса также изменились. Появилось множество конструкторов сайтов и приложений: мелкие клиенты справляются своими силами. Крупных не так много, и запросы их изменились. И будут меняться.
Именно поэтому разработчику всегда нужно понимать, где он находится сейчас и куда он движется. При этом держа в фокусе бизнес, его тенденции и требования. Ведь именно он дает работу.
Какие варианта роста есть? Можно выбрать вертикальный рост: от junior к senior и teamlead. А можно «свернуть в сторону” — расширение компетенций ведь тоже рост. Иногда «в стороне” может оказаться именно ваше место.

Программирование

По-прежнему, главный на этом празднике жизни тот, кто умеет писать код.

Mobile-разработчик

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

Вакансии для iOS-разработчиков и Android-разработчиков.

Gamedev

В Gamedev своя неповторимая атмосфера, и за этим туда идут. Стоит попробовать, чтобы понять, ваше это или чужое. Самый главный плюс — это бесконечная перспектива развития. Никто из экспертов не рискнет сказать, что однажды интерес человечества к играм иссякнет.
Есть некоторые моменты, о которых стоит знать про gamedev заранее. Во-первых, это конвейер. Если играете в игры, должны понимать, почему. Во-вторых, это работа для стрессоустойчивых. Если релиз игры назначен на вторник, релиз должен быть во вторник. И команда днями и ночами допиливает то, чего ждут тысячи или даже миллионы простых смертных. А вот и главная изюминка индустрии: миллионы людей смогут погрузиться в ваше творение с головой, и даже отдать кусочек сердца.
В любом случае, gamedev — это для творческих, смелых, амбициозных ребят, которые любят хардкор в работе, и не гонятся за огромными зарплатами. Зато получают славу и любовь миллионов 🙂

Вакансия разработчика игр с обучением

Разарботчик Saas

Сегодняшнее время называют эрой Saas. На Западе эта тенденция давно правит рынком. В России мы находимся только на пути к вершине, однако уже появляются сильные игроки, у которых престижно и выгодно работать.
Начинать можно с малого, главное, наметить себе цель. Здесь подойдут компании, создающие свой продукт, необязательно Saas. Главная изюминка — команда делает проект от и до, отвечая за будущее продукта головой. А это требует компетенций и погружения на порядок выше, чем в аутсорсинговой компании.
Еще один плюс «продуктовый компаний” в том, что обычно они могут предложить зарплаты выше, чем аутсорсинговые компании. Тут главное выбрать, что для вас как для специалиста важнее: попробовать поработать над множеством проектов и отточить навыки либо прокачаться по полной в чем-то одном. Логичным выглядит путь, когда разработчик, научившись и поняв свою природу, идет в продуктовую компанию или сам запускает продукт. Просто потому что расти «вширь” внутри профессии не так выгодно, как «вглубь” и «ввысь”.

Вакансия для джависта, где можно поработать над собственным продуктом компании

VR-разработчик

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

Разработчик моделей Big Data

Разработчик зависит от «хотелок” бизнеса. В общем и целом смысле. С другой стороны, бизнес зависит от технологий, которые уже на совести программистов. История с Big Data иллюстрирует, как возможности разработчиков совпали с желаниями бизнеса. Правда, пока бизнес не совсем понимает, чего хочет, а программисты не до конца изучили, как ответить на требования. А бизнесу, особенно крупному и серьезному, очень нужны инструменты для увеличения эффективности взаимодействия с существующими клиентами. Потому что все новенькие либо кончились, либо стали невероятно дорого стоить.
Разве не повод уже сейчас начать двигаться навстречу бизнесу?

Machine Learning

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

Blockchain разработчик

Эксперты уверяют, что к 2020 году блокчейн придет в массы, а это всего через два года. Причем будущее технологии очень перспективно, ведь она связана не только с криптовалютой, а вообще с безопасным хранением любых данных. Недавней тенденцией стала разработка цифровых контрактов по технологии блокчейн. Опытных специалистов сейчас мало, найти их трудно. Чем не повод начать учиться? Для начала нужно знать C++ или JavaScript, хотя написать свой блокчейн можно на чем угодно. Также поможет API биткоина.

Здесь можно научиться азам blockchain-технологий

Безопасность и качество

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

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

QA-инженер

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

Вакансии для QA-инженера

Управление

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

Проект-менеджер

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

Вакансии для проект-менеджеров

Продуктовый менеджер

Затем невзначай начните интересоваться экономикой, маркетингом, конкурентным анализом, KPI. В общем, всем, что поможет сделать крутой продукт, который будет принят рынком с распростертыми объятиями. И щедро оплачен.
Менеджер по продукту — это проект-менеджер в квадрате. Вы будете не только налаживать взаимоотношения и взаимопонимание внутри команды и между командой и заказчиком. Вы будете отвечать за успех продукта на рынке. А это ого-гого какая ответственность. Но при этом к вам придут уважение и почет, не говоря уж о повышении дохода.

IT-директор

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

Вакансия IT-директора

Аналитика и бизнес

Не хотите «пинать”? Хотите творить, но не кодить? Для вас тоже есть особенный путь.

Системный аналитик

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

Бизнес-аналитик

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

Проектировщик пользовательского опыта

Вам подойдет эта профессия, если вы человек добрый, обладаете системным мышлением и логика ваш лучший друг. А еще вы не верите на слово и любите вытаскивать тайны из людей как лейтенант Коломбо. Если ответ «да, да… да!”, вы готовы стать адвокатом… нет, не дьявола. Адвокатом пользователя.
Именно о пользователе думает проектировщик пользовательского опыта (или UX проектировщик) денно и нощно.
Каким ветром может занести разработчика в проектировщики? Ну например, вы ужасаетесь задачам, которые ставятся клиентами и аналитиками в вашей компании. Они говорят «создай этот шедевр”, а вы смотрите, и понимаете, что это вовсе не шедевр. И даже знаете, почему. Вот тот момент, когда может произойти осознание — ошибка мироздания не в вас, она случилась где-то раньше! И вы почувствуете в себе силы все исправить.
У вас будет прекрасный бэкграунд — ведь вы знаете, как создавать, а теперь будете решать, что и зачем создавать. Понимание «как” убережет вас от глупостей и заставит разработчиков уважать ваше мнение.

Продуктовый дизайнер

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

А что по компетенциям?

Мы специально не стали прописывать компетенции каждой специальности, так как от компании к компании требования разнятся. Все, что вам нужно: найти компанию мечты, посмотреть ее требования. Если то, что вы знаете, и то, чему вы готовы обучиться в ближайшее время, составляет примерно 70-80% от описания — вперед! Если совпадений меньше: придется либо дольше учиться, либо спуститься на ступеньку ниже и начать с нее.
И главное. Нельзя закисать на работе. Профессия должна вдохновлять. Если не вдохновляет, ищите другую.
Удачи в поисках!

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

Читать: 8 мин.
Правда ли, что программирование — ну самая востребованная специальность в мире? Кто такие системные и прикладные программисты? Сколько лет нужно учиться на программиста? В какой вуз и колледж поступить, чтобы стать программистом?

Говорят, что в мире есть 10 видов людей. Те, кто понимает двоичный код… и те, кто не понимает.
Юмор программистов

Программирование зародилось в XIX веке, и до середины XX века, когда случился бурный рост информационных технологий, создание программ для машины было сродни искусству. Программирование было уделом избранных. Сегодня же профессия программиста распространена и очень востребована. В 2017 году в мире насчитывалось 18.2 млн разработчиков программного обеспечения, из них 1.3 млн — в России.
Давайте посмотрим, какое будущее у профессии программиста. И что ему угрожает.

Описание профессии

Программист – это специалист, создающий исходный код для программы. Такой программой может быть операционная система компьютера, видеоигра, web или мобильное приложение и даже алгоритм работы микроволновки. Программный код пишется на специальном языке программирования. Он состоит из обычных слов и некоторых специальных символов. Сегодня насчитывается несколько сотен языков программирования, но самые распространенные из них – Java, Python, PHP, C#, JavaScript, C, С++, Objective-C, Swift. Какой язык программирования выбрать, программист решает сам в зависимости от конкретной задачи (сделать игру, приложение для web или программу для сервера) и собственных знаний. Квалифицированный программист уверенно использует 2-4 языка.

Специализация программистов

Если вы думаете, что программист = компьютерщик, то это далеко не так. Самое удивительное, что программист не обязательно работает на компьютере. Он может писать код программы хоть на салфетке, а компьютер ему нужен, чтобы применить этот код и протестировать.
Не стоит также приравнивать программиста к «айтишнику». Под общим названием «IT-специалист» скрывается более 50 разных профессий и должностей. Например, UIX-дизайнер (разработчик интерфейсов), account-менеджер (специалист техподдержки), системный администратор, devops («инженер по автоматизации IT-процессов»), менеджер IT-проекта – это «айтишники», но не программисты. Однако стоит помнить, что в любую из IT-профессий можно попасть через образование программиста.
По специализации программисты делятся на системных, прикладных и веб-программистов. Прикладные программисты занимаются написанием различных программ и приложений: игры (например, популярная игра Angry birds), офисные приложения (например, Microsoft Office Word) и многое другое. Системные программисты занимаются созданием операционных систем (например, Android или iOS). Веб-программисты разрабатывают интернет-сайты и программы, которые поддерживают работу этих сайтов.
На сайтах вакансий вы найдете разделение программистов по тем языкам, с которыми они работают: программист C++, программист Delphi, PHP-программист. А также по типам задач, которые они выполняют: программист баз данных, фронтенд / бекенд разработчик, мобильный / десктоп разработчик, программист 1С, программист Битрикс, геймдев, архитектор ПО, системный инженер и т.д.

Плюсы и минусы профессии программиста

Профессия программиста очень притягательна для современных абитуриентов. В 2018 году в технических вузах самый большой конкурс пришелся на специальности «Прикладная математика», «Информатика и вычислительная техника», «Электроника и наноэлектроника». В 2019 году проходные баллы по ЕГЭ на эти специальности обещают только вырасти. Что так привлекает молодых в программировании?

Плюсы профессии программист:

    ✔ Высокая зарплата. Средняя зарплата высококвалифицированного программиста 70-100 тыс. рублей.
    ✔ Востребованность. Рынок труда для программистов растет за счет цифровизации всех сфер общественной жизни. Онлайн-образование, телемедицина, интернет вещей (IoT), даже сельское хозяйство не обходится теперь без IT-специалистов.
    ✔ Интересные задачи и простор для творчества. Что делает программист на работе? Пишет код, тестирует, проверяет на уязвимости, переписывает код. Тем не менее, конечный результат кодирования – это рабочая программа с разными целями. Одни программисты создают игры. Другие программируют роботов. Третьи делают полезное приложение под Android. Четвертые создают агрегатор, который соберет все билеты мировых авиакомпаний в один сервис для бронирования авиабилетов. Разнообразно, не правда ли? А когда продукт начинает исправно работать, программист испытывает радость, как персонаж папа Карло, который из деревянного полена выстругал живого мальчика.
    ✔ Возможность удаленной работы и свободный график. Программисты – это каста людей, к которым не применяют строгих офисных правил. Для поддержания креативности и работоспособности им разрешают работать из дома, приходить позже на работу. И, если вы еще не знаете, лучшие офисы принадлежат именно IT-компаниям. Загляните в Google, Microsoft, Яндекс и Mail.Ru.
    ✔ Карьерный рост в России и за рубежом. Для программирования нет географических границ. Во-первых, многие российский специалисты работают удаленно в иностранных проектах. Во-вторых, переехать в «Силиконовую» долину (более точно ее называть «Кремниевой») для IT-профессионала с отличным знанием английского гораздо проще, чем, например, бухгалтеру, юристу или инженеру-строителю, которым придется изучать специфику профессии в конкретной стране.

Минусы:

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

Где учиться

Чтобы стать программистом, можно пойти тремя путями:
1. После 11 класса в вуз по направлению 09.00.00 «Информатика и вычислительная техника» или 10.00.00 «Информационная безопасность».
2. После 9 класса в колледж на эти же направления, а потом пойти или не пойти в вуз.
3. Учиться на курсах программирования и самому.
IT-сфера отличается молодостью и современным подходом к образованию. При трудоустройстве ценится не столько диплом, сколько те навыки (hard skills), которые у будущего сотрудника в багаже. Работодатель даст тестовое задание по программированию и по его результатам примет или не примет соискателя на работу. Именно поэтому приобретать знания и опыт в информационных технологиях можно и дома с помощью книг, online-курсов и создания небольших программ. Какой вариант образования лучше, решает каждый сам. Главный вопрос, который должен задать себе программист – «Достаточно ли я усидчивый и целеустремленный человек, чтобы выучиться и потом конкурировать с теми, кто пришел из вуза?».
В каких вузах и колледжах учиться на программиста
Для поступления в вуз необходимо успешно сдать ЕГЭ по математике, русскому языку, информатике и ИКТ, физике, английскому языку (4 из 5 экзаменов в зависимости от специализации). В Москве получить образование программиста можно во многих учебных организациях.

Где работать • Компании-разработчики (сервисы Booking.com, Mail.ru, Yandex, Unisender)
• IT-отделы и отделы digital-маркетинга организаций (Сбербанк России, Газпром, Тинькофф банк)
• Системные интеграторы (Крок, Softline, Техносерв, Ланит, Ай-Теко)
Карьерные возможности

Из-за бурного роста сферы IT и дефицита разработчиков ПО, работать программистом можно начать еще в институте. Со 2-3 курса можно устроиться junior-разработчиком и начинать движение по карьерной лестнице. И при этом получать достойную для студента зарплату в 30-50 тысяч рублей.
Сами программисты оценивают длительность каждой ступени следующим образом:
• Первые полгода-полтора года реального опыта вы junior
• При активном обучении следующие 1-3 года работы вы middle
• А программист с опытом работы 4-6 лет – это senior
Но, конечно, стоит помнить, что границы условны, и более активный и любознательный разработчик сможет освоить все навыки senior-developer за 3 года.
Кроме глубокой специализации в программировании, программисту доступно движение в смежные области внутри IT-компании – дизайн, маркетинг, аналитику, менеджмент. Программист может стать архитектором программного обеспечения, девопс-инженером, менеджером IT-проектов, если ему это интересно и у него есть нужные компетенции. Например, чтобы работать менеджером, ему потребуется коммуникабельность, инициативность, умение формировать команду и контролировать бизнес-процессы.
Оплата труда (диапазон зарплат)
Зарплата программиста напрямую зависит от специализации и квалификации. Наименее оплачиваемые должности – это junior-разработчики, которые только учатся. А наиболее оплачиваемые на рынке труда – архитекторы ПО и системные инженеры, на которых лежит ответственность за продукт или проект в целом. Поэтому диапазон зарплат программистов может быть очень широким:

    ✔ 30 000 – 260 000 рублей

Перспективы профессии (востребованность)

Сейчас отрасль IT в целом и программирование в частности находятся на пике востребованности. Компании конкурируют за квалифицированных специалистов. В перспективе ближайших 5 лет программистов ждет благополучная жизнь и высокие зарплаты, потому что молодых кадров станет немного меньше. Придет период демографической ямы из-за низкой рождаемости в начале 90-х гг.
Но рынок IT ждет несколько опасностей. Во-первых, обучение программированию сейчас начинается уже практически с детского сада. Самые известные обучающие языки — это Scratch от MIT и Blockly от Google. Вероятно, навык программирования будет настолько же распространен, как знание английского языка, то есть будет входить в «джентльменский набор» при приеме на работу. А если им владеет почти каждый, то и ценность работы снижается.
Во-вторых, IT-образование сейчас дает почти каждый колледж и вуз. После дефицита рынок может «насытиться» профессиональными программистами, и их зарплаты упадут.
В-третьих, есть страны, в частности Индия, где IT-образование развивается еще быстрее. И в определенный момент услуги программирования насытят мировой рынок, как сейчас произошло с товарами, произведенными в Китае. С индийскими программистами трудно будет конкурировать в цене.
Будущему программисту стоит помнить об этих рисках. Но, как и в любой профессии, настоящий специалист, который любит свое дело и профессионально развивается, в любые времена будет востребован.
Какие компетенции и личные качества необходимы программисту
Наверняка, вы сходу назовете 3 качества, которые отличают программиста:
✎ логическое мышление
✎ математические способности
✎ усидчивость
Есть несколько компетенций, которые делают из хорошего программиста лучшего:
✎ гибкость мышления
✎ хорошая память
✎ многозадачность
✎ развитое воображение
✎ умение ясно выражать свои мысли
✎ коммуникабельность
✎ работа в команде
Человек, который умеет придумывать новые идеи и хорошо взаимодействовать в коллективе таких же разработчиков, сможет попасть в самые интересные и передовые IT-проекты или открыть свой.

Что делать уже сейчас
Вы думаете о программировании или хотите в будущем работать в IT? Начать развиваться можно уже в сейчас:

    ✔ Углубленно изучать математику, информатику, русский и английский язык в школе.
    ✔ Программировать и создавать веб-сайты, небольшие редакторы и полезные утилиты.
    ✔ Читать новости из сферы IT: на порталах cnews.ru, habrahabr.ru, computerworld.ru, hightech.fm и github.com.
    ✔ Заниматься в кружках по программированию и школах юного программиста.
    ✔ Посетить iСмену лагеря «Профессионалы будущего», чтобы пообщаться с настоящими IT-специалистами и узнать больше о современных технологиях.

Если вы хотите разобраться, подойдет ли вам специальность программиста, то пройдите наш бесплатный тест: информационно-технологический профиль
Ольга Биккулова, ЦТР «Гуманитарные технологии»
Если вы хотите получать свежие статьи о профессиях, подпишитесь на нашу рассылку.