Виды программистов и чем они занимаются
Какие бывают виды программистов? Виды деятельности программиста
Представьте себе постапокалиптическую картину мира без программистов. Драконы из «Игры престолов» превратятся в черно-белых Годзилл. Исчезнут чаты, мессенджеры и даже тетриса не будет. Мы нуждаемся в программистах. Они пишут коды для смартфонов, компьютеров и стиральных машин, заставляя технику работать. Но это далеко не все. У профессии много направлений и специализаций, каждая из которых имеет свои особенности и сложности, зарплата также зависит от того, чем занимается программист.
Web-разработчик
Самым востребованным на 2017 год видом профессии «программист» является веб-разработчик. К этой категории относятся специалисты по созданию сайтов.
Условно веб-мастера делятся на три группы:
Далеко не все знают, что такое клиентская и серверная часть. Поэтому работодатели зачастую путают специализации в веб-разработке. На биржах фриланса встречаются объявления, в которых наниматели от фронтенд-мастера требуют знания фулстак, при этом платят как за обыкновенную верстку.
Для не посвященных в мистерии кода это похожие виды направлений. Программисты занимаются, казалось бы, одним делом. Но инструменты, язык, обязанности и оклады у Frontend-мастера и серверного разработчика разные.
Кто такой фронтенд-разработчик?
Видимая часть интернет-ресурса, открывающаяся в браузере после ввода запроса, называется клиентской или фронтендом. Оформлением, цветовой гаммой, расположением заголовков занимается дизайнер. Художник рисует будущий макет и передает его верстальщику, который превращает его в HTML-шаблон. На этом этапе подключается веб-программист и добавляет интерфейсу динамики.
Фронтенд разработчики – это вид программистов, отвечающих за создание виджетов, кнопок, выпадающего меню, слайд-шоу. Все интерактивные элементы появляются на страницах благодаря им. Они пишут скрипты на JS, включают их через HTML-теги и следят за тем, чтобы каждая часть кода работала правильно.
Инструменты фронтенд-разработчика
Писать код на HTML, CSS и JavaScript не достаточно. Чтобы оставаться конкурентоспособным на рынке труда, Frontend-разработчик должен знать следующее:
Обязанности и виды деятельности программиста включают отладку и тестирование клиентской части. Веб-инженер проверяет отдельные блоки исходного кода на ошибки. Тестирует интерфейс, узнает, насколько пользователям будет удобно взаимодействовать с приложением. Также фронтенд-специалист должен разбираться в азах серверного программирования, технологиях Node.js, помимо JS писать на PHP и SQL.
Зарплата и перспективы
Средний оклад мастера составляет 66 тысяч 410 рублей в месяц. В США эта сумма вырастает до 102 тысяч долларов в год. Высокие зарплаты, легкость языка разметки и написания скриптов привлекает начинающих кодеров к фронтенд-разработке. Освоив JS, большинство из них переходит к серверным языкам. Самые талантливые учат высокоуровневые C и Java, постепенно осваивают геймдев, создание приложений и другие виды информационной деятельности программиста.
Программист серверной части
Backend – это часть веб-приложения, находящаяся на сервере. Она не отображается в браузере, но отвечает за изменения содержимого, обеспечивает динамическую работу и хранит всю информацию сайта. Состоит из сервера, приложения и базы данных. Вид программистов, которые занимаются созданием и разработкой этой части веб-ресурса называются Backend-разработчиками.
Создание веб-приложения – это сложный многоуровневый процесс, в котором участвуют несколько специалистов. Поэтому бэкенд-разработка является командной работой. При написании кода, программист взаимодействует с дизайнерами, верстальщиками, менеджерами и заказчиками.
Разработчик Fullstack
Это вид работы программиста, включающий в себя все этапы создания веб-приложения. Fullstack developer –мастер на все руки, пишущий одновременно клиентскую и серверную часть. Первые упоминания о профессии появились в 2010 году после статьи сотрудника Facebook Карлоса Буэно. С этого момента компания нанимает работников исключительно уровня Fullstack.
Обязанности универсального веб-программиста:
Фулстак-разработчики – это специалисты уровня Senior Developer. За ними охотятся хедхантеры и у них самые высокие оклады. В США зарплата Fullstack Developer начинается от 70-80 тысяч долларов и от 25-30 тысяч долларов в странах Восточной Европы. На иностранных биржах фриланса, например Upwork, один час работы Fullstack-разработчика оценивается в 30$ и выше.
Специалист по созданию и разработке компьютерных игр
Разработка компьютерных игр – одна из самых быстроразвивающихся сфер ИТ-технологий. По данным аналитического агентства NewZoo объем рынка видеоигр с каждым годом увеличивается на 9%. Если в 2016 году он составил почти 100 миллиардов долларов, то к 2018 году эта сумма увеличится до 112.5 миллиардов. Поэтому «инженер видеоигр» – это перспективная и высокооплачиваемая должность.
Инженер, или Game-разработчик – общее название категории специалистов, задействованных в процессе создания игры. Главная задача – превратить идею в программный код и заставить все элементы взаимодействовать. 90% рабочего времени программисты пишут и отлаживают алгоритмы на языке C++, Visual Basic, Java и MEL.
Романтики в профессии мало. В основном, это рутинный и многочасовой труд за компьютером. График обычно ненормированный. Если дизайнеру приходит гениальная идея срочно что-то переделать, всю ночь корпит над кодом именно программист.
Какие бывают виды программистов игр?
Создание консольной, мобильной или компьютерной игры – это многоуровневый процесс. Начинается на стадии проектировки, заканчивается продвижением и коммерческой реализацией продукта. Также у игры много отдельных аспектов, включая интерфейс, аудио и видео эффекты, искусственный интеллект. Для каждого есть отдельный вид программистов:
За свой труд на благо игровой индустрии данный вид программистов получает зарплату от 60 тысяч рублей. Доход инди-разработчиков точно просчитать сложно. Есть случаи, когда успешные проекты приносили миллионы буквально за неделю. Например, игра-хит Punch Club, Angry Birds и всем известная «Майнкрафт». Существуют, конечно, провальные задумки наподобие Scroll Ninja, не оправдавших ожидания создателей.
Системный программист
Система, софт, или программное обеспечение – это набор инструкций для компьютера. К ним относятся утилиты, драйвера, команды для процессора, графической карты, монитора. Пишет их системный инженер на понятном для машины языке, или коде.
Разрабатывается программное обеспечение под различные операционные системы, включая серверные Unix и Windows Server, а также мобильные платформы. Код пишется на языках «Си», за редким исключением Assembler. Основная задача системного инженера заключается в установке, настройке, тестировании ОС и всех ее компонентов
Различные виды профессии «программист» требуют от специалиста определенных навыков, опыта работы и уровня владения компьютерными языками. Но труд именно системных инженеров является самым сложным. Для создания ПО нужны углубленные знания информатики, алгебры, математики и построения алгоритмов.
Системный программист необходим в любой сфере ИТ, включая автоматизацию процессов производства и мониторинг безопасности. В США за труд специалиста готовы платить от 87 до 104 тысяч долларов. В Англии 57 тысяч фунтов стерлингов, в России 90 тысяч рублей.
Инженер прикладного программного обеспечения
Данный вид программистов создает не системное, а прикладное ПО. Это программы, или приложения, которые взаимодействуют с пользователем непосредственно. Например, текстовые и графические редакторы, базы данных, аудио и видео плееры.
Работа прикладного инженера заключается в написании кода, его последующей компиляции, отладке и тестировании. Иногда специалист обновляет или вносит изменения в уже существующее ПО. Для программирования использует высокоуровневые языки Java, C#, C++, Python, PHP. Прикладные программисты редко трудятся в одиночку. В основном, они являются участниками стартапов, или входят в штат сотрудников компании, занимающейся разработкой компьютерного софта.
«Программист» – интересная и разнообразная профессия с множеством направлений и специализаций. Одни делают виджеты для сайтов и проектируют API, другие пишут код для серверов или корпят над графикой Disciples III. Каждый, кто любит программировать, может реализовать себя в веб-разработке, стать именитым создателем игр или писать программы для спутников НАСА.
О типах программистов: специализация и мотивация
Программирование давно уже стало крупной отраслью, объединяющей под одним названием множество разных профессий. Только далекие от сферы IT люди считают, что программист сможет им быстро установить Windows или «собрать простенький интернет-магазин». И очень удивляются, если оказывается, что человек никогда не работал с веб-сайтами или о системе Windows знает меньше, чем многие пользователи. Хотя бы потому, что сам пользуется Linux или Mac.
Если вы попробуете изучить списки вакансий IT-разработчиков, разнообразие названий специалистов и требований может даже испугать. Особенно если вы хотите собрать классную команду или найти себя в этом огромном профессиональном пространстве. А ведь нужно учитывать еще и человеческий фактор, чтобы проект все же состоялся, а карьера строилась.
На самом деле, все не так сложно, как может показаться. Программисты делятся на 8 основных типов по направлению деятельности. А в рамках личностных качеств лучше всего ориентироваться на особенности мотивации. Но для начала, давайте разберемся в направлениях деятельности.
Front-end разработчик
Эти программисты специализируются на интерфейсах. Все кнопочки на экране, которые вы можете нажимать, выпадающие меню, и весь внешний вид сайта или приложения – их сфера деятельности. Т.е. Front-end – это работа над динамикой интерактивных интерфейсов. Кроме того, при отсутствии верстальщика от Front-end разработчика могут потребовать работу с HTML-кодом (верстку шаблонов).
Специальность востребована в крупных средних веб-студиях и других типах компаний, занятых в сфере сайтостроения и разработки приложений.
Необходимо знать технологии:
Также важно понимать, что такое адаптивная и мобильная верстка, изучить работу популярных CMS, разбираться в серверных технологиях и принципах бэкэнда, изучить основы SEO-оптимизации, работу с веб-шрифтами, уметь пользоваться Photoshop, Illustrator, другими графическими редакторами.
Back-end разработчик
Программист Back-end занимается созданием программно-административной частью проекта – он создает архитектуру, продумывает логику, пишет исполняемый код.
Такие специалисты работают в крупной или средней IT-компании. Вообще, разделение Front-end и Back-end – признак солидного проекта.
Может пользоваться самыми разными языками программирования, фреймворками и библиотеками. Самые популярные:
Также обязательно нужно изучить JavaScript, MySQl, PostgreSQL и NoSQL.
Full-stack разработчик
Этот тип программистов объединяет в себе две описанные выше категории, обычно работает над WEB-проектами. Т.е. это тот самый программист, который сможет создать полноценный сайт «под ключ» самостоятельно.
Эти специалисты очень нужны небольшим веб-студиям, а также на фрилансе. Объединяет в себе навыки и знания, описанные в предыдущих двух пунктах. Но оба направления обычно знает не столь глубоко, как в случае выбора узкой специализации. Впрочем, ему это и не нужно. Его ниша – несложные и не самые дорогие проекты.
Game Developer
Разработчик игровых приложений – это одно из крупных понятий. Обычно Game разработчики делятся на специализации: разработка декстопных, мобильных игр и MMORG.
Специалисты этого направления востребованы в игровых студиях и стартапах. Занимаются разработкой игр с нуля, а также поддержкой, исправлением багов и другими обновлениями.
Android разработчик
Занимается приложениями для мобильных устройств под управлением ОС Android. В крупных компаниях здесь также разработка делится на Back-end и Front-end. Но в большинстве случаев Android-программисты изучают полный цикл создания приложения, после чего могут работать с любой частью проекта.
Специальность востребована в игровых студиях, стартапах, компаниях, специализирующихся на разработке мобильных приложений и т.д.
iOS разработчик
Создает различные мобильные приложения под iOS (ОС для устройств Apple). Выполняет функции, аналогичные описанию Android-программиста. Также востребован в стартапах, компаниях по разработке мобильных приложений и других подобных проектах.
О преимуществах и недостатках систем iOS и Android мы уже писали ранее. Оба направления одинаково важны и востребованы. А с опытом многие программисты учатся работать под обе мобильные ОС.
Что нужно знать iOS разработчику:
1C программист
Специалисты по работе с различными конфигурациями программного обеспечения 1С. В профессиональной среде к этой категории отношение двоякое. Многие разработчики язык 1С вообще не считают языком программирования, а специалистов по 1С – программистами. Но, тем не менее, именно так называют эту специальность. И в России она широко востребована.
Программисты 1С занимаются созданием отраслевых конфигураций на основе базовых (типовых), доработкой и настройкой существующих программных решений под особенности бизнеса клиента, написанием внешних обработок и отчетов.
Вакансию программиста 1С можно увидеть от имени компании-партнера 1С, которая занимается внедрением этого программного продукта в регионе. Также программиста 1С нанимают в штат средние и крупные предприятия, которые нуждаются в постоянном обслуживании.
Что должен знать 1С-программист:
Инженер-программист
Практически всем видам программирования можно научиться на курсах или самостоятельно. Исключение – инженер-программист. Эта профессия помимо изучения языков программирования, предполагает глубокие знания в области математики, физики, других сопутствующих дисциплин.
Инженер-программист хорошо знает математическую логику и дискретную математику, умеет применять всю эту математику на практике. Кроме того, уровень подготовки позволяет изучить различные промышленные и технологические процессы.
А потому инженеры-программисты чаще всего заняты в сфере разработок программного обеспечения для автоматизации производства: станков с ЧПУ, конвейерных линий. Они же обычно программируют бытовую технику – хлебопечки, роботы-пылесосы и т.д. В компаниях, специализирующихся на создании программных систем, часто именно инженеры-программисты становятся разработчиками, так как в отличие от «кодеров»-самоучек, эти специалисты получили глубокие знания алгоритмизации.
Типы мотивации
И напоследок, как мы и обещали, поговорим об особенностях характера и подходов к работе у разных программистов. Существует множество разных классификаций, но наиболее простая и понятная – по типу мотивации.
Практически у каждого программиста эти мотивации смешиваются. И здесь важно понимать, что именно преобладает.
Бизнес-мотивация
Бизнес-мотиватор «включает» желание выполнить максимально качественно пожелания клиента. В этом случае программист, скорей всего, быстро станет любимчиком заказчиков и руководителей. Он будет стараться быстро, качественно и без лишних вопросов воплощать в жизнь любую функциональность. Он даже готов переписывать код и работать в ущерб архитектуре проекта, если таково требование клиента. Редко обладают хорошей фантазией, мыслят в контексте кода всегда очень конкретно. Этот тип разработчиков – «соль земли», они нужны при создании любого продукта.
Технологическая мотивация
Этот мотиватор чаще всего встречается у гиков, которые постоянно интересуются всеми новинками и готовы изучать новые языки, фреймворки, инструменты, как только они появляются. Такие люди знают все о модных направлениях, посвящают их изучению личное время, и всегда пробуют новинки «на зуб». В новых стартапах и зарождающихся проектах такие люди незаменимы. Это настоящие генераторы идей и знатоки инновационных решений.
Но если проект становится зрелым, близится к финалу или доступен пользователям, увлеченного технологиями гика лучше переключить на что-то другое. Потому что он либо заскучает, либо начнет без необходимости переписывать код, просто чтобы внедрить еще одну новинку, которую больше негде попробовать.
Решение задач как мотиватор
В этой категории – поклонники сложных головоломок из мира программирования. Их привлекает возможность решить задачу, и чем она сложнее, тем интереснее. Новые технологии сами по себе их не интересуют, но. если что-то понадобится для проекта, изучат и будут пользоваться. Для таких программистов победа – это логичное, стройное и красивое решение.
Недостаток этого типа мотивации – после того, как решение найдено и проверено, интерес к проекту затухает почти до нуля. Поиск мелких багов, создание дополнительных функций по просьбе клиента и работа с новыми версиями чаще всего вызывает скуку. Человек уходит из проекта либо его продуктивность снижается до отметки, близкой к нулевой.
Такая система классификации далеко не идеальна. В большинстве случаев все три типа в человеке перемешиваются. А потому любители решения задач могут терпеливо работать над мелкими «шероховатостями» в коде, а ценитель бизнес-мотивации выдает оригинальные идеи. В описанной классификации – то, что психологи называют «чистым психотипом», т.е. самые ярко выраженные случаи. А в реальности имеет смысл постараться собрать представителей разных типов в одну команду, изучить, к какой из мотиваций больше тяготеет программист, и стараться его загружать подходящими проектами.
А как вы себя позиционируете? Какой тип программиста – ваш?
СХОЖИЕ СТАТЬИБОЛЬШЕ ОТ АВТОРА
10 полезных советов по работе с Git
10 полезных инструментов для React-разработчика
Задачи cron и автоматизация в Linux
Альтернативы Docker
Как писать хорошие сообщения коммитов: Commitlint
9 КОММЕНТАРИИ
Не включили с# в backend
Абидно
Отличная статья, доступно объяснили. Спасибо!
по сути, программирование и электроника — две совершенно разные вещи. Одна, конечно, не исключает другую (т.е. хороший программист может знать элкетронику и наоборот). Но я бы сказал, что программирование сегодня гораздо ближе к архитектуре (строительству) чем к электронике. Одно из самых главных умений хорошего программиста — декомпозиция, т.е. умение разложить крупную задачу на небольшие, и, используя доступные инструменты построить приложение.
так что по сути вы все правильно написали 🙂
Мы публикуем все точки зрения, которые не противоречат законодательству.
Единственное, модерация может немного затянуться по причине нехватки времени.
Какой-то обиженный стон, а не статья. Что значит, что дебильный «кодер-прогер» может стать таковым самостоятельно, а инженер-программист получить образование не в состоянии? Что за бред? Что ему мешает самостоятельно освоить на должном уровне мат. логику, теорию алгоритмов, всю эту вот дискретку и сопутствующие дисциплины из циклов, составляющих собственно его образование?
8 видов российских программистов
Какие кодеры наиболее востребованы в нашей стране?
Если сказать простому человеку, что ты работаешь программистом, то в ответ можно услышать одну из следующих реплик:
Если в ответ сказать, что ты ни разу не делал сайты и лабы на VBA, а Windows видишь только в страшных снах, то собеседник может искренне удивиться и на его лице отразится искреннее сомнение в твоей профессиональной пригодности. Некоторые разработчики слабеют под таким взглядом и идут доказывать, что они что-то могут. Из-за таких лохов в голове обывателя слово «программист» является синонимом понятия «бесплатная компьютерная помощь».
Ведь многие люди не знают, чем на самом деле занимаются программисты и судят об этом по навыкам своих родственников/знакомых. Но разные представители специальности делают абсолютно разные вещи и нельзя говорить за всех.
Эта статья расскажет об основных специализациях программистов, которые наиболее востребованы на российском рынке. Для каждого типа будут указаны организации, где его можно встретить чаще всего и технологии, с которыми ему надо уметь работать.
В статье будут упомянуты только главные знания, без которых не обойтись в адекватном коллективе, где программиста не заставляют закручивать гайки, рисовать дизайн и выкладывать статьи на сайт.
1. Front-end веб-разработчик
Если мы заходим на сайт и там есть кнопочки, которые меняют местоположение и цвет при наведении на них мышкой, то это дело рук front-end разработчика. Он пишет весь код на JavaScript, который выполняется без перезагрузки страницы на стороне клиента.
Где работает?
В серьезных фирмах, занятых созданием сайтов и веб-приложений. Разделение фронтенда и бекенда один из признаков наличия в компании определенного уровня культуры разработки.
Что делает?
Разрабатывает динамику пользовательского интерфейса. Если в компании нет верстальщика, то еще и переводит PSD-шаблоны в HTML-код.
Технологии
2. Back-end разработчик
Человек на плечи которого ложиться основное бремя по разработке веб-проекта. Он как бы строит фундамент, на который front-end разработчик прицепляет «декоративные элементы».
Где работает?
В серьезных фирмах, занятых созданием сайтов и веб-приложений. Разделение фронтенда и бекенда один из признаков наличия в компании определенного уровня культуры разработки.
Что делает?
Разрабатывает “ядро” сайта или веб-приложения: код исполняемый на сервере и архитектуру базы данных.
Технологии
Один из нижеперечисленных языков и фреймворки/библиотеки для него:
3. Full-stack веб-разработчик
Человек, который может сделать сайт любой сложности «от и до».
Где работает?
Чаще всего в стартапах и небольших студиях веб-дизайна. В крупных компаниях содержится в команде наряду с front-end и back-end разработчиками, чтобы контролировать и координировать их работу.
Что делает?
Сайты и веб-приложения. Выполняет работу front-end и back-end разработчика одновременно.
Какие технологии ему желательно знать?
См. списки двух предыдущих типов.
4. Разработчик игр
Очень широкое понятие, которое включает как минимум три крупных категории: разработчик десктопных игр, разработчик мобильных игр и разработчик MMORG.
Где работает?
Что делает?
Какие технологии ему желательно знать?
5. Разработчик приложений под Android
Где работает?
В студиях мобильных приложений, стартапах или крупных компаниях, которые решили сделать для себя мобильное приложение собственными силами.
Что делает?
Разрабатывает приложения под операционную систему Android.
Какие технологии ему желательно знать?
6. Разработчик приложений под iOS
Где работает?
В студиях мобильных приложений, стартапах или крупных компаниях, которые решили сделать для себя мобильное приложение собственными силами.
Что делает?
Разрабатывает приложения под операционную систему iOS.
Технологии
7. Программист 1C
Многие разработчики не считают язык, встроенный в 1C, языком программирования, а людей, которые пишут на нем, программистами. У них есть на это свои основания. Тем не менее, людей которые называют себя программистами 1C и вакансий для них очень много.
Где работает?
В любой фирме активно ведущей экономическую деятельность. Часто не включен в основной штат сотрудников, а приходит пару раз в месяц или реже.
Что делает?
Пишет программы для автоматизации документооборота в компании.
Технологии
8. Инженер-программист
Если одним из 7 предыдущих типов можно стать отучившись на курсах или путем самообразования, то инженеров-программистов выпускают только технические ВУЗы. Часто на этих должностях работают люди старше сорока лет, получившие образование в советское время.
Где работает?
На производстве или в научном учреждении.
Что делает?
Разрабатывает программы для управления самыми разными устройствами: от печи на хлебозаводе до робота-пылесоса.
Технологии
Один из нижеперечисленных языков:
+ огромный багаж технических знаний, соответствующий отрасли в которой человек работает.
Если посмотреть объявления о найме программистов на российских сайтах, то 90% из них будут подходить под эти семь типов. На Западе рынок вакансии несколько разнообразнее. Кто интересуется, может зайти на Odesk и посмотреть, какая работа там предлагается.
С грустью замечаю, что 14-летние пакистанцы требуют там за html-верстку от 500 рублей в час.
А судить о том, какие языки сейчас наиболее популярны в мире можно по данным Tiobe Index. Этот рейтинг строится по числу запросов в поисковых системах с упоминанием разных языков программирования.
P.S. Напоследок, жизненный анекдот в тему.
Если бы водителей нанимали на работу так же как программистов:
Вакансия: водитель.
Требования: профессиональные навыки в управлении легковыми и грузовыми автомобилями, троллейбусами, трамваями, поездами метрополитена и фуникулёра, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими/средними танками, находящимися на вооружении стран СНГ и НАТО. Навыки раллийного и экстремального вождения обязательны. Опыт управления болидами “Формулы 1″ — приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, бортовых компьютеров, антиблокировочных систем, навигационных систем и автомобильных аудиосистем ведущих производителей. Опыт проведения кузовных и окрасочных работ — приветствуется. Претенденты должны иметь сертификаты Mercedes, BMW, General Motors, а также справки об участии в крупных международных соревнованиях не более, чем двухлетней давности.
Зарплата: определяется по результатам собеседования.