fbpx
Kategorie
Publicystyka

Nie płać za kurs programowania

Jest taka branża, w której zarobki są świetne, zlecenia płyną z całego świata a pracodawcy prześcigają się w pomysłach na zdobycie i zatrzymanie pracowników. Owszem, próg wejścia jest wysoki, bez sumienności i dokładności nie ma mowy o wynikach – za to opanowanie kilku rzadziej używanych technik i narzędzi sprawia, że pensja szybuje w kosmos.

Mowa oczywiście o spawaniu podwodnym.

Dlaczego nie widzimy natrętnych reklam divecampów, obiecujących gwarantowane zatrudnienie po półrocznym, intensywnym szkoleniu nurkowo-spawalniczym? Czemu nikt nie namawia do porzucenia obecnego stanowiska i rozpoczęcia suto płatnej podwodnej przygody? Pewnie dlatego, że większość ludzi boi się pływać, gdy nie sięga stopami dna, niewielu ma predyspozycje do bycia dobrym spawaczem a samo zajęcie jest dość niebezpieczne.

JSON z HRejterów, znany także jako Szymon Szczęśniak z CodeTwo Software, opublikował jakiś czas temu film w którym odpowiada na pytanie, czy można rozpocząć pracę w IT mając 30, 40 czy 50 lat i czy koniecznie musi to oznaczać naukę programowania (spoiler – nie musi).

Ja skupię się na prostszej parze pytań: „czy warto wydać XXXX zł na kurs programowania” oraz „jakiego języka programowania mam się uczyć”. Uwaga! Programuję 3/4 życia, większość tego czasu za pieniądze, dawno już zapomniałem jak to jest nie umieć. Proszę brać na to poprawkę.

Na początek najważniejsze pytanie:

Czy warto wydać XXXX zł na kurs programowania?

Nie.

I w zasadzie na tym mógłbym tekst zakończyć, ale jednak wolę swoją opinię uzasadnić. Tak więc…

Nie wydawaj żadnych pieniędzy, jeśli dopiero zaczynasz albo jeśli zupełnie nic nie umiesz. Być może wieczorowe, weekendowe lub korespondencyjne szkoły programowania robią dobrą robotę, ale kosztują kilka lub kilkanaście tysięcy złotych. Taka kwota pozwoli ci wziąć bezpłatny urlop, utrzymać się przez kilka tygodni i samodzielnie uczyć programowania przez 8-12h dziennie w swoim własnym tempie. Dorzuć do tego godzinę lub dwie na świeżym powietrzu i dość snu, by porządnie wypocząć.

W każdej szkole programowania, jakkolwiek by się nie nazywała, trafisz na ludzi o bardzo zróżnicowanych umiejętnościach. Niektórzy robią „w komputerach” od lat, inni po raz pierwszy zobaczą okienko konsoli tekstowej. Umiesz sporo – nudzisz się czekając na resztę grupy, marnujesz czas (oraz pieniądze). Umiesz mało – szybko przestajesz rozumieć co się dzieje, marnujesz czas (i pieniądze). Umiesz w sam raz – skoro sobie radzisz, nauczyciel nie poświęci ci dość uwagi, marnujesz pieniądze.

Gdy uczysz się sam/sama, w dowolnej chwili możesz przerwać naukę a reszta kasy zostaje w kieszeni. Bo wiesz, może okazać się, że to całe programowanie z dowolnych powodów nie jest dla ciebie, ale całą kwotę trzeba było zapłacić przed rozpoczęciem zajęć. Przykład z życia – kilka lat temu poszedłem na zajęcia wprowadzające do nurkowania. Zapoznałem się z teorią, dostałem cały osprzęt, spędziłem godzinę pod wodą oddychając przez aparat. Względnie dobrze radziłem sobie z regulacją wyporności, trochę bolały mnie uszy ale… nie spodobało mi się za bardzo. W zasadzie to prawie wcale. Ale przed lekcją intro kosztującą dwie stówki nie wiedziałem, jak będzie, więc gdybym wydał z góry dwa tysiące na cały kurs, byłoby mi smutno. Z programowaniem możesz mieć podobnie, nie każdemu przypadnie do gustu taki rodzaj wysiłku umysłowego.

Czy każdy może programować?

Nie. Być może. Nie wiem.

Z całą pewnością nie każdy będzie w tym wystarczająco dobry i nie każdy odnajdzie w tym przyjemność. Można tu rzucić cynicznym komentarzem, że w IT przynajmniej łzy ociera się pomiętymi studolarówkami, ale postawmy sprawę jasno – nie zawsze silna wola i samozaparcie doprowadzą do satysfakcjonujących wyników. Gdy nie masz predyspozycji plastycznych, po kilkuset godzinach nauki rysunku osiągniesz poziom utalentowanego nastolatka-samouka, dla którego szczyt twoich możliwości to poziom startowy.

Czasem wiadomo, że wymarzona kariera się nie wydarzy – wystarczy spojrzeć na fizyczne wymagania stawiane przed zawodnikami sumo, pilotami myśliwców, dżokejami czy żołnierzami kompanii reprezentacyjnej. Jeśli chcesz żyć z cerowania artystycznego ale wśród twoich cech brak cierpliwości i dokładności, też nic z tego nie będzie.

Podobnie – programowanie kłóci się z zamiłowaniem do rutyny i powtarzalności. Trzeba być gotowym na ciągłe dokształcanie i godzić z tym, że ekosystem cały czas ewoluuje a niektóre technologie okażą się się ślepym zaułkiem. Premiowana jest umiejętność przewidywania problemów i zapobiegania im, zanim wystąpią, oraz odporność psychiczna gdy po kilkunastu lub kilkudziesięciu godzinach prób coś nadal nie działa.

Jeśli lubisz rozkładać każdą decyzję na czynniki pierwsze, możesz przeczytać książkę Maćka Aniserowicza „Zawód programista”. Daj mi wtedy znać, czy jest ciekawa. Ja nie czytałem.

Jakiego języka programowania się uczyć?

Wszystko jedno. Serio. To i tak nie będzie jedyny język, jaki poznasz. U mnie wygląda to tak: najbardziej lubię składnię i narzędzia języka C# i jeśli coś mam zrobić na szybko, to używam właśnie jego. Znam też Javę, bo w niej przez wiele lat programowałem telefony z Androidem. Znam C i kiedyś radziłem sobie w C++, ale od dawna ich nie dotknąłem. Zdarzało mi się robić coś w PHP oraz JavaScripcie, liznąłem GWT. Uniwersalną wiedzą jest język zapytań SQL, niszową – PL/SQL. 30 lat temu na 8-bitowcach był Basic i prosty asembler. Radzę sobie z R, znam podstawy Matlaba. W unixach zdarza się coś na szybko machnąć w bashu, Perlu, awk, czy textutilach (grep, sort, split, tr, wc), pod Windowsem oskryptować coś jako batch. Na studiach pisałem w Pascalu. Czasem trzeba było ubrudzić się Visual Basicem. Kiedyś rozumiałem Prologa i SML-a, raz w życiu użyłem języka Lua.

Łącznie ponad 20 języków w ciągu 30 lat. Większość znam słabo, ale w razie potrzeby potrafię je czytać. Z popularnych pozycji zabrakło Pythona, PowerShella, czy Go. Mamy też dużą liczbę narzędzi, których używa się tworząc pliki konfiguracyjne albo przekazując skomplikowane dyrektywy z linii komend – to też pewnego rodzaju programowanie.

Wiele osób zaczyna programować „przy okazji” – gdy odkryją makra w Excelu, skrypty do Minecrafta albo edytor map do ulubionej strzelanki. Przesiadka na język ogólnego przeznaczenia może być wówczas zaskakująco łatwa.

Czy trzeba znać język angielski?

To zależy. Na poziomie podstawowym – nie. Mamy dość książek i materiałów online opisujących po polsku wszystkie tematy potrzebne na początku kariery. Na poziomie średnio zaawansowanym zauważysz, że napisanie, przetłumaczenie i wydanie książki trwa co najmniej rok, więc bez znajomości angielskiego będziesz nieco w tyle, poza tym z dużo większym trudem przyjdzie ci odnalezienie w sieci potrzebnych materiałów. Na poziomie zaawansowanym będziesz pracować z narzędziami i technologiami, które nigdy nie doczekają się publikacji w języku polskim.

Od czego zacząć?

Jeśli nie wiesz, jaki język wybrać – wybierz C# lub Pythona. Możesz rzucić kostką.

Potem znajdź ze dwie-trzy książki dla początkujących, najlepiej z zadaniami na końcach rozdziałów. Takie nie za grube, bo cegły po tysiąc i więcej stron są niewygodne do czytania i odkładania na biurko. Znaczna większość materiału się powtórzy, ale łatwiej zrozumiesz te same kwestie, gdy będą tłumaczone i demonstrowane w różny sposób.

Używanie narzędzi programistycznych będzie na początku onieśmielające, pakiety w rodzaju Visual Studio mają sto milionów okien, ikon, przełączników, opcji konfiguracyjnych i wszystkiego innego. Poznasz je z czasem, na początku używaj ustawień domyślnych.

Gdy nauczysz się, czym są zmienne, pętle i funkcje, przyjdzie czas na samodzielne napisanie programu FizzBuzz.

Potem napisz własnego Tetrisa, działającego w trybie tekstowym. Tego nie zrobisz w jeden dzień ani nawet tydzień, więc warto podzielić pracę na etapy. Przykład:

  • rysowanie planszy („studni”)
  • rysowanie klocka 2×2
  • przesuwanie klocka strzałkami (w każdą stronę)
  • wykrywanie kolizji ze ścianami, podłogą i innymi klockami
  • dwa nowe kształty klocków
  • obracanie klocków spacją
  • samoczynne opadanie klocka co sekundę
  • zrzucanie klocków na sam dół
  • … i tak dalej.

Gdy skończysz, będziesz mieć ochotę wywalić wszystko i napisać od nowa, tym razem porządnie. To normalne. Po kilkudniowej przerwie możesz przestać rozumieć, jak to w ogóle działało – to też normalne. Jeśli na tym etapie nadal masz ochotę na naukę, czas poznać git-a (system kontroli wersji) i dowolny debugger (narzędzie pozwalające na zatrzymanie pracy programu w wybranym miejscu i podglądanie stanu zmiennych).

Ile to zajmie? Od kilku tygodni do kilku miesięcy. Będą to ciągłe zmagania z dwiema sytuacjami: a) wiesz, co chcesz osiągnąć, ale nie wiesz jak; b) komputer robi co innego, niż powinien.

Lepiej przywyknij, tak właśnie wygląda codzienne życie programisty.


Dopisano kilka miesięcy później: nie wpisuj w komentarzach reklamy swojej renomowanej szkoły programowania której wszyscy uczniowie są zadowoleni. Takie komentarze wylatują.


Wasz uniżony autor debuguje oprogramowanie komputera pokładowego na produkcji u klienta
lato 2009, piksel na szkle.


O autorze: zawodowy programista od 2003 roku, pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych, brał udział w pracach nad grą Angry Birds i wyszukiwarką internetową Microsoft Bing.

32 odpowiedzi na “Nie płać za kurs programowania”

Jako kończący studia informatyczne na lepszej uczelni mogę powiedzieć, że będąc samoukiem pewnie nigdy bym sie dowiedział się o wielu przydatnych rzeczach. Dlatego osobom kończącym liceum i chcącym być programistami zdecydowanie polecam studia. Bootcampy prawdopodobnie by nie pomogły w zdobyciu takiej, rozległej wiedzy. One uczą podstaw, i to głównie frontendu który ma ogrom materiałów w sieci.

Przed studiami próbowałem się sam nauczyć programowania i było to bolesne, szczególnie że mnie interesują mikrokontrolery i bez wytłumaczenia wiele teraz banalnych rzeczy było zupełnie niemożliwych do zrozumienia (np. czym jest i czym się różni tablica charów od obiektu String) Niestety jest o wiele gorzej gdy nie ma się kogo dopytać o rzeczy których się nie rozumie.

Zgadzam się, że jeśli chce się być wśród tych dobrze zarabiających to trzeba poświęcać dużo prywatnego czasu na naukę. Ale akurat pracuję teraz w pewnym krakowskim korpo informatycznym znanym na całą Polskę ze swojego prezesa i tutaj przynajmniej połowa osób nie studiowała informatyki, prawie nikt się nie pasjonuje i samemu dokształca. Jest to miejsce dla ludzi chcących sie skupić na rodzinie czy innych pasjach. Da się tak pracować, ale wtedy wypłata już nie jest porażająca, choć wciąż zdecydowanie ponad inne zawody.

Co do języka, polecam https://www.bestprogramminglanguagefor.me/ Pokrywa się z moimi poglądami co do wyboru języka do danych potrzeb.

Zabrakło w tekście poruszenia aspektu mentoringu. Osoba ucząca się programowania często nie wie za co się zabrać, nie wie czy dobrze robi, nie wie jak rozwiązać podstawowe problemy. Jasne, umiejętność szukania rozwiązania w sieci jest istotna ale bądźmy szczerzy: komu na początku drogi nie zdarzyło się utknąć w martwym punkcie na długie dni i stracić motywację przez coś co jest generalnie proste tylko zabrakło osoby której można by podpytać? W pracy zawodowej tak samo to działa, mamy wybór: albo siedzieć nad taskiem tydzień i go zrobić słabo (albo wcale) albo po czasie, dochodząc do wniosku, że już nic nie wymyślimy i potrzebujemy świeżego spojrzenia na sprawę prosimy o pomoc kogoś bardziej doświadczonego z teamu.

No, to był ryzykowny komentarz i nie wiem, czy się opłacił. Nie kupujcie kursów Future Collars ani żadnych innych kosztujących 8-12 tysięcy złotych. Za tyle można przeżyć 2-4 miesiące ucząc się nie 15 a 70h tygodniowo. Mentora można znaleźć za darmo, wystarczy poszukać projektu open source, lokalnej Grupy Użytkowników Czegośtam albo popytać na jednym z licznych darmowych eventów programistycznych.

Jasne, są osoby dla których samodzielna nauka i poszukiwania są najlepszym rozwiązaniem i tego nie neguję 🙂 Na pewno trzeba w to włożyć więcej czasu i energii, podczas płatnego kursu wszystko dostaje się w jednej „paczce” – materiały, wsparcie w rekrutacji, pomoc w dofinansowaniu czy wsparcie praktyka. Więc koniec końców myślę, że oba rozwiązania są tu ok – zależy czy ktoś woli wydać pieniądze czy czas. A cel ten sam – wejście do branży IT 🙂

Proszę o usunięcie linku i wymoderowanie nazwy kursu. Nielegalnej reklamie mówimy nie.

Od siebie tylko dodam, że z programowaniem jest jak z górą lodową. Większość jest ukryta po powierzchnią (biblioteki, frameworki itd)
A darmowych materiałów jest cała masa np. https://goalkicker.com/ (Nie są to kursy programowania sensu stricte)

Do bootcampów i uczestników, jako potencjalnych (współ-)pracowników, mam ambiwalentne odczucia. Z jednej strony może to świadczyć o tym, że taka osoba nie radzi sobie z samodzielną nauką i oczekuje, że ktoś ją będzie stale prowadził za rączkę, co niezbyt dobrze pasuje do naszej dynamicznie zmieniającej się branży. Z drugiej strony znam kilka osób które nauczyły się samodzielnie Javy czy Pythona i nagle utknęły w miejscu: znam w miarę dobrze język, ale nie mam pojęcia jak to wykorzystać do znalezienia pracy. Sam byłem w tym miejscu parę lat temu, z tą różnicą, że byłem studentem jednej z najlepszych polskich uczelni, co powodowało patrzenie na mnie łaskawszym okiem przez pracodawców i z wskoczeniem na staż nie było problemu. Dla takich ludzi jakiś bootcamp nastawiony na nauczenie ich praktycznej strony IT ma jak najbardziej sens.

Za to zdecydowanie nie zgadzam się ze stwierdzeniem, że angielski nie jest potrzebny, chociażby i tylko na starcie. Z nauką języka programowania i najpopularniejszych bibliotek po polsku chyba nie ma problemu: są blogi, jest to jedno wydawnictwo które się jeszcze uchowało 😉 Schody zaczynają się w momencie gdy potrzebujemy skorzystać z jakiejś mniejszej biblioteki, o której nikt nawet nie myśli w kategoriach „napiszmy o tym książkę”, a dokumentacja jest tylko po angielsku. A jaki jest odpowiednik stackoverflow? 4programmers? 🙂
No i nauczenie się angielskiego na poziomie wystarczającym do czytania technicznych dokumentów (zgaduję, że coś koło B2 – FCE) jest zdecydowanie prostsze niż ogarnięcie programowania na poziomie zarobkowym.

Kursy programowania, czy administracji on-line to niestety plaga dzisiejszego internetu. Poziom tych stacjonarnych również jest różny. Bez mocnych rekomendacji od znajomych nie ma nawet co patrzeć na ofertę. Kiedyś subskrybowałem LinuxAcademy (i nie jest to reklama, ponieważ ktoś ich podkupił i marka niedługo zniknie). Poziom poszczególnych ścieżek był bardzo różny. Niektóre były naprawdę dobre, w stylu: dzisiaj nauczymy się Samby, więc w terminalu robisz tak… Inne to pokaz slajdów i ich monotonny opis, który nie dawał żadnych umiejętności.

Owszem: dostaje się certyfikat ukończenia, dostaje się podstawową wiedzę, ale zostaje się w próżni. Najlepszy kurs programowania to zakupienie serwera VPS, lub chmurowego ekwiwalentu, postawienie strony/aplikacji i jej rozwijanie. Niech to działa głupio, słabo, albo nawet wcale. Nic nie zastąpi tego uczucia, kiedy coś się zepsuło, backup ma zero bajtów, a ostatnia działająca wersja jest gdzieś na bitbucket dwa tygodnie temu, bo ostatnie commity rozmijają się z produkcją. Samo życie. Miłej zabawy!

Mając 48 lat jak najbardziej można przebranżowić się na programistę. Ponad 20 lat po ukończeniu studiów pracowałem w branży poligraficznej na różnych stanowiskach. Po decyzji o zmianie pracy poszedłem na studia podyplomowe Testowanie oprogramowania na UJ. Po ich ukończeniu na pierwszej rozmowie o pracę zaproponowano mi stanowisko programisty. Obecnie (od 3 lat) jestem programistą frontend (Angular, Typescript), backend (Java, Spring Boot). Codzienna nauka nowych technik programowania, rozwiązywanie kolejnych problemów, daje mi dużo zadowolenia i sprawia że decyzja o przebranżowieniu się była jak najbardziej właściwa.

Widzę, że autor debugował komputer w niemieckim autobusie gdzieś w zagłębiu Ruhry.

Jeśli ktoś rzuci kostką i wypadnie mu Python, to jest masa darmowych kursów. Część jest darmowa na stałe, część pojawia się okresowo. Nawet nie trzeba brać paru miesięcy wolnego, wystarczy wygospodarować godzinę czy dwie dziennie i poświęcać np. godzinę na kurs, godzinę na praktykę.

Oczywiście wymagany angielski, ale uważam – i tu się nie zgodzę z autorem – że bez znajomości angielskiego przynajmniej w stopniu biernym, umożliwiającym czytanie dokumentacji nie bardzo jest sens brać się za naukę programowania (sprawdzić, czy nie dziecko). Komentarze w kodzie, dokumentacja bibliotek – wszystko to jest po angielsku właśnie. Dodatkowo znajomość tego języka daje dostęp do masy zasobów. Jak dla mnie to podstawowa umiejętność w którą należy zainwestować chcąc programować. I nie, niekoniecznie kurs angielskiego. Chodzi tylko o czytanie ze zrozumieniem. Stosunkowo wąski zakres słownictwa, podstawy gramatyki.

Dlatego zgadzam się z autorem, że nie warto płacić za kursy programowania, szczególnie dużo i na początku.

Słynny Jan Bielecki kiedyś powiedział, że najważniejszym językiem programowania jest język angielski 😉

Chciałabym przebranżowić się i zacząć pracę w IT. Interesuje mnie Business Intelligence i Chmura. Zastanawiam się nad intensywnym kursem analizy danych ok. 200 h w ciągu niecałego miesiąca bądź studiami podyplomowymi z BI lub Cloud Computing (gdzie sumaryczna liczba godzin w ciągu roku będzie podobna).
Co byście polecali ? Od czego należałoby zacząć ?

Mam kłopot w zasadzie co napisać, i zgadzam się i nie zgadzam z twierdzeniem z artykułu. Zgadzam ponieważ sam byłem na 2 kursach MS #803 i #922 bardzo drogich jak na owe czasy i faktycznie nudziłem się i czekałem za grupą ponieważ miałem 3 miesiące obcowania ze systemem i dobrą (grubą) księgę do tego. Niestety księga nie wyjaśniała wszystkiego w zrozumiały sposób – osoba nie znająca danego zagadnienia może mimo wyjaśnień rozumieć sens nieco inaczej i jedno małe niedopowiedzenie może położyć cały proces nauki. Tak też miałem i nie ukrywam że na kursie zapytałem o te szczegóły lub też były praktycznie pokazane i mój proces uczenia poszedł gwałtownie w przód. Faktem jest że nie musiałbym tego pytania zadawać na płatnym kursie.
Ale proszę mi wierzyć na żadne z moich pytań zadanych w owych czasach na grupie pl.comp.windows.nt nie uzyskałem sensownej odpowiedzi. Na grupie trwały potyczki słowne, gnojenie nowicjuszy za banalne pytania (jak na elektrodzie) itp. Mój problem z profilami przeszedł bez echa aż kwestię którą zauważyłem w 1998r. rozwiązał Microsoft w Windows Vista bodajże i to też nie do końca. Chodziło o pliki w profilu które są synchronizowane na serwer – np zupełnie niepotrzebnie wgrywały się pliki TMP Internet Explorera, poczta dbx o wielkości gigabajtów powodowała że komputery wyłączały się po 10min….

Wracając do szkoleń w opcji na TAK jest to że ucząc się samemu możemy wybrać niewłaściwe źródło informacji bo nie znając tematu skąd mamy wiedzieć które jest właściwe i wyrobić sobie nawyk nieprawidłowego pisania programów. Nie na darmo wszędzie słychać narzekania na programistów korzystających z wiedzy StackExchange…

Podsumowując powinniśmy pójść na kurs. Niestety nie wiem na jaki i gdzie. Kurs powinien być miarę tani/przystępny i przede wszystkim uczyć podstaw programowania które obowiązują w większości jak nie we wszystkich językach. Jak robić, czego nie robić, jak pisać kod, komentarze, jakie są najczęstsze błędy. To jest wiedza bezcenna której możemy nie znaleźć w specjalistycznych poradnikach skupiających się na konkretach. A dobrze wiemy że każdy z nas chciałby jak najszybciej przejść do sedna i do spraw zaawansowanych na które mamy w danym momencie pomysł pomijając przecież „w ogóle niepotrzebne” podstawy…
Mam kolegę który prowadzi szkolenia z pewnej dziedziny sportowej i określa takich ludzi mianem tych którzy „umieją biegać a nie umieją chodzić” Chodzi o to ze są osoby które pozornie dobrze radzą sobie na zaawansowanym poziomie, mogą się wydawać profesjonalistami dla laików. W rzeczywistości wzbudzają uśmiech politowania na twarzach tych co wiedzą o co chodzi lub też poświęcają 10x więcej czasu niż powinni na dany problem. Ci którzy się ocknęli i zauważyli że coś jest nie tak przychodzą na kursy do Niego i odkrywają koło na nowo nie wierząc jakie to proste i że latami robili to źle. Gorsi są Ci co uważają się za speców a w branży programistycznej sami wiecie do jakich fakapów może to doprowadzić jeśli projekt będzie na szczeblu państwowym…. Mało to razy czytaliśmy o tym na Niebezpieczniku?

Wypowiadam się jako samouk, nie tylko bez wykształcenia technicznego, ale z duża przerwą od „matmy”, któremu udało się wejść do branży i jak na razie zostać 🙂
Programowanie od zera dla nietechnicznej osoby to totalna abstrakcja („ale jaka funkcja, jakie parametry, iteracja, ale że co?”). Programowanie od zera dla „humanisty” (czyt. osoba, która używa tego określenia mając na myśli, że unikała przedmiotów ścisłych bo wymagały abstrakcyjnego myślenia i wysiłku) wg mnie niewykonalne, nie ma sensu, nie da się. Kursy programowania za 10k nie mają sensu, żadnego.
Osoba, która ciekawi temat, po godzinach, w rok przygotuje się do pierwszej pracy. Za darmo, może ewentualnie kupić kursy wprowadzające do jakiejś technologii za kilkadziesiąt złotych, albo pójść na kilka korepetycji, gdy będzie wiedziała z czym ma problem. Piszę, że kursy nie mają sensu, bo znam osoby po kursach (stracone pieniądze), rekrutuję osoby po kursach ( takich za 10k, 12k). Mają fajne CV, całkiem ładne portfolio, tylko wszystko to tutoriale i zadania z kursów. Nie znają podstaw HTML (!), semantyki, nie potrafią zwalidować kodu, przetestować czy strona jest responsywna (!), kompletnie nie rozumieją środowiska, w którym piszą, struktury folderów, nie potrafią podpiąć biblioteki jeśli dokładnie takiej samej nie podpinali na kursie. I mówimy o froncie, czyli najniższym progu wejścia. Te osoby przed bootcampem nie robiły niczego samodzielnie. Na kursie dopiero zaczęły. O zgrozo, bez znajomości js lub gdy ta znajomość pozwala tylko np. złapać element, kończą kurs front end react albo fullstack developer (!). Jest mi bardzo, bardzo, ale to bardzo żal osób po bootcampach, nie chce nikogo odrzucać na rekrutacji „bo bootcamp”, ale na ok 20 osób którym daliśmy szansę, żadna nawet na darmowe praktyki się nie nadaje. Żadna.

Od ponad roku ucze się C# i podpisuje sie pod tekstem. Po ponad roku widze ile jeszcze trzeba się nauczyć. Między bajki należy włozyć naukę w pół roku(nauka w tydz,miesiąc to zwykłe klamstwo). Popełnilem masę błędów i wiele razy zderzalem się ze scianą. Jeżeli ktos chce zmienic pracę na IT tylko z powodu zarobków to na 90% nie da rady. Wiele razy słyszalem,że najlepsza nauka jest programować,pisać,tworzyć aplikacje…swieta prawda.

Nie mam tak spektakularnych osiągnięć jak autor bloga (pozdrawiam), ale jednak jestem tym programistą od prawie 30 lat i coś tam w życiu widziałem. Więc podzielę się paroma luźnymi myślami.

Przede wszystkim, trochę mi brakuje jasnego stwierdzenia (albo je przeoczyłem), że:
„znajomość języka programowania” != „umiejętność programowania”

Język to tylko narzędzie. Można świetnie wbijać gwoździe młotkiem, znakomicie radzić sobie z piłą i elektronarzędziami, ale czy to wystarczy, żeby wybudować drewniany dom? Może tak, przy odrobinie szczęścia, a może dom się rozsypie jeszcze na etapie budowy albo krótko potem? Bo do budowy domu potrzebna jest jeszcze znajomość różnych rodzajów konstrukcji (wzorce projektowe 🙂 ), specyfiki materiałów, czasami dobrze też coś policzyć albo przynajmniej mieć pojęcie, jaki w danej konstrukcji będzie rozkład sił. I potem jest zdziwienie, bo przecież szafki w kuchni mi tak dobrze wychodziły, to dlaczego dom nie wychodzi?

Tymczasem sporo kursów programowania skupia się jedynie na narzędziu. Oczywiście, reszty się też można samemu nauczyć, tylko najpierw trzeba wiedzieć, że czegoś się nie umie, a z tym może być problem przy najlepszych chęciach.

Znałem gościa, który uznał że świetnym pomysłem jest użycie floatów do obliczeń księgowych, bo „przecież komputer musi liczyć poprawnie”. Rozmaite algorytmy o wykładniczym koszcie też zdarzało mi się widzieć. Oczywiście na testach śmigało, bo testowy plik miał 10 rekordów, a produkcyjny 50 tysięcy. Przecież jak 10 rekordów się przetwarza w sekundę, to 50 tys „powinno” pójść poniżej dwóch godzin, co nie? :P. I jak to, dlaczego kręci się już drugi dzień i nie chce przestać? Pewnie baza za słaba albo dajmy więcej procka… (sarkazm)

Warto mieć też jakieś pojęcie na temat rozmaitych typów podatności i tego w jaki sposób się je wprowadza w kodzie i jak tego nie robić. O sql-injection to kurs programowania przy okazji omawiania baz danych nawet czasem się zająknie, a o całej reszcie? Widziałem produkcyjny kod który robił eval podczas importu danych z pliku. Plik dostarczany był przez zewnętrzną firmę. No można i tak… 😛

Spotkałem się też z systemem, który miał „XSS by design”, przy czym miałem duży problem z wyjaśnieniem autorowi, o co chodzi, bo mój przykład z alert(123) w danych został skwitowany stwierdzeniem „to się komuś wyświetli alert, wielkie rzeczy…”.

Więc warto sobie na ten temat poczytać, jest dużo materiałów w sieci, można wyjść od OWASP i potem sobie rozwijać wiedzę na temat różnych typów podatności. Oczywiście w zależności od języka i środowiska, osoby piszącej apkę webową w Pythonie nie obchodzą buffer overflow, nie jego sprawa i nie ma na te podatności żadnego wpływu. Polecam też lekturę Sekuraka.

Piszę to po to, żeby osoby deklarujące chęć nauczenia się programowania zdawały sobie sprawę, że biegłe opanowanie języka to dopiero początek drogi. A i tak można się nadziać na minę, o istnieniu której się nie miało pojęcia.

Ciekawe np. ilu programistów, którzy nie kończyli studiów informatycznych, spotkało się z pojęciem stabilności numerycznej? Można powiedzieć – to nisza, w 99.9% typowych przypadków ta wiedza nie jest do niczego potrzebna. Prawda. Mi nie była potrzebna przez 30 lat :P. Ale jednak warto wiedzieć, że coś takiego jest. Choćby po to, żeby nie próbować wymyślać koła tylko sięgnąć po gotowe, sprawdzone i przetestowane algorytmy. BTW – szkolny algorytm liczenia miejsc zerowych „z deltą” o ile pamiętam nie jest stabilny numerycznie… a pojawia się czasami w przykładach.

Jakość kursów dostępnych w sieci jest bardzo różna, a osoba która dopiero zaczyna, nie ma absolutnie żadnych możliwości oceny, czy kurs jest rzetelny czy nie. Z moich subiektywnych obserwacji wynika (a przynajmniej tak było parę lat temu, nie śledzę tematu w sumie) że najgorsze pod tym względem bywały kursy PHP. Zdarzały się przykłady kodu insecure by design. Potem ktoś, nauczony na takim kodzie, będzie z tego lepił produkcyjne rozwiązanie. Kursy Pythona czy Javy na ogół był dużo lepsze jakościowo. Oczywiście to co piszę to jakieś tam subiektywne wrażenie, nie czytałem przecież wszystkich.

Ze swojej strony, wszystkim uczącym się Pythona polecałem kiedyś pozycję „Dive into Python”, która cały czas była rozwijana wraz z rozwojem języka. Nie wiem jaki jest jej status obecnie, ale myślę, że dalej może być to pozycja warta polecenia. W każdym razie nie przypominam sobie błędów merytorycznych.

Czuję się wywołany do tablicy.
Jestem tym, może nie białym, ale podsiwiałym krukiem, który będąc 40+ próbuje się przebranżowić. Nie muszę rzucać kostką, wybrałem już wcześniej pythona, w drugiej kolejności byłby c# 😉
Mój przyjaciel z branży już kilka razy namawiał mnie bym próbował. Paradoksalnie być może mam predyspozycje by się odnaleźć może niekoniecznie jako programista, ale może tester albo analityk albo coś jeszcze około. Bardziej martwią mnie „kompetencje miękkie”, przez co rozumiem m.in. pracowitość i sumienność, bo z tym bywa różnie.
No ale próbujemy. Ogromnie motywują mnie sytuacje, gdy zdobyta wiedza jest od razu wykorzystana i daje widoczny efekt, (takie perełki nieczęsto) uczenie się dla uczenia szybko mnie zniechęca. Ale jak mawiał pewien doktor, „Nie ma co się obrażać na rzeczywistość”, to życie, a nie koncert życzeń. Trzeba przysiąść na optymistycznie rok, a realnie 2 lata albo i więcej.
Po części rozumiem dlaczego takie wysoko płatne kursy mogą być atrakcyjne, to trochę jak zapisanie się na studia, czesne kosztowne więc trzeba się uczyć by nie przepadło, jest rytm i rygor.
Ale doskonale czuję wydźwięk komentarzy, w tej branży podstawą jest samokształcenie?, skoro tego nie potrafisz to nie warto próbować?
Padło tu wiele przydatnych uwag, linków, dziękuję za nie 😉
Z mojej strony chciałbym wspomnieć o Udemy, (o innych platformach też, ale tylko tę znam z praktyki!) mam tam wykupiony kurs, dopiero zaczynam, ale już uważam, że było warto. Mają co chwila promocje, kupiłem popularny i wysoko oceniany za okolo 50-60 pln, platforma jest bardzo sprawna, kurs jest długi, wiele materiału, na spokojnie 2-3 mce nauki wieczorami. Są ćwiczenia (wolałbym więcej ale zobaczymy jak dalej), a pod każdą lekcją dyskusja w której wypowiadają się mentorzy. Myślę, że to świetna alternatywa dla drogich kursów, najpierw spróbuj czegoś takiego (niekoniecznie tutaj) a dopiero potem odpowiedz sobie na pytanie czego tu brakuje, a co da ci drogi kurs. Jest to reklama, jak najbardziej, ale z pozycji konsumenta który trafił na dobry produkt 😉
W mega najgorszym wypadku mam ćwiczenia angielskiego ze sluchu!

Hej. Czy polecicie jakieś 2-3 książki (niegrube jak pisał autor posta) do Pythona? Konkretnych autorów. Z góry dzięki za pomoc

po skonczeniu darmowego kursu podstaw javy i to solidnych podstaw, nie potrafilbym zrobic czegos takiego jak twoj wymieniony tetris. przeciez tam nawet nie bylo mowy o jakiejkolwiek „probie grafiki” w konsoli. kolko krzyzyk sie udalo ale to nie byla dynamiczna gra, ale 2048 juz nie potrafilem napisac ;/ a chcialbym jakies pinbala ehh

mgr inż. budownictwa, szukam zmian – znajoma namawia mnie żeby spróbować w IT (sama jest w tej branży), pytanie – czy możecie polecić miejsce, kurs na którym można rzetelnie sprawdzić swoje predyspozycje w jakim kierunku iść w tej branży? Jest coś takiego? Czytam i czytam.. Zaczynam od totalnego.. „0”…

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.