Posted by: futrzak | 19 February 2019

Bo każdy może byc programistą!

Nie mogę. Gdzie nie spojrzę, atakują mnie kursy programowania. Bootcamp! Online! Dzis widzialam nawet reklamę z CNN: “Learn basic coding with this beginner-friendly course bundle”.

Nie mam nic przeciwko uczeniu sie nowych rzeczy. Nie mam nic przeciwko przekwalifikowaniu sie na inny zawód ale… te oferty i kursy robią ludziom wodę z mózgu. Niektóre zawody nie dadzą się opędzić kilkumiesięcznym kursem. Lekarz, architekt, inzynier dróg i mostów, biotechnolog, inzynier materiałowy….
Większość zawodow inżynierskich nie da opedzić sie kilkumiesięcznym kursem praktycznym. Wymagają owe zawody raz, ze solidnego przygotowania teoretycznego (matematyka, fizyka, chemia kłaniają się), a dwa: praktycznego. I praktyki, praktyki praktyki…

Takimże samym zawodem jest software engineer, potocznie zwany programistą.

Tak, programowanie polega na poznaniu “tajników” formalnego języka używanego do “przemawiania do komputera” (chrystepanie jak to piszę, to ąz mnie skręca…). Ale typowy bootcamp (czyli taki intensywny kurs co trwa od tygodni do miesięcy) wygląda tak: podstawy podstawowych konstrukcji w jakims wybranym języku np. java, python, javascript, na przykladzie najczęściej jakiejś aplikacji web. Czyli:
Baza danych (relacyjna), serwer web, jakies frameworki od frontendu, których w pytę potworną (angular, react, potem w pytkę bibliotek na przyklad do testowania, to sro tralala, coffee script, you name it).
I już.
To jest projekt, ktory ludzie muszą zrobić, zeby zakończyc kurs i zdobyc certyfikat. I robia i konczą. Co to znaczy? To znaczy, ze jak skonczą, to są w stanie zrobić inny projekt z takimi samymi wymaganiami: w tym samym języku, w tym samym frameworku, na tej samej platformie, pod warunkiem, ze im ktos tą platformę postawi, skonfiguruje i będzie dbał, zeby sie nie wypierdzieliła, a jak sie wypierdzieli, to ją podniesie i poprawi. Ci ludzie nie wiedzą nic o takich rzeczach jak co to jest TCP/IP, UDP, co to jest architektura klient-serwer, jak działaja podstawowe serwisy Internetu (DNS, NTP, SMTP, itp.). Ci ludzie nie wiedzą, co to jest kernel, co to jest OS, gdzie szukać przyczyn tego, ze ich program nie działa; nie potrafia zdebugowac ich wlasnego kodu, nie potrafia zdiagnozowac walącego sie hardware w ich własnym komputerze. Nie wiedzą, co to są struktury danych, po co to w ogole jest im potrzebne. Bardzo często nie ogarniają też podstaw logiki mających zastosowanie w programowaniu czyli: co to jest koniunkcja, alternatywa, implikacja (operatory logiczne), co to są funkcje, if-else, i tak dalej. Arrays. Jak linkować biblioteki. Jaka jest róznica miedzy jezykami obiektowymi i sekwencyjnymi (nie, nie idzmy w tą stronę…)…

To jest tona wiedzy, praktyki i wiedzy i wszystkiego. Ale oni wychodzą z takiego bootcamp przekonani, ze świat nalezy do nich, programowanie jest łatwe i w ogole o co chodzi takim ludziom jak ja, oraz innym developerom? Zapłacili, nauczyli się, dostali certyfikat, więc proszę sie odpindolić.

A potem przychodzi następna warstwa komplikacji: współczesny soft to jest praca zespołowa. Tak, są jezyki obiektowe, tak, jest automatyczne generowanie data dictionaries i generalnie świat dzisiejszy w informie to nie to, co 2 dekady temu. Ale nadal to grupa. Nadal korzystasz z jakiegoś version control (dzis to pewnie będzie GitHub), nadal twój kod musi być czytelny, nadal zorganizowany tak, zeby inni byli w stanie sie wdrozyc w krótkim czasie. Nadal trzeba komentowac sensownie to co robisz, nadal twój pull request musi byc zaakceptowany. Niektore firmy to – fiu fiu – mająa nawet wymagania, zeby kod był modularny i testowalny!

Czy tego uczą na bootcamps? Nie. Czy uczą komunikacji z resztą zespołu oraz ludzmi ze strony biznesowej, jak product managers? Nie. Tego wszystkiego nie uczą nawet na studiach z computer science – te rzeczy nabywa sie “w praniu”. Ludzie po CS przynajmniej są zmuszeni zapoznać sie (lepiej bądz gorzej) z teorią z tej dzialki i wiedzą, jak ona jest rozległa. Muszą zrobic ileś-tam projektów programistycznych na zaliczenie – ale tez bycia programistą uczą sie od dupogodzin wysiedzianych i wlasnych błędów, ktore sami poprawili we własnym kodzie.

A co daje papirek z bootcamp? Papirek. I przekonanie, ze teraz juz moga isc, zawojować świat, rządać zyliona papierków za ten papierek i czuć się królami swiata… eh.

PS:
dzisiejszy wpis sponsoruje niezindentyfikowany ktos, kto sp** wysyłanie emaili w produkcji, wpisując bezmyślną rule na serwerze auth0. Oby dostał staczki i rozwalił kibel…


Responses

  1. Jest jeszcze jeden aspekt tego zamętu. To czego się uczysz, a co przydatne jest dzisiaj, z całą pewnością za dwie dekady będzie interesować tylko archeologów. Nikt nie tłumaczy adeptom takich kursów, że jeśli nie będą się uczyć dalej i to goniąc intensywnie rzeczywistość zapierdalającą jak pociąg pośpieszny to pogrążą się w ciemności. Nie ma, że się nauczysz i masz. Nie masz. Miałeś. Jak sobie przypomnę projekty z lat 90ych to ogarnia mnie przygnębienie. Nawet platform na których biegały już nie ma, a wszystko parę razy piasek zasypał.

  2. @telemach:

    dokladnie.
    Przy czym dzisiaj prędkosc przyspieszyla. Nowy framework do web aplikacji powstaje chyba co tydzień.

    Co ciekawe, tzw. backbone of the Internet zmienil sie niewiele. Ta sama architektura, te same protokoly. Podobnie z jądrami systemów operacyjnych.

    No ale co sie dziwic, te rzeczy byly robione za publicznej pieniądze, solidne, dobrze zaprojektowane – są dalej. Te wszystkie prywatne biznesy (Appla i Amazona nie wylączajac) nie robia w ogole nic nowego juz.

  3. Lepiej nic nie robić i brać zasiłek :-)

    Dużo wszędzie narzekania na programistów po przyśpieszonych szkoleniach, a prawda jest brutalna – albo nasi bezrobotni będą się szkolić na takich wyrobników/rzemieślników do klepania procedur, albo dalej będziemy korzystać z outsourcingu w Indiach, gdzie – nie oszukujmy się – znakomita większość pracowników jest właśnie na takim poziomie, jak po kilkumiesięcznym kursie.

    Czasem odnoszę wrażenie, że “programiście za 15k” (to takie powodzenie na wykopie) obawiają się, że ludzie po kursie trzymiesięcznym odbiorą im pracę. Sam nie programowałem od czasów dyplomu i wiem, że to trudne. Ale domyślam się, że w każdej większej firmie potrzebni są wyrobnicy, którzy będą robić rzeczy proste, przepisywać stare kody na nowe, robić różne testy i je raportować itd itd. Generalnie nikt, kto jest dobrym artystą, nie odnajdzie się na dłuższą metę w byciu rzemieślnikiem/wyrobnikiem. A dla kogoś po bezrobociu taka praca może być wręcz wymarzonym zajęciem… i może po pewnym czasie z rzemieślnika będziemy mieć artystę, którego zastąpi kolejny “technik”.

    Młodszy brat jeszcze pół roku temu składał okna razem z Ukraincami w podkrakowskiej fabryce. Jeden z nich chodził już na kurs programowania. I ja na to się nie obrażam. Nie można zostać lekarzem po trzymiesięcznym kursie, ale pięlęgniarzem chyba już niezłym zgaduję? Oczywiście nie piszę o dyplomowanych pięlęgniarkach po studiach.

  4. I w moim komentarzu nie chodzi by w jakiś sposób umniejszać rolę testów – piszę o tych najprostszych, bo do interpretacji problemów i bardziej skomplikowanych testów już na pewno potrzebny jest artysta, jak zapewne Autorka.
    Tak jak w czasach AutoCADa byli potrzebni inżynierom drafterzy, by robić rysunki 2D – szczerze nienawidziłem tego w mojej pierwszej pracy na studiach (mimo, że to była tam moja rola może w 50%). A mógłby robić to ktoś po technikum… i tak właśnie robiło się to w Niemczech.

  5. @Wojtek:

    Lepiej nic nie robić i brać zasiłek :-)

    Aha, Czyli jestes zwolennikiem tego, ze lepiej robic cokolwiek, bo branie zasilku to straszny wstyd, skandal i tragedia?

    Świetnie. To co sie będziemy ograniczać. W Polsce brakuje pielęgniarek. Urządzmy bootcamp pielęgniarski i puszczajmy do pracy z pacjentami ludzi po dwumiesięcznym przeszkoleniu. Ostatecznie lepiej, zeby pracowali niz brali zasilek, nie?

    Albo inzynierowie budownictwa. Po co komu jakies tam studia i praktyka. Dwumiesieczny kurs i niech robią mosty.

    Ale domyślam się, że w każdej większej firmie potrzebni są wyrobnicy, którzy będą robić rzeczy proste, przepisywać stare kody na nowe, robić różne testy i je raportować itd itd.

    Nie, w obecnych firmach robiących soft nikt nie potrzebuje “wyrobników”. Nikt nie przepisuje “starych kodów na nowe”. Tak bylo dekaaaaady temu. Dzisiaj tego nie robia zadni ludzie, to jest zautomatyzowane.
    Tester tez musi umiec programowac, musi znac architekture i konfigi tych wszystkich warstw softu, frameworków i bibliotek, zeby zaprojektowac sensowny system testów, a potem to napisać. Zaden “wyrobnik” tego nie ogarnie.

    Twoje wyobrazenia o tym, jak wygląda organizacja pracy i podzial zadan w firmie robiącej soft pochodza z innej epoki i maja sie NIJAK do terazniejszosci.
    Oczywiscie, zawsze sie znajdą jacys idioci, ktorym sie wydaje, ze bedzie “taniej” zatrudnic 300 testerów, ktorzy beda jak małpy klepać w klawisze i wypeniac tabelki w excelu. Do nich jeszcze nie dolecialo, ze w normalnej firmie to sie robi dwoma kompetentnymi SQA.

    . Nie można zostać lekarzem po trzymiesięcznym kursie, ale pięlęgniarzem chyba już niezłym zgaduję?

    Noszowym to mozna. Pielęgniarzem/pielęgniarką nie. Tobie sie chyba pomylił zawód sanitaruszki (upowszechniony na wszelakich filmach wojennych) z pielęgniarką.

  6. @wojtek

    Nie, nie można zostać pielęgniarzem w dwa miesiące. Myślę, że masz zadziwiające poglądy na temat tego co robi tzw. średni personel medyczny”
    Można zostać salowym lub salową. To ktoś, kto jest lepszą sprzątaczką.

    W Niemczech przyglądałem się szkoleniu stolarzy. Przez pierwszy rok nie wolno im wziąć do ręki żadnego elektronarzędzia. Wszystko ręcznie, jak za króla ćwieczka. Aby “zrozumieć materiał i jego właściwości” A potem jeszcze 5 lat intensywnej nauki. i gotowe. I możesz próbować się zatrudnić pod kierunkiem kogoś bardziej doświadczonego.
    To wszystko rzuca ciekawe światło na polskie barbarzyństwo.

  7. HRejterzy juz chyba o tym mowili :)
    Kiedy musisz zatrudnić 300 osób do końca kwartału

  8. k@mil:

    Indeed!
    No ale zrobił gościu wysilek, na kurs poszedl, to lepsze niz siedzenie na tyłku!

    8-[[[

  9. Zostałem zjechany, dzięki za sketch – doskonały :-)
    A jak słyszę, że stolarz się kształci 5 lat to mi ręce opadają – własnoręcznie z tatą 20 lat temu wybudowaliśmy domek w górach z drewna w jedne intensywne wakacje – wcześniej całą zimę sami strugaliśmy okna (serio, byliśmy biedni, to były ponure lata 90 w Polsce przed UE).
    Widzę, że korpomaski wszyscy noszą i strugają niezastąpionych specjalistów – to prawda na pewnym poziomie, ale… naprawdę w Waszych miejscach pracy (pomijam Futrzaka na pracy w domu) nie ma czynności wtórnych, powtarzalnych, które nie wymagają 6 lat intensywnej nauki?
    Wiecie ile mi się przydaje z 5 lat intesnywnych studiów? Tyle, ile można by skoncentrować na maks 1 roku, a po 6 miesiącach, gdybym wybierał teraz zajęcia pod siebie i napisał ich program :-)
    Całą resztę poznaje się pracując nad rzeczami, które i tak są tajne – chronione prawami autorskimi/przez departament stanu USA.
    Ale widzę, że wszyscy budują swoje mity :-)
    Nie – nie uda się mnie zastąpić po kursie 3miesięcznym, ale przyjąć do mojej firmy kogoś po dobrze zrobionym kursie na pewno byśmy mogli, gdybyśmy mieli taką potrzebę – pracę bym takiej osobie bym znalazł, a z czasem by uczyła się coraz trudniejszych rzeczy – przede wszystkim nas odciążała od rzeczy prostych i wtórnych.

  10. @Wojtek:

    naprawdę w Waszych miejscach pracy (pomijam Futrzaka na pracy w domu) nie ma czynności wtórnych, powtarzalnych, które nie wymagają 6 lat intensywnej nauki?

    Moj wpis jest o software engineers. O TYM jest dyskusja.
    Napisalam ci juz, ze w dzisiejszych firmach robiacych soft nie ma miejsca na małpie, powtarzalne czynnosci. Wyjasnilam powyzej (w skrocie, ale zawsze). Te czynnosci sa ZAUTOMATYZOWANE. Czego nie zrozumiales?
    (BTW ja nie jestem freelancerem, ja jestem zatrudniona w software shop urugwajskim, a moim klientem jest amerykanska corpo i na codzien pracuję z zespołem devów i QA. Ze mogę to robic zdalnie z domu to inna sprawa).

    Wiecie ile mi się przydaje z 5 lat intesnywnych studiów? Tyle, ile można by skoncentrować na maks 1 roku, a po 6 miesiącach, gdybym wybierał teraz zajęcia pod siebie i napisał ich program :-)

    Swietnie. To teraz mi powiedz DLACZEGO na podstawie studiów Z ZUPELNIE INNEJ DZIALKI, robionych ponad 2 dekady temu, wypowiadasz sie o zupelnie innym zawodzie na dodatek w dziedzinie, ktora przez ostatnie 2 dekady dokonala kolosalnego skoku do przodu? Dlaczego uparcie odmawiasz przyjęcia do wiadomosci tego, co mowi ci ktos, kto zęby zjadł pracując w firmach robiących soft przez ostatnie 2 dekady? Skad to butne przekonanie, ze TY WIESZ LEPIEJ?

    Czy zdajesz sobie sprawe z tego, ze takie “wyciaganie wnioskow” ma podobna wartosc, jak wyrokowanie o problemach w farmingu trzciny cukrowej w Brazylii na podstawie tego, ze masz plantację ziemniaków w Polsce?

    I nie, ja nie buduję zadnych “swoich mitów”.
    Ja mam po dziurki w nosie na codzien takich “wiedzacych lepiej” ludzi, jak ty. Problem polega na tym, ze konsekwencje ich niewiedzy ponosza inni. To ci inni (m. in tacy jak ja i cala reszta zespolu developerow i QA) potem musza zapieprzac w nadgodzinach robiac oprocz swojej roboty robote takiego pozal sie boze programisty po bootcampie. Bo on nie umie zdebugowac swojego kodu. Gdybys kiedys faktycznie programowal na serio to wiedzialbys, ze nie ma gorszego g*** do zrobienia, niz przedzieranie sie przez g**** kod kogos, kto mial sraczkę umyslową i poprawianie go.
    To wlasnie potem przez takich wanna-be kandydatow na programistów odchodza naprawdę wartosciowi ludzie, bo maja dosc sprządania g*** po kims.

    Owszem, są firmy, ktore przyjmuja na internship. Tylko ze jesli to ma byc internship na programistę, to przyjmuje sie swieżo upieczonego studenta computer science. Bo jemu nie trzeba od początku wyjasniac wszystkiego. Bo taka osoba rozumie podstawową TERMINOLOGIE i potrafi sama sobie znalezc odpowiednie informacje i co wazniejsze, jak wezmie do ręki książkę np. z serii O’Reilego, to BEDZIE ROZUMIALA CO TAM JEST NAPISANE.

    Bootcampy są dobre dla kogos, komu programowanie jest od czasu do czasu potrzebne w jego dzialce jako narzędzie. Na przyklad ktos jest naukowcem/badaczem robiącym konkretne rzeczy i przydalby mu sie specyficzny program do modelowania/analizy danych. Albo ktos jest z zawodu graphical designer i chcialby sie przerzucić na UX designer i dlatego idzie na kurs HTML/javascript. Albo ktos pracuje w supporcie – first and second tier, a chcialby sie przenieść do third tier.

  11. Twoj wpis nie jest tylko o software engineers:

    “Niektóre zawody nie dadzą się opędzić kilkumiesięcznym kursem. Lekarz, architekt, inzynier dróg i mostów, biotechnolog, inzynier materiałowy….
    Większość zawodow inżynierskich nie da opedzić sie kilkumiesięcznym kursem praktycznym.”

    Studia architektoniczne akurat, tak jak sa realizowane w Polsce sa gowno warte, bo na dzien dobry mowia ci, zeby nie myslec jak projektant, tylko jak wizjoner, a projektowania to sie nauczysz dopiero w pracy.

  12. @Wojtek, Futrzak
    W różnych dziedzinach inżynierii jest różnie.
    Na przykład projektując statek masz Wielkiego Gonzo który pracuje z ramienia stoczni z armatorem, robi koncepcje, dobiera linie teoretyczne kadłuba, rozplanowanie ładowni, silnika i nadbudówek, szacuje masę, etc.
    Potem kompetentni wstawiają do projektu grodzie, starają się sensownie rozplanować wnętrze, etc. A na koniec masz pułk małp z cyrklami, które muszą narysować drzwi, schody i mocowania stołów w mesie.
    Kiedyś były następne kategorie- kreślarzy, którzy robili kolejne rzuty na podstawie już istniejących planów, kopie rysunków oraz rachmistrzów, którzy liczyli masę i stabilność tego wszystkiego. Tę część dziś załatwiają komputery i tych ludzi już nie ma.
    W IT to poszło dalej i dla małpy z cyrklem nie ma miejsca w ogóle, a kiedyś było. I to jest różnica.

  13. Czyli co? Wszystkie te studia pt. “Inżynierskie zastosowania komputerów”, “Informatyka ekonomiczna” itp to o kant d… rozbić bo i tak po nich nic nie umiesz?

  14. @Marek W:

    Nie wiem. Za moich czasów takich studiów nie bylo, nie mam zielonego pojecia, jaki program maja i czego uczą.
    Koledzy, ktorzy studiowali na polibudzie i tak mieli przedmioty z informatyki oraz programowanie i komputera uzywac musieli umiec.

    Nie mam pojęcia, co kryloby sie pod nazwa “inzynierskie zastosowania komputerow”, skoro przyszli inzynierowie, ktorzy ksztalca sie na polibudzie, i tak na codzien uzywaja komputera jako narzędzia ich pracy…

  15. Informatyka ekonomiczna to teoretycznie sporo rzeczy w okolicach data lineage czy master data management etc.

  16. @gszczepa:

    hm…. poczytalam sobie troche o tym master data management i prawde mowiac brzmi to jak nastepny cudowny proces, ktory ma zalatwic wszystkie problemy korporacji dotyczace przeplywu informacji….taki holy grail, cos jak (obecnie) agile w temacie software development. Albo jak ISTQB certyfikat w mojej dzialce. Ktory w praktyce mozna sobie w dupę wsadzić – taki ma poziom …abstrakcji.

    Nieodmiennie kojarzy mi sie to z robieniem studiów i zdawaniem egzaminu z teorii plywania. Ba. Mozna nawet rozwiazywać zadania z termodynamiki! A potem cię wrzucą do basenu i utoniesz…


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Categories

%d bloggers like this: