NAGLE…
Straciłem wszystko.
Nie mam doświadczenia komercyjnego.
Nie mam znajomych programistów.
Nie umiem programować…
(Masakra! 😅)
Mam 30 dni na ruszenie od ZERA.
Co robić???
—
Na szczęście, to tylko hipotetyczna sytuacja. 🙃
Ale!
Całkiem dużo możemy się na niej nauczyć.
I zdecydowanie warto zrobić sobie takie ćwiczenie.
Za pierwszym razem, gdy robiłem to sam – było trudno. 😬
Teraz gdy wspólnie z kursantami przechodzimy podobny proces
– każdy kolejny raz, jest coraz bardziej dopracowany – i coraz łatwiejszy! 🏖️🍹
Ok.
Chcę zostać programistą.
Nic nie umiem.
I co teraz? 😁
Spis treści
- 1 Jak powinno wyglądać takie wzorcowe pierwsze 30 dni przyszłego programisty?
- 2 Etap 1. Wyparcie i panika
- 3 Podcast – 100 dni programisty
- 4 Etap 2. Spróbuj tego w praktyce 🐉
- 5 Etap 3. Znajdź swoje „Dlaczego?”
- 6 Etap 4. Weryfikacja Twoich preferencji i predyspozycji
- 7 Etap 5. Twoja przyszła specjalizacja
- 8 Etap 6. Nauka podstaw składni języka programowania
- 9 Etap 7. Długofalowe podejście
- 10 Etap 8. Warsztat początkującego programisty
- 11 Etap 9. Praktyka, praktyka i praktyka…
- 12 Etap 10. Czas na komercyjne programowanie
- 13 Etap 11. Twoje portfolio i jakość kodu!
- 14 20+ BONUSOWYCH materiałów z programowania
Jak powinno wyglądać
takie wzorcowe pierwsze 30 dni przyszłego programisty?
Etap 1. Wyparcie i panika
Nie oszukujmy się – jesteśmy tylko ludźmi.
Pierwsze dni zazwyczaj obarczone są ogromną niepewnością, wątpliwościami,
a w przypadku wielu osób wręcz paniką…
Co teraz?
Jak zacząć?
Ja się do tego nie nadaję!
Na tym etapie warto przede wszystkim nie panikować (za bardzo)
i zebrać trochę informacji.
Na konkretne decyzje jeszcze przyjdzie czas.
Powiedźmy, że w takim stanie spędzimy 3 pierwsze dni.
Także zabieramy się za robotę! 🚀🔥
Dzień 1
- Zbierz możliwie dużo informacji
– czym jest programowanie,
jak wygląda praca programistów,
jakie mamy języki programowania itp. itd. - Sugeruję zacząć od darmowych źródeł informacji. 💲 Ostatecznie nie wiesz jeszcze, czy to dla Ciebie.
- Możesz zacząć np. od naszych publicznych materiałów:
Podcast – 100 dni programisty
W ramach tego materiału – opisałem jak może wyglądać takie wzorcowe pierwsze 30 dni przyszłego programisty.
Natomiast cała koncepcja – 100 pierwszych dni została omówiona w poniższym podcaście. 👇
➡ ZOBACZ 👉: 100 dni Developera – Jak Zostać Programistą?
Etap 2. Spróbuj tego w praktyce 🐉
Dzień 2
- Tylko czytając o programowaniu – nie nauczysz się tego.
Ba! – nawet „nie poczujesz” jak to jest!
Dlatego możliwie szybko warto napisać pierwsze fragmenty kodu i spróbować tego w praktyce. - Spróbuj rozwiązać jakiś prosty problem programistyczny np. policz średnią wieku członków Twojej rodziny.
- Przygotuj aplikację typu „Hello World” w dowolnym języku programowania np. Java.
- Obejrzyj fragment jakiegoś tutoriala i przejdź wspólnie z autorem przez tok rozumowania podczas rozwiązywania problemu.
Tutaj zapraszam na nasz kanał na YouTube.
Idziemy dalej! 🚶🚶♀🏃🏃🏽♀️
Temat pracy programisty został przez Ciebie wstępnie przeanalizowany 🕵️♂️?
Czujesz, że to może być TO?
Jeżeli tak, to przyjrzymy się kolejnym krokom, które przybliżą Cię do tego celu! 🙂
Etap 3. Znajdź swoje „Dlaczego?”
- Odpowiedz sobie szczerze na pytanie
– dlaczego chcesz uczyć się programowania i dlaczego chcesz zostać programistą? - Pomoże Ci to gdy pojawią się ewentualne trudności – a jest to tak naprawdę tylko kwestia czasu…
- Zapoznaj się też z poniższym materiałem
„Dlaczego warto – ale dlaczego też NIE warto być programistą”
– Pomoże Ci on lepiej zorientować się w temacie zawodu programisty 🙂
➡ ZOBACZ 👉: Czy warto być programistą?
➡ ZOBACZ 👉: Nauka programowania (Znajdź swoje DLACZEGO?)
Etap 4. Weryfikacja Twoich preferencji i predyspozycji
Dzień 3
Skoro wiemy już co nieco o Twoich preferencjach i zakładamy,
że przynajmniej na tym etapie programowanie wydaje Ci się kuszące,
to możemy zejść odrobinę głębiej w naszych rozważaniach.
Szczególnie że programowanie i IT – to bardzo szerokie dziedziny wiedzy.
I tutaj przynajmniej wstępnie warto zastanowić się, w którym kierunku chcemy iść dalej.
Czy będzie to np.
- implementacja algorytmów,
- czy może bardziej ciągnie Cię do rozmowy z klientem,
- czy może też do pracy z grafiką?
Możliwości jest naprawdę sporo. 👇
Dziedziny programowania
Zapoznaj się z różnymi dziedzinami programowania, np.
- robieniem stron internetowych,
- aplikacjami mobilnymi,
- data science, AI/sztuczną inteligencją,
- grami
- itd.
Jak zrobić to w praktyce?
Wpisujesz w google i/lub na YouTube np. „jak zrobić stronę internetową” – i czytasz, oglądasz, analizujesz…
Chcesz zostać programistą?
To musisz nauczyć się jak szukać informacji!
➡ ZOBACZ 👉: Jak skutecznie szukać informacji w Google!
Etap 5. Twoja przyszła specjalizacja
Dzień 4
Specjalizacja
Wstępnie wybierz specjalizację, która najbardziej Cię interesuje i zgadza się z Twoimi celami zawodowymi.
- Pamiętaj, to nie musi być Twoja ostateczna decyzja i później zawsze można ją zmienić lub rozszerzyć.
- Tutaj warto zacząć od czegoś prostszego, nawet jeżeli mamy ambicję na coś więcej.
- Przykładowo, nawet jeżeli za kilka lat widzimy się jako fullstack developer,
to warto zacząć od jednej specjalizacji np. backendu i dopiero później to rozszerzyć.
Backend
W ramach tego materiału zajmujemy się przede wszystkim planem jak zostać programistą
– natomiast kompletny materiał dotyczący backend’u znajdziesz poniżej.
➡ ZOBACZ 👉: Backend – czy nadajesz się na backend developera?
Dzień 5
Dziś wybierzemy Twój pierwszy główny język programowania.
To ważna decyzja – chociaż nie demonizowałbym tego…
Ja oraz wielu innych programistów znamy więcej niż jeden język programowania.
Swoją pierwszą pracę znalazłem programując w PHP, a obecnie specjalizuję się w Java.
UWAGA:
Mimo że doświadczeni programiści znają wiele różnych języków programowania,
to zaczynając swoją przygodę z programowaniem – lepiej jest skupić się tylko na jednym wybranym języku.
Najlepiej na ten wybór poświęcić max tydzień.
Koniecznie zapoznaj się z poniższymi pytaniami – pomogą Ci one podjąć świadomą decyzję.
Jak wybrać pierwszy język programowania?
- Dobierz język do Twoich potrzeb (backend, frontend, gry, mobile itp.)
- Patrz na trendy i unikaj prehistorii
- Miej na uwadze swoje finanse
- Język to nie tylko pętle i if’y !!
Więcej pytań oraz ich opracowanie znajdziesz w poniższym materiale. 👇
➡ ZOBACZ 👉:
10 kroków – Jak wybrać język programowania?
Żeby dobrze się bawić, dobrze zarabiać i nie popaść w paranoję…
- Popularność
- Stabilność
- Szeroki dostęp do bibliotek i frameworków, liczne integracje
- Wsparcie społeczności
- Wsparcie dużych korporacji
- Uniwersalność
- Zadowolenie osób, które wybrały ten język
- Ogromna liczba dostępnych projektów
- Zarobki
➡ ZOBACZ 👉: Dlaczego warto uczyć się Javy – dyskusja + live coding
Etap 6. Nauka podstaw składni języka programowania
Dzień 6
Wczoraj był trudny dzień – dużo decyzji. 🤯
Dziś też będzie ciekawie! 😀
Dziś zaczniemy prawdziwe – praktyczne programowanie!
Twoje zadanie na dziś to:
- Napisz swoją pierwszą aplikację w Twoim wybranym języku programowania.
Na teraz to nie musi być coś wielkiego – rozbudujemy to później.
Ważne, by zacząć.
Pamiętaj – by bawić się kodem! 😜
To naprawdę ważne.
Im lepiej się przy tym bawisz, im więcej próbujesz i kombinujesz,
tym masz większe szanse, że zostaniesz dobrym programistą i będzie to dla Ciebie przyjemne.
➡ ZOBACZ 👉:
Jak napisać swój pierwszy program Java
Nie chcesz wszystkiego robić ręcznie? A masz jeszcze trochę sił na naukę?
To koniecznie zainteresuj się – zintegrowanym środowiskiem programistycznym.
To jedno z podstawowych narzędzi każdego programisty i będzie nam towarzyszyło już do końca naszej przygody.
➡ ZOBACZ 👉:
IDE – Zintegrowane środowisko programistyczne | Kurs Java
Etap 7. Długofalowe podejście
Dzień 7
Nauka programowania to nie sprint
– nie nauczysz się tego w miesiąc, a tym bardziej w tydzień…
Dlatego trzeba równomiernie rozłożyć siły,
uwzględnić nasze słabości, trudniejsze momenty i WOLNE!
Dlatego, 7 dnia trochę odpoczniemy! 😀
Idź na spacer,
spędź trochę czasu z rodziną,
zrób coś, co sprawia Ci przyjemność!
To naprawdę ważne
– uczymy się przecież programowania, by zmienić coś w naszym życiu. By było nam lepiej!
A jaki jest najlepszy sposób,
by odpocząć i jednocześnie nie wypaść z rytmu?
Oczywiście słuchanie podcastów! 🗣🎧
Tak, tak – koniecznie o programowaniu! 😅
Tutaj zapraszam Cię do mojego podcastu o programowaniu 🚀
➡ ZOBACZ 👉: Podcast – SprawnyProgramista.pl
Dzień 8
Dziś z nowymi pokładami energii, ⚡🤩🔋🤸♂️
kontynuujemy naukę podstaw składni Twojego języka programowania.
To już nie są przelewki!
To już jest prawdziwe programowanie.
Czujesz to? 😎😎
Więcej podobnych materiałów znajdziesz tutaj.
➡ ZOBACZ 👉: Kurs Java | Darmowy Kurs Programowania w Javie
Przykładowe aplikacje do napisania:
- Prosty kalkulator matematyczny
- Policz średnią wieku członków Twojej rodziny
- Policz ile lat zostało Ci jeszcze do emerytury. 🙂
Albo wersja bardziej optymistyczna – ile dni zostało do wakacji/weekendu/świąt itp.
Etap 8. Warsztat początkującego programisty
Dzień 9
Dzisiejszy dzień poświęcimy na dopracowanie tego co udało Ci się do tej pory osiągnąć.
To był naprawdę kawał niezłej roboty.
Możesz być z tego dumny!
Zadania na dziś:
- Poczytaj trochę o dobrych praktykach programistycznych
- O jakości kodu, o clean code
- Oraz koniecznie
– wypróbuj nową wiedzę w praktyce na swoim kodzie!
➡ ZOBACZ 👉: Komentarze i samodokumentujący się kod
Dzień 10
Twoja aplikacja rośnie.
Jest coraz więcej kodu – a co za tym idzie, coraz trudniej się w niej odnaleźć…
Dziś naucz się korzystać z funkcji
oraz wydziel ze swojego kodu powtarzające się fragmenty.
Dzień 11
Dzisiaj czas na pętle! ➿➿➿
Pętle są jednym z podstawowych narzędzi ⚒️ wykorzystywanych przez programistę.
Dzięki nim można wywołać określoną funkcjonalność podaną ilość razy, zamiast za każdym razem wywoływać ją ręcznie.
Przykładowo, zamiast wypisywać kolejno dni tygodnia w 7 instrukcjach, możemy wykorzystać do tego pętlę.
W przypadku tygodnia mamy tylko 7 instrukcji,
ale gdybyśmy chcieli wyświetlić dni z miesiąca, roku albo nawet kilku lat?
W takich sytuacjach pętle okazują się niezrównane!
Zadania na dziś:
- Wyświetl na konsoli wszystkie liczby parzyste z przedziału od 0 do 1000!
- Zaimplementuj grę FizzBuzz.
➡ ZOBACZ 👉: Pętla (for, while, do while, foreach) pętle | Kurs Java
➡ ZOBACZ 👉: Co to jest gra FizzBuzz i jak wykorzystać ją podczas rozmowy kwalifikacyjne
Dzień 12
Dziś ważny dzień.
Dziś poznamy struktury danych 👇
Zadanie na dziś:
- Stwórz tablicę przechowującą dni tygodnia i wyświetl ją w pętli.
Dzień 13 🐈⬛
Dziś rozpocznij naukę
o podstawach programowania obiektowego: klasach, obiektach, dziedziczeniu itp.
Zadanie na dziś:
- Stwórz klasę Person zawierającą podstawowe informacje o danej osobie jak wiek, imię i nazwisko
– a następnie stwórz tablicę obiektów Person przechowującą informacje o wszystkich członkach Twojej rodziny! 😲😱
➡ ZOBACZ 👉: Programowanie obiektowe – Object Oriented Programming (OOP)
Dzień 14
OK To już drugi tydzień Twojej nauki programowania! ‼️‼️WOW.
Naprawdę OGROMNE gratulacje! 🥳
Dziś odrobina odpoczynku,
żeby wszystko ułożyło się w głowie
i by złapać trochę świeżości przed jutrzejszymi wyzwaniami 🙂
Co powiesz na ciekawą książkę programistyczną? 👇
➡ ZOBACZ 👉: Programowanie – książki
➡ ZOBACZ 👉: Czy warto uczyć się programowania z książek?
Etap 9. Praktyka, praktyka i praktyka…
Dzień 15
Praktyka, praktyka i jeszcze raz – praktyka!
Im więcej piszesz kodu, tym lepiej go zrozumiesz.
Tutaj nie ma drogi na skróty – trzeba pisać kod!
Nowe struktury danych do poznania:
Dzień 16
Dziś czas na obsługę wyjątków oraz debugowanie kodu.
Wiesz jak wykonywany jest kod Twojej aplikacji?
Trochę jak pociąg 🙂
Linijka, po linijce.
Metoda, po metodzie… 🚂🚂🚊🚝🚅
Step by step.
Dzięki pomocy debugera:
- możesz dosłownie zatrzymać wykonywanie Twojego kodu w locie,
- podejrzeć wartości poszczególnych zmiennych,
- a następnie przejść jeden mały krok dalej np. do kolejnej iteracji pętli.
Jest to niezastąpione narzędzie podczas analizowania, co tak naprawdę robi kod aplikacji!
Nie zgadujesz, nie domyślasz się – tylko sprawdzasz!
Debugowanie aplikacji – to proces związany z naprawą błędów w kodzie,
bo najczęściej wykonujemy te kroki, gdy szukamy jakiegoś błędu.
➡ ZOBACZ 👉: Debugowanie kodu
Dzień 17
Dziś zacznij uczyć się o obsłudze plików i sprawdź jak twój wybrany język radzi sobie z obsługą komunikacji z użytkownikiem. 😀
Zadania na dziś:
- Z poziomu Twojej aplikacji zapisz 10 liczb pseudolosowych do pliku na Twoim dysku.
- Napisz drugi fragment kodu, który teraz odczyta zawartość tego pliku i posortuje te liczby!
Coś nie działa i nie wiesz co? 😲😱
Spokojnie, wiesz już przecież jak korzystać z debuggera 🙂
➡ ZOBACZ 👉: Sortowanie | Omówienie, implementacja algorytmów sortowania
Dzień 18
Praktyka! Pamiętasz? 🙂
Napisz kilka programów, które otwierają, edytują i zapisują pliki.
Możesz np. rozbudować pierwsze aplikacje o obsługę plików
– czyli informacje o Twoich członkach rodziny pobrać z pliku txt.
Dzień 19
Świat nie zawsze jest bezpieczny i kolorowy.
A użytkownicy naszych aplikacji – nie zawsze są przyjaźni…
Jeżeli piszesz kod i pobierasz informacje od użytkownika
– to ZAWSZE musisz je weryfikować!
Wyobraź sobie teraz taką sytuację:
- chcesz pobrać z Twojego pliku 10 liczb całkowitych (jedno z naszych poprzednich zadań)
- ale! Ku Twojemu zaskoczeniu!
Zamiast tych liczb znajdziesz tam ciągi znaków!
Jak zachowa się Twoja aplikacja? 🤔
Takie zachowanie może być przypadkowe – ale niestety czasem też celowe.
Dlatego, jako programiści musimy przygotować nasze aplikacje na wszelkie ewentualności.
Zadania na dziś:
- Poczytaj o walidacji danych.
- Popraw kod w swoich aplikacjach o obsługę sytuacji wyjątkowych.
Dzień 20
Język programowania to nie tylko pętle i if’y!
Zazwyczaj do dyspozycji mamy naprawdę dużo różnych bibliotek, które ułatwiają naszą codzienną pracę.
Dlatego dzisiejszy dzień przeznacz na naukę
o bibliotekach i frameworkach dostępnych dla twojego języka.
➡ ZOBACZ 👉: Spring oraz Spring Boot – Czym są? Oraz dlaczego MUSIMY je znać? 👻
Etap 10. Czas na komercyjne programowanie
Dzień 21
Dziś kończymy 3 tydzień naszych zmagań.
Nie wiem, czy zauważyłeś
– ale powoli wkraczamy w rewiry typowego komercyjnego programowania!
Pierwsza praca jako programista już coraz bliżej. 😍
➡ ZOBACZ 👉: 12 błędów przez które nie dostałem pierwszej pracy
➡ ZOBACZ 👉: CV Programisty – Twojego CV nikt nie czyta! Sprawdzone sposoby na zhakowanie rekrutacji i CV!
Jeżeli czujesz, że już czas –
naucz się o bazach danych i jak twój język łączy się z bazami danych.
To dość wymagający temat, ale niezwykle ważny.
Ostatecznie trudno dziś spotkań aplikację, która nie wykorzystuje bazy danych – gdzieś przecież te informacje trzeba przechowywać 🙂
➡ ZOBACZ 👉: Bazy Danych – SQL
Dzień 22
Praktyka! 🙂
Napisz program, który łączy się z bazą danych i wykonuje podstawowe operacje CRUD (Create, Read, Update, Delete).
Możesz np. zrobić prosty notatnik.
Dzień 23
Naucz się o API i jak twój język może komunikować się z API (ang. Application Programming Interface).
Zadanie na dziś:
- Napisz program, który komunikuje się z zewnętrznym API.
Możesz np. wykorzystać publiczne API Narodowego Banku Polskiego do pobierania informacji o kursach walutowych.
Dzień 24
Kontynuujemy przygodę z API.
Tym razem napisz własną aplikację, która udostępnia API typu REST dla zewnętrznego świata.
➡ ZOBACZ 👉: Spring Boot i wstrzykiwanie zależności – szybkie wprowadzenie
➡ ZOBACZ 👉: Idempotent – idempotentny, czyli jaki?
Etap 11. Twoje portfolio i jakość kodu!
Dzień 25
Zacznij uczyć się o Git i kontrolowaniu wersji kodu.
➡ ZOBACZ 👉: Git tutorial | stash, rebase, commit, merge, checkout, push i clone
Dzień 26
Załóż konto na GitHubie, naucz się podstawowych komend Git i opublikuj swój pierwszy projekt na GitHubie.
➡ ZOBACZ 👉: GitHub tutorial | GitHub desktop, GitHub actions
Dzień 27
Przejrzyj swój kod i naucz się podstaw refaktoryzacji.
Czy możesz usprawnić swoje projekty?
Praktyka! Zastosuj to, czego nauczyłeś się o refaktoryzacji, do swoich projektów.
Dzień 28
Dziś rozpocznij naukę o testach i testowaniu Twojego kodu.
Tak, programiści też testują swój kod 🙂
Nie tylko testerzy się tym zajmują.
Pisanie testów i dbanie o jakość kodu to taki papierek lakmusowy, którym często sprawdzani są początkujący developerzy…
- W pierwszym kroku zazwyczaj zajmujemy się tym, by nasz kod „zadziałał”.
- Gdy jednak piszesz testy, to znaczy, że jesteś już na całkowicie innym poziomie! 🚀
Dlatego też możesz spodziewać się pytań właśnie o testy i zapewnienie jakości na Twojej rozmowie rekrutacyjnej.
Warto się do tego przygotować
➡ ZOBACZ 👉: Testowanie oprogramowania
➡ ZOBACZ 👉: CV Programisty – Twojego CV nikt nie czyta! Sprawdzone sposoby na zhakowanie rekrutacji i CV!
Dzień 29
Dziś dopisz więcej testów do Twojego kodu.
Jestem przekonany, że przy okazji uda Ci się jeszcze coś w nim poprawić 🙂
➡ ZOBACZ 👉: JUnit – Testy jednostkowe » tutorial dla bystrzaków (testy jednostkowe Java w JUnit 5)
Kod gotowy?
To koniecznie przejdź przez proces code review! 👇
➡ ZOBACZ 👉: Code Review – Nie wiesz jak pisać lepszy kod? Skup się na code review (przegląd kodu)!
Dzień 30
Uff! 😀
Dzisiejszy dzień spędź na przeglądaniu tego, czego się nauczyłeś, i na identyfikacji obszarów, które wymagają dalszej nauki.
To ostatni dzień naszego wyzwania.
Ale czy ostatni dzień Twojej przygody?
O nie – zdecydowanie NIE!
Tak naprawdę to dopiero początek! 🚀🚀
Każdy nowy dzień w IT
to niezapomniana przygoda i możliwość dalszego rozwoju.
Masz już podstawowe narzędzia, wiesz jak to wygląda w praktyce.
Za Tobą też kawał – naprawdę niezłej pracy.
OGROMNE gratulacje! 🔥
Jako kolejne kroki:
- Utwórz plan na następny miesiąc nauki.
- Dołącz do naszych społeczności i kontynuuj naukę w najlepszym towarzystwie! 🤝
Zapraszam 👇
To co tutaj widzisz to tylko mały wstęp do materiałów,
które przygotowaliśmy dla Ciebie w ramach
społeczności KierunekProgramista oraz programu – 100 dni programisty!
Zapraszam 👇
KierunekProgramista.pl/100dni
20+ BONUSOWYCH materiałów z programowania
e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!