Programista to uparty samouk dążący do doskonalenia i poszerzania swojej wiedzy
Przewodnik dla Młodszego Programisty. Programowanie to nie tylko pisanie kodu, ale to tak naprawdę rozwiązywanie problemów za pomocą odpowiednich narzędzi i metod. Trzeba zrozumieć problem jaki się rozwiązuje. Istnieje wiele źródeł do nauki takich jak np. https://roadmap.sh/ ale ten przewodnik pomógł już kilku osobom i może pomoże też Tobie. Poniżej znajduje się opis jak przejść przez kluczowe zagadnienia oraz materiały na drodze do rozwoju jako programista.
Podstawy
0. Jak działa komputer?
Poznaj i zrozum takie pojęcia jak: kod binarny, CPU, RAM. Zacznij od Internetu, YouTube lub książek. Dobrym miejscem jest ten kanał: Wprowadzenie do komputera.
1. Wstęp do programowania
Zrozum podstawowe pojęcia, takie jak instrukcje warunkowe, zmienne, algorytmy, sortowanie. Możesz poczytać w Internecie, YouTube lub kupić książkę. Polecam ten kanał: Wprowadzenie do programowania.
2. Jak najszybciej zacząć
Rozpocznij praktyczne programowanie. Jaki język wybrać? To najczęstsze pytanie jakie dostaję. Nie ma znaczenia, spróbuj kilku języków, jeden po drugim, potestuj, zobacz co Tobie sprawia frajdę. Ważne, aby działać, nawet jeśli nie wszystko działa od razu. Możesz korzystać z przykładowych projektów na Github, Hour of Code, StackOverflow, czy kursów na Udemy, Coursera, lub DataCamp. Moja przygoda zaczęła się od magazynu, który widzisz poniżej. Mama kupowała mi go, gdy byłem w gimnazjum. Bardzo interesowały mnie wtedy komputery – lubiłem o nich czytać, chociaż jeszcze nie programowałem. Pewnego dnia otworzyłem sekcję "Delphi: piszemy dobry program" i tak to się zaczęło. Nie znałem wtedy jeszcze dobrze języka angielskiego, ale gdy zobaczyłem te okienka, przepadłem :) Dlatego teraz proszę – otwórz edytor i zacznij swoją przygodę!

Kluczowe Umiejętności
3. Wzorce projektowe
Wzorce projektowe to fundamenty dobrego programowania. Sprwadź:
Refactoring Guru oraz implementacje w Pythonie: Wzorce projektowe w Python.4. Nauka Git
Naucz się wersjonowania kodu, rozwiązywania konfliktów oraz zarządzania zmianami. Skorzystaj z interaktywnego narzędzia: Learn Git Branching.
5. Jak działa Internet oraz aplikacje webowe?
Dowiedz się, jak działa Internet, oraz o podstawach aplikacji webowych. Świetny kanał wprowadzający znajdziesz tutaj: Jak działa Internet.
6. Praktyka
Napisz kilka stron i gier (bo one łatwo łąpią za serce, bo bardzo szybko widać co budujesz). Dobrym darmowym edytorem jest Visual Studio Code. Phaser to jedna z najczęściej używanych bibliotek do tworzenia gier 2D w JavaScript, dostępna tutaj. A popularna biblioteka do tworzenia gier 2D w Pythonie ze wsparciem dla grafiki, dźwięku oraz sterowania. Dostępna tutaj.
Polecane książki
7. Algorytmy. Ilustrowany przewodnik
Zrozum podstawowe struktury danych i algorytmy, takie jak tablice skrótów, listy powiązane i rekurencja.
Czysty Kod - Robert C. Martin
Podręcznik dobrego programisty. Poznasz zasady, wzorce i praktyki pisania czystego, zrozumiałego kodu.
TDD - Techniki programowania sterowanego testami
Poznaj podstawy testów jednostkowych i metodologii TDD (Test-Driven Development).
Pragmatyczny Programista. Od czeladnika do mistrza
Omówienie odpowiedzialności zawodowej, nowoczesnych technik programowania oraz dobrych praktyk.
Design Patterns: Elements of Reusable Object-Oriented Software
Klasyczne wzorce projektowe, które pozwalają na tworzenie elastycznego i łatwego do utrzymania kodu. Design Patterns na Amazon.
Dodatkowe umiejętności
8. Rozwiązywanie problemów
Zrozum, jak dzielić problem na mniejsze kroki i jak przekształcić myśli na pseudokod czy diagramy. Przykłady znajdziesz na Code.org.
9. Konfiguracja środowiska programistycznego
Dowiedz się, jak skonfigurować podstawowe narzędzia: VS Code, Node.js, i Git.
10. Debugowanie
Naucz się interpretować komunikaty o błędach i używać narzędzi takich jak Chrome DevTools do debugowania.
11. Struktury danych i algorytmy - Trenuj (zaawansowane)
Zgłębiaj bardziej złożone struktury danych, takie jak drzewa, grafy, oraz kolejki priorytetowe. Ucz się zaawansowanych algorytmów, w tym algorytmów wyszukiwania w grafach (BFS, DFS), algorytmów optymalizacyjnych (np. Dijkstra, A*), oraz technik sortowania o wyższej wydajności.
12. Bazy danych
Naucz się podstaw SQL oraz różnic między bazami relacyjnymi i nierelacyjnymi. Zacznij tutaj.
13. API i RESTful Services
Poznaj, jak działają API i zasady REST. Spróbuj swoich sił w Postmanie.
Umiejętności miękkie i rozwój Kariery
14. Umiejętności miękkie dla programisty
Komunikacja i zarządzanie czasem to kluczowe umiejętności. Znajdź czas na ich rozwój. Jedna z bardziej interesujących książek w tym temacie Jak zdobyć przyjaciół i zjednać sobie ludzi
15. Budowanie portfolio
Dowiedz się, jak budować portfolio, prezentować projekty na GitHubie oraz przygotować się do rozmów kwalifikacyjnych. Uzupełnij sekcję "README.md" — to pierwsze, co inni zobaczą. Tutaj jest bardzo fajny tutorial GitHub Portfolio
16. Rozmowa kwalifikacyjna: Typowe pytania i algorytmy
Przygotuj się na pytania techniczne związane z algorytmami i strukturami danych, takie jak listy, stosy, drzewa, oraz problemy sortowania i wyszukiwania. Sprawdź LeetCode, HackerRank oraz Codewars dla ćwiczeń.
17. Pytania dotyczące systemów i architektury
Naucz się podstaw projektowania systemów, skalowalności i architektury aplikacji. W wielu wywiadach programistycznych szczególnie na wyższych stanowiskach to kluczowa wiedza.
Polecane źródła:
- Przewodnik stworzony przez Meta & Google engineers Grokking the System Design Interview
- Jedna z najlepszych książek na rynku (PL) Designing Data-Intensive Applications - Martin Kleppmann18. Rozmowa z rekruterem
Przygotuj odpowiedzi na pytania rekrutacyjne dotyczące doświadczenia, umiejętności miękkich, pracy zespołowej i motywacji. Staraj się jasno opisać swoje projekty, wyzwania oraz sposoby ich rozwiązywania.
Polecane źródła:
- Książka Cracking the Coding Interview - Gayle Laakmann McDowell
- Artykuły online na temat typowych pytań rekrutacyjnych, np. 50 Common Interview Questions.19. Mock interviews
Ćwicz w symulowanych rozmowach kwalifikacyjnych, aby poczuć się pewnie i oswoić z procesem.
Możesz skorzystać z:
- Symulacje technicznych rozmów Pramp
- Rozmowy z doświadczonymi inżynierami Interviewing.io
Podsumowanie
20. Kilka słów ode mnie
Nauka jest procesem ciągłym i wymaga samodyscypliny. Umiejętność korzystania z języka angielskiego jest kluczowa dla dostępu do najlepszych materiałów i projektów.
Pamiętaj, że praktyka czyni mistrza – staraj się rozwiązywać problemy na różne sposoby, by rozwijać różne perspektywy i techniki.
W razie pytań, zapraszam do kontaktu. Nie słuchaj innych, że nie możesz zostać programistą. Słuchaj swojego serca i spróbuj swoich sił w tej ekscytującej przygodzie. Zapraszam też do mojej notatki o superbohaterach programowania, to dobra dawka motywacji: Heroes.
Trzymam kciuki i miłej zabawy - na koniec TOP 10 :)
Top 10 Mantra
10-punktowa mantra dla młodszych programistów
Masz prawo zadawać pytania.
Nie ma czegoś takiego jak złe pytanie.
Nikt nie oczekuje, że będziesz znać każde narzędzie czy technologię.
Nigdy nie zobowiązuj się ponad swoje możliwości.
Pamiętaj, dlaczego zacząłeś/zaczęłaś zajmować się programowaniem.
Mówienie "NIE" jest w porządku.
Pamiętaj - najlepsi programiści też kiedyś byli juniorami.
Bądź dumny/dumna z postępów, które robisz.
Traktuj błędy w kodzie jako okazje do nauki i rozwoju.
Sam/a jesteś odpowiedzialny/a za swoją naukę.- Poza tym, zawsze możesz do mnie napisać lub wskoczyć na call:
- hello@lsudo.com
- Jump on a call
Poniżej jeden z feedbacków jakie otrzymałem:
