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ą.
Dopisano dwa lata później: jeśli chcesz sprawdzić, ile czasu zajęło mi napisanie własnego Tetrisa, zajrzyj do artykułu „Napisz własnego Tetrixa”. Pisałem grę w języku C# i jednocześnie relacjonowałem postępy w social mediach, opisując kolejne etapy i publikując screenshoty oraz animacje. Potem powstała z tego osobna blogonotka.
Jeśli po lekturze „Tetrixa” uznasz, że temat jest spalony, na końcu tekstu znajdziesz pomysły na Samotnixa oraz Warcabixa. Daj znać, jeśli zrealizujesz któryś z pomysłów!
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.
60 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.
Podpisuję się pod tym komentarzem.
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.
W punkt! Samodzielna nauka nie zawsze się sprawdza. Ciekawym rozwiązaniem według mnie są kursy Future Collars: nauka online i konsultacje z mentorem + możliwość samodzielnej nauki na platformie https://futurecollars.com/pl/
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 🙂
Totalnie nieudana reklama
jakby mnie było stać 12 tys na kurs i nie miałbym rodziny która trzeba utrzymać i codziennie pracować po 10-12 godz żeby było za co rachunki zapłacić i jakoś żyć to może i bym się skusił na taki kurs. w przeciwnym razie po prostu mnie na to nie stać. zwykły Kowalski jak ma odłożone 10 tys nie wydaje go na jakiś kurs bo to jest jego poduszka finansowa gdyby np dziecko się rozchorowało, awaria w domu/aucie, podwyżki rachunkow
Tomek, jestem doświadczonym programistą i niestety robienie projektu poza pracą jest praktycznie niemożliwe. Mając rodzinę, dzieci i hobby nie mam po prostu czasu na dodatkowe projekty. Jedyne wyjście to praca w takiej firmie, w której będą bardziej doświadczone osoby ode mnie. Okazuje się, że takich firm jest mało i trudno się do nich dostać, bo sami oczekują że będziesz już na tym poziomie. Dlatego taki mentoring byłby przydatny dla seniorów którzy chcą się dalej rozwijać. Chciałbym aby to nie był marketingowy bullshit… 🙂
Artykuł jest skierowany do początkujących. Jeśli jesteś doświadczonym programistą, to możesz dużo skorzystać na szkoleniach z wąskich specjalizacji. Głównie zresztą po to, aby dowiedzieć się, dlaczego nie warto czegoś robić w dany sposób.
Proszę o usunięcie linku i wymoderowanie nazwy kursu. Nielegalnej reklamie mówimy nie.
Jestem zmieszany widząc reklamy, ale zastanawiam się, czy kurs nie jest idealną opcją dla osób, które zatrzymały się podczas nauki. 20 lat temu rozpocząłem swoją przygodę z projektami mając 14 lat. Wówczas stworzyłem stronę z darmowym globalnym telefonem, która dawała mi kieszonkowe. Z duchem czasu robiłem tekstury do gier 2D, później 3D. Zrezygnowałem, ponieważ za każdym razem chcąc usprawnić moje prace stawałem w miejscu na dość długi czas jednocześnie ograniczając życie osobiste jak i rozwój. Dzisiaj żałuję, że nie zapisałem się na żaden kurs. Po mału wracam do pasji, ale tym razem nie będę słuchał się ludzi niemających pojęcia o czasie, który straciłem. Trzeba znaleźć odpowiedniego mentora i to jest największy problem. Nie zniechęcajcie ludzi do nauki pisząc w stylu „na gicie czy youtube wszystko znajdziesz, wystarczą chęci”. Zgadzam się jedynie ze zdaniem tych co piszą, że pierwszy krok zależy od nas. Niektórzy komentujący nie osiągneli nawet 1/100000000 co facebook, a wymądrzają się jakby stworzyli świat. Rozumiem, że martwicie się o własne ciepłe stołki, ale jeszcze raz proszę, nie zniechęcajcie ludzi. Jeśli ktoś zna mentora z ogromną codzienną wiedzą, wieloma zadaniami oraz uprawnień do wydawania certyfikatów, proszę się podzielić. Na taki kurs warto wydać nawet 100 tys zł jeśli ma poprowadzić Twoją drogę, ot co. Pozdrawiam
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!
Heh, dokładnie tak robiłem na darmowym okresie próbnym G****a 🙂
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.
I jak sytuacja dziś? Nadal programujesz?
Widzę, że autor debugował komputer w niemieckim autobusie gdzieś w zagłębiu Ruhry.
Chybiony OSInt, milordzie. Zgadza się jedynie państwo.
Komputer to akurat był polski, z Bydgoszczy ;).
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 😉
A nie hinduski? 😀
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.
Jest ogrom darmowych materiałów na YT dla programistów 🙂
Bardzo dziękuję. Wpis uchronił mnie przed głupotą jaką jest bootcamp fc. Zabieram się za naukę po pracy. Dam znać za rok, może zmotywuję kogoś jako babetka.
To ja też zaczynam.
PS. aha wypadło na Pythona 🙂
okejjjjj lets gooo
i jak po roku?
I jakie wrażenia po roku? Możesz coś więcej napisać?
Witam wszystkich, jestem właśnie na etapie gdzie próbują mi wcisnąć kurs .
Teraz mam jasność, że można, podejść do tematu inaczej.
Chcę się rozwijać, nie stać w miejscu.
Zdobywać wiedzę, Dzięki waszym informacją,zdaję sobie sprawę, jak bardzo manipulują ludzmi.
Wkoncu im za to placą .
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.
O stabilność numeryczną rozbiłem się kiedyś. Nie studiowałem informatyki, nie jestem programistą, choć zdarzyło mi się coś małego napisać dla przemysłu.
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!
Dzięki są wpis, dowcipny, a zarazem konkretny 🙂
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”…
I w jakim kierunku poszłaś jeśli można wiedzieć? Ja ta sama branża wyjsciowa i podobne rozterki 😉 pozdrawiam!
Czytam te komentarze i trochę załamuję ręce. Programista to osoba, która powinna być odrobinę samodzielna. A tutaj pytania – od czego mam zacząć, pokierujcie mnie… Moim zdaniem, żeby trochę to wszystko ogarnąć, tak jak było w moim przypadku, musisz zacząć od samodzielności. Na początku zainteresowanie administrowaniem, jak to działa, jak postawić system dla moich potrzeb. Później wpadłem na myśl, że do tego co postawiłem, chce napisać proste skrypty… Czyli wiedziałem co moje skrypty mają robić – więc zaczynam od książki która mi objaśnia tematykę. Tak przerobiłem całe C. Gdy już umiałem pisać swoje skrypty na potrzeby działania systemu, poszedłem dalej, serwisy, mini programy, większe programy, html – ale chciałem wprowadzić dynamiczne treści, więc wiedziałem czego potrzebuję. Bazy danych, żeby gdzieś przechowywać te informacje, itd, itd. Wszystko miało zalążek z potrzeby…. napisania czegoś na mój użytek. W między czasie studia na informatyce. Jeśli chcesz zostać mechanikiem, to nie pytasz od czego zacząć, tylko samemu naprawiasz swój motor i szukasz rozwiązań jak to zrobić. Jeśli nie będziesz tak postępować, to będą umykały Tobie ważne rzeczy, a wiedza będzie poszatkowana, będziesz klepać coś na już i teraz, bez ogólnej wiedzy o kontekście. Prosty przykład, używając ORM i pisząc w nim zapytania, dobry programista bez patrzenia w głąb będzie wiedział jak to zapytanie będzie wyglądało na bazie danych, a jeszcze lepszy będzie wiedział jak przestawić pewne elementy, by to zapytanie było wydajniejsze – bo będzie wiedział jak działają bebechy bazy, taki prosty przykład z życia:)
A ja zapytam tak z ciekawości czy na dzień dzisiejszy ten artykuł jest nadal tak samo aktualny >
Tak. Nic się tu nie zmieniło i nie zanosi się, aby taka zmiana miała nastąpić.
Zadatki na programistę można w sobie zweryfikować za darmo, tzn. po kosztach utrzymania.
no to zdemotywowany większością komentarzy pozostaje się męczyć w aktualnym zawodzie aż do renty inwalidzkiej (emerytury już raczej nie dożyje)
Mam dokładnie tak samo.
Przeczytałem sporą cześć komentarzy i większość
Na początek: Ludzie są bardzo różni – Mają różne potrzeby by coś zrobić.
Niektórzy potrzebują struktury szkolenia/kursu by zdobyć kompetencje. Niektórzy potrzebują porównania, sprawdzenia siebie – czy wiedza, którą już posiadają jest wystarczająca do podjęcia kolejnych kroków.
lub potrzebują potwierdzenia swoich kompetencji u autorytetu (nauczyciel, mentor, senior)
Można również powiedzieć (nieco sarkastycznie) że pomimo tak złych opinii kursy pozwalają trafić do IT osobom, które bez nich nie trafiły by tutaj. 🙂
Myślę o przebranżowieniu. Ale rozumiem niektóre komentarze zniechęcające. W mojej obecnej branży robimy tak samo, gdyż próg wejścia nie jest zbyt wysoki, i nikt nie chce aby rynek się zepsuł. Nikt nie chce konkurencji, bo każdy ma świadomość, że im więcej ludzi w branży tym mniejsze stawki itp. Nie znam rynku IT, dlatego trochę dziwi mnie, że pracodawcy nie stosują żadnych technik aby zaniżyć oczekiwania płacowe, ale to może dlatego, że to rynek globalny i możliwa jest praca zdalna. Uważam, że Programista i tak ma o wiele niższy próg wejścia, niż np. architekt, prawnik, lekarz, czy branża finansowa, czy też np. fotograf, gdzie tylko niewielki procent może liczyć na takie pieniądze jak Programiści. No chyba, że te historie o zarobkach 20k to bajki, poziom osiągalny dla nielicznych.
Rynek się zespuł, ale właśnie dla przebranżawiających się. Po prostu dostsosowały się oczekiwania i przesunęła poprzeczka wyzej. Konkurencji niesamodzielnych ludzi bez podstaw nikt się nie boi.
Ja od siebie dodam, żeby uważać na kursy z gwarancją pracy, które zazwyczaj oferują jedynie przedstawienie ofert pracy (to samo co możecie sobie znaleźć w popularnych serwisach), a jak nie dostaniesz pracy to i tak cała lub duża część nakładów idzie papa. Nie znalazłem kursu, który w regulaminie przewidywałby gwarancję zatrudnienia na np. 12 miesięcy albo całkowity zwrot kosztów.
Ucze sie angielskiego od 30 lat , mieszkam w UK od 13 lat, swobodnie komunikuje sie w tym jezyku. Z mojego spostrzezenia wynika, ze wiele kursow jezykowych z ktorymi sie spotkalem, zupelnie nie oddaje skomplikowania tego jezyka.
Obawiam sie, ze podobnie moze byc z kursami programowania…
Jestem osobą, ktora uwielbia grzebać w oprogramowaniu Android,wszelkie usterki w w każdym sprzęcie jaki posiadamy w domu jako jedyna z determinacją drążę do skutku zeby dojść gdziej est problem. Ekranow jest coraz wiecej ,aktualizacja polelega na większości wpisu w ustawieniach, zdania które wcześniej brzmiało prościej, a potem dodano 2 slowa wiecej,zeby zapłacili wiecej 😀
Rzeczywistość . . .
Dziękuję, że dotarłam do pytań i odpowiedzi, jaki są dzieki wam wszystkim udostępnione.
Spokojnego wieczoru .
Całkowita strata pieniędzy i nerwów. Ja byłem na kursie analityka Rektor organizowanym przez PWN. Straciłem 8 tys. Wszystkiego się i tak musieliśmy uczyć sami łącznie z szukaniem materiałów. Jeszcze przychodził kurdupelek Marcinek i jakieś fochy pokazywał jak się go o coś zapytałeś. PWN zrezygnował z tych kursów bo chyba nie chcieli psuć sobie opinii.
Generalnie, jeśli sam nie będziesz tego chciał, to ch..a się nauczysz – prosta maksyma, piszę to w 2023 roku czerwiec, rzygać mi się chce od tych reklam bedziesz hakerem, cybersecurity, programistą w kilka miesięcy ,ludzie ja się sieci komputerowych uczyłem latami, o czym tutaj mowa. wybijcie sobie to z głowy, że po kilku miesiącach napiszecie Montezuma’s.
Czemu po prostu nie powie się wprost ludziom, że zawód programisty wymaga przede wszystkim ponad przeciętnej inteligencji.
Może boleśniej, ale przynajmniej krócej i konkretniej 😀
Nie wymaga. Bycie spawaczem podwodnym też nie wymaga. Nie mylmy zdolności i predyspozycji z inteligencją.
Trafiłam na tą stronę, szukając informacji czy te wszystkie reklamowane kursy IT mogą mieć szansę powodzenia w realnym świecie. Czar prysł, chociaż nie powiem że od początku nie wydawało się to za piękne, aby było możliwe. Wyszukałam sobie kurs UI/UX design. Może to zupełnie inna kategoria o czym się tutaj rozprawia, ale jednak pokuszę się o pytanie, czy czegoś takiego też poleciłbys spróbować uczyć się samemu, czy odpuścić te mrzonki?
Jeśli ktoś myśli o programowaniu i jest dopiero na początku to polecam zacząć od HTML. Dlaczego?
Jest prosty i szybko widać efekty – w postaci budowania strony internetowej. Można się nauczyć czystości kodu itd.
Nie jestem programistą a tylko trochę liznąłem tematu 😉
No to pytanie czy jest sens się uczyć html i css skoro jest WordPress…