Какие навыки наиболее востребованы и перспективны для разработчика? Давайте посмотрим, что компании ценят уже сейчас и как научиться всегда быть в тренде. Результаты исследования рынка труда техническими специалистами. Детализация анализа с уровня языков программирования до отдельных технологий и навыков.
13. Интересные факты
Самый популярный:
Hard skill • ООП
• Чтение документации
на английском
Soft skill
Technology • ASP.NET MVC
14. TOP 10 Технологий
Название Частота*
74%
ASP.NET MVC
ASP.NET MVC 74%
Transact-SQL, SQL Server
54%
Transact-SQL, SQL Server 54%
HTML, CSS, JavaScript, jQuery, AJAX
42%
HTML, CSS, JavaScript, jQuery, AJAX 42%
WCF
36%
XML, XSLT 36%
XML, XSLT
36%
WCF 36%
LINQ
22%
LINQ 22%
WPF
16%
WPF 16%
Windows Forms
14%
Entity Framework 14%
Web Services
14%
Web Services 14%
Entity Framework
14%
Windows Forms 14%
* Упоминается в n% вакансий из выборки в 300 вакансий на сайте HH.RU
15. TOP 10 Hard Skills
Название Частота*
28%
ООП
Объектно-ориентированное проектирование 28%
Анализ требований 28%
Архитектура, шаблоны проектирования 26%
Системы контроля версий 26%
Чтение и изменение чужого кода, reverse
engineering 22%
Разработка документации 22%
Многопоточное и асинхронное
программирование 20%
Методологии разработки 20%
Архитектура высоконагруженных систем 16%
Сопровождение и поддержка 16%
28%
26%
26%
22%
22%
20%
20%
16%
16%
Анализ требований
Архитектура, шаблоны проектирования
Системы контроля версий
Чтение и изменение чужого кода, reverse
engineering
Разработка документации
Многопоточное и асинхронное
программирование
Методологии разработки
Архитектура высоконагруженных систем
Сопровождение и поддержка
* Упоминается в n% вакансий из выборки в 300 вакансий на сайте HH.RU
16. TOP 10 Soft Skills
Название Частота*
32%
Чтение документации на английском
Чтение документации на английском 32%
26%
Командная работа 26%
10%
Самостоятельность 10%
Коммуникации 8%
8%
Ответственность 6%
6%
Планирование и оценка 6%
6%
Английский разговорный, письменный 6%
6%
Написание понятного кода 6%
6%
Знание последних тенденций и технологий 4%
4%
Умение излагать свои мысли 4%
4%
Командная работа
Самостоятельность
Коммуникации
Ответственность
Планирование и оценка
Английский разговорный, письменный
Написание понятного кода
Знание последних тенденций и технологий
Умение излагать свои мысли
* Упоминается в n% вакансий из выборки в 300 вакансий на сайте HH.RU
17. А теперь…
давайте поговорим о том,
почему этот анализ ерунда
На это есть, как минимум, 2 причины
18. Мы не успеваем за рынком
Может пора выучить
технологию Х или уже поздно?
19. А будет ли развитие?
Востребованность Качественный рост
Толерантность и
стрессоустойчивость
Умение налаживать
процесс разработки
Работать «быстро» и
никогда не допускать
ошибок
Внедрение
инструментов
контроля качества
20. Где же выход?
• Может я перечислю «настоящие» навыки?
• Или соберем круглый стол экспертов?
21. Давайте попробуем пойти от другого
Может попробуем сами? Например, проголосуем за навыки,
которые помогут борьбе с «кодом с запашком»
Стрессо-
устойчивость
Code Review
Автомати-
зированное
тестирование
Принципы SOLID,
YAGNI, KISS
Ответственность ASP.NET MVC
22. Что я хочу этим сказать?
Только что мы опробовали краудсорсинговый
подход для решения проблем
24. Можно пойти еще дальше
Когда мы поняли, куда развиваться, сразу же
возникает вопрос:
КАК?
На портале размещены ссылки на книги,
статьи и другие источники, где можно
пополнить свои знания.
25. Выбор способа развития
Итого, способы:
1. Интуитивно выбирать направление.
2. Путем анализа рынка труда.
3. Взаимопомощь сообщества в развитии друг друга.
Я голосую за 3-ий, давайте
проведем эксперимент и
поможем в развитии друг
другу
О себе:
.NET-разработчик
Kaspersky Lab
Интересуюсь саморазвитием и развитием других
О докладе:
Попытаемся разобраться, что ценят компании и о развитии на практике
Я участвую уже не первый год в подборе технических специалистов, начинал с малого, набирал команды джуниор разработчиков для обучения, затем просто разработчиков и ведущих
Регулярно вижу огромное число людей, которые не знакомы бывает даже с базовыми понятиями, которые не зависят от специфики разработки и конкретного framework или библиотеки
Или наоборот вроде отлично знаком с какой-то областью, но всегда найдутся люди, к которым приходишь на собеседование и возникает такое ощущение, что мы были в параллельных вселенных
Примечание: вспомнить пример про банк: нужно писать код сразу эффективно, без профилирования.
В начале обычно у нас возникает высмеивать таких людей, обсуждая их навыки за обедом
Но я иногда отхожу от этого и стараюсь поставить себя на место этого человека, чтобы понять как он может развиваться.
Давайте представим, что я Вася, начинающий разработчик, отработал какое-то время, может год, может больше. Период понимания синтаксиса и разных фишек языка уже прошел. И мне хочется большего, более крутые проекты, углубить свои знания, или может с чем черт не шутит - архитектором стать
Вроде я регулярно захожу на хабрахарб, я знаю каким образом устроен марсоход
Знаю у какого космического корабля что длиннее и иногда попадаю на статьи про интересности C#.
Заходил на ныне уже не так популярные rsdn и sql, читал советы новичкам и разные холиворы
Прошел несколько курсов на курсере, специалисте
Подписан на пару интересных IT-блогов
Ходил на конференции
Но что из этого задает направление для моего развития? Почитать в дороге или вечером за чашкой чая – в удовольствие, но стал ли я после этого ведущим программистом? А если я буду читать еще пару лет и писать программы, то стану ли?
На самом деле персонаж Вася даже не совсем вымышленный персонаж, я встречаю подобные проблемы у своих знакомых и друзей. Люди, которые целенаправленно хотят расти. Что уже говорить о тех кто просто хочет быть в тренде.
Одним вечером, сидя в пабе со своими друзьями, и уже после пары кружек мы пытались представить, что могло бы помочь сформировать целостную картину роста. Сейчас такое ощущение, что у нас есть отдельные мазки IT-специалиста, но нет полного портета. По идее частично эту проблему должно решать наше образование, но на практике мы видим его серьезное отставание от реалий рынка.
Тогда и пришла идея, ведь у нас же есть в онлайне вся информация для анализа. Есть куча вакансий, которые лежат прямо перед нами. Нам достаточно немного потрудиться и все карты будут раскрыты.
Собравшись перед поисковой строкой hh.ru, мы увидели порядка тысячи вакансий .NET разработчиков только за последний месяц. В ручную в свободное время таким анализом заниматься совершенно не хотелось.
Поэтому за полдня была разработана небольшая утилита для парсинга вакансий. Она позволяла вытаскивать отдельные навыки, которые требуются и далее их группировать.
Немного ручной обработки и вот мы получили результаты.
Конечно же мы смотрели уже существующие исследования. Но почему-то люди больше делают упор на разные языки, города, страны, а не дают понимания востребованности отдельных навыков.
В данной ситуации рынок труда можно попытаться сравнить с курсом валют. По нему мы может очень слабо прогнозировать дальнейшее развитие событий, мы видим уже факт, то что произошло. Причем, если с курсом у нас очень низкий лаг, то с рынком труда от полугода. Когда мы видим, что на рынке вовсю нужен такой-то навык, то как правило уже поздно ловить волну.
Все что мы можем сделать – это подтянуться за рынком, но точно не смотреть вперед.
Да, мы будем востребованы здесь и сейчас, но будем ли расти сами, быть более эффективным?
Будем учиться быть вежливыми, толерантными, стрессоустойчивыми или налаживать процесс разработки?
Будем работать «быстро», писать «хороший код», учиться не допускать никогда ошибок или внедрять инструменты контроля качества?
Где же искать выход?
Конечно, я бы мой выйти и сказать всем как правильно жить и какие навыки должны быть у Настоящего программиста. Но честно говоря, я не верю в экспертные методы в нашем динамичном мире. Даже, если бы нашелся такой квалифицированный человек в каждой из областей с непоколебимой репутацией, то ему пришлось бы приложить уйму усилий, чтобы поддерживать информацию в актуальном состоянии.
Давайте попробуем пойти от другого
Давайте вы сами попробуете подсказать для конкретной ситуации, что было бы более эффективно изучать? Например, мы замечаем говнокод в проекте, сложно поддерживать, много багов. Типовая ситуация, давайте проголосуем за несколько навыков
Только что мы попробовали краудсорсинговый подход. Который уже много лет применяется в stackoverflow, Wikipedia и прочих порталах. Возникла идея почему бы не применить его и в обучении.
Я попробовал опубликовать наиболее популярные навыки на отдельном портале. На нем же можно проголосовать и прокомментировать те или иные навыки. Предлагаю попробовать проголосовать со своих мобильных устройств, затем за круглым столом можно будет посмотреть результаты.
На самом деле лично я пошел еще дальше и подумал, что было бы удобно узнавать источники, из которых можно обучиться тем или иным навыкам. Поэтому постарался по некоторым навыкам
Пока никакой модерации, давайте попробуем провести эксперимент.