Какие кодеры наиболее востребованы в нашей стране?
Если сказать простому человеку, что ты работаешь программистом, то в ответ можно услышать одну из следующих реплик:
- «Мне надо переустановить Windows. Я всю жизнь ждал того, кто сделает это для меня. А потом пойдем чинить тостер.»;
- «О! Ты можешь помочь мне с лабораторной работой на VBA!»;
- «За сколько сможешь сделать сайт для магазина моей мамы?»;
- «Да ну! Скучная и дурацкая профессия. Я вот как-то пробовал разобраться с 1C…».
Если в ответ сказать, что ты ни разу не делал сайты и лабы на VBA, а Windows видишь только в страшных снах, то собеседник может искренне удивиться и на его лице отразится искреннее сомнение в твоей профессиональной пригодности. Некоторые разработчики слабеют под таким взглядом и идут доказывать, что они что-то могут. Из-за таких лохов в голове обывателя слово «программист» является синонимом понятия «бесплатная компьютерная помощь».
Ведь многие люди не знают, чем на самом деле занимаются программисты и судят об этом по навыкам своих родственников/знакомых. Но разные представители специальности делают абсолютно разные вещи и нельзя говорить за всех.
Эта статья расскажет об основных специализациях программистов, которые наиболее востребованы на российском рынке. Для каждого типа будут указаны организации, где его можно встретить чаще всего и технологии, с которыми ему надо уметь работать.
В статье будут упомянуты только главные знания, без которых не обойтись в адекватном коллективе, где программиста не заставляют закручивать гайки, рисовать дизайн и выкладывать статьи на сайт.
1. Front-end веб-разработчик
Если мы заходим на сайт и там есть кнопочки, которые меняют местоположение и цвет при наведении на них мышкой, то это дело рук front-end разработчика. Он пишет весь код на JavaScript, который выполняется без перезагрузки страницы на стороне клиента.
Где работает?
В серьезных фирмах, занятых созданием сайтов и веб-приложений. Разделение фронтенда и бекенда один из признаков наличия в компании определенного уровня культуры разработки.
Что делает?
Разрабатывает динамику пользовательского интерфейса. Если в компании нет верстальщика, то еще и переводит PSD-шаблоны в HTML-код.
Технологии
- HTML и UI фреймворки (Bootstrap, Foundation, Pure);
- CSS и препроцессоры (SASS/LESS);
- JavaScript + фреймворки/библиотеки на этом языке (Jquery, ReactJS, AngularJS, BackboneJS);
- Утилиты для сборки проектов (Grunt, Gulp, Bower).
2. Back-end разработчик
Человек на плечи которого ложиться основное бремя по разработке веб-проекта. Он как бы строит фундамент, на который front-end разработчик прицепляет «декоративные элементы».
Где работает?
В серьезных фирмах, занятых созданием сайтов и веб-приложений. Разделение фронтенда и бекенда один из признаков наличия в компании определенного уровня культуры разработки.
Что делает?
Разрабатывает “ядро” сайта или веб-приложения: код исполняемый на сервере и архитектуру базы данных.
Технологии
Один из нижеперечисленных языков и фреймворки/библиотеки для него:
- PHP;
- Ruby;
- Python;
- Java;
- Go;
- JavaScript.
А также:
- Базы данных MySQl/PostgreSQL/NoSQL.
3. Full-stack веб-разработчик
Человек, который может сделать сайт любой сложности «от и до».
Где работает?
Чаще всего в стартапах и небольших студиях веб-дизайна. В крупных компаниях содержится в команде наряду с front-end и back-end разработчиками, чтобы контролировать и координировать их работу.
Что делает?
Сайты и веб-приложения. Выполняет работу front-end и back-end разработчика одновременно.
Какие технологии ему желательно знать?
См. списки двух предыдущих типов.
4. Разработчик игр
Очень широкое понятие, которое включает как минимум три крупных категории: разработчик десктопных игр, разработчик мобильных игр и разработчик MMORG.
Где работает?
В игровых студиях.
Что делает?
Разрабатывает игры.
Какие технологии ему желательно знать?
- С#/C++/Java;
- Open GL или DirectX;
- Один из игровых движков (Unity, Unreal Engine, Torque и другие).
5. Разработчик приложений под Android
Где работает?
В студиях мобильных приложений, стартапах или крупных компаниях, которые решили сделать для себя мобильное приложение собственными силами.
Что делает?
Разрабатывает приложения под операционную систему Android.
Какие технологии ему желательно знать?
- Java;
- Android SDK;
- OpenGL;
- Android Studio.
6. Разработчик приложений под iOS
Где работает?
В студиях мобильных приложений, стартапах или крупных компаниях, которые решили сделать для себя мобильное приложение собственными силами.
Что делает?
Разрабатывает приложения под операционную систему iOS.
Технологии
- Objective-C;
- XCode;
- OpenGL;
- Cocoa Touch;
- CoreData;
- CoreGraphics.
7. Программист 1C
Многие разработчики не считают язык, встроенный в 1C, языком программирования, а людей, которые пишут на нем, программистами. У них есть на это свои основания. Тем не менее, людей которые называют себя программистами 1C и вакансий для них очень много.
Где работает?
В любой фирме активно ведущей экономическую деятельность. Часто не включен в основной штат сотрудников, а приходит пару раз в месяц или реже.
Что делает?
Пишет программы для автоматизации документооборота в компании.
Технологии
- «1С:Управление торговлей»;
- «1С:Бухгалтерия»;
- «1С:Зарплата и кадры»;
- T-SQL.
8. Инженер-программист
Если одним из 7 предыдущих типов можно стать отучившись на курсах или путем самообразования, то инженеров-программистов выпускают только технические ВУЗы. Часто на этих должностях работают люди старше сорока лет, получившие образование в советское время.
Где работает?
На производстве или в научном учреждении.
Что делает?
Разрабатывает программы для управления самыми разными устройствами: от печи на хлебозаводе до робота-пылесоса.
Технологии
Один из нижеперечисленных языков:
- C;
- C#;
- C++;
- Java;
- Delphi (жил, жив и будет жить!);
- Assembler.
+ огромный багаж технических знаний, соответствующий отрасли в которой человек работает.
Если посмотреть объявления о найме программистов на российских сайтах, то 90% из них будут подходить под эти семь типов. На Западе рынок вакансии несколько разнообразнее. Кто интересуется, может зайти на Odesk и посмотреть, какая работа там предлагается.
С грустью замечаю, что 14-летние пакистанцы требуют там за html-верстку от 500 рублей в час.
А судить о том, какие языки сейчас наиболее популярны в мире можно по данным Tiobe Index. Этот рейтинг строится по числу запросов в поисковых системах с упоминанием разных языков программирования.
P.S. Напоследок, жизненный анекдот в тему.
Если бы водителей нанимали на работу так же как программистов:
Вакансия: водитель.
Требования: профессиональные навыки в управлении легковыми и грузовыми автомобилями, троллейбусами, трамваями, поездами метрополитена и фуникулёра, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими/средними танками, находящимися на вооружении стран СНГ и НАТО. Навыки раллийного и экстремального вождения обязательны. Опыт управления болидами “Формулы 1″ — приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, бортовых компьютеров, антиблокировочных систем, навигационных систем и автомобильных аудиосистем ведущих производителей. Опыт проведения кузовных и окрасочных работ — приветствуется. Претенденты должны иметь сертификаты Mercedes, BMW, General Motors, а также справки об участии в крупных международных соревнованиях не более, чем двухлетней давности.
Зарплата: определяется по результатам собеседования.
67 комментариев
Форум →в 8 пункт добавьте oracle apex и lotus. прям вот типичные мужики за 40-50, которые сидят и программируют мышкой
@goodhoopoe, тут много технологий пропущено… иначе бы редкий читатель до середины статьи дошел…
Было бы интересно прочитать ещё об уровне доходов специалистов в России по каждому из направлений. В целом познавательно, спасибо!
@MUradyan, уровень дохода программистов в нынешних реалиях измеряется не по России ;)
Back-end разработчик – Вы забыли добавить c#, asp.net, mvc
@Foonk, при чем тут паттерн mvc? это как сказать, например: “они играли блюз, джаз и бас гитара”.
@LyriD, я думаю тут просто лишняя запятая между asp.net и mvc
@LyriD, mfc
@Foonk, тут много технологий пропущено… иначе бы редкий читатель до середины статьи дошел…
@Ирина Чернова, но эти являются наиболее распространёнными
Сам я Full-stack разработчик на SharePoint. А так же, в свободное время занимаюсь разработкой игр на Unity в своё удовольствие.
@Foonk, Сочувствую.
@DeoJ, а я тебе ой как сочувствую ;)))
@Foonk, а можете чуть подробнее рассказать, что Вы на SharePoint разрабатываете? Я думаю, все интересно)))
@Ирина Чернова, это действитель интересно, автоматизировать бизнес-процессы. Например такие как модуль отпусков, командировок, согласование оплат по бюджетам, согласование договоров, заявки на курьера, служба контроля качества, helpdesk, wiki и многое другое.
@Foonk, и это все только на Share Point? какие еще технологии используете?
По своему опыту могу сказать, что сейчас легко очень устроиться программистом в компанию, другое дело, как долго ты там сможешь продержаться. Не каждый работодатель захочет вкладываться в сотрудника. А обучаться на всяких курсах повышения квалификации хотят…. ой немногие работодатели!
Всегда мечтал закрутить роман с российской программисткой и вместе написать пару тройку программ)
@dennis1, а ведь раньше то семьи были и по 12 человек и нормально, а тут 2-3…
@dennis1, месье знает толк в извращениях. А почему в Вашей мечте такое жесткое требование к гражданству?
@Ирина Чернова, нет никаких жестких привязок к гражданству и прочим стереотипам, просто сейчас всеобщий тренд это импортозамещение) но в крайней необходимости всегда можно сделать исключение, особенно когда речь идет о программистках)
@dennis1, а на каких языках Вы хотите написать пару тройку программ?
@Ирина Чернова, думаю начать можно с языка жестов с последующим переходом в эротическую составляющую)) эх, а Вы зачем интересуетесь дорогая?)
а что за Flat у фронт-энда?
@srgis, тоже интересно. может flex имелся ввиду? (но его можно к цсс отнести)
@srgis, думаю имелся ввиду умирающий flash
@srgis, ой я туда не писала никакой Flat((((((((((((( и найти его не могу(((((
@Ирина Чернова, на картинке
@MAXiDROME, ох спасибо! я думаю это он работает работает, а задним умом думает, чем за хату платить (flat – это квартира по английски).
Разработчиков Android и iOS лучше бы объединить просто в мобильных разработчиков, тогда аналогия с теми же веб-разработчиками будет более точной, т.к. там описывается специализация, а не платформа разработки (и не забудьте про WP-разработчиков, их немного, но они всё же есть).
И да, включать IDE Xcode и Android Studio (которые, по сути, являются вспомогательными инструментами) в список технологий рядом с ЯП и фреймворками выглядит как-то глупо.
@Semplx, поддерживаю. мобильная разработка это не только java на андроиде, c# для WP и ob-c/swift для iOS, но это так же как минимум phonegap/cordova/ionic и Xamarin.
@goodhoopoe, можно там еще Qt для Ubuntu Touch вспомнить… много технологий есть для создания мобильных приложений… Но на работу берут чаще всего со знанием тех, которые упомянуты в статье.
Классная статья! Спасибо!)
@Ivan Ivanov, :-)
Почему-то в статье нет “нормальных” application-программистов, пишущих под Windows или Mac. Они совсем не обязаны быть инженерами-программистами. И разработчики бизнес-приложений не ограничиваются 1С (особенно, если вспомнить, что есть другие страны, кроме России, и что программирование вообще не имеет границ). И тут выясняется, что самые высокооплачиваемые это ABAPеры. Это такие 1Сники но для немецкого SAP. Есть также разработчики под Axapta, Oracle EBS и другие бизнес-приложения. И они очень хорошо зарабатывают. Я знаю. :)
Кстати, не стоит обижать и 1Сников. Хороший внедренец/разработчик на 1С может дать фору многим из других, приведённых в статье примеров, как по квалификации, так и по зарплате. Увы, но доступность и лёгкость освоения 1С (в т.ч. благодаря русскому языку в коде) сыграли с этой платформой злую шутку. “Программистов” 1С просто орда. Но, как всегда бывает в таком случае, на 1 обученного и правильно пишущего код, приходится 9 быдлокодеров, которые делают все тяп-ляп. Так они так все и на C# или VB бы делали. Причина не в 1С, а в людях. Сейчас среди ABAPеров тоже стало очень много индусов. И из-за них существенно деградировали решения на SAP. Потому как у индусов работа строится по принципу “херак-херак и в продакшн”. Они так и на Джаведа пишут. Как и у большинства упомянутых ранее 1Сников.
@peper-, их там нет, потому что для них мало вакансий в России. А за информацию про SAP спасибо.
@Ирина Чернова, вакансий может и не так много, как веб-разработчиков и 1Сников, но они есть. Скажу более того, наши прикладные программисты весьма ценятся на Западе (также как белорусские и украинские), потому как образование и культура программирования у нас намного выше, чем у тех же индусов, а стоимость практически сравнялась (особенно в последнее время из-за падения курса рубля и связанных с ним валют). Российские программисты это Abbyy, Kaspersky, Dr.Web, Parallels, Acronis, Paragon, nginx… И это очень круто!
@peper-, Только людей их последних двух строчек Вашего поста я бы и назвал программистами. Остальное от лукавого.
Вэб, iOs, Android, 1C и т.п. это работа в предварительно разработаной комфортной среде. Ну и разработчики игр конечно тоже рулят (нормальных игр конечно).
@kulachok5, а как бы Вы назвали людей, пишущих код для веб, ios, android, 1c?
@peper-, подтверждаю, серьезное упущение. Прогеры, которые пишут обычный софт под Windows и Mac. Как можно было упустить в статье одну из основных категорий разработчиков…
Тогда уж и AngularJS исправьте. У вас angulas
@Drew, ой ой ой… спасибо, поправила)
Статья неплохая;
про игроделов: нет категории “разработчик MMORPG”, есть категории “разработчик клиент-серверных онлайновых игр” и “разработчик браузерных игр”
анекдот хорош :)
Наконец я узнал ху из ху. Спасибо.
@Артур Малосиев, :-)
Категория 8 – АСУшники, по ходу работы научившиеся дельфям. Откуда взялось инженер-программист то?
Есть еще программисты компиляторов, системные программисты (пересекается много с чем), новомодные облачные (эдакое развитие back-end) – но они тоже могут поделиться на создателей платформ и прикладников.
Вот это очень хорошее разделение – кто-то делает платформы, а кто-то их применяет.
Можно аналогию сделать на специализации юристов – схожие формальные языки, но в каждой специализации много своих мелочей – гражданское право, коммерческие организации, уголовный кодекс, и тд, плюс знание законодательств других стран. Только в программировании мелочей побольше и технологии меняются быстрее.
Программисты приложений для десктопа, программисты интерфейсов для операторов АСУ, программисты САПР, программисты систем сборок. Облачные программисты тоже специализируются – картографические сервисы, текстовый поиск, текстовый анализ, анализ картинок, анализ видео, анализ аудио, семантические сети, экспертные системы..
Вычислители! Программисты мат.моделирования, оптимизаторы, программисты программ анализа днк.
@yJIeTHblu, это в каком-нибудь новосибирском академгородке все эти люди в единственном экземпляре есть. Мало их очень.
@yJIeTHblu, статья о часто встречающихся видах.
@Ирина Чернова, собственно, претензия по статье только к категории 8 – правильнее назвать инженер-программист АСУ.
Дорогая передача, во субботу … Тьфу, то есть, дорогая редакция , а когда будет статья про виды российских:
1. Врачей
2. Учителей
3. Инженеров
4. Строителей
5. Рабочих
6. Крестьян
И т.д. и т.п. ?
Мы, читатели, срочно требуем подробно оповестить нас о Российском рынке труда !!!
@James404, про крестьян не будем делать наверное… это немного не наша тема. Но когда-нибудь, может быть, сделаем про иерархии IT-отделах, про то какие профессии бывают в сфере ИБ, про то каким профессиям надо уметь программировать, как IT-профессии бывают кроме программистов и сисадминов, какие IT-профессии очень редко встречаются в России, а в других странах их очень много.
@Ирина Чернова, по-моему, это ужасно скучно, лучше уж про крестьян… хотя, если программистам интересно читать про самих себя ( судя по отзывам ) , то ,похоже ,у вас нет выбора)))
@James404, а вам о чем интересно читать?)
@Ирина Чернова, ну, мне ясно про что: на сём ресурсе я ожидаю статьи в тематике западных ресурсов macru..rs, 9to5.. Про интересные приложения, технологии , используемые Эппл. Про конкурентов немного, в общем о чем вы и так пишите. А про программистов – не надо, ибо про себя я не люблю читать)
Только не надо так сильно возвеличивать профессию “Инженер-программист”, это тот же программист в достаточно консервативных организациях, например, на всяких заводах, где инженеры-программисты занимаются сопровождением больших БД: Oracle, MS SQL Server и прочих.
@metalhead, а где в статье возвеличивание?
@Ирина Чернова, первый абзац этого раздела:
“Если одним из 7 предыдущих типов можно стать отучившись на курсах или путем самообразования, то инженеров-программистов выпускают только технические ВУЗы. Часто на этих должностях работают люди старше сорока лет, получившие образование в советское время.”
Swift в топе, Objective C нет в топ 15 =\
Как считаете, изучать с нуля (вообще без знаний программирования) лучше ObjC или Swift? Смотрел в свифте как то понятней код читается и пишется проще. Или без знаний ObjC лучше свифт не изучать? И придет ли полностью на смену свифт?
@scrinn, Я не эксперт, но думаю так:
Если хотите быстро получить навык создания приложения на iOS и реализовать свое приложение, то думаю ничего плохого, чтобы выбрать Swift для изучения с нуля (хотя в этой ситуации можно обойтись и вышеупомянутым PhoneGap).
А если хотите серьезно посвятить жизнь кодингу и пока не знаете ни один из языков линейки С, то для своего развития стоит выбрать Objective-C (так Вы получите больше знаний, которые пригодятся вам для других платформ).
@scrinn, я думаю, Swift ближе к C-подобным языкам, чем Obj C, благодаря точечной нотации вызова методов против квадратных скобок последнего.
Однако, имеются миллиарды строк кода, написанные на Obj C, и многие из них никто, никогда не будет переписывать на Swift. Кроме того, имеются фреймворки, которых касается та же участь.
Поэтому, вопрос интересный, и дать на него однозначный ответ нельзя.
Я бы посоветовал учить C++, язык всех языков, мать его. Если, конечно, выбор Apple платформы не очень принципиален. В другом же случае, лучше начать со Swift, на мой взгляд: он проще, почему: указано в начале комментария, но все равно, рано или поздно придется учить Obj C (почему: об этом тоже сказано). Ни один программист не останавливается на одном языке.
@metalhead, я бы начал со Swift. ObjC, конечно, имеет много наработок и библиотек, но в Swift реализована поддержка вызовов ObjC. При этом, ObjC иногда бывает ну очень … специфическим из-за “старых грехов”. Нередко при вызове какой-нибудь функции натыкаешься на то, что там параметры не объектные, а старые сишные. Очень “удобно”. А Swift это попытка Apple сделать новый современный мощный язык на основе своего (и чужого) опыта. Он не только компактнее и красивее ObjC, но и работает быстрее (по утверждению Apple). А еще его опенсорсят. Что потенциально позволяет ему выйти за пределы платформ Apple.
А как-же системные программисты ?? Которые сидят и пыхтят, что бы работали Ваши ОС, что бы работало железо обеспечивающее вашу работу в интернете (коммутаторы, роутеры и тд.) да даже те-же ПО которое находится уже в привычных беспроводных наушниках и тд ?? По вашему там программисты не нужны ???
@molody, ну они как бы подразумеваются под 8 типом….
To author:
Задумка хорошая, реализация оставляет желать лучшего.
Можно было бы попросить человека, ориентирующегося (например, хорошего CTO) в теме лучше, чем Вы, написать несколько слов об этом.
Например, выражение “front-end web-разработчик” не является по смыслу верным, так как front-end уже подразумевает и web, в том числе.
Выражение “back-end web-разработчик” не подходит по той же причине. В большинстве случаев, backend есть у многих типов приложений. У игр, у настольных приложений и т.д.
Разделение на backend и fronend не является признаком какого-либо свойства компании/проекта. Это архитектурные вещи. И даже если их не выделяют в проекте явно, они, так или иначе, есть. Просто задачами этих областей могут заниматься как разные люди, так и один человек.
Fullstack разработчик вообще не обязательно контролирует кого-либо. На практике, fullstack’ами сейчас нанимают туда, где либо не хотят, либо не понимают необходимости в разделении зон ответственности. Либо для этого еще не наступило подходящее время.
Опять же, следуя вашему описанию, человек, разрабатывающий backend для игр – не game developer.
Вывод и пожелание таковы – пожалуйста, не селите еще больше неверной информации в головах людей. Ее и так предостаточно, в особенности, на этом сайте в последнее время.
И да, ться/тся.
Успехов.
@catwithcat, 1. Выражения front-end web developer и back-end web developer употребляются в объявления о вакансия повсеместно. И это очень распространенные профессии.
То что в маленькой фирме большая вероятность, что фронт-эндом и бэкендом будет заниматься один человек, чем в большой тоже не вызывает у меня сомнений.
В статье написано что человек владеющий навыками full-stack разработчика может контролировать фронтендера и бекендера, но не написано, что он обязан.
Есть ещё не упомянутая специализация. Firmware developer. Разработчик прошивок (как правило, для микроконтроллеров, применяемых в составе различных устройств). Не знаю, как в РФ, а в мире очень даже востребовано, т.к. в настоящем практически вся электроника построена на программируемых схемах, смена и обновление моделей (соответственно, и прошивок) происходит очень быстро.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как настроить параметры вида в Finder отдельно для разных папок?
iPhone не дает изменить параметры iCloud, что делать?
Почему iPhone не отображается в списке доступных устройств для AirDrop
Пропадают заметки на iPhone, что делать?
Какая служба в iPhone постоянно использует геолокацию?
Что делать, если камера iPhone запускается медленно
Почему не передаются фото с iPhone на Mac с функцией Камера Continuity
Почему iOS занимает много места на iPhone