Uwaga! Trwają prace nad nową wersją serwisu. Mogą występować przejściowe problemy z jego funkcjonowaniem. Przepraszam za niedogodności!

🏆 Lubisz podcast Pierwsze kroki w IT? Oddaj swój głos w rankingu: TOP 10 polskich podcastów o IT! 🏆

Jak wygląda nauka programowania?

Od zera do bohatera!

Daniel Noworyta opowiada o swoich doświadczeniach z nauką programowania. Ile czasu na nią poświęca, jak długo już to robi, czego w tym czasie się nauczył. Przekazuje mnóstwo istotnych informacji dla osób, które chcą przejść tę samą ścieżkę co on. Jeśli zamierzasz zostać programistą, to jest to pozycja obowiązkowa. Znajdziesz w tym nagraniu dużo dobrych rad.

Poruszane tematy

  • Czy mógłbyś się przedstawić i opowiedzieć o swoich początkach w świecie IT?
  • Czym obecnie zajmujesz się na co dzień?
  • Dlaczego postanowiłeś się zająć programowaniem?
  • Czy Twoim zdaniem środowisko (znajomi/rodzina) mają duży wpływ na taką decyzję?
  • Czy Twoim zdaniem każdy może nauczyć się programowania?
  • Jaki język programowania wybrałeś i dlaczego?
  • Jak znajdujesz czas na programowanie pracując na etacie i spędzając czas z rodziną?
  • Ile czasu poświęcasz na programowanie w tygodniu i ile już trwa Twoja nauka?
  • Jakie zagadnienia przerobiłeś do tej pory? Czego się nauczyłeś? Na co poświęciłeś najwięcej czasu?
  • Z jakich materiałów korzystałeś do tej pory i co w Twoim przypadku najlepiej się sprawdza?
  • Co sprawiało Ci największe problemy i jak sobie z nimi poradziłeś?
  • Czy podczas nauki pojawił się kryzys? Jak sobie z nim poradziłeś?
  • Czy w Twojej opinii mógłbyś usprawnić jakoś swój proces nauki patrząc przez pryzmat ostatnich dwóch lat?
  • Jakie rady masz dla osób, które chcą rozpocząć naukę programowania?
  • Jaka pozytywna i negatywna sytuacja zapadła Ci w pamięć związana z nauką programowania?
  • Jaką Twoim zdaniem książkę powinien przeczytać każdy kto chce nauczyć się programowania i dlaczego?
  • Gdzie możemy Cię znaleźć w sieci?

Druga polecana książka

Transkrypcja

Dziś mój gość Daniel Noworyta będzie opowiadał o własnych doświadczeniach z nauką programowania. Danielu, dziękuję, że przyjąłeś moje zaproszenie na rozmowę.

To ja bardzo dziękuję za zaproszenie. Jest to dla mnie zaszczyt.

Bardzo mi miło to słyszeć.

Szczególnie na początku mojej drogi.

 

To w takim razie może przedstawiłbyś się nam i opowiedział o swoich początkach w świecie IT.

Cześć wszystkim. Witajcie, słuchacze. Jestem Daniel. Mam trzydzieści cztery lata i uczę się programować od dwóch lat. Początki mojego programowania tak naprawdę sięgają czasów, kiedy miałem szesnaście-siedemnaście lat. Pierwsze doświadczenia z Adobe Flashem, z PHP… Biblia MySQL i PHP gdzieś tam ciągle leży u moich rodziców na półce.

Tak czas mijał, ale stale życie oddalało ode mnie tę decyzję. Jakieś dwa lata temu, krótko po narodzinach mojego syna, zdecydowałem o tym, by zacząć na poważnie uczyć się programować i próbować zmienić swoją branżę i pracę na IT.

To w takim razie: czym obecnie się zajmujesz? Jak wygląda Twój dzień?

Obecnie jestem tatą dwuipółletniego syna, mężem i inżynierem w przemyśle samochodowym. Tworzę tak zwane modele powierzchni klasy A, czyli jestem takim łącznikiem pomiędzy designem i działem inżynieryjnym w samochodzie. Prostymi słowami: dostaję rysunki koncepcyjne od designerów i wszystko to, co ma znajdować się pod daną częścią. Ja mam to wszystko zamodelować w taki sposób, by było w ładnej formie, przystępnej dla oka, prosto mówiąc: wszystko to, z czym ludzie w samochodzie mają kontakt swoją skórą, czyli exterior-interior.

Modele wychodzą spod mojej ręki i są potem używane do produkcji czy też do tworzenia reklam. Nie wiem, czy wiecie, ale w reklamach w telewizji samochody to nie są zawsze fizyczne modele. To bardzo często są rendery komputerowe.

Czy chciałbyś nam zdradzić, jakimi modelami się zajmowałeś, czy nie możesz?

Tak, mogę. Pracowałam między innymi dla Volvo. Teraz jest taki start-up amerykański Rivian. Robiłem ich pierwszy samochód, który teraz będzie wychodził na rynek. Jak wpiszecie Rivian w Google, to znajdziecie modele tej marki. Pracowałem dla Porsche, dla Volkswagena. Dwa lata, tak jak mówiłem, siedziałem w Göteborgu w Volvo. Robiłem V90, V60… Tak że nowe modele, z tymi lampami w tym kształcie T, są bardzo fajne. Polecam słuchaczom sprawdzić.

 

Powiem Ci, że bardzo ciekawie to brzmi. Tym bardziej jestem zaintrygowany, dlaczego postanowiłeś zająć się programowaniem.

Oj, to długa historia. Programowanie tak naprawdę ciągle siedziało w mojej głowie, w moim serduchu, bo – tak jak już wspominałem – od najmłodszych lat próbowałem budować coś swojego, dłubać w kodzie. Kiedyś, jak popularna była technologia Adobe Flash, myślałem, że się w niej wyspecjalizuję i będę mistrzem animacji komputerowej. Kiedyś było modne, żeby na stronie wyskakiwały pop-upy, wszystko działo się automatycznie, było dużo interakcji. Jak wiemy, technologia Adobe Flash nie wytrzymała próby czasu i została odsunięta przez inne języki.

Dlaczego programowanie? Myślę, że wizja stworzenia czegoś od podstaw i wizja stworzenia rozwiązania jakiegoś problemu jest tym, co cały czas w nauce programowania pcha mnie do przodu. Nie ukrywam, że mam w sobie troszkę duszę biznesmena i chciałbym kiedyś stworzyć swój start-up. Poza tym: kto tak naprawdę nie chciałby zostać następnym Stevem Jobsem czy Elonem Muskiem? Tak że jest to też jedna z rzeczy, które cały czas pchają mnie do przodu i pozwalają mi codziennie stawiać kroki, stawiać czoła nowym wyzwaniom.

 

A był taki jeden element, który Cię skłonił, żeby właśnie teraz zacząć naukę programowania? Dlaczego zacząłeś ją akurat te dwa lata temu?

To nie był jeden moment. Powiedziałbym, że to był bardziej splot pewnych wydarzeń, które pokazały mi, że ważne jest, żeby robić w życiu to, co się kocha. Ważne, żeby być szczęśliwym w pracy, jeżeli ma się wykonywać tę pracę. Narodziny mojego syna były takim momentem – wtedy bardzo dużo czytałem o psychologii, o byciu rodzicem, o tym, jak znaleźć swoje szczęście. To był taki przełomowy moment w moim życiu, w którym stwierdziłem: Kurczę, kiedy jak nie teraz? Jeszcze jesteś dosyć młodym człowiekiem. Masz 34 lata. Spróbuj tego, bo cały czas to w Tobie siedzi. Cały czas masz w sobie pasję, która każe Ci coś w tym kierunku robić. Intensywnie podszedłem do tematu i od dwóch lat dosyć intensywnie uczę się programować.

To nie był jeden konkretny moment. Myślę, że to był zlepek całego mojego życia, bo to programowanie było ze mną cały czas. Pamiętam, jak jeszcze przed studiami wyjechałem na roczne wakacje do Anglii, gdzie pracowałem w fabryce orchidei do marketów. Musieliśmy przez osiem godzin wtykać patyczki do doniczek – po dwa patyczki w każdej doniczce. Pamiętam, że jak wychodziłem z tej fabryki i zamykałem oczy, to miałem takie mroczki przed oczami w kształcie kresek-patyczków, które wtykałem przez cały dzień. Już wtedy powiedziałem sobie, że ja nie mogę tak pracować.

I już wtedy, nie wiedząc tak naprawdę nic o designie, o web developmencie, zahaczyłem się w jednej z sieci restauracji jako junior i robiłem projekty w Photoshopie do menu oraz komponenty do strony internetowej. Jeszcze kiedyś strony internetowe robiło się w taki sposób, że tworzyło się layouty w Photoshopie. Później cięło się je w HTML-u, w CSS-ie i wstawiało na serwer. Tak że już wtedy robiłem takie rzeczy, nie mając żadnego doświadczenia, nie ucząc się tego.

Chodziło to za mną przez cały czas, przez moją szkołę średnią, kiedy robiłem dla siebie proste rzeczy, proste strony internetowe, a później gdy udało mi się znaleźć pracę w Anglii. Była to praca na czarno, dlatego też postanowiłem wrócić do kraju, skończyć jakieś studia. Brat mnie namówił – skończyłem studia z mechaniki budowy maszyn.

Zaraz po studiach nie miałem nawet czasu poszukać pracy, bo praca znalazła mnie sama. Wyjechałem do Niemiec. Tutaj zacząłem pracować w branży samochodowej. Fajna posada, fajne zarobki, fajne kontakty, fajni ludzie i zwiedzone kraje, ale gdzieś tam cały czas z tyłu – nawet na delegacjach i będąc już żonatym – cały czas gdzieś tam siedziałem i dłubałem w kodzie. Cały czas to za mną chodziło. Dlatego myślę, że to jest coś, co mnie woła przez całe życie i cały czas będzie wołało. Dlatego też zacząłem to robić na poważnie.

 

Jak tak opowiadasz, to zastanawiam się, czy środowisko – czyli znajomi, rodzina – mają wpływ na taką decyzję. Czy są w stanie Cię namówić albo wręcz odwrotnie – powiedzieć: słuchaj, nie rób tego, bo się nie nadajesz, bo masz na przykład ciepłą posadkę. Jak byś to ocenił?

Myślę, że każdy z nas jest inny i ciężko tak jednoznacznie odpowiedzieć na to pytanie. Jasne, że jakiś tam wpływ rodzina, znajomi pewnie na nas mają. Natomiast dużo większy wpływ na tę decyzję ma to, co my sami czujemy w środku i co nas samych pcha do przodu. Pewnie, fajnie jest mieć wśród znajomych kogoś, kto programuje, kto może nas troszeczkę popchać w tym kierunku. Tutaj serdecznie, jeżeli mogę, pozdrowię mojego przyjaciela Kamila z X-Teamu. Dzięki, Kamil, za to, co dla mnie robisz, bo na mojej drodze dużo mi pomagasz.

Myślę, że bardzo fajnie jest mieć kogoś, kto może nam pomóc. Myślę, że są osoby, które bez mentorów nie będą w stanie przejść pewnych rzeczy, i są osoby, które dobrze uczą się z materiału wideo. Są osoby, które dobrze się uczą, czytając. Osobom, którym mentor jest niezbędny, środowisko, znajomi będą może potrzebni do tego, żeby przejść pewne rzeczy podczas nauki programowania. Natomiast czy środowisko sprawi, że zechcemy uczyć się programować? Myślę, że nie. Myślę, że to musi wychodzić od nas samych, że to musi być nasza wewnętrzna decyzja i tylko wtedy ma to szansę na jakikolwiek sukces.

Moje pytanie miało też drugą stronę – często się spotykam z tym, że osoby chcą programować, ale ktoś im powie: słuchaj, Ty byłeś słaby z matematyki i sobie nie poradzisz albo jesteś w całkiem innym miejscu, po co zaczynać od początku? Ze strony znajomych jest bardziej demotywacja niż motywacja. Czy spotkałeś się z czymś takim albo czy uważasz, że trzeba na coś takiego popatrzeć z dystansem i pójść za głosem serca?

Myślę, że u osób, które przejmują się zdaniem innych takie głosy: Słuchaj, Ty nie jesteś dobry w te komputery. Daj sobie spokój z tą matematyką. Nie dasz rady mogą mieć negatywny wpływ na ich decyzję. Jeżeli miałbym mieć jakieś przesłanie dla wszystkich, którzy uczą się teraz programować, to byłoby to: zaufajcie sobie i zaufajcie temu, co jest wewnątrz Was.

Jeżeli ciągnie Was do tego, jeżeli ciągle myślicie o tym – nawet kładąc się spać czy wstając rano – to zacznijcie to robić. Po prostu stawiacie pierwsze kroki i nie patrzcie na to, co ktoś Wam mówi czy jak wygląda Wasze środowisko. Starajcie się zbudować wokół siebie swój własny świat – bez względu na to, czy uczycie się front endu, back endu, czy czegokolwiek innego. Starajcie się zbudować wokół siebie świat dostarczający bodźców, których Wy potrzebujecie podczas nauki. Starajcie się otaczać tym wszystkim.

Ja na przykład bardzo lubię czytać o technologiach front-endowych. Bardzo lubię wszelkiego rodzaju materiały na Medium czy przeglądanie wątków na Stack Overflow. Już to może Wam wskazać kierunek, w którym powinniście w Waszym życiu podążać. Jeżeli czymś się jaracie, jeżeli coś Was naprawdę interesuje, to idźcie w tym kierunku. Nie słuchajcie nikogo dookoła, nawet jeżeli ktoś Wam mówi, że jesteście słabi z matematyki, fizyki, chemii czy czegokolwiek.

Ja jestem zdania, że przy odpowiednim nakładzie pracy i przy odpowiednim zaangażowaniu każdy może się nauczyć czegokolwiek. Jasne, że są osoby wybitnie uzdolnione, natomiast jeżeli chodzi o programowanie, to nikt nie urodził się programistą i gwarantuję Wam, że nie ma takiej osoby, która może powiedzieć, że od razu wiedziała wszystko i umiała wszystko zbudować. To, że ktoś jest dzisiaj programistą, zawdzięcza wyłącznie ciężkiej pracy i zaangażowaniu. Tylko o to chodzi.

Nawet jeżeli chcecie się nauczyć śpiewać czy grać na gitarze, to myślę, że każdy jest w stanie robić to na poziomie, który pozwoli mu na tym zarabiać – jeśli tylko odpowiednio się zaangażuje i poświęci na to odpowiednio dużo czasu. Takie jest moje zdanie.

Ja się całkowicie pod tym podpisuję. Nawet jeżeli nie zostaniecie programistami, to to, czego się nauczyliście, na pewno Wam się przyda. Spotkałem się z opinią pewnej osoby, która nie została programistą, choć nauczyła się programować – mimo to jest zadowolona, bo trochę inaczej zaczęła patrzeć na aplikacje czy strony internetowe. Inaczej rozumie ten świat i to jej pomogło osiągnąć sukces w innej dziedzinie.

Nie poddawajcie się więc. Nawet jeżeli nie zostaniecie programistami, to zawsze warto nauczyć się czegoś nowego. Nie ma co się bać. Trzeba spróbować, a nie się zastanawiać, czy to jest to. Jak sprawdzimy, to wtedy się dowiemy, czy ma to sens.

Tak. Myślę, że ważna jest ta iskra w środku, którą musicie sami w sobie odnaleźć i zanurzyć się w danym temacie.

Tak jest.

 

Już częściowo odpowiedziałeś mi na to pytanie, ale zadam je jeszcze raz: czy Twoim zdaniem każdy może nauczyć się programowania?

Tak. Myślę, że tak. Zdecydowanie każdy może nauczyć się programowania. Nie każdy będzie wybitnym programistą, ale każdy może nauczyć się programowania na takim levelu, który pozwala na programowaniu zarabiać pieniążki lub chociażby tylko tworzyć coś dla siebie, na swoje potrzeby.

Nie każdy musi pracować w branży. Nie każdy, kto uczy się programowania, musi zostać od razu programistą z zawodu. Myślę, że to jest dziedzina, która pozwala nam tworzyć rozwiązania tylko dla samych siebie, pisać jakieś malutkie programiki rozwiązujące problemy, które mamy na co dzień.

Jako prosty przykład podam osoby, które inwestują w nieruchomości i mogą sobie napisać prosty skrypt pozwalający im dużo sprawniej obliczać zwrot z inwestycji – tak by nie musiały ciągle używać Excela i wklepywać wszystkiego ręcznie. Już taka podstawowa wiedza z JavaScriptu, HTML-a i CSS-a pozwoli Wam zbudować prosty skrypt, prostą stronkę internetową, która będzie sczytywać dane z jakiegoś obiektu i przetwarzać je w odpowiedni sposób.

Tak jest. To może też zdradzę pewną tajemnicę. Wiem, że osoby interesujące się nieruchomościami, piszą aplikacje, które pozwalają bardzo szybko pobierać informacje o korzystnych ofertach i na przykład od razu wysyłają alert na telefon: trzeba zadzwonić do takiej osoby, bo jest korzystna oferta. Właśnie w ten sposób możemy usprawnić też swoją pracę i dobrze na tym zarobić. Wiem, że są już takie aplikacje, ale pisane właśnie przez inwestorów – w ten sposób można zarabiać na programowaniu.

Podam jeszcze przykład mamy, która uczyła się programowania i chciała nauczyć swoje dziecko mówić. Napisała więc aplikację, gdzie dziecko mogło klikać na różne obrazki. Każdy obrazek to był jakiś konkretny element, który zaczynał się np. na K jak krowa. W ten sposób dziecko miało się nauczyć mówić. Tak właśnie sami możemy wykorzystać nasze umiejętności z programowania.

To jest idealny przykład rozwiązania, które piszemy dla siebie. Nikt na zewnątrz nie musi tego widzieć, a przyda się to na pewno – nam czy naszym bliskim – w rozwiązaniu pewnego problemu. Programowanie jest idealną dziedziną do tego, by rozwiązywać problemy.

Zgadza się.

 

Też już o tym wspominałeś, ale powiedz nam, proszę, jaki język programowania wybrałeś i dlaczego?

Ja skupiłem się od samego początku na front endzie, bo kiedy miałem te szesnaście czy osiemnaście lat – gdy bawiłem się Adobe Flashem – to wszystko było związane z tym, co widzimy na stronie internetowej, z tym aspektem, z którym użytkownik wchodzi w interakcje. Dlatego też od samego początku skupiłem się na HTML-u, CSS-ie, JavaScripcie i Reakcie. Teraz dokładam kolejne cegiełki, takie jak Gatsby, jak Styled Components – różne rzeczy, które usprawniają nam pracę.

Dodatkowo też jestem bardzo zainteresowany UX designem i myślę, że to super się łączy, bo zawsze chciałem móc sobie coś zaprojektować i samemu to zakodować w taki sposób, w jaki ma to według mnie działać.

Myślę, że to, że poszedłem akurat tą drogą, jest związane głównie z moimi zainteresowaniem, bo interesuję się marketingiem w Internecie. Jest to wszystko bardzo blisko ze sobą związane. Sam UX design, to, jak projektujemy pewne rzeczy na stronę, ma to duży wpływ na aspekt biznesowy, na późniejszy odbiór naszego produktu – to, ilu ludzi wchodzi z nim w interakcję i czy ta interakcja jest fajna, czy nie.

Dodatkowo to, w jaki sposób to kodujemy, w jaki sposób działa to na stronie – czy wczytuje się szybko czy wolno, jak wygląda cała interakcja z użytkownikiem – to wszystko jest związane z front endem. Dużo zainteresowań, które są wokół kodu, łączy mi się jakby z front endem. Dlatego też postanowiłem iść we front end.

 

To w takim razie wiemy już, że wybrałeś JavaScript i zdecydowałeś się na ten front end. Jak w ogóle znajdujesz czas na programowanie, pracując na etacie? Wiem, że też masz rodzinę, synka. Jak sobie z tym radzisz?

Nie jest to proste. To na pewno. Przyznaję, że przez pierwszy rok miałem wielki problem z tym, żeby znaleźć czas na programowanie i pogodzić role taty, męża, pracownika etatowego i osoby, która chce zgłębić tajniki programowania.

Myślę, że bardzo ważne jest, żeby każdy przyjrzał się sobie i temu, w jaki sposób najlepiej się uczy, kiedy najlepiej się uczy, kiedy jego zasoby intelektualne są takie, że jest w stanie przyswajać wiedzę. Dlatego też, po obserwacji siebie, postanowiłem wstawać o piątej rano i do godziny ósmej uczyć się programowania. Nie było innej opcji, bo wiedziałem, że po ośmiu godzinach intelektualnej pracy na etacie – pomimo tego, że mam tak wspaniałą żonę, która mi to umożliwiała – nie przyswajałem tej wiedzy w taki sposób, w jaki chciałem ją przyswajać. Dlatego też postanowiłem odwrócić kolejność i poświęcić się pasji na tyle, by wstawać o piątek rano, programować, a potem od ósmej do szesnastej wykonywać swoją pracę na etacie. Po południu mam czas dla rodziny i w taki sposób udaje mi się to w miarę dobrze pogodzić.

Natomiast nie oszukujmy się – nie jest to proste. Każdy musi indywidualnie spojrzeć na swoją sytuację. Bardzo ciężko jest pogodzić pracę na etacie, rodzinę i naukę programowania. Nie jest to łatwe, dlatego też bardzo ważne, żeby każdy, kto podejmuje taką decyzję, miał tę wewnętrzną iskierkę, bo to jest coś, o czym będę wspominał cały czas – coś, co pozwoli Wam codziennie przechodzić przez kolejne wyzwania.

Super, że o tym mówisz, że mając takie obowiązki znajdujesz jeszcze trzy godziny dziennie na programowanie. Wydaje mi się, że to jest bardzo dużo, biorąc pod uwagę to, że jednak tego czasu nie ma za wiele – ale jak się chce, to można. Osoby, które mówią, że mają rodzinę oraz pracę i nie są w stanie zająć się czymś innym, pokazują, że nie są tak zaangażowane, jak mogłyby być. Jak ktoś bardzo chce, to jednak może. Potwierdzisz to?

Tak. Myślę, że tak, jeżeli ktoś czegoś bardzo chce. Spójrzcie, ile czasu spędzacie w ubikacji, grając w głupie gry na komórce, ile czasu oglądacie seriale na Netfliksie. Jeżeli ktoś coś bardzo kocha, to nie powie mi, że serial na Netfliksiema dla niego dużo większą wartość niż godzinka siedzenia nad kodem. Jeżeli ktoś ma na coś bardzo dużą zajawkę, to znajdzie czas pomimo tego, że doba ma tylko dwadzieścia cztery godziny. Ale uwierzcie mi, że każdy ma tylko dwadzieścia cztery godziny niezależnie od tego, czy jest Steve’em Jobsem, Elonem Muskiem czy Danielem Noworytą z Kolonii, który uczy się programować. Każdy ma dwadzieścia cztery godziny i każdy z nas ma rodzinę.

Może nie każdy z nas ma pracę zawodową, ale każdy z nas ma jakieś swoje obowiązki, których musi dotrzymywać. Myślę, że każdy z nas jest w stanie – po dogłębnym przyjrzeniu się sobie i temu, jak spędza swoje dwadzieścia cztery godziny – znaleźć tę godzinkę do trzech dziennie, żeby poświęcić się programowaniu, jeżeli chce się tego nauczyć.

Często powtarzam, że faktycznie doba ma dwadzieścia cztery godziny, ale można skorzystać z tak zwanej kompresji czasu. Cały czas nie wiem, kto to wymyślił, ale jest to bardzo fajna nazwa i fajne rozwiązanie. Można robić jednocześnie dwie rzeczy i wtedy tego czasu traci się troszkę mniej.

Przykładowo gdy jesz śniadanie, możesz obejrzeć jakiś tutorial na YouTubie. Zamiast codziennie prasować koszulę, wyprasuj sobie kilka na cały tydzień – jest już korzyść z tego, że nie będziesz ciągle rozkładać deski. Jeżeli jesteś w pracy i czekasz na decyzję przełożonego, możesz w tym czasie nawet coś zaprogramować. Nawet na jadąc do pracy autobusem, możesz odpalić jakiś tutorial wideo, podcast – i znów masz te parę minut na programowanie. Wtedy nie tracisz czasu. Wypełniasz go tak, jak możesz.

Myślę, że w ciągu dnia uzbierałaby się spokojnie godzina czy dwie. To jest fajny sposób na zdobywanie czasu, którego ciągle nam brakuje.

Myślę, że to złota rada, jak najbardziej. Nawet jeżeli ktoś dojeżdża do pracy godzinę czy półtorej godziny dziennie to ten czas może poświęcić na posłuchanie jakiegoś podcastu czy obejrzenie filmu na YouTubie. Nie polecam oglądać, jadąc, ale można słuchać i już z czegoś takiego wyciągnąć część wiedzy.

Jasne, że potem trzeba będzie przysiąść i napisać ten swój kod, bo pisanie swojego kodu to najważniejsza część całej nauki programowania. Natomiast konsumpcja wiedzy może odbywać się też podczas innej czynności, którą codziennie wykonujemy, jak jazda samochodem czy – tak jak mówiłeś, Mateusz – prasowanie lub zmywanie naczyń.

 

To wiemy już, że Ty programujesz mniej więcej piętnaście godzin w tygodniu. Od jakiego czasu już tak to wygląda?

Około dwóch lat. Przez pierwszy rok nie robiłem tego tak regularnie, jak robię to już od ponad roku. Pierwszy rok był trochę chaotyczny. Zdarzało się, że siadałem po osiem godzin dziennie, później następne dwa dni w ogóle. Natomiast teraz, po zaobserwowaniu, jak ta wiedza mi wchodzi, stwierdzam, że dużo lepiej robić to systematycznie, codziennie, nawet jeżeli miałoby to być tylko zbudowanie jednego ficzera czy chociażby tylko przeczytanie jednego artykułu na Medium. Myślę, że ważniejsze jest, by robić to regularnie i codziennie, niż żeby to robić wielkimi susami, na przykład tylko w weekend.

Często powtarzam, że jeżeli nie robisz tego systematycznie w krótkich odstępach czasu, to powoduje to, że często musisz wracać do zagadnień, które wcześniej przerabiałeś. To znów jest strata czasu, a jak wiemy, tego czasu nie ma za wiele, więc nie można sobie pozwolić na straty.

Tak. Poza tym dla mnie to też jest wyznacznik, czy ktoś kocha to robić, czy nie. Jeżeli robisz coś systematycznie i codziennie, to jest to naprawdę bardzo dużym wyznacznikiem tego, że Ty naprawdę to chcesz robić i naprawdę chcesz dążyć w tym kierunku.

 

To w takim razie powiedz nam, proszę, czego do tej pory się nauczyłeś? W jakim jesteś miejscu? Na co poświęciłeś najwięcej czasu?

Ja do tej pory na stopniu dosyć zaawansowanym opanowałem HTML, CSS, JavaScript i Reacta. Obecnie składam już swoje CV. Pierwszej pracy szukam tutaj, w Niemczech, natomiast też nie narzucam na siebie jakiejś wielkiej presji. Idę sobie swoim tropem, dokładam kolejne kafelki, jak Tailwind CSS, Sass, Less, Styled Components, Storybook – to też są rzeczy, które już w jakimś tam stopniu opanowałem, budowałem projekty związane z tymi technologiami.

Obecnie pracuję nad dwoma aplikacjami: buduję klon Amazona i swoją aplikację futbolową, która łączy się z zewnętrznym API i wyświetla statystyki zespołów. Jako że jestem fanem piłki nożnej, to postanowiłem, że zbuduję sobie taki projekt dla siebie, bo widziałem dużo takich aplikacji w Internecie, na Google Store, ale mam pomysł na coś, co będzie szybsze, bardziej intuicyjne i tak skrojone pode mnie.

Zbudowałem kilka stron internetowych. Wszystkie można już zobaczyć na moim GitHubie. Jedna ze stron należy do mojej żony, która jest fotografem wnętrz. Zbudowałem jej całą stronę opartą tak naprawdę na Gatsby, do tego w trzech językach. Używałem tam fajnych pluginów do tłumaczenia strony na inne języki, tak żeby nie musieć osobno pisać plików. Zamiast tego dostarczane są obiekty z tekstami i z odpowiednimi wartościami, które w zależności od tego, jaki język użytkownik wybierze, są podmieniane na stronie.

Tak że jestem na takim etapie, w którym już potrafię budować strony internetowe. Lubię design, robię bardzo dużo designu. Swoje projekty tak naprawdę robię głównie w pakiecie Adobe XD i tak jak mówiłem, jestem na etapie, na którym już wysyłam CV, szukam swojej pierwszej pracy.

Czyli podsumowując: przy samodzielnej nauce, etacie i rodzinie na naukę programowania należałoby poświęcić dwa lata. Wiadomo, że wszystko zależy od sytuacji i od danej osoby, ale to jest taki czas, w którym można to zrobić, tak?

Myślę, że zdecydowanie tak. Natomiast, tak jak mówię, bardzo ważne jest, aby każda osoba podeszła do tego na swój sposób – spojrzała, jak najlepiej się uczy, z jakiego typu materiałów, w jakim czasie dnia jej umysł pracuje i przyswaja wiedzę najlepiej. Można to bardzo łatwo zaobserwować, próbując raz uczyć się rano, raz wieczorem i porównując te dwa tryby. Wiadomo, że każdy dzień nie wygląda tak samo.

Zdecydowanie dwa lata wystarczą, by opanować podstawy front endu na tyle, by starać się o pracę, by móc zbudować swoje portfolio. Tutaj warto zaznaczyć, że ja uczę się około piętnaście-dwadzieścia godzin tygodniowo. Jeżeli skompresujemy to do osoby, która nie ma pracy na etacie, to ten materiał, który ja zrobiłem w dwa lata, można zrobić w pół roku.

A na co poświęciłeś najwięcej czasu? Na jaką technologię albo na jakie zagadnienie?

Myślę, że najwięcej czasu spędziłem nad JavaScriptem, bo chciałem wyłożyć sobie solidne fundamenty do tego, by móc później korzystać z frameworków. Ciągle się uczę pure JavaScriptu, ciągle nie jestem zadowolony z levelu, który prezentuję. Natomiast jest już to level pozwalający mi swobodnie korzystać z frameworków typu React, ze Styled Components czy ze Storybooka, gdzie też jest dużo JavaScriptu, nie oszukujmy się.

 

To w takim razie powiedz nam, z jakich materiałów korzystałeś do tej pory, jeśli chodzi o naukę front endu. Co w Twoim przypadku najlepiej się sprawdzało?

Ja jestem osobą, która lubi praktycznie wejść w temat. U mnie naprawdę bardzo fajnie sprawdziło się Udemy. Natomiast też nie ukrywam, że nie doszedłbym do tego momentu, gdybym nie miał przyjaciela, który w tej całej mojej drodze jest dla mnie mentorem. Kamil, jeszcze raz Cię pozdrawiam.

Bardzo często jest tak, że jak przerabiałem jakiś materiał, to w pewnym momencie stawałem i nie wiedziałem, co zrobić dalej. Nawet przekopując dokumentację, nie umiałem znaleźć rozwiązania swojego problemu, dlatego też osoba w postaci mentora była dla mnie naprawdę nieodzowna i cały czas jest nieodzowna. Można zadać pytanie tak naprawdę dwadzieścia cztery godziny na dobę. Ta osoba szybciutko zerknie na kod. Polecam plugin do VS Code, Polacode, gdzie można szybko zrobić screen kodu i wysłać do swojego mentora, żeby na to spojrzał, czy przyjaciela, który może Wam pomóc.

W taki sposób odbywała się moja nauka tak naprawdę przez cały pierwszy rok, gdzie ciężko mi było odróżnić nawet tablicę od obiektu – miałem problemy z prostymi rzeczami. Bardzo często były to rzeczy interpunkcyjne w kodzie. Nie jakieś wielkie problemy, tylko rzeczy związane z tym, że jeszcze nie byłem obyty z kodem, ze składnią całego języka programowania.

U mnie na pewno najlepiej sprawdzały się kursy na Udemy i są one bardzo przystępne cenowo. Myślę, że naprawdę dobre kursy można tam kupić za 10-15 €. Tylko bardzo ważne jest, żeby to robić dosyć szybkim tempem, swoim tempem, bo kursy na Udemy bardzo szybko się przedawniają. Jeżeli ktoś zrobi kurs na Udemy o JavaScripcie… Kurs, który był stworzony rok temu już dzisiaj nie jest jakoś bardzo aktualny, ludzie już inaczej piszą. Tak samo React – niedawno weszły hooki, więc kursy o Reakcie, które były robione rok temu teraz już nie są aktualne. Oczywiście można się z nich bardzo dużo nauczyć.

Taka rada: jeżeli korzystacie z tego typu platform, to starajcie się przerobić materiał w miarę szybko i zaczynajcie korzystać z tej wiedzy, żeby widzieć to w praktyce, żeby móc budować – bo świat, szczególnie na front endzie, zmienia się bardzo szybko, technologie bardzo szybko ewoluują. Myślę, że bardzo ważne jest, aby tej nauki nie odwlekać, tylko uczyć się systematycznie i dosyć intensywnie. Uważam, że nikt, kto kocha programowanie, nie ma problemu z tym, żeby robić to intensywnie i systematycznie.

Może dodalibyśmy jeszcze, żeby nie tylko oglądać, ale jak najwięcej pisać swojego kodu, żebyśmy nie wpadli w spiralę problemów typu tylko oglądam filmy, już wszystko wiem, a potem, jak przychodzi do napisania czegokolwiek, to nagle się okazuje, że nic nie potrafimy zrobić. Pamiętajcie więc, żeby tę wiedzę wykorzystywać.

Tak. To jest podstawa, bo samo oglądanie nic nie da. Sam wiem to po sobie, bo przez pierwszy rok tak naprawdę oglądałem. Nie było żadnego aktywnego kodowania, dlatego trzeba samemu wykorzystywać to, co się widzi. Jeżeli mogę coś radzić, to najlepiej będzie skonsumować daną wiedzę, a później się zastanowić, do czego możemy jej użyć sami i spróbować tego w praktyce. To jest trzecia część, a czwarta część to (jeżeli możecie, macie ochotę jako osoby, które się uczą): spróbujcie nauczyć tej samej wiedzy kogoś innego – czy to w formie bloga, czy jakiegoś posta, czy nawet w formie notatki dla siebie, gdzie wyobrażacie sobie, że chcecie wytłumaczyć dany koncept innej osobie. To już pozwoli Wam głębiej zrozumieć pewne zagadnienie i głębiej wejść w świat programowania.

Jeszcze z dodatkowych materiałów, które bym mógł polecić, to na pewno Medium, Stack Overflow (to już wszyscy pewnie znają) i YouTube – jest ogromną dawką wiedzy. Słuchajcie YouTube’a. To jest naprawdę taka kopalnia… Nie wiem, czy dzisiaj czegokolwiek dotyczącego front endu nie można tam znaleźć. Myślę, że znajdziecie wszystko, co tylko chcecie.

Jest to wiedza, która nie jest jakoś super uporządkowana. Na pewno musicie podchodzić do pewnych materiałów dosyć krytycznie. Natomiast jest dużo kanałów na YouTubie, które są fajne, które są dobrze prowadzone i przekazują wiedzę w na tyle przystępny sposób, że można coś z tego wynieść. YouTube ma tę zaletę, że bardzo łatwo Wam stwierdzić, czy jakiś materiał jest przedawniony czy aktualny, bo jeżeli ktoś zrobił film o Reakcie tydzień, dwa tygodnie temu, to macie prawie sto procent pewności, że jest to w miarę aktualny materiał.

O ile jest dobry autor, bo też nie jest to powiedziane.

Tak. Zgadza się. Sprawdzajcie też autorów.

Tak jest.

 

Danielu, powiedz w takim razie, jakie były największe problemy, z którymi spotykałeś się podczas programowania. Jak sobie z nimi radziłeś? Nie ma co się oszukiwać – te problemy zawsze się pojawiają na każdym etapie. Czy programujesz od wczoraj, czy przez ostatnie pięć lat, zawsze coś jest nie tak. Jak to u Ciebie wyglądało?

Nie mogę za dużo na ten temat powiedzieć, bo zajmuję się tym od niedawna. Jeszcze cały czas się uczę i cały czas będę się uczył. Myślę natomiast, że u mnie jednym z takich dużych problemów jest perfekcjonizm. To może być naprawdę hamujące. Można to podpiąć pod impostor syndrome, z którym naprawdę – jeżeli uczycie się nowej umiejętności, szczególnie programowania – możecie mieć ogromny problem, zwłaszcza jeżeli lubicie porównywać się do innych programistów i innych osób w Internecie czy na Udemy.

Ja nie ukrywam, że przez pierwszy rok miałem z tym ogromne problemy, ale ważne, żeby podchodzić do tego ze zdrowym dystansem. Jasne, porównujcie się z innymi, porównujcie się z tym, gdzie oni są i co robią. Natomiast bierzcie ich bardziej jako punkt odniesienia tego, gdzie Wy dzisiaj jesteście, a nie jako coś, co już dzisiaj musi się stać. Postrzegajcie swoją naukę jako proces, jako drogę i unikajcie zbędnych porównań do innych osób, bo każdy z nas jest inny, każdy ma inną sytuację, każdy więcej czy mniej czasu poświęca na programowanie, każdy też jest uwarunkowany genetycznie w zupełnie inny sposób. Jeden przyswaja wiedzę lepiej z wideo, drugi z materiałów czytanych, jeden przyswaja wiedzę szybciej, drugi wolniej. Jeden potrafi przysiąść i w osiem godzin nauczyć się materiału, drugi potrzebuje dwóch-trzech dni, żeby zrozumieć pewien koncept.

Nie biczujcie się za bardzo i nie porównujcie do innych. To jest na pewno jeden z problemów, które miałem podczas nauki programowania i cały czas mam. Impostor syndrome jest ze mną cały czas. Codziennie rano zderzam się ze ścianą i codziennie mówię sobie: jesteś debilem i nie potrafisz czegoś zrobić. Myślę jednak, że bardzo ważne jest, by te negatywne myśli przełożyć na coś pozytywnego i dokumentować swoją drogę, pokazywać, że zrobiliśmy już jakiś postęp.

Nagradzajcie się też za drobne sukcesy. Chwalcie się znajomym, że potrafiliście coś zbudować. Pokazujcie im rezultaty swojej pracy. Nawet jeżeli są one marne, to starajcie się w jakiś sposób archiwizować je dla siebie, żeby móc kiedyś odnieść się do tego i zobaczyć, jaki już postęp zrobiliście – niezależnie, czy trwa to rok, dwa lata, trzy czy miesiąc. Miejcie jakiś punkt odniesienia, który pomoże Wam przejść przez trudności podczas nauki programowania.

Z takich kwestii technicznych, na pewno miałem na początku problem z załapaniem programowania obiektowego – prototypy, klasy w JavaScripcie. To były dla mnie abstrakcyjne rzeczy. HTML, CSS nie były trudne – to nie jest rocket science. Natomiast jeżeli chodzi już o JavaScript, o OOP (Object Oriented Programming), to już są rzeczy, nad którymi trzeba spędzić troszeczkę więcej czasu.

Jeżeli sobie wyłożycie te fundamenty w JavaScripcie, to przejście na frameworki nie będzie taką straszną i trudną rzeczą. Myślę, że w moim przypadku był to JavaScript i nadal jest to JavaScript, bo ja ciągle bardzo dużo czasu, który poświęcam na naukę programowania, poświęcam na udoskonalanie czystego JavaScriptu. Myślę, że na front endzie jest to bardzo ważne – tak przynajmniej słyszę od innych zawodowców i staram się iść tą drogą.

Jeżeli wiemy, jak działa czysty JavaScript, to na pewno dużo ułatwia. Potem łatwiej nam zrozumieć działanie różnego typu bibliotek czy frameworków.

Może bym się jeszcze odniósł do tego, co mówiłeś wcześniej – do tego porównywania się. Pamiętajcie, że najlepiej porównywać się sami ze sobą. To jest to, o czym wspominałeś: że lepiej porównać swoje umiejętności względem projektu, który wcześniej się zrealizowało, bo wtedy widać postęp.

Często słyszę o tym, że ludzie zatrzymują sobie filmik i mówią: Dobra, to spróbuję napisać to sam. Zobaczę potem, jak napisze to ten prowadzący. I okazuje się, że dana osoba poświęciła na rozwiązanie trzydzieści minut, autor na filmiku zrobił to w dwie minuty i już ktoś sobie myśli: o Boże, ale jestem kiepskim programistą, tyle mi to zajęło. Ale pamiętajcie, że ten ktoś, kto nagrywa film, po pierwsze się do tego przygotował, po drugie pewnie zrobił parę cięć, a po trzecie ma już powiedzmy pięć czy dziesięć lat doświadczenia komercyjnego. Nie możecie oczekiwać od siebie takich umiejętności, mając za sobą parę miesięcy nauki. Naprawdę więc podchodźcie do porównania się z kimś innym z dużym dystansem.

Ja miałem z tym ogromne problemy, to muszę przyznać. To bardzo mnie hamowało i dołowało na początku nauki, ale myślę, że każdy przechodzi przez coś takiego i każdy musi sobie z tym sam poradzić.

Zgadza się.

 

Skoro mówimy już o takich kryzysowych sytuacjach, to chciałbym zapytać: czy miałeś kryzys, przez który chciałeś porzucić programowanie? W jaki sposób sobie z tym poradziłeś?

Trudniejsze momenty bywały, jasne, że tak. Myślę, że cały czas będą w mojej karierze programisty (jeżeli można to tak nazwać), tak naprawdę codziennie. Może nie codziennie, ale jeżeli przysiadamy do jakiegoś nowego konceptu i staramy się nauczyć czegoś nowego, żeby wprowadzić to w życie w swoim projekcie, to myślę, że za każdym razem jest jakiś taki moment, który mówi Ci: Kurczę, czemu to tak wolno Ci wchodzi do tej głowy? Jaki Ty masz ze sobą problem, że idzie to tak wolno i że tego nie potrafisz?

Czasami po prostu chodzi o to, że musimy się pewnym koncepcjom przyjrzeć bliżej, musimy dać sobie więcej czasu, przespać się z pewną wiedzą. Na drugi dzień zupełnie inaczej nam się programuje. Znam to też ze swojej pracy zawodowej – niejednokrotnie jest tak, że siedzę od drugiej i próbuję rozwiązać jakiś problem, zbudować jakąś rzecz, nie mogę upakować tego wszystkiego, co tam ma być w środku pod maską, i mówię sobie: kurczę, dzisiaj to nie idzie. Jak człowiek się prześpi, to na drugi dzień zupełnie inaczej podchodzi do problemu.

Myślę, że musimy dać naszym głowom odpocząć i dać czas na to, by mogły aktywować inne części naszego mózgu, a nie ciągle być totalnie sfokusowanym na programowaniu. Trzeba dać głowie czas, żeby przetrawiła wiedzę, którą właśnie skonsumowaliśmy, ułożyła ją sobie, żeby – jak mawiał Steve Jobs – połączyła te wszystkie kropki, aby móc na drugi dzień lepiej i inaczej podejść do danego problemu.

Co do kryzysów to myślę, że teraz podczas wysyłania CV może mam kilka kryzysów, jak dostaję w twarz odmowy, ale to są normalne rzeczy. Zdaję sobie sprawę z tego, że to jest proces, który musi trwać. Każdy musi przez niego przejść. Sądzę też, że to nie jest rzecz, która mogłaby mnie odsunąć od programowania. Za bardzo mnie to rajcuje, za bardzo mnie to kręci.

Jeden z uczestników podcastu stwierdził, że otrzymanie pracy to jest tak naprawdę pewna statystyka. Trzeba wysłać odpowiednią liczbę CV, trzeba odbyć odpowiednią liczbę rozmów. Tak naprawdę prędzej czy później ta praca się znajdzie, tylko trzeba się nie poddawać i cały czas szukać.

W zasadzie sam też wspomniałeś, że już padła jakaś propozycja, ale jej nie przyjąłeś, więc nie jest tak, że spotykają Cię same negatywne rzeczy i jest problem ze znalezieniem pracy, tylko po prostu Ty masz pewne oczekiwania i chcesz je osiągnąć podczas tej zmiany.

Zgadza się. Sytuacja każdego jest inna, nie zapominajmy o tym. Moja sytuacja jest taka, że od dziesięciu lat pracuję w branży samochodowej. Zarabiam dobre pieniądze i jestem w tej złotej klatce zamknięty. Muszę się zgodzić na obniżkę zarobków, jasne, że tak. Natomiast mam też pewien level, poniżej którego nie chce zejść. Dlatego też uczę się intensywnie. Staram się polepszyć swoje portfolio po to, by móc lepiej sprzedać się swojemu potencjalnemu pracodawcy.

Sytuacja każdego jest inna. Jeżeli na przykład ktoś jeszcze nigdy nie pracował i dopiero wchodzi na rynek, to dużo łatwiej będzie mu zaakceptować niższe warunki finansowe niż komuś, kto ma już rodzinę na utrzymaniu i kto musi ją na co dzień wyżywić. Dlatego tutaj każdy powinien patrzeć na siebie indywidualnie. Tak jak mówię: porównywanie się z innymi nie ma sensu, bo może Wam tylko zaszkodzić.

Tak jest.

 

Wróćmy teraz do tematu związanego z samym procesem nauki. Czy patrząc przez pryzmat tych dwóch lat, mógłbyś usprawnić swój proces nauki? Czy zaproponowałbyś słuchaczom pewne rozwiązania, które mogłyby się u nich sprawdzić, poprawić efektywność nauki?

Na pewno jest wiele takich rzeczy, które można poprawić. Jest wiele takich rzeczy, z którymi ja się borykałem, wiele błędów, które popełniłem na swojej drodze i pewnie dalej będę popełniał. Natomiast z rzeczy, które mogę doradzić naszym słuchaczom, na pewno jest to, że wszystko trzeba zacząć od mocnego why? – tego, co w środku nas siedzi. Musicie przyjrzeć się sobie i zadać pytanie: dlaczego chcecie nauczyć się programować? Jeżeli się tym interesujecie, czytacie naprawdę dużo na ten temat, to jest to naprawdę ogromny znak, że możecie zostać programistami.

Jeżeli nie robicie tego systematycznie, tylko skokami – na przykład uczycie się w weekend, bo sprawia Wam to frajdę, i później miesiąc pauzy i znowu się uczycie – to jest sygnał, który może powiedzieć, że to nie jest to, że może powinniście dać sobie spokój, bo do tego naprawdę potrzeba zawzięcia i konsekwencji. To nie jest łatwa dziedzina.

Z dodatkowych rad dodałbym, żeby uczyć się systematycznie – to dużo lepiej niż takimi dużymi susami. Przyjrzyjcie się sobie: w jaki sposób przyswajacie wiedzę najlepiej? Każdy z nas jest inny: jeden przyswaja wiedzę lepiej przez wideo, drugi przez pozycje czytane, a trzeci jeszcze lepiej pracując jeden na jeden z mentorem. Tak że każdy z nas jest inny i każdy powinien się przyjrzeć swojej osobie – temu, jak najlepiej przyswaja wiedzę.

Nagradzajcie się, dokumentujcie swoją drogę. To jest bardzo ważne, bo w chwilach zwątpienia dla mnie jest to czynnik decydujący, który pozwala mi pchać siebie dalej do przodu. W chwilach, w których mam załamanie, w których myślę, że się nie nadaję, czy nie mogę czegoś rozwiązać, spoglądam w swoje notatki, patrzę, czego się uczyłem z pół roku temu i mówię sobie: kurczę, jaki to jest dzisiaj banał. Widzimy, jak wielki krok zrobiliśmy.

W nauce programowania bardzo ważne jest, żeby nie dać się temu myśleniu, które mówi Ci, że się nie nadajesz albo że nie możesz czegoś zrobić. Nawet seniorzy (Mateusz może potwierdzi, bo pracuje w branży IT dużo dłużej) borykają się z czymś takim i nawet oni czasami myślą, że coś jest nie do napisania, ale gwarantuję Wam, że jeżeli tylko przysiądziecie do czegoś i dacie sobie troszeczkę więcej czasu, to w końcu traficie na odpowiednią stronę w dokumentacji i w końcu napiszecie tę odpowiednią linijkę kodu, i w końcu zrobicie ten kolejny krok na swojej drodze do tego, by zostać szanowanym web developerem.

Opowiem taką historię: kiedyś miałem napisać aplikację, która korzystała z API firmy zewnętrznej. Oczywiście w dokumentacji wszystko było pięknie napisane, zrobiłem to, jak trzeba. Straciłem nad tym kodem chyba z trzy dni, ale nie chciał działać, aż w końcu zdecydowałem się zadzwonić do suportu i zapytać, co jest nie tak.

Odpowiedź: Wie pan co, tu trzeba dodać jeszcze jedną flagę. Zapomnieliśmy napisać o tym w dokumentacji. A ja tak straciłem trzy dni, wkurzałem się na siebie strasznie. Dodam jeszcze tylko, że rok po tym zdarzeniu sprawdziłem, czy dopisali tę informację do dokumentacji. Nie zrobili tego. Trzeba więc czasami uważać też na to, co jest w dokumentacji.

No jest tak, jest. Myślę, że kluczem jest systematyczność. Naprawdę, jak ja patrzę na siebie, to od momentu, w którym zacząłem systematycznie wstawać o piątej rano i uczyć się programowania, moja nauka wystrzeliła. Szczerze, w ogóle nie ma porównania z tym, gdy uczyłem się skokami. Codzienne patrzenie na kod i pisanie swoich rzeczy to jest klucz. Naprawdę, uwierzcie mi. Nie ma nic ważniejszego w nauce programowania. Jeżeli ktoś Wam mówi inaczej, to nie wiem, co mówi, ale gwarantuję Wam, że jeżeli codziennie będziecie patrzyli na kod i codziennie pisali coś swojego, codziennie starali się rozwiązać jakąś prostą rzecz, to Wasza nauka będzie szła do przodu. Uwierzcie mi, że to, co robicie, robicie dobrze.

 

A jakie miałbyś rady dla osób, które chcą rozpocząć naukę programowania? Nie uczą się, lecz dopiero zamierzają to robić.

Myślę, że najpierw powinny zainteresować się tym całym światem – technologiami, które są w programowaniu, bo języków jest mnóstwo, technologii jest mnóstwo, specjalizacji jest mnóstwo. Myślę, że najpierw powinniście zainteresować się tym, co Was kręci, co Was rajcuje: czy back end, czy front end, czy Android development, C# czy C++, czy Java. Jest tego mnóstwo na rynku. Python, PHP…

Myślę, że każdy powinien się przyjrzeć sobie oraz ogólnie światu IT (jeżeli to tak mogę nazwać) i temu, co sprawia Wam największą radość, co chcielibyście robić.

Druga rzecz to: dlaczego chcielibyście to robić? Dlaczego chcielibyście się nauczyć programować? Odpowiedzcie sobie na to pytanie, ale tka szczerze przed sobą. Dajecie sobie tydzień czasu i jeszcze raz odpowiedzcie na to pytanie. Czy odpowiedź będzie ta sama? Czasami pod wpływem emocji, chwilowego zauroczenia możecie powiedzieć: ja to uwielbiam robić, ale po tygodniu nauki stwierdzicie: kurczę, nie sprawia mi to frajdy i nie jest to dla mnie.

Odpowiedzcie więc sobie na pytanie: dlaczego chcecie wejść do teog świata? Dlaczego chcecie zacząć uczyć się programować? To wewnętrzne why musi być bardzo silne, bo to pozwoli Wam przetrwać, a później wyróżnić się na rynku na tle innych programistów. Jeżeli będziecie mieli to w sobie zakorzenione odpowiednio silnie, to myślę, że nic nie stanie na Waszej drodze do tego, byście osiągnęli swoje marzenie i dostali swoją pierwszą pracę, czy zbudowali coś, co będzie miało istotny wpływ na ten świat.

Zgadza się. Potwierdzam w stu procentach.

 

A teraz: pozytywna i negatywna sytuacja, która Ci zapadła w pamięć i która byłaby związana z nauką programowania. Co by to było?

Pozytywnych i negatywnych jest wiele, ale myślę, że pozytywnych jest dużo więcej. Najważniejsza sytuacja to moment, w którym piszę kod, który działa tak, jak chcę.

Za pierwszym razem.

Za pierwszym razem. Moment, w którym za pierwszym razem napisałem kod, który zadziałał tak, jak chciałem. Sądzę, że ten pozytywny moment dopiero na mnie czeka, bo jeżeli mam być szczery, to myślę, że to będzie moment, w którym dostanę swoją pierwszą pracę w branży IT. To będzie moment, którego nie zapomnę i w którym zobaczę, że całe to poświęcenie ma jakiś sens.

Negatywne momenty czasami się zdarzają. Jeżeli siadamy rano i piszemy kod, to bardzo często trafiamy na ścianę – i to są te negatywne momenty. Natomiast ja ich nie odbieram jako takie całkowicie negatywne, bo one pchają mnie do przodu, pozwalają stawać się lepszym programistą. Myślę, że to wskakiwanie na głęboką wodę podczas nauki programowania jest bardzo ważne.

Jeśli więc chodzi o negatywne sytuacje, to nie wiem. Ja z programowaniem mam same pozytywne skojarzenia. Mam taką zajawkę na tym punkcie, że naprawdę ciężko mi znaleźć coś negatywnego.

Super to słyszeć. Raczej ludzie mówią: O Boże, tutaj średnik, przecinek nie działa. Cały dzień straciłem na kod, który nie chce się uruchomić i tak dalej.

To jest normalny proces. To tak ma wyglądać i tak będzie wyglądać.

Ale jak już zaczyna działać, to bardzo się cieszymy. Chyba więc to jest to. O to w tym wszystkim chodzi.

Tak, to jest jak zastrzyk dopaminy po jakimś dobrym biegu. Spróbujcie wyjść na dwór i przebiec kilometr, dwa. Zobaczycie, że poczujecie się dużo lepiej sami ze sobą, bo dostaniecie zastrzyk dopaminy.

Od razu sobie pomyślałem, czy programowanie może być uzależniające. Czy niedługo będą odwyki?

W moim przypadku można powiedzieć o małym uzależnieniu, ale czy to jest negatywne? Nie wiem. Póki jestem w stanie to pogodzić z rodziną, z pracą i wychowaniem syna, to myślę, że nie jest to nic złego.

 

Jaką książkę poleciłbyś osobom, które chcą nauczyć się programowania?

Przygotowałem sobie dwie książki. Myślę, że jedna jest taka straightforward, jeżeli chodzi o programowanie. Pewnie wielu z naszych słuchaczy o niej słyszało: Head First JavaScript. To była książka, która bardzo dużo dała, kiedy zaczynałem stawiać pierwsze kroczki w JavaScripcie. Potrafi ona w bardzo łatwy, przystępny sposób wytłumaczyć pewne zagadnienia.

Chociaż nie ukrywam, że nawet po przeczytaniu tej książki, nawet po przerobieniu tego materiału przez długi czas nie potrafiłem pewnych rzeczy zrozumieć. Musiałem się z tymi rzeczami, że tak powiem, po prostu obejść: wypisać kilka setek linii kodu, żeby móc stwierdzić, że coś tam już zrozumiałem. Head First JavaScript jest bardzo fajną książką na początek dla każdego, kto chce zacząć programowanie w JavaScripcie. To jest chyba wydawnictwo O'Reilly. Autorów niestety nie znam, możemy podlinkować później.

Podlinkujemy.

Druga książka, która jest mało związana z programowaniem, ale myślę, że miała ogromne znaczenie w moim procesie nauki, to Daniel Kahneman Pułapki myślenia. To gruba książka o tym, jak myślimy, jak działa nasz mózg; o tym, że mamy dwa systemy myślenia – tak zwany szybki i wolny.

Bardzo ważne jest, abyśmy zrozumieli, że podczas nauki programowania ten wolny system musimy aktywować dużo częściej niż ten szybki. Tp książka, która może dać Wam bardzo wiele, szczególnie osobom, które chcą poznać, w jaki sposób działa mózg, w jaki sposób myślimy, w jaki sposób podejmujemy decyzje – a jest to bardzo ważne podczas programowania, bo codziennie będziecie podejmować jakieś decyzje.

Zgadza się. Bardzo polecamy obydwie książki.

 

To na koniec: gdzie możemy Cię znaleźć w sieci?

Niedawno zacząłem prowadzić kanał na YouTubie, na którym dzielę się swoimi doświadczeniami i przemyśleniami osoby, która uczy się programować, która stara się znaleźć swoją pierwszą pracę. Kanał nazywa się Programista FrontEnd. Na YouTubie znajdziecie mnie też pod nazwą Daniel Noworyta. Tak samo na Instagramie: programistafrontend. To są dwa miejsca w sieci, w których można mnie znaleźć.

Tak że zapraszamy do Daniela. Myślę, że dużo ciekawych rzeczy już pojawiło się na social mediach. Dość często wrzucasz materiały, więc warto zaglądać, żeby być na bieżąco.

YouTube to kanał, na którym dokumentuję swoją drogę. Staram się wrzucić tam co tydzień jakiś odcinek, który omawia pewien temat. Natomiast Instagram to takie miejsce, w którym troszeczkę bardziej pozwalam sobie na prywatne rzeczy.

 

Dziękuję Ci bardzo za dzisiejszą rozmowę. Świetny materiał. Myślę, że słuchacze będą bardzo zadowoleni z tego, co będą w stanie wyciągnąć z naszej dzisiejszej rozmowy. Wiem, że dzisiaj masz mieć kolejną rozmowę o pracę, tak że trzymam za Ciebie kciuki i być może za niedługo nagramy odcinek, w którym będziesz opisywał pierwsze tygodnie w nowej pracy.

Jak Bóg da, to tak będzie. Dziękuję bardzo słuchaczom. Dziękuję Tobie, Mateuszu, za zaproszenie. Mam nadzieję, że nasza rozmowa przyniesie Wam, drodzy słuchacze, jakąś wartość. Jeżeli chociaż jednemu z Was pomoże, to myślę, że już misja spełniona.

Zachęcam Was do słuchania podcastu Mateusza i odwiedzania jego kanału na YouTubie, bo widziałem, że jest tam wiele bardzo ciekawych materiałów, wiele krótkich filmików, które wyjaśniają w bardzo prosty, przystępny sposób zagadnienia z HTML-a, CSS-a czy JavaScriptu. Zachęcam Was do odwiedzenia moich kanałów i życzę Wam powodzenia w Waszej nauce. Nie ustawajcie w ciągłym dążeniu do spełniania Waszych celów.

Jeszcze raz bardzo Ci dziękuję. Trzymaj się.

Dzięki.

Cześć.

Polecana książka

Head First JavaScript Programming
Michael Morrison

Słuchaj także na:

Udostępnij ten artykuł:

Polecana książka

Head First JavaScript Programming
Michael Morrison

Mentoring to efektywna nauka pod okiem doświadczonej osoby, która:

  • przekazuje Ci swoją wiedzę i nadzoruje Twoje postępy w zdobywaniu umiejętności,
  • uczy Cię dobrych praktyk i wyłapuje złe nawyki,
  • wspiera Twój rozwój i zwiększa zaangażowanie w naukę.

Jak zostać programistą? Skuteczny przewodnik

TERAZ DOSTĘPNY BEZPŁATNIE!

Cena w sklepie to 39 zł, a Ty możesz otrzymać ten e-book bezpłatnie za zapis na newsletter. To ponad 40 stron konkretów o nauce programowania i pracy w IT.