Quantcast
Channel: C# – Svetlin Nakov – Official Web Site and Blog
Viewing all articles
Browse latest Browse all 42

Тенденции в софтуерната индустрия в БГ за 2017 г. и класация на езиците за програмиране –годишното проучване на СофтУни

$
0
0

Наскоро завърши годишното технологично проучване на СофтУни сред софтуерните фирми, което правим всяка година с цел адаптиране на нашите учебни планове и програми спрямо актуалните нужди на софтуерната индустрия. Проучването беше проведено в периода април-май 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 г.):
    1. C#
    2. Java
    3. JavaScript
    4. PHP
    5. C++
    6. Swift
    7. Python
    8. Ruby
    9. Objective-C
    10. 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-CPerl, 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, така че най-вероятно извадката от фирми не е съвсем представителна. И затова ползвайте информацията с внимание и размисъл! Успех на всички!


Viewing all articles
Browse latest Browse all 42

Latest Images

Trending Articles



Latest Images