moja droga do full stack developera

dkuku
dkuku

Ostrzegam: pisarzem nie jestem, czytasz na własną odpowiedzialność, za chemię nie zwracam:

Mieszkam w uk, w polsce skończyłem zarządzanie i inżynierie produkcji a pracuję jako elektryk w fabryce.
No więc podejść do programowanie miałem kilka. Samemu trudno sobie wszystko usystematyzować, szczególnie bez doświadczenia. Kiedy pojawiła się coursera, zrobiłem tam jakieś 2 kursy, i zacząłem chyba z 15, ale żadnego więcej nie ukończyłem.

Zawsze patrzyłem w kierunku pythona, próbowałem jakieś kurs C, ale błędy jakie wywalał kompilator były nie do ogarnięcia przez mój polski mózg. Błędy w pythonie można było zrozumieć no i książek do pythona jest dużo. Słuchałem podcastów o pythonie i tam zawsze było powtarzane, że python jest drugim najpopularniejszym językiem po javascript. 

No to zobaczmy co to tej javascript, kupiłem sobie kurs nodejs zrobiony przez Andrew Mead na udemy i dotarłem do końca. Po tym kursie przekonałem się, że javascript jest popularny przez aplikacje internetowe, praktycznie wszystko da się teraz odpalić w przeglądarce i nie ważne, jakiego używasz systemu. Wtedy już byłem zdecydowany, aby wywalić pieniądze i iść na bootcamp i .... i dobrze, że tego nie zrobiłem. Potem na openclassrooms poznałem polkę która skończyła jeden z popularnych polskich bootcampów i powiedziałaż, że tam większość to kopiuj/wklej.

Gdzieś przypadkiem chyba facebook zasugerował mi stronę openclassrooms.com która oferuje usystematyzowane scieżki nauki w kilku kierunkach — koszta są podobne do bootcampu, ale płatne co miesiąc po około 300euro, dla mnie oczywiście 300 funtów, bo mieszkam w uk — ciągle to drogo tylko na raty.  Ale jako, że byłem zdecydowany wydać 12 000 zł na bootcamp to było do przełknięcia.
Niestety do wyboru nie było ani pythona ani node, był za to full stack developer path z ruby on rails i react na który się zdecydowałem.           

Wyglądało tak: jest 9 projektów do zrobienia, a w cenie którą płacisz masz cotygodniowe spotkanie mentorem. Każdy projekt zaliczasz z innym mentorem.

- Pierwszy projekt był wstępem, trzeba było przygotować sobie jakiś kalendarz z planem i inne brednie - dla mnie strata czasu. No ale pierwszy projekt zaliczony.

- Drugi już był ciekawy - stron dla agencji sprzedającej i wynajmującej chatki w górach.  Dostałem listę rzeczy co strona ma zawierać. Miała być zbudowana na wordpresie a wtyczki sam sobie znajdź. Mentor tylko doradził mi abym użył jakiś publiczny hosting. Wordpress jest w sumie dobry na początek bo nie trzeba nic pisać, szukasz pluginów i themsów, które można przerobić pod twoje wymagania. Moje wypociny tutaj: //dev-daniel-project2.pan...

- Projekt numer 3 - strona dla festiwalu filmowego - tylko frontent, sugerowane użycie bootstrap-a, strona miał mieć linki do kilku miejsc, licznik czasu do festiwalu i formularz do rejestracji: https://dkuku.github.io/projec...                                                                                                                                                           

- Projekt 4 - zaprojektuj bazę danych dla pizzerii - tym razem nie mam nic do pokazania, ale trzeba było się nauczyć tochę o bazach danych,prezentacja była w sumie prosta.                             

- Projekt 5 - moje portfolio - tutaj trzeba było użyć reacta. Ma być strona z moimi projektami, formularz kontaktowy i coś o mnie: https://dkuku.github.io/                              

Każdy z tych projektów zajmował mi około 2 tygodni - trzeba było naoglądać się video no i walczyć z bugami w css ;)                                                                                    - Projekt 6 - fitness tracker, w Ruby on rails. A co to ??? Ruby to framework mvc — idealny do pokazywania co siedzi w twojej bazie danych. To też mi zajęło około 2 tygodni. Kuzynka zaczynała wtedy grafikę komputerową iw szkole średniej to namówiłem ją, żeby mi zrobiła ikony (do portfolio oczywiście) a mentor powiedział, że video w tle byłoby spoko:  https://mandgruby.herokuapp.co...

- Projekt 7 - ten mi zajął ponad miesiąc, bo w wymaganiach było użycie api z instagrama, tę funkcjonalność wyłączyli niedawno więc się przeciągnęło i musiałem użyć flickr. Strona miała być dla wyścigu kolarskiego, miała wyświetlać zdjęcia z kilku hashtagów, listę kolarzy, pozycję kolarzy na mapie google (dane z pliku csv) oraz formularz gdzie można przysłać jakieś hasło do konkursu - całość zbudowana w railsach - ja  użyłem rails jako api oraz reacta na frontendzie: https://boulderbiketour.heroku...

- Projekt 8 to był mój koszmar - użyłem rails jako api i reacta z reduxem i kilkoma innymi bibliotekami.                                                                                                          

Ogarnięcie o co chodzi w reduxie zajęło mi trochę, jak pykło w głowie to już było dobrze ale po drodze masakra. Tutaj musiałem zrobić platformę pomocy dla sąsiedztwa, Ma umożliwiać dodawanie "potrzeb" w 2 kategoriach, wyświetlać wszystko na mapie oraz kontaktowanie się z postującymi tak aby dogadać szczegóły. Powinna także wyświetlać statystyki i mieć i unit testy. Wygląda to tak: https://neighboorhelp.herokuap... i nie jestem dumny z tego kodu ale jakoś działa ;)
Zajęło mi to 2 miesiące i poznałem wtedy pewnie 80% błędów, jakie może wyświetlić react. 


To tyle z projektów. Całość zaliczyłem na początku czerwca — po 8 miesiącach od startu.                                                                                                                         

Czy było warto — na pewno nauczyłem się trochę i samemu nie dałbym rady sobie tego poukładać. Spotkania z mentorami traktowałem raczej jako miejsce żeby się pochwalić co zrobiłem przez tydzień — z dzisiejszej perspektywy patrząc to nie dużo jak na 40-50 godzin tygodniowo poświęcone. Ale mózg zaczął to rozumieć. 


Co dalej ??  Przez ten czas kupiłem kilka kursów na udemy na temat railsów i react. Nie miałem czasu obejrzeć całych gdy robiłem projekty to oglądałem tylko to co potrzebuję - teraz był dobry moment aby je dokończyć. Zacząłem także szukać pracy, ale tutaj gdzie mieszkam nie ma zbyt wiele ofert a bez doświadczenia ciężko, przeprowadzka do Londynu to była ostateczność na którą jeszcze się nie zdecydowałem.                                                                                                                                

I tak dotarłem do października gdzie zacząłem oglądać: Agile Development using Ruby on Rails na edx - to był przełom: podstawy testowania i link do agileventures.org - fundacji która zarabia na utrzymywaniu stron innym. Zacząłem się tam udzielać. Wygląda to tak, że mają kilka projektów na githubie z ticketami dla początkujących. Mój pierwszy ticket to wstawienie bannera na strone. Niektóre z projektów mają cotygodniowe spotkania, parę jest dla członków premium.

Premium nie jest potrzebne, dla mnie nawet strata czasu bo przerabiają jakąś książkę zazwyczaj, dzięki temu miejscu pozbyłem się impostor syndrome. Oprócz bannera amazona dzięki mnie można zasubskrybować kalendarz i obejrzeć starsze spotkania na "video wall-u"                                                                                                                                                                                                              

Tutaj po 3 miesiącach poczułem, że coś potrafię i czas aplikować. Dopisałem sobie wolontariat do cv i oferty zaczęły się pojawiać, ciągle większość dla seniorów, bo agencje nie czytają tylko jadą hurtem po wszystkich cv ale jak już zaczniesz gadać to będzie dobrze.                                                                                                                                                                                   

Moja pierwsza poważna oferta była na full stack developera - flask. Trochę nie mój kierunek ale dawaj. Dostałem zadanie do zrobienia i pisało, żeby użyć dowolnej technologii. Chciałem to zrobić we flasku ale po przerobieniu tutoriala nie miałem pojęcia jak to dalej ugryźć. Ale jak dowolna technologia to robimy w railsachktóre znam.  Tutaj mi poszło gładko - jedyny problem to style strony - musiała jakoś wyglądać, nie jestem designerem i znam tylko 3 kolory #pdk. Poszukałem sobie szablonu podobnego do tego co chcę zrobić i szlifujemy.
Wymagania - strona ma umożliwiać przeglądanie aut z listy oraz wyszukiwanie po ID: https://peaceful-shore-28797.h... 

Wysłałem i ... odpowiedź: no tak tylko my chcieliśmy we flasku. Z takim podejściem to mnie do siebie nie przekonujecie. No ale mam już to działające w railsach, przeportowanie do flaska zajęło mi całą noc, przeleciałem tutorial do flaska ponownie tym razem zamiast budować bloga zrobiłem mój projekt.  

Po weekendzie zaprosili mnie na prezentację więc pojechałem pokazałem co i jak - chociaż nie wszystko rozumiałem. Dostałem kilka pytań 2 pamiętam:
- o sql injection
- czy fetch w js nie blokuje strony ??

I tak po pierwszej rozmowie miałem drugą już nietechniczną i gotowe. Dostałem ofertę dzień po 39 urodzinach. 

Jeśli miałbym doradzać komuś jak się zabrać za webdev to:

- Naucz się html i css a potem bootstrapa lub czegoś podobnego - zrób jakąś tribute page dla piosenkarza, klubu sportowego, MB

- Git - to tylko kilka komend do których są graficzne nakładki i które musisz umieć

- Naucz się reacta - zrób stronę używającą api wykopu albo dowolne inne - możesz użyć pomysłów które ja robiłem. Nie zgapiaj - rób samemu.                                          - Jeśli backend to railsy, to pomaga nauczyć się dobrych praktyk, nie trzeba wymyślać koła na nowo no i tego używają głównie na agileventures.                                      -- Znajdź listę pomysłów na projekty-zacznij od narysowania na kartce jak wszystko ma wyglądać, to pomaga zaplanować co robić - trudno zaczynać od pustej strony w edytorze bez pomysłu na to co dalej. Niech ktoś ci pomoże to zaplanować.

- Przerób oba darmowe kursy Agile Development using Ruby on Rails na edx. Dużo wyjaśniają.

- A potem od razu na agileventures.  Wybierz sobie jakichś projekt, jak masz czas to codziennie o 13 jest scrum i można opowiedzieć co się robiło i co ma się w planach. To motywuje do roboty.

Ja udzielałem się przy website one, championer one, oraz rundfunk mitbestimmen. Tam nauczysz się używać gita i pisać testy.  


Z darmowych kursów mogę jeszcze polecić javascript 30 - Wes Bosa, i na openclassrooms można chyba kilka miesięcznie za darmo,
Potem udemy - średni koszt to 42zł - za 20 godzin video to nie jest dużo - klep wszystko sam, zapomnij o kopiuj/wklej, używaj nowszych wersji bibliotek - będziesz miał problemy ale nauczysz się je rozwiązywać. Czasem to zajmuje kilka dni ale da się.                                            

                                                                                

A potem jak poczujesz się na siłach to aplikuj - mi zajęło ponad rok od czasu gdy zacząłem openclassrooms, samodzielne zrobienie 8 projektów od startu do finiszu, przerobienie ok 20 kursów po 20 godzin na udemy i w końcu hacktoberfest i używanie githuba spowodowało, że poczułem się naprawdę na siłach.