Pull to refresh

Навыки .NET-разработчика

Reading time 7 min
Views 112K


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

Этой публикацией я начинаю цикл аналитических статей по анализу необходимых и востребованных навыков для различных специализаций на российском и зарубежном IT-рынке.


Как родилось это исследование?

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

В каком направлении развиваться: какие навыки и как приобретать?


Итак, представим себя на месте начинающего разработчика Васи. 2 года работы программистом позволили Василию узнать основы .NET Framework, научиться работать с SQL Server и даже почитать про устройство сборщика мусора. Базовые знания и навыки, позволяющие создавать .NET-приложения, на месте – чем не .NET-разработчик? Но периодически Василий думает, что пора бы уже двигаться дальше, не всегда же оставаться Junior-разработчиком. Как дальше расти? Какие есть варианты?



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

Какие варианты есть у Васи?

Вполне логично поискать информацию о том, какие навыки сейчас актуальны в IT и как их прокачать на каком-нибудь профильном Интернет-ресурсе. Что сразу приходит в голову: Хабрахабр, RSDN, SQL.ru? Но нет, эти ресурсы скорее расширяют наш кругозор, чем дают нам информацию о том, какие навыки сейчас востребованы. Есть и другие ресурсы, которые посвящены обучению навыкам, к примеру: Pluralsight и Coursera – если бы Вася точно знал, что он хочет изучить, эти ресурсы помогли бы ему. И, конечно, не стоит забывать про профессиональные конференции. Они также полезны как для расширения кругозора, так и развития конкретных навыков, но все равно не могут ответить на вопрос Василия: в каком направлении ему развиваться? Итого, мы имеем множество ресурсов, которые позволяют прокачать те или иные навыки, но, к сожалению, не дают ответа на вопросы: в каком русле развиваться и какой набор навыков развивать? Вспомните, как вы отвечали на эти вопросы: интуитивно?



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



Востребованные навыки в вакансиях работодателей


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

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



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

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

Рейтинг востребованности навыков


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

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

Все полученные навыки сгруппированы в три категории: hard skills, soft skills и technology – чтобы не сравнивать навыки между этими категориями, так как это сравнение выглядело бы странным и бесполезным.

В итоговый рейтинг попали 10 популярных навыков по каждой из трех категорий.

Рейтинг технологий




В технологиях с огромным отрывом побеждает ASP.NET MVC: требование владения данной технологией встречалось в 3 из 4-х вакансий. Мне, как бывшему desktop-разработчику, было откровением, что все технологии desktop UI проигрывают ASP.NET MVC в 6 раз, а в сумме WPF и Windows Forms проигрывают в 2,5 раза. Если верить статистике, судьба разработки настольных интерфейсов видится достаточно туманной.

Отметил я еще один интересный факт: WPF и Windows Forms имеют одинаковый уровень востребованности – примерно 15%. Сначала я подумал, что это связано с переводом приложений с устаревающей технологии Windows Forms на WPF, но, оказалось, что данные навыки требовались в одних и тех же вакансиях только в 2% случаев, то есть одни компании до сих пор используют Windows Forms, а другие компании уже применяют WPF при разработке своих приложений.

На втором месте по-прежнему остается «must have» навык работы с SQL Server и использования Transact-SQL в каждой второй вакансии. В трети вакансий требуется знание WCF, XML и XSLT. В каждой четвертой – LINQ. Ну, и завершает список – EF. У меня есть гипотеза о том, почему EF в нижней части списка, а SQL Server в верхней: рынок ORM до сих пор достаточно раздробленный – многие все еще продолжают собственные ORM писать, а также популярны альтернативные платформы с хорошей историей вроде NHibernate.

Если смотреть на статистику по уровню заработной платы, то наиболее высокооплачиваемыми вакансиями являются те, в которых упоминаются HTML, CSS, AJAX, jQuery и JavaScript (иные платформы JavaScript упоминались в вакансиях, но редко, а потому не попали в топ-лист).

Рейтинг профессиональных навыков




По-прежнему у нас наиболее востребован навык объектно-ориентированного программирования. Владение ООП требуется в каждой четвертой вакансии.

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

Далее идут достаточно обыденные навыки: работа с системами контроля версий, проектирование архитектуры и шаблоны проектирования – эти навыки требуются в каждой четвертой вакансии.

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

Рейтинг общих компетенций




Вряд ли для вас будет откровением, что среди soft skills самый популярный навык – это знание английского языка на уровне чтения технической документации. Этот навык требуется в каждой третьей вакансии.

Второй по популярности навык – командная работа, который требуется в каждой четвертой вакансии. Конечно же, в топ 10 попали такие навыки как самостоятельность, ответственность и коммуникативные навыки. И завершает список навык «умения излагать свои мысли»: если верить статистике, то среди 25 разработчиков достаточно всего одного, который умеет правильно излагать свои мысли – остальным совсем не обязательно.

Самый высокооплачиваемый навык, что достаточно ожидаемо – разговорный и письменный английский. Средний уровень оплаты в вакансиях, где он упоминается – 135 тыс. руб.

Востребованный .NET-разработчик


Так кто же он, востребованный и высокооплачиваемый .NET-разработчик, на которого нам стоит равняться?



Судя по статистике, портрет такого разработчика следующий.

Разработчик ASP.NET MVC, который «на ты» с SQL Server и Transact-SQL, владеющий стеком веб-технологий (HTML, CSS, JavaScript, AJAX и jQuery), умеющий создавать и использовать WCF-сервисы, ну, и конечно, умеющий преобразовывать данные в формате XML.

С другой стороны, он должен быть гуру объектно-ориентированного программирования, при этом немного увлекаться анализом требований, конечно же, проектировать архитектуру приложений, в идеале – высоконагруженных.

Читать, писать и разговаривать на английском, быть самостоятельным и ответственным командным игроком. Ну, и не брезговать общением с коллегами.

Продолжение следует…


В следующей статье я проведу аналогичный анализ по зарубежному рынку вакансий: какие навыки требуются от .NET-разработчика «за бугром»?

Хочу услышать ваше мнение о том, по каким специализациям будет интересно увидеть подобную аналитику, и действительно ли данная статистика помогает нам найти ответ на вопрос, какие навыки нам необходимо развивать, или тема еще не закрыта?
Only registered users can participate in poll. Log in, please.
По какой специализации вам интересно увидеть аналогичную аналитику?
52.16% Java-разработчик 145
32.37% Менеджер проектов 90
15.47% Тестировщик 43
278 users voted. 113 users abstained.
Tags:
Hubs:
+38
Comments 26
Comments Comments 26

Articles