Профессия «Программист»: чем занимается и что должен уметь
Когда человек хочет уйти в сферу, связанную с программированием, он редко говорит, что планирует стать фронтендом, разработчиком под iOS или создателем игр. Обычно звучит слово «программист», а специализация приходит позже.
В статье разберём основные плюсы и минусы профессии программиста, а также расскажем, какие направления в программировании наиболее востребованы и что должны знать специалисты, работающих в них.
Содержание статьи скрыть
Кто такой программист и чем занимается
Программист пишет исходный код программы, умеет программировать на одном или нескольких языках и применяет фреймворки и библиотеки алгоритмов для ускорения разработки. Он не должен знать все языки программирования — обычно специалисты среднего уровня в совершенстве владеют парой языков, которые необходимы для их специализации, и немного ориентируются в тех, что популярны в разработке.
Как росла моя зарплата программиста
Требовать от опытного питониста знания C# — всё равно что обращаться к дерматологу за хирургической помощью
За термином «программист» могут скрываться разные узкопрофильные специалисты: разработчики под iOS, программисты 1С, системные аналитики и др. Единственное, что их объединяет — умение переводить человеческие требования в машинный код и автоматизировать процессы или действия.
Конкретные обязанности и знания программистов зависят от специализации.
Фронтенд . Программист разрабатывает пользовательские интерфейсы и отвечает за внешнюю часть сайта, чтобы она одинаково выглядела в разных браузерах. Основной язык для работы — JavaScript.
Бэкенд . В обязанности входит разработка программ, обслуживание серверов и проектирование «ядра» веб-приложений. Для работы нужно знать языки HTML и CSS, а также UI-фреймворки: Bootstrap, Foundation и Pure.
Пользователь заходит на главную страницу Яндекса и видит поисковую строку и новости — все это сделали фронтенд-программисты. Затем он вводит поисковый запрос и ждёт, что Яндекс найдёт нужную информацию — за этот процесс отвечают бэкенд-разработчики. Когда Яндекс загружает результаты поиска и они отображаются красивым списком — это снова работа фронтенд-программистов
Фулстек. Совмещает два предыдущих направлениях. Специалист отвечает и за фронтенд-, и за бэкенд-разработку.
Разработка игр . Программист создаёт компьютерные игры: вносит идеи сюжета гейминга, разрабатывает локацию игры, придумывает персонажей, диалоги и др. Для работы нужно знать языки С#, C++, Java и один из игровых движков.
Разработка приложений под Android и iOS . Нужно писать приложения для определённых операционных систем. Для работы с Android понадобятся язык программирования Java, инструмент для разработки Android SDK и библиотека OpenGL, для работы с iOS — языки программирования Objective-C и Swift и инструмент для разработки XCode.
Сколько Зарабатывают Программисты
Программист 1С . В обязанности входит внедрение и сопровождение программ 1С в организациях: установка, настройка, доработка и обновление. Программист должен разбираться в коде программы 1С и знать T-SQL — расширенную версию языка SQL, предназначенную для работы с серверами от Microsoft.
Подобрать подходящую программу по обучению программированию вы сможете в нашем агрегаторе курсов
Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!
Подписывайся на канал
Подписаться
Востребованность профессии
Спрос на IT-специалистов стабильно растёт — по данным hh.ru с 2010 по 2020 год число вакансий в этой сфере увеличилось на 476%. Сегодня на hh.ru опубликованы около 100 000 предложений о работе в IT, и большая часть из них для программистов — 38% от всех вакансий в отрасли.
Среди удалённых специалистов программисты тоже весьма востребованы — каждая вторая вакансия на российском рынке дистанционного труда в IT-отрасли связана с программированием. Это подтверждает исследование «Университета 2035».
Программирование — широкое направление, востребованность в котором зависит от специализации. Ниже рассказываем о наиболее популярных специализациях программистов.
Веб-разработка . Из-за быстроты изучения библиотек и инструментов в этой области довольно лёгкий порог входа и высокая конкуренция среди начинающих специалистов. Чтобы оставаться востребованным, важно постоянно следить за актуальными трендами и повышать квалификацию.
Языки веб-разработки : JavaScript, PHP, Python и Java.
Вакансии на hh.ru : 21 277.
Мобильная разработка . Одно из наиболее перспективных направлений, так как фокус разработки все больше смещается в сторону мобильных устройств — многие компании создают приложения, чтобы стать более заметными для пользователей.
Языки мобильной разработки : Java, Kotlin, Swift, Python и C#.
Вакансии на hh.ru : 23 446.
Разработка игр . Совсем недавно геймдев был на пике популярности, сегодня страсти вокруг него улеглись, но он по-прежнему остаётся интересной и перспективной областью программирования. По данным GamesIndustry.biz, объём рынка к октябрю 2021 года составил 174,9 миллиарда долларов, что на 19,6% больше показателя годом ранее.
Языки геймдева : С++, C#, Lua и JavaScript.
Вакансии на hh.ru : 2 298.
Data Science . Это модное направление, которое находится на стыке бизнеса и интернет-технологий. Специалист, работающий в нём, анализирует большие данные и делает на их основе прогнозы. В рейтинге 25 лучших вакансий в США от Glassdoor дата-сайентист находится на первом месте. В России спрос на этих специалистов тоже высок — по данным Mail.ru Group и HeadHunter, в 2018 году вакансий с названием дата сайенс было в 7 раз больше, чем в 2015 году, а в 2020 и 2021 годах рост продолжился.
Языки дата сайенс : С++, C#, Lua и JavaScript.
Вакансии на hh.ru : 1 806.
Автоматизация бизнеса . По-прежнему востребована разработка программ под конкретные запросы компаний. Помимо создания продукта в обязанности программиста входит внедрение и обновление системы, а также обучение работающих с ней сотрудников.
Языки дата сайенс : HTML, SQL, Java.
Вакансии на hh.ru : 14 745.
График и формат работы программистов
Существуют три основных формата работы программистов — штат, фриланс и аутсорс.
Работа в штате . Вы официально трудоустроены и чаще всего работаете из офиса, но по согласованию с работодателем можете трудиться дистанционно. Даже если вы на удалёнке, ваши отношения с работодателем все равно регламентируются трудовым договором, поэтому у вас есть право на оплачиваемые больничные, отпуска и др.
На фрилансе . Вы не связаны трудовым договором с работодателем, трудитесь на себя и платите налоги как самозанятый или ИП. Загруженность регулируете самостоятельно — можете работать над проектами одного заказчика или сотрудничать с несколькими. Доходы зависят не от количества рабочих дней, а от выполненных заказов.
Аутсорс . Вы официально работаете в агентстве или студии, но решаете задачи других компаний — в зависимости особенностей проекта можете делать это как удалённо, так и территории заказчика. Согласно исследованию Deloitte, в период с 2019 по 2021 год спрос на аутсорсинговые услуги увеличился из-за карантина.
Мы проанализировали вакансии на hh.ru и подготовили статистику наиболее популярных графиков работы программистов:
- в офисе — чаще всего: 60%
- удалённо — средне: 30%
- фриланс — редко: 10%
Зарплата программиста
В программировании размер заработной платы зависит от опыта и навыков специалиста, а также его специализации. Мы проанализировали вакансии на hh.ru и подготовили краткую сводку, сколько в среднем зарабатывают программисты в разных направлениях:
- веб-разработка — от 90 до 400 000 руб.;
- мобильная разработка — от 75 до 395 000 руб.;
- разработка игр — от 85 до 435 000 руб.;
- дата-сайенс — от 115 до 420 000 руб.;
- автоматизация бизнеса — от 75 до 380 000 руб.;
- программирование 1С — от 60 до 260 000 руб.;
Если вы пока не определились с конкретной специализацией, полезно знать общие зарплатные тренды. Согласно отчёту аналитиков ассоциации «Руссофт», объединения компаний-разработчиков ПО России, средняя зарплата программиста в России составляет 119 000 руб. Это на 133% выше, чем средний доход по стране — по данным Росстата, работники других отраслей получают около 51 000 руб.
Для удобства представляем таблицу со средними зарплатами программистов в зависимости от их опыта:
| Начинающий | Опытный | Профессионал |
| 35–80 000 ₽ | 80–215 000 ₽ | 215–495 000 ₽ |
Плюсы и минусы профессии программиста
При выборе профессии важно не романтизировать её, а оценивать объективно, принимая во внимание все плюсы и минусы. Тогда ниже вероятность, что спустя пару месяцев работы вы разочаруетесь в выбранной сфере деятельности и снова захотите сменить её.
Чтобы вам было проще понять, стоит ли идти в программирование, мы подготовили сравнительную таблицу, где перечислили основные плюсы и минусы профессии программиста.
- высокая зарплата — в среднем программисты зарабатывают около 119 000 руб.
- востребованность — рынок труда для программистов активно растёт за счёт цифровизации разных сфер жизни
- интересные задачи — вы можете создавать игры, программировать роботов, разрабатывать приложения под Android и iOS и др.
- возможность выбора графика — на рынке есть множество вакансий с разными форматами работы, вы можете найти тот, что подойдёт вам больше всего
- карьера в России и за рубежом — для вас нет территориальных границ: вы можете находиться в Москве и работать на компанию, находящуюся в Лондоне
- сидячий образ жизни — вам придётся много сидеть за компьютером, из-за чего часто страдает зрение и опорно-двигательный аппарат
- необходимость постоянно учиться — знания устаревают быстро, поэтому вам нужно активно следить за тем, что происходит в отрасли, и тем, что делают ваши конкуренты
Навыки, необходимые для программиста
Навыки и обязанности программиста зависят от его специализации, а также от компании, в которой он работает. Если говорить об общих требованиях, то в большинстве вакансий работодатели указывают такие ожидания от кандидата:
- умение писать код на одном или нескольких языках — С++, Python, PHP, Java и др.;
- понимание алгоритмов, баз данных и паттернов программирования — это позволяет выбрать наиболее эффективное решение из всех возможных;
- способность работать с разными фреймворками и библиотеками — это помогает ускорить процесс разработки и избежать ошибок.
Профессия программиста больше подходит для «технарей», так как обычно у них есть хорошее понимание математики, необходимое для работы. Считается, что гуманитариям погрузиться в тему сложнее, но всё зависит от человека и его мотивации: если вы готовы восполнять пробелы в образовании и тратить время на изучение принципов и алгоритмов программирования, вы сможете построить карьеру в этой сфере.
Личностные характеристики программиста
Основная задача программиста — писать исходный код программы, но не она считается самой сложной. Гораздо труднее понять и правильно интерпретировать требования заказчика, чтобы затем перевести их в машинный язык.
Чтобы находить общий язык с клиентами и успешно решать их проблемы, программисту необходимы такие навыки:
- критическое мышление — вы должны уметь выделять главное в требованиях заказчика и подходить к выполнению своих обязанностей с точки зрения оптимизации и улучшения. Ваша глобальная цель — найти лучший способ решения поставленной задачи;
- сосредоточенность и усидчивость — чтобы написать большой фрагмент кода, нужно глубоко погрузиться в задачу. Если вы не умеете абстрагироваться и постоянно отвлекаетесь на внешние факторы, этот процесс может сильно затянуться;
- внимательность — в программировании не бывает мелочей: лишний отступ или потерянная точка с запятой оборачиваются долгими часами поиска багов и причин ошибок при компиляции;
- коммуникабельность и умение слышать собеседника — вам придётся общаться с разными заказчиками, в том числе и с теми, кто далёк от программирования. Иногда их требования будут звучать как текст, пропущенный через гугл-переводчик, и в процессе диалога и обсуждения вы должны вытянуть важные детали, которые помогут составить ТЗ и решить проблему;
- способность к самообучению — чтобы оставаться успешным и востребованным, вы должны постоянно изучать новые фреймворки и библиотеки, следить за тем, что происходит в разных языках программирования. Если перестанете, рискуете сильно отстать от конкурентов, потерять клиентов и вообще перестать понимать, что происходит в отрасли;
- ответственность — вы всегда отвечаете за качество написанного кода и за стабильность и корректную работу созданной программы. В случае допущенной ошибки нельзя будет свалить всю вину на тестировщика, коллегу-разработчику или заказчика.
Один из самых распространённых мифов о программистах — они все интроверты. Часто это оказывается сильно далеко от истины, потому что, чтобы расти в профессии, нужно много общаться и взаимодействовать с разными людьми. Если у вас есть какие-то барьеры в коммуникации, самое время избавиться от них, иначе вы упрётесь в потолок профессионального развития в программировании. Даже на удалёнке вам придётся много общаться с коллегами, участвовать в созвонах, обсуждениях и брейнштормах — от того, насколько хорошо вы делаете это, зависят ваши карьерные возможности.

Уникальное предложение — -50% на ВСЕ курсы Skillbox. Получите современную онлайн-профессию, раскройте свой потенциал.
Активировать скидку →
Как стать программистом
Если вы задумываетесь всерьёз заняться программированием и находитесь в самом начале карьерного и профессионального развития, у вас есть два варианта — поступить в профильный вуз или пройти онлайн-курсы.
Вузы . В современных российских университетах есть разные специальности, связанные с программированием. На этих специальностях вы получите базу и разберётесь в основных принципах и алгоритмах, но для работы этих знаний мало — чтобы научиться применять востребованные фреймворки и популярные языки программирования придётся проходить дополнительные курсы или разбираться в материале самостоятельно.
Программирование — та сфера, где знания устаревают довольно быстро, и классическое высшее образование не может угнаться за всеми трендами. Учебные программы и образовательные стандарты составляются на несколько лет, поэтому нередко оказываются неактуальными. Плюс, университетские преподаватели — в большинстве своём теоретики, которые не могут поделиться какими-то полезными лайфхаками и советами.
Курсы . Если ваша задача — войти в программирование как можно скорее, лучше выбрать онлайн-курсы. На них вы получите только актуальные знания и освоите инструменты, которые сможете сразу применять на практике.
Преподаватели на курсах — обычно действующие разработчики. Они активно следят за всем, что происходит в отрасли и делятся со студентами реальным опытом. При обучении на курсах вы не тратите время на общую и устаревшую информацию, а сразу концентрируетесь на том, что сможете применить в будущей работе.
Курсы, на которых вы можете получить навыки для старта в программировании:
- профессия «Frontend-разработчик» от SkillFactory — за 7 месяцев вы освоите веб-вёрстку, программирование на JavaScript и популярные фреймворки. После обучения сможете создавать адаптивные сайты, лендинги и клиент-серверные приложения;
- профессия «Backend-разработчик на Go» от SkillFactory — за 12 месяцев вы освоите язык программирования Golang, научитесь создавать высоконагруженные сайты и приложения. После обучения сможете проектировать базы данных, создавать архитектуру приложений и автоматизировать процесс разработки;
- курс «Программист Python» от Geekbrains — за 12 месяцев вы освоите язык программирования Python и фреймворк Django и научитесь разрабатывать сайты с адаптивными страницами и клиент-серверные приложения.
Если вы сомневаетесь в том, насколько вам подходит программирование и стоит ли покупать курс, можете пока заняться самообразованием и почитать профильную литературу:
- «Искусство программирования» Дональда Кнута;
- «Путь программиста» Джона Сонмеза;
- «Алгоритмы. Вводный курс» Томаса Кормена.
Перечисленные книги помогут сформировать мышление программиста и дадут полезные базовые знания.
Как и куда развиваться в профессии
Не только в программировании, но в любом другом IT-направлении специалистов делят на три категории: джуниор, мидл и сеньор. Общепринятого определения этих терминов нет, мы предлагаем один из вариантов, как можно их охарактеризовать.
Джуниор, или начинающий специалист — программист без опыта или с минимальным опытом. Он решает типовые задач под присмотром наставника, набивает руку и учится самостоятельно справляться со сложными заданиями. В этой нише самая сильная конкуренция, потому что очень много новичков хотят получить перспективную и востребованную профессию.
Мидл, или специалист среднего уровня — программист с опытом от одного до трёх лет. Он самостоятельно решает рабочие задачи, а также может выступать в роли наставника для менее опытных коллег.
Сеньор, или опытный специалист — программист с опытом от трёх лет. Он решает задачи на уровне архитектуры, контролирует работу других разработчиков и управляет командой. Иногда в его обязанности входит создание учебных программ для стажёров и начинающих специалистов.
В программировании вы можете развиваться вертикально или горизонтально. Вертикально — когда по мере освоения новых навыков и получения опыта, вы переходите с позиции джуниора на позицию мидла, а затем сеньора.
Горизонтально — когда вы меняете или расширяете специализацию. Предположим, вы начали свой путь в программировании как разработчик под iOS, а затем поняли, что могли бы зарабатывать больше в разработке игр и перешли в это направление.
Коротко о главном
В мире существует несколько сотен языков программирования — знать все просто невозможно. Если хотите заниматься программированием, вы можете стать узкопрофильным специалистом — по статистике, зарплата таких программистов выше, но найти работу им сложнее, или стать фулстек-разработчиком и обходить конкурентов за счёт широкого спектра навыков. Ещё один вариант — хорошо разбираться в одном-двух направлениях, но следить за тем, что происходит в остальных.
А вы выбрали для себя направление в программировании? Делитесь в комментариях, с чего планируете начать свой путь в IT.
Поделитесь материалом в соцсетях — обсудите его с друзьями и коллегами!
Не знаете с чего начать?
Получите персональный список курсов, пройдя бесплатный тест по карьере
Источник: checkroi.ru
Профессия: программист. Не всё однозначно
Мы писали о фронтендерах и бэкендерах, о мобильной разработке и о тестировании, но это были частные случаи. Когда человек подходит к первой или очередной профессии, он редко говорит, что станет разработчиком под iOS или проктологом, как правило это звучит «программистом» и «врачом». Специализация приходит позже, с опытом.
Но чтобы твёрдо заявить, что ты хочешь стать программистом, врачом, архитектором, геологом и т.д., нужно избавиться от романтизации профессии и подойти к ней здраво и осмысленно. Даже если вы вдруг решили стать программистом, чтобы «войти в айти после 35-ти». Если говорить о программистах с позиций романтики, то это люди, которые превращают наши замыслы в код и делают жизнь лучше, проще, удобнее. Если говорить прямо, то работа программиста — напряжённый, зачастую рутинный труд с множеством плюсов и минусов. Об этом и поговорим.

Художник — Надежда Коткина, позировал — cyber_roach
Кто это?
За термином «программист» могут скрываться узкопрофильные программисты, разработчики программного обеспечения, инженеры, системные аналитики и т.д. Тем не менее, всех программистов объединяет одно — умение облечь человеческие требования в машинный код, чтобы сделать труд или развлечение автоматизированным, удобным, простым. Программист создаёт инструкции для компьютера, в результате выполнения этих инструкций получается какой-то целевой результат.
Вам стоит задуматься, не будущий ли программист вы, если…
… ваша мотивация исходит изнутри, вам нравится процесс управления компьютером, вы хотите не просто использовать программу (игру, приложение), но и знать, как она работает, модифицировать её.
… вы не ожидаете бешеных доходов и не думаете о том, что программирование — новый рок-н-ролл, первично именно желание творить магию: превращать идеи в код.
… вы знаете, как сделать лучше любую программу, любой сайт, любое мобильное приложение. Вы точно знаете, что можно хотеть от программы и мечтаете научиться делать совершенный код.
Где нужен?
Сегодня программисты нужны везде и я не думаю, что этот тренд изменится в ближайшие 10-15 лет. Программисты нужны в промышленности, науке, космосе, бизнесе, медицине, транспорте и даже не в ИТ-компаниях (шутки шутками, а вы знаете, как трудно найти отличного программиста 1С или разработчика для интернет-магазина на 1С-Битрикс?!). В общем, даже в институте церкви и благотворительности есть спрос на программистов. И это здорово, потому что вы можете не просто выбрать профессию программиста, но и соотнести её со своим увлечением: химией, биологией, механикой, связью и даже историей и лингвистикой. Более того, если вы будете сочетать в себе навыки разработки ПО и основы профильной деятельности, ваша цена на рынке здорово вырастет, а конкуренция изменится.
Поэтому вам нужно понять не столько, где работать, сколько что именно из разработки вам ближе.
- Мобильная разработка — создание приложений для мобильных устройств (смартфоны, планшеты, носимая электроника, научное оборудование, датчики IoT и т.д.). Отличается непрерывным развитием и постоянным интенсивным самообучением.
- Веб-разработка (фронтенд и бэкенд или фуллстек) — создание всевозможных веб-приложений для любых целей и задач, разработка сайтов, интернет-магазинов и проч. Весь мир сейчас в WEB, поэтому вы можете найти абсолютно любую задачу.
- Системное программирование — разработка низкоуровневого ПО, взаимодействие с железом. Требует исключительной логики, инженерного склада мышления, внимания и досконального подхода к мелочам.
- Научная работа — широкая сфера для развития, когда на первый план выходит базовая специальность, на второй — программирование (телемедицина, медицинская кибернетика, аналитические системы для химиков и биологов и т.д.). Крайне перспективное направление с большим заделом возможности работы в лучших международных компаниях и командах.
- Анализ данных, статистика и математика — для тех, кто любит покопаться в больших данных и найти большие идеи. Для тех, кто усидчив, умеет видеть взаимосвязи и закономерности. В общем, если вы пытались построить свой прогноз по COVID-19, вам сюда 🙂
- Нейронные сети и компьютерное зрение (распознавание образов и элементов) — растущее направление, которое требует исключительного понимания математики. Нейронные сети скоро будут едва ли не на каждом утюге, спрос на специалистов будет только расти.
- DevOps/DevSecOps — для тех, кому скучно в рутинном программировании и кто тяготеет к системному администрированию и управлению разработкой. На данный момент на рынке труда ситуация «девопсов много, ни одного не найти», потому что к настоящему DevOps путь не так прост, как его видят любители Докера.
- Прикладная разработка и бизнес ПО — отдельный мир разработки, где можно писать десктоп на Delphi и зарабатывать миллионы, знать COBOL и быть самым сманиваемым специалистом на рынке, прошариться в Java и быть на главных ролях в коммьюнити и т.д. Это рисковый путь развития, в основном, для опытных разработчиков, но если вам случилось влюбиться в С/С++/Java или какой-то из «латыней от программирования» — почему нет?
Важно понимать ещё одно разделение.
- Программисты в ИТ-компании решают сложные технические задачи, связанные с адаптацией к разным платформам, работой под нагрузкой, рефакторингом и оптимизацией, удобством UI/UX и т.д. Это сложные профессиональные задачи, без решения которых невозможен ни один релиз на продакшене (кому я вру?:-))
- Программисты в не-ИТ-компании решают все задачи сразу, но основные сводятся к автоматизации процессов и работы с чужим прикладным ПО: работа с корпоративным порталом, доработка CRM, ERP, биллинга, формирование отчётов по запросу, настройка и поддержка сайта, интернет-магазина, 1С и т.д. И, кстати, иногда программист-многостаночник из неайтишной компании может развить больше скиллов за счёт того, что он работает в комплексе, с системами целиком.
Базовые требования к профессионалу
Само по себе написание кода — это не самая сложная задача, гораздо сложнее понять требования, интерпретировать их и перевести в понятный машине язык. Работать с заказчиком кода (здесь мы имеем в виду и клиента, и коллег, и работодателей и т.д.) это всегда нервы и приключения, потому что они сами не знают, что хотят, мыслят упрощённо и считают технологии всемогущими. Но если вы претендуете на то, чтобы быть профессиональным программистом, вам необходимо не только хмуро бить по клавишам, но и активно работать с людьми, с техническими заданиями, требованиями и т.д. Это отличает программиста от простого кодера.
- Критическое мышление — умение выделять главное в требованиях, подходить к своему и чужому коду с точки зрения постоянной оптимизации и улучшения; навыки поиска лучших путей решения задач.
- Ориентированность на работу с деталями — в программировании не бывает мелочей. Даже если вы не написали ни строчки кода, вы наверняка слышали шутки про то, как отступ или потерянная точка с запятой отнимают часы в поисках бага и причин ошибок при компиляции. Невнимательный программист — нонсенс.


Необходимость знания иностранных языков
Можно ли обойтись в разработке без знания иностранного (в частности английского) языка? Можно. Достаточно выучить синтаксис и слова языка программирования, мыслить и общаться вы можете исключительно на русском языке. Незнание языка не будет помехой в карьерном росте, развитии, коммуникациях в очень многих компаниях.
Однако — что даёт знание иностранного языка?
- Возможность удалённой работы в международных командах и зарубежных проектах. Кроме престижа и интересных задач, это ещё и заработная плата в долларах или евро (при нашем курсе неплохая история).
- Возможность работы в международных заказных проектах.
- Доступность всех материалов по разработке, записей лекций, конференций, курсов и т.д. Фактически у вас исчезают ограничения в самообразовании, все ключевые материалы мира программирования становятся доступны.
- Возможность эмиграции при наличии такого желания.
- Возможность стажировок в крупнейших ИТ-компаниях.
- Дополнительный фактор карьерного роста.
Где учиться
В современных российских вузах есть масса программистских специальностей, есть бакалавриат и магистратура, есть форматы дополнительного образования. Если вы ещё только выбираете свой вуз, то, конечно, стоит идти на специальный факультет, либо на физику, математику и другие технические специальности.
Если программирование вам нужно как вспомогательный инструмент для основной специальности, то либо поищите смежный вариант (типа медицинской кибернетики и информатики), либо обучайтесь параллельно главной специализации.
Если у вас уже есть образование, то для вас есть самообразование, различные курсы, онлайн-школы, корпоративные университеты и т.д. Вы можете изучать программирование с помощью этих средств обучения либо полностью самостоятельно или даже с ментором. О дополнительном образовании можно почитать здесь.

Обращаю ваше особое внимание: высшее образование по-прежнему важно, поскольку оно имеет значение для работодателя, нужно при переезде в другую страну, а также даёт базу, основу, которая позволит быстро развиваться в любом новом направлении.
Более того, не столько важно, какой язык программирования вы освоите, сколько важно, что вы знаете о математике, алгоритмах, вычислениях, сетевом и серверном администрировании, принципах организации сетей, стеках и проч. А эту основу как раз неплохо дают в вузах.
Лучшие книги и средства обучения
Для каждой специальности есть свой набор книг и ресурсов для обучения, но есть вещи, которые стоит прочитать всем.
- «Искусство программирования», Дональд Кнут
- «Жемчужины программирования», Джон Бентли
- «Путь программиста», Джон Сонмез
- «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин
- «Алгоритмы. Построение и анализ», Томас Х. Кормен
- «Сам себе программист. Как научиться программировать и устроиться в Ebay?», Кори Альтхофф
- «Карьера программиста», Г. Лакман Макдауэлл
- «Идеальный программист. Как стать профессионалом разработки ПО», Роберт Мартин
- «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие
- «Совершенный код», Стив Макконнелл
- «Кодеры за работой. Размышления о ремесле программиста», Питер Сейбел
- «Мифический человеко-месяц», Фредерик Брукс
- «Программист-прагматик. Путь от подмастерья к мастеру», Дейв Томас, Энди Хант
Из любимых ресурсов:
- Codecademy — универсальная интерактивная платформа для обучения языкам программирования. Лычки, ачивки, геймификация — сплошная мотивация.
- Udacity — англоязычный ресурс для обучения программированию.
- Codewars — огромный сборник тестовых задач для тренировки навыков по любому языку программирования.
- Coursera — без комментариев, просто лучшая лекционная «солянка».
- MIT OpenCourseware — море курсов от Массачусетского технологического института.
Ещё одна огромная и свежая подборка полезного онлайна для программистов.
Совет: даже если вам иногда лень заниматься, слушайте лекции хотя бы фоном, так вы погрузитесь в терминологию, обратите внимание на какие-то незаметные при напряжённом изучении моменты.

Мифы профессии
Про программистов ходит очень много мифов и слухов: про характер, грубость, неумение строить личную жизнь и т.д. Но это частные случаи, которые можно найти в профессии. Например, я был одно время близок к сфере медицины и могу сказать, что там тоже немало замужних за работой и женатых на работе, немало суровых интровертов и грубых, но профессиональных ребят (скорее, задолбанных). Да и вообще сложно представить «анклав» счастья в какой-то определённой сфере.

А если программист ещё и геймер… Всегда можно найти пару 😉
Поэтому я разберу четыре самых популярных мифа.
- Программисты гребут деньги лопатой. Нет. С одной стороны, заработные платы в ИТ-сфере действительно выше других отраслей и, как показала эта чумачечая весна, ИТ ещё и более защищена, приспособлена к активной удалённой работе. Однако чтобы пройти путь до зарплаты выше рынка, нужно получить более низкую зарплату, а иногда так даже пройти бесплатную стажировку — не ради денег, а ради знаний, навыков и связей. На высоких позициях заработные платы действительно могут достигать 500 тыс. рублей в месяц, и к этому нужно стремиться. Но если вы на первом своём собеседовании на должность программиста пренебрежительно закидываете ногу за ногу и просите «сотню на руки» в столице или «сороковник» в регионах, вы проиграли. Лучше устроиться, показать результат и попросить повышение: эффективным программистам редко отказывают.
- Программисты часто болеют. Увы, отчасти это правда. Сидячая работа, руки на мышке и клавиатуре, ненормированные режимы сна и питания зачастую играют злую шутку и вместе с опытом и карьерным ростом приходят лишний вес, одышка, сахарный диабет, гипертония, заболевания ЖКТ, заболевания опорно-двигательной системы, туннельный синдром и даже психические расстройства. Но это случается только с теми, кто полностью погружается в работу и забывает о себе. Регулярный спорт, правильное и регулярное питание, перерывы (не перекуры и не перекусы!), грамотно организованное рабочее место, подобранные добавки и витамины, активное общение с коллегами, сообществом, друзьями и семьёй, чтение — полезные привычки, которые сохранят ваше здоровье и, что немаловажно, обеспечат отличное функционирование мозга.
- Программист имеет низкий потолок в карьере. Нет, любой программист имеет возможности горизонтального и вертикального роста. Программист может расти как внутри программирования, так и в управлении разработкой до тимлида, CTO, CIO и т.д. При наличии хорошей идеи талантливый программист и хороший управленец может открыть своё дело и расширить горизонт навыков на максимальную величину.
- Программистов заменят роботы. Буду краток. А кто роботов будет программировать? 😉
Главный совет
Если вы учитесь быть программистом, однажды вам обязательно захочется бросить это всё, потому что путь покажется слишком длинным. Вы устанете от однообразных тренировочных задач, каждая неудачная компиляция будет вызывать тупое, болезненное отчаяние, вам будут сниться указатели, рекурсии и принципы ООП (ну или неудачные вызовы функций). Вся эта возня покажется безумного далёкой не только от вашего первого самостоятельного проекта, но и от первого корпоративного мержа…
Желание бросить — первый признак того, что вы идёте верным путём, что вы действительно напрягаетесь, а не мастрячите какой-то код методом копипаста из Google (даже не с GitHub!). Только когда вы настолько натренируетесь на простых задачах, что они вам станут противно скучными, вы сможете уверенно перейти на новый этап с отличной базой знаний.
Совет простой: не бросайте. Отвлекитесь, переспите с этими мыслями, забросьте обучение на неделю и вернитесь. Вы сами не заметите, как в голове что-то «щёлкнет» и всё встанет на свои места и вот он, первый мерж, первое код ревью, первый коммит в open source, первое выступление на митапе, свой пет-проект, первые задачи на должности миддла. Не останавливайтесь — всё будет!

- RUVDS
- карьера
- программист
- программирование
- мотивация
- мотивация программистов
- Блог компании RUVDS.com
- Программирование
- Карьера в IT-индустрии
Источник: habr.com
Обзор профессии программиста
В глазах многих айтишники – это какая-то закрытая секта богатых лентяев. Говорят на непонятном айтишном языке, получают много денег и работают по 4 часа из 8, при этом постоянно жалуясь на выгорание. А попросишь их починить тостер (ну ты же разбираешься во всех этих железных штуках, верно?) – впадают в ярость. На самом же деле айтишник – это в большинстве случаев такой же работник, как и слесарь на заводе, только задачи – интеллектуальные, и ответственности – намного больше. Ниже мы детально разберем тех айтишников, которые «в природе» встречаются чаще всего – программисты.
Программист – кто такой
Где учиться на программиста
Выбор направления
Требования к программистам
Обзор рынка труда – перспективы, востребованность, зарплаты
Обзор курсов на программиста
Карьерный путь
Плюсы и минусы профессии
Что почитать по теме
Подведем итоги

Программист – кто такой
Ответ на вопрос «Кто такой программист?» лежит прямо в названии профессии, программист – это человек, который создает программы для железа. В ранние годы, когда компьютеры были большими и шумными, программисты общались с железом на языке последнего – буквально делали дырки в нужных местах на перфокартах, чтобы компьютер понял, что нужно делать. В дальнейшем появились более удобные (высокоуровневые) языки программирования – сначала вместо дырок на перфокартах появились короткие команды (ассемблерные), затем команды стали более читабельными для людей (низкоуровневые языки программирования), сейчас же чаще всего используются языки, на которых можно описать в человеческих словах и предложениях действия, которые компьютер должен совершить (высокоуровневые языки программирования). Таким образом, определение можно расширить до «Программист – это человек, который с помощью одного из языков программирования описывает набор действий, которые нужно совершить компьютеру».
Но все, естественно, не так просто. «Программист» – такое же расплывчатое определение, как, например, «врач».
Системный администратор тоже пишет код (является программистом), хирург тоже лечит людей (является врачом). Но если вы назовете сисадмина программистом или хирурга врачом, то столкнетесь как минимум с удивлением. В сфере информационных технологий есть множество направлений, и просто делить специалистов по принципу «пишет код/не пишет код» нельзя, потому что специалист автоматического тестирования пишет код, но «программистом» в обычном понятии не является, а архитектор код не пишет, но является «программистом». Чтобы разобраться во всем этом, давайте введем 5 основных специальностей, участвующих в разработке:
- Системный инженер. Раньше их называли сисадминами, но теперь в моде DevOps, откуда и пошло новое название -–системные инженеры. Эти специалисты ответственны за инфраструктуру разработки: сервера, системы версионирования, пайплайны быстрого развертывания, отказоустойчивость, балансировщики нагрузки, инфраструктура как код и так далее. Основной навык – работа с UNIX-системами (Линукс).
- Архитектор. Человек, который умеет оценивать масштаб проекта и выбирать технологии, которыми проект можно реализовать наиболее удачно. Архитекторы обычно не пишут код, они – ближе к менеджерам. При этом архитектор – это опытный инженер, который «вырос» из разработчика.
- Тестировщик. Сотрудник, который ищет ошибки и неточности. Ручные тестировщики не пишут код, тестировщики автоматизации пишут код, который в автоматическим режиме тестирует другой код. Некоторые программисты снисходительно относятся к тестировщикам, но пусть это не вводит вас в заблуждение, без толковых тестировщиков любой проект развалится через месяц после старта.
- Менеджер. Человек, управляющий командой. Код не пишет, планирует процесс разработки и дает указания. Обычно получает самую большую зарплату в команде и несет больше всего ответственности за разработку.
- Разработчик. Тот самый «программист». Пишет код по техническому заданию архитектора и менеджера, с помощью пайплайнов, созданных системными инженерами, отправляет свой код на растерзание тестировщикам. Разработчиков обычно делят на фронт-энд и бэк-энд. Фронт-энд разработчики создают «лицо» (=интерфейс) программы, с которым будут взаимодействовать пользователи. Бэк-энд разработчики пишут внутреннюю логику – то, что происходит внутри программы, когда нужно по какой-то логике выдать какой-то результат. Бывают еще фулл-стэк разработчики – это те, которые умеют создавать и фронт-энд, и бэк-энд.
Таким образом, под «программистом» обычно понимают именно разработчиков, реализовывающих основной функционал программы.
Как понять, подходит ли такая профессия
Вам может казаться, что зарплата программиста перевешивает все трудности работы, и этим стоит заниматься даже в том случае, если вам откровенно не нравится учить языки, алгоритмизацию и другие базовые навыки программиста. Но не стоит ориентироваться исключительно на зарплату и исключительно на программиста – иначе вы рискуете столкнуться с чередой выгораний или бросить учебу на середине.
Возможно, программирование – не для вас, и вам стоит присмотреться к другим должностям в IT или вне его (в IT, например, можно попробовать себя в качестве тестировщика). Как это проверить? Проще всего – на практике. Возьмите какие-нибудь бесплатные курсы, например «Поколение Python» на stepik.org, и пройдите его. Если в процессе прохождения курса вы заметите, что вам интересно решать задачи, учить теорию и самостоятельно искать ответы на необычные вопросы – программирование вам точно зайдет.
Если же вы не чувствуете желания всем этим заниматься – возможно, вам стоит поискать себя в других направлениях.
Где учиться на программиста
Вариантов – очень много: самостоятельное обучение, бесплатные курсы, платные курсы, стажировка, колледжи и ВУЗы. Последние два варианта – наименее предпочтительные. Дело в том, что IT – это очень быстро развивающаяся сфера, и знания (не считая самых фундаментальных основ) очень быстро устаревают – то, что вы изучили год назад, теперь уже вполне может быть не актуально. Колледжи и ВУЗы, конечно, дают фундаментальные основы, но в большинстве своем они представляют безнадежно устаревшие программы обучения, и после получения диплома вы вдруг осознаете, что половину потраченного на обучение времени уже можно выбросить в корзину. Поэтому на программиста лучше учиться самостоятельно, на курсах или (если повезет) на стажировке.
Первый вариант – самостоятельное обучение. Самый дешевый и нестабильный вариант.
Организовывается очень просто:
- Определяетесь с языком программирования (основные варианты: Java, JavaScript, Python).
- Открываете hh.ru, ищете вакансии на junior-программистов выбранного языка, смотрите набор требований.
- Учите то, что требуется.

Учить можно по книгам, курсам, статьям, телеграм-каналам – в общем, брать информацию из всех доступных источников. У этого варианта есть три существенных минуса. Первый: нет учителя или ментора, вы не всегда будете знать, что совершаете ошибки. Второй: сложно подтвердить свои знания перед потенциальным работодателем, вам будут часто отсеивать на стадии изучения резюме, если у вас не будет собственных толковых проектов на GitHub. Третий: у вас в какой-то момент может просто закончиться мотивация к дальнейшему обучению.
Второй вариант – курсы. Лучше – платные, потому что они обычно предлагают проверку домашек, помощь ментора и более-менее солидный сертификат. Еще один плюс – вам будут подавать материал структурированно, поэтому вы станете программистом быстрее. Из минусов – нужно платить деньги.
Наконец, третий вариант – стажировка. Иногда крупные компании набирают лаборатории, то есть открывают обучение для тех, кто хочет стать программистом. Чтобы попасть в лабу, вам нужно иметь какой-никакой айтишный бэкграунд (пройти пару курсов, написать парочку своих простеньких приложений) и владеть английским хотя бы на уровне А2. Если вас пригласят в лабу, то вы будете учиться так же, как в ВУЗе – с расписанием, преподавателями и экзаменами. Если вы успешно пройдете обучение, вас пригласят на работу в компанию, которая лабу и запустила.
Это – идеальный вариант, но попасть в лабу – очень непросто, потому что: а) они редко появляются; б) большая конкуренция.
Выбор направления
Делить направления можно по разным критериям (чаще всего делят по языкам), но мы остановимся на фронт- и бэк-энде, поскольку они наиболее сильно между собой различаются.
Front-end
Фронт-энд разработчик – это, как мы уже говорили, специалист, который создает интерфейс/внешний вид приложения или сайта. В этом направлении стоит смотреть тем, кому интересно работать с дизайном, цветами, удобством пользовательского интерфейса и прочими такими вот вещами. Основные языки: JavaScript, CSS, HTML, Python, иногда – Ruby. Желательно уметь пользоваться Фотошопом.
Back-end
Это – те самые технари-инженеры, которые разбираются в алгоритмах и создают закулисье сервиса. Здесь более ценятся математические и аналитические способности. Языков – множество: C++, Java, Python, Ruby, C#, … Практически обязателен SQL.
Full-stack
Те, кто умеют и в интерфейс, и во внутреннюю логику программы. Если вы только начинаете свой путь, на фул-стэк разработчика замахиваться не стоит, слишком много знаний нужно. Языки: Java, Python, C#.
Требования к программистам
Поскольку программисты бывают самыми разными, требования к ним тоже бывают самыми разными. Если мы откинем инициативность, стрессоустойчивость и остальные требования, копирующиеся из вакансии в вакансию, основным требованием будет знание общих принципов разработки плюс конкретного стэка (списка) технологий, необходимых для закрытия конкретной позиции в команде. Из общих принципов и технологий разработки стоит отметить ООП, Agile, Git и SQL. Из конкретных технологий – обычно один язык плюс необходимые фреймворки (Java + Spring, например).
Сейчас все чаще встречается требование по базовому пониманию UNIX и Docker.
Обзор рынка труда – перспективы, востребованность, зарплаты
Примеры вакансий
3 примера junior-разработчиков с hh.ru:
- Junior Java разработчик. Работодатель: Сбербанк. Требования: базовые знания ООП/алгоритмов/структур данных, основы Java-разработки, базовые знания в Spring. Английский: А1. Что предлагают: обучение, трудоустройство с первого дня обучения. Зарплата: по результатам собеседования.
- C# developer junior / middle (.net, full-stack / back-end). Работодатель: MindBox. Требования: опыт разработки с C# с использованием SQL (можно на своем пет-проекте), BCL / CLR, знание шаблонов архитектуры, typescript и react. Английский: не указано. Что предлагают: обучение при необходимости, оплачиваемая стажировка, удобный офис, рабочий ноутбук, помощь с релокацией. Зарплата: от 100 000 рублей до 200 000 рублей на руки.
- Junior — программист. Работодатель: SmartShop. Требования: SQL, JavaScript, PHP, CSS, HTML, Bootstrap, jQuery. Английский: «хорошее знание английского языка». Что предлагают: обучение, график 5/2, бесплатные обеды. Зарплата: 40 000 рублей – 60 000 рублей до вычета налогов.
Где работают программисты и как выглядит рабочий день программиста
Программисты работают везде, где есть что программировать. Основное место работы – компания, которая создает продукты для себя или для других заказчиков (аутсорс). Рабочий день условно разбит на 2 части: встречи и выполнение задач. Встречи – это когда вся команда или отдельные ее участники созваниваются/встречаются в каком-то месте и обсуждают происходящие в проекте события. Это помогает синхронизироваться, одна из основных проблем разработки – рассинхронизация (Максим делает ту же работу, что и Витя, в результате оказывается, что один и них зря тратил свое время).
Когда митапы (встречи) заканчиваются, программисты разбредаются по своим рабочим местам и выполняют задачи, которые на них повесил менеджер.
Обзор курсов на программиста
Платные
- Skillbox. Крупная школа со множеством курсов. Есть как программы получения специальности, так и обычные курсы. Получение специальности – это когда вас учат с нуля до junior-разработчика, длятся такие программы по году. На обычных курсах учат конкретным технологиям, курсы длятся около полугода. Обучение – довольно дорогое, за профессию java-разработчика берут 200 000 рублей (в рассрочку на 31 месяц).
- Нетология. Еще одна крупная школа, как и в предыдущем случае, есть и обычные курсы, и курсы получения профессии. После обучения помогают с трудоустройством, в самом обучении упор делается на практике. Обучение – более длительное, профессию вы получите через 13-20 месяцев. Стоимость такого обучения – более 100 000 рублей, тоже есть рассрочки и скидки.
- GeekBrains. Школа готовит реальных junior-разработчиков. Обучение – длительное, от 12 до 36 месяцев. Есть программы разной интенсивности – от обычно подготовки junior до подготовки middle+. Группы стартуют каждые 2 недели, цена вопроса – до 200 000 рублей, в зависимости от программы (рассрочка – по 5 000 рублей в месяц).
Бесплатные
- Хекслет. Множество бесплатных курсов от площадки. Полноценную профессию вы здесь не получите, но основы сможете усвоить. Есть курсы как по программированию (хорошие), так и по «вопросам железа» (среднего качества).
- Stepik. Русскоязычная платформа с большим количеством бесплатных курсов. Особого внимания заслуживает «Поколение Python», лучший русскоязычный курс в Рунете по этому языку. Платные курсы тоже есть, средняя стоимость – 3 000 рублей.
- Computer Science Center. IT-университет, на YouTube-канале которого можно найти десятки курсов по самым разным направлениям.
Самостоятельное обучение
Для самостоятельного обучения мы рекомендуем использовать бесплатные курсы, перечисленные выше, и вот этот прекрасный сайт.
Обучение в ВУЗах
Как мы уже говорили, обучение в ВУЗах – не лучшая идея. Но если вам все же очень хочется получить высшее образование для себя или ребенка, подойдут эти варианты:
- Московский Государственный Университет имени Ломоносова.
- Московский Физико-Технический Институт.
- ИТМО.
Посмотреть топ-20 университетов с ИТ-направлениями по версии рейтингового агентства RAEX можно тут.
Карьерный путь
Джун
Джун – это программист, который приносит компании убыток. Джунов не подпускают к реальным задачам – обычно им дают песочницу, в которой джуны нарабатывают опыт на своих ошибках. Мало того, что джун не делает ничего полезного, так к нему еще нужно приставить сеньора, который будет помогать джуну – а за время работы сеньора тоже нужно платить. Поэтому джунов берут с тем расчетом, что они останутся в компании, станут мидлами и начнут приносить бизнесу прибыль.
Миддл
Это – программист, который уже что-то умеет. На мидлов уже вешают задачи, которые требуют некоторой ответственности, надзора за мидлами намного меньше. Поскольку миддл – уже полезный программист, зарплата растет существенно, в 2 раза и больше.
Сеньор
Сеньор – это ответственный специалист, который может сделать что-то полезное и не сломать при этом все остальное. Сеньоры – основная рабочая сила проекта, именно они реализовывают тот функционал, который нужен заказчику. Сеньор уже может выставлять свои требования по зарплате, поскольку компания очень не хочет его потерять. Если джуны зарабатывают 500$, а миддлы – 1 000$, то сеньор вполне может требовать 2 000$+ в месяц.
Что дальше
А дальше – большая развилка. Сеньор может улучшать свои кодерские скилы и получать больше денег; он может уйти в менеджмент и управлять командой; ему открывается дорога в архитекторы.
В общем, сеньор может претендовать практически на любую позицию в команде.
Плюсы и минусы профессии
Плюсы:
- Большая зарплата.
- Разнообразная работа.
- В большинстве случаев – адекватный и умный коллектив.
Минусы:
- Сидячая работа.
- Много ответственности (по сравнению с линейной должностью на заводе).
- Иногда случаются выгорания.
Что почитать по теме
- Идеальная вакансия для разработчика. Как оценить?
- Тренды в IT. Что вообще происходит?
- 17 вопросов джуну: что должен знать Junior-разработчик.
FAQ
Что такое «пет-проект»?
Это ваш личный проект, который вы делаете для себя. Пет-проекты – отличная возможность отточить свои навыки и показать работодателю, что вы что-то умеете.
Сколько времени занимает обучение на разработчика?
Зависит от личных качеств, но на то, чтобы получить профессию с нуля, у вас уйдет от полугода.
Подведем итоги
- Программист – это человек, который пишет код. Этот код должен выполнять какие-то конкретные задачи.
- Программисты бывают разными, самый классический вариант – это разработчик.
- Для того, чтобы стать программистом, вам нужно освоить какой-либо язык, его фреймворки, основные методологии разработки и сопутствующие технологии (SQL, например).
- ВУЗы и колледжи – не лучший способ получения профессии, лучше использовать курсы и самообучение.
- Карьерный путь программиста начинается с джуна, затем – миддл с дальнейшим ростом в сеньора. Сеньоры же могут стать кем угодно.
Источник: www.sravni.ru
Каким программистом стать — рассказываем о популярных направлениях
Разработка — широкая сфера, в которой заняты специалисты разных направлений от создателей сайтов до системных администраторов. Отрасль постоянно развивается, появляются новые ниши, что-то становится менее востребованным, но есть специализации, которые не теряют популярность.
По данным Хабр Карьеры, за вторую половину 2021 года средняя зарплата системных администраторов увеличилась на 25%, тестировщиков — на 17%, а разработчиков ПО — на 15%. Спрос на программистов растёт, желающих войти в профессию всё больше, но специалистов по-прежнему недостаточно. Поэтому разработка по праву считается одной из самых перспективных областей IT.
Это статья для тех, кто хочет узнать, какой бывает разработка и как в неё попасть. Мы расскажем, чем занимаются программисты самых популярных направлений, сколько зарабатывают и какие навыки им нужны.

Редакция Медиа Нетологии
Веб-разработчики
Веб-разработчик создаёт новые сервисы и сайты или поддерживает и дорабатывает существующие. Он может работать по одному из трёх направлений: фронтенд, бэкенд и фулстек.
Фронтендеры отвечают за внешний вид сайта или приложения. Правильное отображение кнопок, выпадающего меню, карт, изображений и других элементов — это их задача. Фронтендеру нужно знать язык программирования JavaScript и языки разметки HTML и CSS.
Бэкенд — это всё, что находится под капотом у сайта или сервиса. Бэкендер отвечает за то, чтобы сайт работал быстро, выдавал пользователю нужную информацию, надёжно и безопасно хранил данные. Умение писать на Python или серверном языке PHP — то, что нужно бэкендеру.
Фулстек объединяет две предыдущие специализации. Программисты здесь универсальные бойцы, те самые, кто может в одиночку создать сайт под ключ.
Веб-разработка — хорошая точка для старта: низкий порог входа в профессию, при желании можно дальше развиваться в других направлениях.
Фронтенд-разработчик
Навыки для старта:
- HTML5;
- CSS3;
- JavaScript;
- инструменты контроля версий: Git, GitHub;
- графические редакторы: Photoshop, Illustrator;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие.
- JS-фреймворки: React, Angular, Vue;
- понимание принципов построения бэкенда и умение работать с серверными технологиями: Node.js, PHP, Ruby, NET и прочие.
Бэкенд-разработчик
Навыки для старта:
- на выбор: PHP, Python, Java, Golang или C#;
- HTML, CSS;
- базы данных и языки запросов: SQL, MySql, NoSQL, MongoDB и другие;
- инструменты контроля версий: Git, GitHub;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие.
- фреймворки: Node JS, Laravel, Django, Spring, ASP.NET Core;
- JavaScript;
- умение организовывать серверное окружение, включая администрирование баз данных, а также масштабирование приложений;
- знание стандартов безопасности.
QA (Quality Assurance) или тестировщики
Тестировщик отвечает за качество продукта, который создают программисты: разрабатывает сценарии тестирования кода, прогнозирует сбои и находит ошибки в работе сайтов и сервисов. QA-инженеры изучают языки Java, Python и инструменты для автоматизации тестирования.
Тестирование — это самый простой путь в IT-сферу. Есть специалисты, которые занимаются ручным тестированием — проверяют работу готового продукта, имитируя действия пользователя, и могут обходиться даже без навыков программирования.
Читать также

Тестировщик ПО: всё о профессии
Тестировщик
Навыки для старта:
- методы и виды тестирования;
- основы клиент-серверного взаимодействия;
- артефакты тестирования;
- инструменты тестирования;
- жизненный цикл разработки ПО;
- гибкие методологии разработки ПО.
- SQL;
- инструменты контроля версий: Git, GitHub;
- автоматизация тестирования;
- Java, Python;
- Unit- и UI-тестирования;
- Selenium, Selenide.
Мобильные разработчики
Программисты, которые создают приложения и игры для мобильных устройств делятся на специализации: iOS и Android-разработчики. Мобильные приложения, в зависимости от платформы, пишутся на разных языках: Swift — для iOS, Java и Kotlin — для Android.
Как правило, мобильным разработчикам нужно знать весь цикл создания приложения — от кнопок на экране до работы с базами данных. Но в крупных корпорациях всё же часто бывает разделение на фронтендеров и бэкендеров.
В мобильной разработке задачи сложнее, но зарплаты выше, а конкуренция ниже.
iOS-разработчик
Средняя зарплата программиста на Swift: 200 000 рублей
Навыки для старта:
- Swift;
- среда разработки Xcode;
- инструменты контроля версий: Git, GitHub;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие;
- Apple Human Interface Guidelines.
- многопоточная разработка;
- архитектурные паттерны MVC, MVVM, VIPER;
- Material Design;
- основы базы данных и работы с сетью;
- Unit- и UI-тестирование;
- публикация в AppStore.
Android-разработчик
Средняя зарплата программиста на Java: 161 000 рублей
Средняя зарплата программиста на Kotlin: 180 000 рублей
Навыки для старта:
- Java, Kotlin;
- Android Studio;
- инструменты контроля версий: Git, GitHub;
- инструменты дебаггинга: Chrome Dev Tools, Firebug и прочие.
- многопоточная разработка;
- архитектурные паттерны MVP, MVVM, MVI;
- Material Design;
- основы базы данных и работы с сетью;
- Unit- и UI-тестирование;
- публикация в Google Play.

Бесплатный курс
Разработка мобильных приложений с нуля
Узнать больше
- Узнаете о преимуществах карьеры в мобильной разработке и поймёте, чем отличаются iOS и Android с точки зрения разработчика
- Научитесь работать с ключевыми инструментами Android-разработчика и создадите своё первое приложение с нуля
- Изучите базовые принципы разработки на Kotlin — главном языке для создания Android-приложений
1С-разработчики
Разработка на языке 1С очень востребована в России. Специалисты разворачивают и настраивают платформу «1C: Предприятие» для решения кадровых, бухгалтерских и других задач бизнеса. В обязанности 1С-разработчиков входит поддержка и обновление работающих приложений и создание новых конфигураций с нуля. Например, платформа позволяет настроить учёт остатков на складе, сортировать и анализировать данные.
Кроме 1С, программисту нужно знать язык разметки XML и протокол передачи данных HTTP.
Хотя 1С позволяет решать большое количество различных задач, иногда программисту его не хватает. Тут пригодятся знания других языков программирования: Python, JavaScript, C++, C#, Java.
Читать также

Разработчик на 1С. Что делает и сколько зарабатывает
1С-разработчик
Навыки для старта:
- платформа 1С;
- язык 1С;
- интерфейс платформы;
- справочники и регистры сведений.
- система компоновки данных;
- XML и JSON;
- HTTP-сервисы и SOAP-сервисы;
- интеграция, обмен данными;
- настройка бизнес-процессов.
Разработчики игр
Геймдев — крупная ниша, где программисты делятся на специализации по движкам, на которых разрабатываются игры: Unity, Unreal Engine и другие, а ещё по типам игр: десктопные, мобильные и MMORPG. Из игр на Unity вам могут быть знакомы Hearthstone, Pokemon GO и Wasteland, а на Unreal Engine — Fortnite и Borderlands.
Порог входа в разработку игр выше, чем в веб и мобильную разработку из-за сложности языков программирования, с которыми предстоит работать: C, C++, C# или Java.
Читать также

Разработка игр на Unity: почему этот движок так популярен, кто работает с ним и сколько зарабатывает
Разработчик игр
Навыки для старта:
- C#;
- умение работать с Unity и Unreal Engine;
- умение создавать двухмерные и трёхмерные игры;
- знание основных паттернов проектирования игр;
- знание принципов геймдизайна;
- умение оптимизировать игры.
- 3D-моделирование и 3D-графика;
- знание принципов сетевого взаимодействия и организации мультиплеерного режима;
- знания асинхронной логики и алгоритмов;
- гибкие методологии разработки.
Системные администраторы и специалисты по информационной безопасности
Это широкая категория специалистов, которые обеспечивают корректную работу IT-инфраструктуры компании.
Системные администраторы занимаются настройкой сетей, мониторингом, проводят инвентаризацию и обновление программного обеспечения.
Специалисты по информационной безопасности проводят аудиты защиты сетей, сайтов или приложений, тестируют сетевые сервисы на уязвимость, настраивают и администрируют средства защиты информации. Специалисты по кибербезопасности пишут код на языках C, Go или Python, ищут вредоносное ПО и следят за безопасностью в сети.
Системный администратор
Навыки для старта:
- инвентаризация, обеспечение рабочего состояния компьютерного оборудования;
- администрирование операционных систем, создание пользователей, удалённый доступ;
- установка программного обеспечения для работы компании: офисные, графические, бухгалтерские и прочие;
- знание и понимание сетевой модели OSI, основных протоколов.
- проектирование, администрирование и модернизация локальной сети;
- поддержка центрального сервера;
- добавление и конфигурация новых рабочих станций;
- выделение дискового пространства;
- организация работы БД;
- выполнение процедур для предотвращения распространения вирусов.
Специалист по информационной безопасности
Навыки для старта:
- основы построение работы сетей;
- понимание принципов распределённых информационных систем;
- первичный аудит информационных систем.
- хорошее понимание типов атак на информационные системы;
- владение навыками анализа инцидентов и разработки мер реагирования;
- понимание нормативно-правовых актов РФ в сфере информационной безопасности;
- владение Kubernetes на продвинутом уровне.
Что в итоге
Специализаций в программировании много, здесь мы подробно рассказывали о том, как выбрать свою. Проще всего войти в сферу разработки, начав с тестирования — если заниматься ручной проверкой приложений, языки программирования поначалу могут даже не понадобиться. Остальные направления подразумевают знания языков, фреймворков и вспомогательных инструментов. Сложнее всего попасть в геймдев — языки разработки игр довольно сложные, а ещё нужны хорошие навыки проектирования и дизайна.
В Нетологии есть бесплатные обзорные курсы, которые помогут получить представление о профессии и понять, что вам ближе — тестирование, веб или мобильная разработка.
Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
Источник: netology.ru
