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

Впевнений, що розробники часто задаються питанням, які їх професійні навички компанії цінують найбільше. Наприклад, при зміні роботи або, коли раптово виявляють, що працюють в компанії так давно, що навколишній світ, швидше за все, пішов далеко вперед.

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

Зміст
Як народилося це дослідження?

Беручи участь в підборі як початківців, так і досвідчених розробників, поступово став помічати, що багато претендентів не володіють основними необхідними навичками. І мова не про специфіку конкретної предметної області, а про основні знання розробки додатків на платформі .NET. Такі співбесіди зазвичай завершуються обговоренням з колегами за чашкою чаю найгостріших моментів співбесіди кандидата. Але все ж цікавіше розібратися, чому розробники не освоюють ті чи інші навички, незважаючи на достатній стаж роботи, і яким чином можна побудувати розвиток на їх місці?

В якому напрямку розвиватися: які навички і як купувати?
Отже, уявімо себе на місці початківця розробника Васі. 2 роки роботи програмістом дозволили Василю дізнатися основи .NET Framework, навчитися працювати з SQL Server і навіть почитати про пристрій збирача сміття. Базові знання і навички, що дозволяють створювати .NET-додатки, на місці — чим не .NET-розробник? Але періодично Василь думає, що пора б вже рухатися далі, не завжди ж залишатися Junior-розробником. Як далі рости? Які є варіанти?

Василь дивиться на кар'єру своїх старших колег і в його голову приходить найпростіший варіант: буду сидіти на своєму місці роботи 5 років, активно беручи участь у проектах і тоді, швидше за все, мене зроблять Senior-розробником або може, дай бог, архітектором. Але внутрішній голос не дає спокою Васі: може не все так просто, адже провідний розробник і архітектор володіють якимись особливими навичками, які їх виділяють серед інших розробників — може потрібно розібратися з тим, що це за навички, і що потрібно зробити, щоб їх розвинути в собі?

Які варіанти є у Васі?

Цілком логічно пошукати інформацію про те, які навички зараз актуальні в IT і як їх прокачати на якому-небудь профільному Інтернет-ресурсі. Що відразу приходить в голову: Хабрахабр, RSDN, SQL.uk? Але ні, ці ресурси скоріше розширюють наш кругозір, ніж дають нам інформацію про те, які навички зараз затребувані. Є й інші ресурси, які присвячені навчанню навичкам, наприклад: 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-розробника «за бугром».

Хочу почути вашу думку про те, за яким спеціалізаціями буде цікаво побачити таку аналітику, і чи дійсно ця статистика допомагає нам знайти відповідь на питання, які навички нам необхідно розвивати, або тема ще не закрита?

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.