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



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

    Этой публикацией я начинаю цикл аналитических статей по анализу необходимых и востребованных навыков для различных специализаций на российском и зарубежном 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.0%Java-разработчик142
    • 33.0%Менеджер проектов90
    • 15.0%Тестировщик41
    Ads

    Comments 26

      0
      74% ASP .Net MVC? 74% от всех рассмотренных вакансий? Т.е. примерно 222 вакансии? При такой востребованности больно низкая зарплата.
      На каком ресурсе, если не секрет, вы список вакансий брали? И для какого города статистика по зарплате?
      Статистика интересная безусловно, но как и все подобные статистики не отражает в полной мере реального положения дел.
        +1
        Статистика собиралась с HeadHunter. Рассчитывался средний уровень зарплаты по вакансиям, в которых упоминался данный навык. Если в вакансии был указан нижний уровень и верхний уровень зарплаты, то использовалось среднее между этими двумя числами.
        Статистика собиралась по всем вакансиям без относительно местоположения.
          0
          Средний или медианный?
            0
            В этом исследовании рассчитывался средний уровень зарплаты. Предлагаете считать медианный?
              0
              Конечно. Смотрите: вы и я получаем по 100 000 рублей в месяц, а господин С-н получает 4 500 000 рублей в месяц. В среднем у нас 1 566 666 рублей в месяц. А медиана будет 100 000 рублей в месяц, что мы и хотели найти. Также нам нужны минимальная и максимальная зарплаты.
                0
                Согласен эта цифра будет более информативная. Но я не видел в исследуемых вакансиях таких больших отклонений (на порядок). Спасибо за предложение, обязательно учтем данное предложение в следующих исследованиях.
                  0
                  Вилку зарплат указывать тоже не поленитесь, прямо на гистограммах.
          0
          Да, в 74% вакансий требовалось знание ASP.Net MVC. Стоит учитывать, что статистика была собрана в середине ноября 2014 года. Сейчас, я думаю, предложение сократилось.
          Высокий уровень зарплаты скорее имеют редкие навыки.
            0
            Это средняя зарплата, которая включает в себя все вакансии для стажеров и джуниоров, а таких вакансий большая часть.
            Никогда не стоит принимать во внимание среднюю зарплату, если ваш опыт больше пары лет.
              0
              Интересно, возможно, стоит в статистике показывать не только среднюю зарплату по навыку, но и максимум-минимум? Что бы вы еще хотели видеть в статистике?
                0
                Видел в других обзорах, что срезают сверху и снизу некоторое количество (10%) самых прибыльных и не прибыльных работ.
                Уже от такого диапазона может отталкиваться и новичок, и профессионал.
            +5
            Существует дорожная карта развития .NET-разработчика — edu.cbsystematics.com/ru/education/roadmap.aspx

            image
              0
              Сейчас ветку Modile Device можно продлить до Xamarin, а это и Android и iOS и Winphone и вообще человек-конвеер
                +8
                Странная дорожная карта. Чтобы стать WEB Backend Developer, надо сначала освоить HTML & CSS и стать WEB Frontend Developer?
                Это уже получается Full Stack Developer, а не Backend Developer.
                Да и вообще WEB Frontend Developer не имеет никакого отношения к .NET.
                  –2
                  Эта карта очень полезный инструмент для планирования личного развития. Интересный момент, что «за бортом» остались навыки TDD, Refactoring, Algorithms & Data Structures и т.п. К моему удивлению, эти, на мой взгляд, необходимые навыки очень редко упоминаются в вакансиях.
                    +1
                    Они остались «за бортом», потому что эта карта создавалась на основе списка фирменных учебных курсов и сертификационных статусов Microsoft.
                      +1
                      Похоже, что я ерунду написал. Они есть в промежутке от «Новичок в IT» до «.NET Developer».
                        +1
                        Поясню, что я имел ввиду в своём ответе про то, что некоторые навыки остались «за бортом». Речь идёт о том, что на картинке развития, предложенной Microsoft, навыки (TDD, Refactoring, Algorithms & Data Structures) присутствуют, а в топ 10 рейтинга в статье они не попали. То есть работодатели редко упоминают в своих требованиях в вакансии эти навыки, что, на мой взгляд, очень печально.
                    +9
                    Я бы LINQ вставил в самое начало (между «новичком» и ".Net Developer") рядом с EF. Считаю, что LINQ нужен не только для работы с базой данных, но и вообще для работы с любыми коллекциями.
                      +1
                      Бред какой-то
                      0
                      А можете сырыми данными поделиться?
                        0
                        В следующем исследовании я постараюсь подготовить промежуточные данные («сырые» данные — это по сути сами вакансии), которые будут пригодны для ознакомления. Скорее всего, это будет выгрузка в Excel.
                        0
                        Я обещал (http://habrahabr.ru/post/248163/#h8), что скоро будут результаты аналогичного исследования востребованности навыков и зарплат .NET-разработчика, но теперь уже с точки зрения американских компаний. Какие .NET-разработчики востребованы за рубежом? Какие навыки и зарплаты? Почему среди российских работодателей популярны иные навыки?

                        Я расскажу об этом на бесплатной конференции сообщества SkillsWiki: ".NET-разработчик глазами работодателей России и зарубежья" — 29.04.2015 в B2B-Center. Ссылка для регистрации: http://skillswiki.timepad.ru/event/193115.

                        Приходите, будет интересно!
                          0
                          Согласно опросу в конце статьи 93 человека просили провести аналогичное исследование Java-разработчика. Исследование завершено! Смотрите рейтинг навыков и способ их прокачки в статье «Что должен знать Java-разработчик в России?» http://wp.me/p6TwvM-u1
                            0
                            а сколько всего платформ мобильной разработки, если «лидирует Android с 9,4%» и «На втором месте iOS – 3,6%»
                              0
                              Речь идет о том, что навыки разработки под Android/iOS упоминаются в 9,4% + 3,6% всех вакансий, использованных в исследовании. То есть в остальных вакансиях (без учета WP), разработка для мобильных платформ вообще не упоминается.

                          Only users with full accounts can post comments. Log in, please.