Umiejętność programowania jest uznawana za szczególnie trudną. W ogłoszeniach o pracę widzimy jak wysoko rynek wycenia umiejętności programistów. W porównaniu do innych branż jak: handel, produkcja czy choćby marketing, programista jest w stanie zarobić dużo więcej na swojej wiedzy, umiejętnościach czy doświadczeniu. Dlaczego tak niewielu ludzi jest w stanie zostać programistą? Dlaczego pomimo dużego popytu, tak mały odsetek naszej populacji decyduje się na rozpoczęcie swojej przygody z programowaniem, a później na szukanie pierwszej pracy w IT?
Dane są podstawą do analizy
Aby przeanalizować problem najpierw odniesiemy się do realnych liczb. W artykule Karola Bednarza: Ilu programistów jest na świecie, a ilu w Europie? [2022]
, który został opublikowany pół roku temu (w miarę świeże dane) sprawdzimy ilu programistów jest w Europie w poszczególnych krajach.
Polska:
Liczba programistów: 250 000
Liczba mieszkańców Polski (źródło: GUS): ok. 37 767 mln
Udział programistów w naszej populacji to zaledwie: 0,66 %
Porównanie z innymi krajami Europy:
Niemcy: 901 000 programistów, kraj liczy 83,2 mln mieszkańców – 1,08 %
Szwecja: 180 000 programistów, kraj liczy 10,42 mln mieszkańców – 1,73 %
Ukraina: 212 500 programistów, kraj liczy 43,79 mln mieszkańców – 0,49 %
Wielka Brytania: 408 000 programistów, kraj liczy 67,33 mln mieszkańców – 0,61 %
Oraz USA:
4 000 000 programistów (4,3 mln w całej Ameryce Północnej) – dane źródłowe , kraj liczy 331,9
mln mieszkańców – 1,21 %
*dane dotyczące ilości mieszkańców pochodzą z Google.com na dzień 13.02.2023 r.
Powyższe dane należy teraz zestawić z zapotrzebowaniem na rynku pracy w IT w Polsce:
Ilość poszukiwanych miejsc pracy w I kwartale 2022 roku wynosiła: 26 121.
Artykuł Raport: Wzrost liczby ofert pracy i stawek dla branży IT w I kwartale 2022 na Prawo.pl świetnie opisuje te liczby z pierwszego kwartału 2022 roku.
To tylko jeden kwartał. gdybyśmy pomnożyli to x4, wyjdzie nam, iż rocznie w 2022 roku rynek poszukiwał ok 100 tys. programistów. Gdyby całe zapotrzebowanie zostało wypełnione (a wiemy już, iż nie zostało), to w Polsce mielibyśmy około 350 000 programistów co już zbliża nas do upragnionego 1% populacji.
W porównaniu do państw rozwiniętych (poza UK) jesteśmy w tyle jeżeli chodzi o odsetek programistów w całym społeczeństwie. Przyczyną nie jest tutaj zbyt niska ilość firm, która poszukuje programistów.
Problem jednak leży w głównej mierze po stronie przysłowiowego Kowalskiego, który nie rozpoczyna nauki programowania lub nie dochodzi do poziomu, który pozwoli wejść na rynek IT z powodzeniem.
Dodatkowo struktura zatrudnienia w IT charakteryzuje się tym, iż 80-90% ofert to oferty dla specjalistów, a nie początkujących. Wg danych, które co roku przerażają jeżeli chodzi o dziurę kadrową w IT, firmy będą musiały zmienić swoją taktykę zatrudniania i przyuczać osoby początkujące, a dokładniej mówiąc – zacząć zatrudniać więcej Juniorów.
Dlaczego zatem w tym kontekście nie jesteśmy w stanie dogonić innych krajów?
Na to pytanie spróbujemy odpowiedzieć w dalszej części artykułu.
Programowanie już dawno było uznawane za trudne
Publikacja z 2002 roku autorstwa Dana Bricklina [http://www.bricklin.com/wontprogram.htm], opisuje sposób, w jaki programista konstruuje instrukcje dla komputera i jak może prawidłowo przewidywać wyniki, oraz jak to może wpłynąć na akceptację systemu.
Artykuł zainspirował mnie do napisania tego artykułu a jego treść można skrócić do stwierdzenia: są osoby, które potrafią szybciej nauczyć się programowania. Są również ludzie, dla których składnia języków jest zbyt trudna. Fragment artykułu:
“Języki programowania, takie jak Assembler, FORTRAN, C i Java, są najmniej akceptowane przez masy. Ich składnia jest bardzo bezlitosna” – tłumaczenie Google
Po kilku latach doświadczeń w branży jako programista stawiam tezę, iż programowanie nie jest trudne. To rzemiosło, którego może nauczyć się praktycznie każdy z odpowiednią dawką motywacji. To również nie składnia, a sposób myślenia i analizowania konkretnych problemów przybliża nas do zostania programistą. Wnioski z powyższego artykułu nie mają racji bytu.
>To może cię zainteresować: Najważniejsze trendy na rynku pracy w 2023 roku – oczami branży IT
Nie sądzę też, iż to motywacja jest tu problemem do przebranżowienia. Wysokie zarobki, praca zdalna, liczne benefity, spotkania integracyjne, nowoczesny sprzęt i biura. Kto nie chciałby pracować w takich warunkach?
Czy są ludzie stworzeni do programowania?
W odpowiedzi na to pytanie, posłużę się kolejną publikacją z 2006 roku autorstwa Jeff’a Atwooda – współzałożyciela portalu Stack Overflow: “Separating Programming Sheep from Non-Programming Goats”
Artykuł ten odnosi się do badania (link do badania ), które w swojej istocie miało odpowiedzieć na pytanie: czym różnią się ludzie programujący od nieprogramujących. A w dosłownym tłumaczeniu: “sposób na oddzielenie programujących owiec od nie programujących kóz na lekcjach informatyki” – tłumaczenie Google.
Wyniki badania są bardzo ciekawe.
Na przykładzie podstawowych instrukcji programistycznych takich jak przypisanie, iteracja, rekurencja, warunkowanie zebrano odpowiedzi od osób nigdy nie mających do czynienia z programowaniem. Byli to studenci informatyki, czyli jak wiadomo – nieliczna grupa wśród populacji ukierunkowana w znacznej części na programowanie.
Test użyty w badaniu można pobrać tutaj: LINK DO PLIKÓW
Jeśli chodzi o podstawowe instrukcje, z jakimi spotkamy się podczas nauki, wyniki pokazały, że:
- 44% uczniów stworzyło spójny mentalny model działania zadania (nawet jeżeli jest błędny!).
- 39% uczniów nigdy nie stworzyło spójnego modelu działania zadania.
- 8% uczniów zignorowało zadanie i pozostawiło puste odpowiedzi.
Wniosek przedstawiony w badaniu:
“Aby napisać program komputerowy, musisz się z tym pogodzić i zaakceptować, iż jakkolwiek byś nie chciał, aby program działał, maszyna będzie ślepo podążać za swoimi bezsensownymi regułami i dochodzić do jakiegoś bezsensownego wniosku” – tłumaczenie Google.
To badanie pokazało również, iż ok. połowa studentów, biorących udział w badaniu nie przeszłoby pozytywnie pretestu skonstruowanego wg powyższych zasad. Czy to właśnie wysoki próg wejścia jest odpowiedzią na pytanie tytułowe?
Pozwolę sobie postawić kolejną tezę: Nauka programowania wydaje się obca i trudna do przejścia dla przeciętnego człowieka, który nie miał styczności z kodowaniem. To jest główna przyczyna braku podjęcia choćby najmniejszej próby. Jak to jednak jest, iż choćby studenci z niższymi “predyspozycjami” również kończą kierunki IT i są specjalistami, którzy bez problemu znajdują pracę i rozwijają kariery? Wszystko leży w gestii:
- ilości pracy jaką trzeba wykonać przy nauce programowania
- braku obaw co do wysokiego progu wejścia – ten argument być może miał rację bytu 50 lat temu, gdy programowanie odbywało się dzięki kart perforowanych i dyskietek. Dziś każdy kto umie obsługiwać komputer, jest w stanie w mniejszym lub większym stopniu nauczyć się programowania
- innych czynników, które omówimy w kolejnych artykułach z serii “Dlaczego Janek nie programuje?”
Jeden artykuł to za mało na kompletne wnioski
Z przebiegu artykułu dowiedzieliśmy się, z jakimi przeciwnościami zmagają się początkujący programiści i czy trzeba być specjalnie uzdolnionym, aby szybciej lub w ogóle nauczyć się programowania. Przyczyną w dużej mierze są obawy przed nieznaną materią, jaką jest programowanie dla zdecydowanej większości społeczeństwa (więcej niż 95%).
Rynek IT powinien skupić się na szkoleniu i zatrudnianiu Juniorów, w przeciwieństwie do obecnego trendu, wg którego oferty dla juniorów stanowią tylko 10% (!!!) wszystkich ofert.
Problem jest bardzo szeroki, a jego analiza to interesująca materia. Jeden artykuł to zdecydowanie za mało aby zgłębić temat, dlatego zapraszam do kolejnych z serii, które pojawią się na it-leaders.pl w kolejnych tygodniach.
Autor: