Coroczna ankiety Stack Overflow dla developerów

Ten post to subiektywny wybór informacji z corocznej ankiety skierowanej do developerów odwiedzających Stack Overflow. Podobnie jak w przypadku poprzedniego postu z ciekawostkami na temat procesu wytwarzania oprogramowania w Google, ten post nie pretenduje do bycia kompleksowym opisem tej ankiety, a jest jedynie wyborem tego, co wydawało mi się interesujące.

Zasięg ankiety

  • W 2016 roku ankieta dotarła do 56 tysięcy osób, a w 2017 roku do 64 tysięcy. To wzrost o 14%.
  • W 2016 roku 92.8% respondentów określiło swoją płeć jako meską, a 5.8% jako żeńską. W 2017 roku 88.6% respondentów określiło swoją płeć jako męską, a 7.6% jako żeńską.
  • Nieco więcej ludzi z Europy, niż z Azji odpowiedziało na ankietę, proporcjonalnie do ilości osób, które odwiedzają Stack Overflow.

Rasa

  • W 2017 po raz pierwszy zapytano respondentów o rasę. 74% respondentów to biali, a kolejne 14% to mieszkańcy Azji. Niedoreprezentowani są mieszkańcy Bliskiego Wschodu (3.6%) i Afryki (2.5%).
  • W krajach latynoskich 81% respondentów określa się jako webdeveloperzy, w porównaniu do 72-74% wśród białych i mieszkańców Azji.
  • Wśród respondentów z niektórych afrykańskich krajów nie było nikogo, kto by pracował zawodowo jako programista.

Języki i technologie

  • Języki programowania znajdujące się w czołówce popularności umocniły swoja pozycję rok do roku. JavaScript, Java i C# zyskały od 3 do 7 pp. Również znajdujący się w czołówce SQL zyskał 2 pp. Python przegonił PHP ze wzrostem o 7 pp. PHP zyskał 2 pp. Tylko Objective-C stracił na popularności, ale w granicach błędu statystycznego (0.1 pp).
  • Rust utrzymuje się na szczycie listy najbardziej kochanych języków, ale spadł o 6 pp. w porównaniu z poprzednim rokiem.
  • Visual Basic pozostaje najbardziej znienawidzonym językiem, a Sharepoint najbardziej znienawidzoną technologią.
  • Node.js znajduje na drugim miejscu najbardziej pożądanych technologii (spadek z pierwszego miejsca). 22% respondentów chce się go nauczyć, ale aż 37% zalicza go do znienawidzonych technologii. Podobnie skrajne opinie wyrażane są o Angularze. Jest to technologia pożądana przed 19% respondentów i znienawidzona przez 48%.
  • CoffeeScript jet technologią, której użycie jest silnie skorelowane z Rubym. Oracle jest silnie skorelowany z Javą. .NET jest skorelowany z SQL Serverem, a PHP z MySQL-em. Tylko korelacja MongoDB z Node.js jest dla mnie zaskoczeniem w tym zestawieniu.
  • Aż 6% developerów uważa, że ilość linii napisanego kodu jest dobrą miarą ich wydajności, a 9% uważa, że dobrą miarą wydajności jest częstotliwość commitów. 41% uważa, że miarą ich wydajności jest wydajność produktu, który tworzą.
  • Domain Driven Design znalazł się wśród praktyk wytwarzania oprogramowania, takich jak agile i kanban, z wynikiem ponad 13%.
  • W zestawieniu technologii kontroli wersji zabrakło Perforce’a (być może zmieścił się w 3-procentowej kategorii „inne”). W zestawieniu znalazł się za to ZIP-y z wynikiem 2%. 3% ludzi nie wersjonuje swojego kodu.

Praca

  • Między 2016, a 2017 rokiem zwiększyła się zarówno ilość osób pracujących na pełen etat (z 67% do 70%), jak i ilość osób, które nie posiadają pracy (wzrost z 2% do 10%). Połowa z nieposiadających pracy nie szukaj jej. Zastanawiam się, czy tak duży wzrost może być spowodowany tym, że zamieniono negatywnie nacechowany termin unemployed, który występował w ankiecie z 2016 r., na neutralny termin not employed, który można znaleźć w tegorocznej ankiecie.
  • Liczba firm zatrudniających do 10 osób spadła o 7 pp. rok do roku, za to nie zmieniła się liczba firm zatrudniających 10-19 osób i 20-99 osób (cały czas odpowiednio 10% i 22%). Ilość firmy powyżej 10 000 pracowników urosła z 12% do 14.6%.
  • Między 2016 a 2017 znacząco wzrosła liczba osób, które określają się jako devopsi – z 2.2% do 11.1%. Podobnie z ludźmi, którzy określają się jako administratorzy systemów. W zeszłym roku było to 1.5%, a w tym 11.2%.
  • Zmniejsza się liczba zdalnych programistów. W 2016 12% respondentów deklarowało się jako zdalni programiści, a w 2017 – 11%. W 2016 roku 22% respondentów deklarowało, że nigdy nie pracuje zdalnie, a w 2017 roku już 32%. Możliwość pracy zdalnej jest skorelowana z satysfakcją z pracy.
  • W kwestii zadowolenia z posiadanego sprzętu do pracy, programiści oceniają poszczególne komponenty bardzo równo. Monitory i ekrany są oceniane najniżej (3.72/5), a prędkość i pojemność dysków najwyżej (3.78/5). W środku stawki są ilość RAM-u (3.76/5) i prędkość CPU i GPU (3.73/5).
  • Tylko 0.8% programistów uważa, że są o wiele za wysoko wynagradzani za swoją pracę. 55% uważa, że są wynagradzani za nisko.
  • Programiści Lispu i Smalltalka najczęściej uważają, że zarabiają za mało. Najrzadziej uważają tak programiści Clojure i Julii. To ciekawe, gdy ma się na uwadze, że Clojure był mocno wzorowany na Lispie.
  • W Polsce więcej osób pracuje zdalnie, niż w Indiach (odpowiednio 10.7% i 9.7%).
  • Administratorzy i ludzie związani z grafiką częściej niż inni pracują zdalnie.

Nawyki i praktyki

  • W tegorocznej ankiety wynika, że taby preferuje 43%, a spacje 38% programistów. 19% używa jednego i drugiego.
  • Z 57% do 53% zmniejszyła się liczba osób, które w pracy wykonują wiele commitów w ciągu dnia, za to zwiększyła się liczba osób, które commitują kilka razy w tygodniu lub kilka razy w miesiącu.
  • W obu latach satysfakcja z pracy była skorelowana z częstotliwością commitów. Im częstsze commity, tym bardziej satysfakcjonująca praca. Podejrzewam, że może się to wiązać z tym, że częściej commitują ci, którzy robią nowe projekty, a rzadziej ci, którzy są w projektach utrzymaniowych.
  • W 2017 roku dokumentacja online była głównym źródłem informacji dla programistów. Wyprzedziła jednak Stack Overflow tylko o 0.1 pp.
  • 33% programistów odpowiedziało, że udziela się w projektach open source. Wydaje mi się to zawyżoną liczbą.
  • 19% programistów nie programuje hobbistycznie.
  • 60% respondentów zgadza się ze stwierdzeniem, że na produkcje może trafiać nieoptymalny kod, który zostanie z czasem poprawiony.

Inne

  • 1% developerów określa się jako niewidomi.

Podsumowanie

Coroczna ankieta Stack Overflow potwierdza wiele stereotypów i powszechnej wiedzy o programowaniu i programistach. Sharepoint jest nielubiany, agile jest popularny, nigdy nie jesteśmy zadowoleni z naszych komputerów i uważamy, że zarabiamy za mało. Z drugiej strony ankieta dostarcza nam informacji o tym, że istnieje grupa wybijających się technologii, na które warto zwracać uwagę. Z powodu uwielbienia, jakim darzą go programiści, Rust jest językiem, któremu warto się przyjrzeć. Podobnie Go – najlepiej obecnie opłacany język w USA.

Całość tegorocznej ankiety można znaleźć tutaj.