Наскоро завърши годишното технологично проучване на СофтУни сред софтуерните фирми, което правим всяка година с цел адаптиране на нашите учебни планове и програми спрямо актуалните нужди на софтуерната индустрия. Проучването беше проведено в периода април-май 2017 г. в България и е актуално към средата на 2017 г. Валидно е само за българския пазар на софтуерна разработка.
За мен е нормално всяко читаво учебно заведение да провежда регулярно подобни проучвания и да адаптира обученията си спрямо локалните и глобалните трендове и нужди. Дали традиционните университети, училищата, частните обучителни организации, академии и школи правят такива проучвания не знам, но мога да споделя, че от създаването на СофтУни през 2014 г. до момента редовно събираме по систематичен начин мнението на софтуерните и ИТ фирмите и адаптираме учебния план, учебните курсове и учебния процес към нуждите на бизнеса.
Целта на проучването е да се оцени кои езици за програмиране, софтуерни технологии, инструменти и методологии се търсят най-много на пазара на труда в ИТ сектора в България към средата на 2017 г.
За използваната методология
Методологията, която ползваме за проучването, е стандартна:
- Проверяваме сайтовете за работа в България и събираме най-търсените езици и технологии от софтуерния свят и изисквания към търсещите работа към май 2017 г.
- Разделяме използваните технологии в категории (примерно езици за програмиране, уеб технологии, front-end технологии, back-end технологии, технологии от света на базите данни, нетехнологични умения и други).
- Отсяваме тези от категориите, които имат пряко отношение към софтуерната индустрия в България и обученията на софтуерни инженери.
- Въз основа на събраните данни изграждаме анкета с въпроси, включваща серия въпроси, разделени на групи.
- Повечето въпроси са в стил “Кой front-end framework ползвате във вашата фирма?”
- Отговорите са измежду най-популярните на пазара технологии + празно поле за дописване (ако сме изпуснали даден отговор).
- На всички въпроси може да се посочи повече от един отговор и затова сборът от процентите надвишавт 100%.
- Анкетата е изпратена на около 200 фирми от партньорската мрежа на СофтУни и външни компании (предимно на технически ръководители), с молба да бъде попълнена старателно.
- Анкетата е попълнена успешно от около 90 фирми, с най-разнообразен профил: продуктови и аутсорсинг компании, софтуерни фирми, ИТ фирми, ползващи всякакви технологии.
- Обхванати са болшинството от по-големи софтуерни фирми (над 100 души), както и редица средни и мини-фирми.
- Резултатите са събрани, внимателно обобщени и визуализирани като диаграми от техническия експерти от СофтУни.
За автентичността на изследването
Внимание: по никакъв начин не гарантираме за автентичност, научен подход, статистическа значимост и подобни, нито за посочените отговори, нито за направените изводи. Публикувам резултатите с идеята, че може да са полезни и на други фирми и организации от софтуерната индустрия. Вложихме доста усилия и старание, за да съберем тези резултати, но в духа на отворения код и култура, решихме да ги споделим.
Използвайте резултатите от настоящото проучване на свой собствен риск!
Да преминем и към самите резултати.
Област на разработка
- Изглежда болшинството от анкетираните фирми разработват уеб-базиран софтуер. Някои разработват уеб и мобилен едновременно.
- Половината фирми имат QA позиции в екипите си.
- Половината фирми разработват мобилни приложения.
Уеб разработка
- Масово уеб разработчиците пишат full-stack.
Web Front-End технологии
- Изглежда Angular е победител във front-end web frameworks категорията, но React е плътно зад него. Останалите участници са с много малко влияние.
Web Back-End езици
- Лидери в back-end програмирането в България са C#, Java и PHP с много малка разлика.
- Python и Ruby в БГ се ползват много по-малко от C#, Java, PHP и JS.
Web Frameworks за C#, Java и PHP
- От лидерите в Web back-end програмирането сме извадили водещите технологични рамки (frameworks) за езиците C#, Java и PHP.
- В C# света ASP.NET MVC и остарялата технология Web Forms се ползват почти еднакво! .NET Core все още навлиза на пазара и изостава от утвърдените по-стари технологии.
- В Java света Spring Framework води пред Java EE с малка преднина.
- В PHP света най-използваният framework е Symfony, следван от Laravel.
ORM Frameworks за C#, Java и PHP
- В C# света болшинството разработчици ползват Entity Framework (EF).
- В Java света болшинството разработчици ползват Hibernate и Spring Data.
- В PHP света всеки ползва каквото си иска за достъп до данните – няма технология победител.
Databases
- В базите данни в българската софтуерна индустрия най-използваната база е MS SQL Server, следвана от MySQL.
- В C# света се ползва предимно SQL Server.
- В PHP света се ползва предимно MySQL.
- В Java света се ползват най-вече MySQL и MS SQL Server (леко съм изненадан).
Web and Front-End Templating Engines / Frameworks
- Във всички технологии за уеб разработка (PHP, Java, C#, JS) се наблюдава предпочитанието потребителският интерфейс да се рендира с JS front-end framework (като React или Angular) вместо със сървърен templating engine.
- При C# уеб разработката най-използвана е комбинацията ASP.NET MVC + Angular.
- При Java уеб разработката най-използвана е комбинацията Spring + React.
- При PHP уеб разработката най-използвана е комбинацията PHP + React (не съм убеден, че това е вярно).
- От всички технологии за JS front-end templating се ползват най-много React и Angular.
- jQuery се ползва най-често съвместно с други JS frameworks, а не самостоятелно и затова делът му в статистиката е толкова голям.
Технологии за разработка на мобилни приложения
- Android има лека преднина пред iOS, а другите мобилни платформи практически са извън надпреварата.
- Болшинството Android developers използват Java.
- Болшинството iOS developers използват Swift. Най-сетне Swift изпревари застаряващият вече език Objective C.
- Технологии като JS hybrid apps, JS native apps, Xamarin mobile apps и Unity for mobile се ползват рядко при мобилната разработка.
Езици при обработката на данни
- C# води с малко пред Java и Python при сървърната обработка на данни. Други сериозни участници в тази надпревара не се забелязват.
- Вероятно въпросът не е бил добре разбран от анкетираните, защото идеята беше “какво ползвате за big data / data science и подобни“, но отговорите са в стил “с какво си обработвате данните от страна на сървъра“. Отговори като R и Scala отстъстваха.
Framework Development езици
- При програмистите с профил framework developer разнообразието от езици и технологии е огромно и нямаме категорични победители.
QA, ръчно тестване и автоматизация
- Времето на QA автоматизацията дойде. Болшинството от QA инженерите в българската софтуерна индустрия се занимават с QA automation.
- При автоматизираното тестване най-предпочитаният инструмент е Selenium.
Използвана от програмистите операционна система
- Имаме категоричен победител при операционните системи, използвани при разработката на софтуер (desktop средата на програмистите) и това е Microsoft Windows!
Тип бизнес: продуктови и аутсорсинг фирми
- Повечето софтуерни инженери в България разработват продукт или услуга. Това може да е проект на фирмата-работодател (разработка на български продукт / услуга или чужд / услуга продукт от фирмата-майка) или като част от аутсорснат екип (разработка на чужд продукт или услуга с български dev екип).
- По-малко от половината програмисти в България работят в аутсорсинг сценарий (като екип или човек под наем на чужда фирма).
Глобални изводи от проучването
- Приблизителна класация на топ 10 на най-търсените езици за програмиране в България (към май 2017 г.):
- C#
- Java
- JavaScript
- PHP
- C++
- Swift
- Python
- Ruby
- Objective-C
- Go
- Класацията на езиците за програмиране е ориентировъчна.
- Първите 4 езика се търсят долу-горе еднакво, така че C# не е победител, нито Java. Спорно е дали C# или JavaScript се търси повече.
- След 5-та позиция класацията също е дискусионна. Спорно е дали Swift или Python се търси повече.
- За първите 5 езика, обаче сме сигурни кои са и те са C#, Java, JS, PHP и C++.
- Имайте предвид, че да се правят класации е много трудна работа, защото в обявите за работа езиците и технологиите винаги се търсят заедно. Затова много не вярвайте на горната подредба. Тя е само за ориентация!
- Най-търсените езици за програмиране в България са C#, Java, PHP и JavaScript.
- JavaScript се търси най-много, защото е част от професията на C#, Java и PHP разработчиците, но самостоятелно не се търси повече от C# или Java.
- След първите четири места (където няма категоричен победител измежду C#, Java, JavaScript и PHP), по търсене следват C++, Python, Swift и Ruby.
- Езици като Ruby, Go, Kotlin, Scala, Erlang, Haskell се считат за екзотични и се търсят слабо в България. Слабо е търсенето и на езици като чисто C, VB.NET, Objective-C, Perl, R, assembler, Delphi.
- В списъка не сме включили помощни езици от разработката на софтуер като HTML, CSS и SQL, защото те не са езици за програмиране.
- Не е редно да се сравнява Java с SQL или HTML, все едно да сравняваш ягоди с мобилни телефони.
- Болшинството софтуерни проекти в България са за разработка на уеб и мобилни приложения.
- Най-използваните технологии в C# / .NET екосистемата са ASP.NET, Entity Framework и SQL Server + Angular / React.
- Най-използваните технологии от Java екосистемата са Spring Framework, Java EE, Hibernate, MySQL и Android + React / Angular.
- Най-използваните технологии от PHP екосистемата са Symfony, Laravel и MySQL + React / Angular.
- Най-използваните технологии от JavaScript екосистемата са React, Angular и Node.js.
- Най-използваните бази данни в българската софтуерна индустрия са MySQL и MS SQL Server.
- Над половината софтуерни екипи имат QA инженер в състава си и той се занимава с test automation и с много голяма вероятност ползва Selenium.
- При уеб разработката front-end частта се пише предимно на Angular или React (с JavaScript). Отмина времето на server-side HTML rendering.
- Мобилните приложения се пишат предимно на Java и Swift. Все още JS не е навлязъл масово.
Да не би да има някаква грешка?
Ако ви се струва, че в някоя от анкетите резултатите са странни, или някой от изводите не ви допада, спокойно. Никой не претендира нито, че проучването е направено достатъчно автентично, честно, безпристрастно и коректно, нито, че изводите и разсъжденията са непременно правилни. Ползвайте си данните както намерите за добре и не забравяйте да ползвате задклавиатурното си устройство. Мислете! Търсете фактите и доказателствата, разсъждавайте, проверявайте информацията, агрегирайте мнения!
Възможна причина за потенциално изкривяване на резултатите от настоящото проучване е, че е правено предимно сред фирмите от екосистемата на СофтУни. Сред тях рядко ще срещнете хардуерни фирми, фирми с профил IoT, system integrators или call centers, така че най-вероятно извадката от фирми не е съвсем представителна. И затова ползвайте информацията с внимание и размисъл! Успех на всички!