Skip to content

Poradnik o tym jak znaleźć pierwszą pracę jako Programista

Notifications You must be signed in to change notification settings

RezixDev/pierwsza-praca-programista

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

Jak znaleźć pierwszą pracę jako Programista

1. Nie umiem nic. Jak zacząć?

Jeżeli nie masz pojęcia o programowaniu, to polecam robić poradniki na YouTube.

Moim zdaniem najlepszy sposób jest taki: obejrzeć 2 poradniki 10-20 minut (razem 20/40 minut) i na podstawie tej wiedzy stworzyć coś własnego.

Tym sposobem unikniemy problemu, że uczymy się samej teorii, której szybko zapomnimy.

Zacznijmy od HTMLa.

Jeżeli nie umiesz nic, to HTML wydaje mi się być dobrą opcją. Na początek bym unikał tutoriali gdzie ktoś opisuje każdą funkcję z osobna. Lepsze wydaje mi się na początek oglądanie tutoriali gdzie ktoś pisze kod i go komentuje, co robi i jakie funkcje kryją się za danym kodem:

To samo z CSSem. I potem JSem.

Musicie sobie wyobrazić że...

...każdy element kodu, którego się uczycie, czy to funkcja, czy Block-HTML jest jak klocek Lego. Im więcej umiecie (im więcej klocków Lego macie) tym łatwiej jest budować bardziej skomplikowane struktury kodu.

HTML, CSS i JS

  • HTML jest szkieletem strony.
  • CSS jest designem
  • HTML jest choinką. CSS to ozdoby.
  • A JS... światełkami.

W sensie jak dacie na choinkę światełka to jakoś trzeba nimi sterować. No i za sterowanie tymi światełkami odpowiada JS.

JSem mógłbyś włączyć i wyłączyć światełka. Zmienić kolory, zmienić czas ich świecenia się.

Niech to będzie twój pierwszy challange. Zrób choinkę. Szkielet HTML to nazwy i klasy. CSSem dajesz kolory i ozdoby. Przy pomocy JSa możesz tą choinkę zanimować. Sterowanie światełkami choinki może się odbyć przy pomocy przycisków.

Jako IDE możesz użyć

2. Coś tam umiem z tego HTMLa, CSSa i JSa... Co dalej?

Załóż Githuba i naucz się go.

Możesz mieć na początku problemy z terminalem i dodaniu Private Keys .ssh ale myślę, że dasz radę.

Jako użytkownik Maca masz wbudowany terminal w systemie. Jako użytkownik Windowsa polecam gitforwindows:

Naucz się poprawnie nazywać commity!

Dodawaj na niego sukcesywnie swoje pierwsze projekty, pytaj się na Discordzie o code review i pomoc jeżeli masz Problemy z jakąś nieścisłością w kodzie. Na tym świecie istnieje naprawdę wiele pomocnych dusz, którzy chętnie służą pomocą :)

Listę Discordów o programowaniu znajdziesz bez problemu w Google.

Naucz się robić forki i pull requesty.

Chcesz przetestować robienie kontrybucji i chcesz żeby twoja choinka trafiła do Examples?

Zrób commit do projektu :)

3. Naucz się używania REST API

Naucz się używać API. Nie musi to być jakieś bardzo skomplikowane API. Wystarczy, żebyś mógł być w stanie odbierać proste dane przy pomocy REST API.

To ciebie nauczy debugowania i rozwiązywania pierwszych bardziej skomplikowanych problemów.

Między innymi asynchroniczności.

Aby lepiej ten koncept zrozumieć byś mógł na początek stworzyć dwa projekty:

  • projekt gdzie wykorzystujemy jakieś podstawowe API i czekamy na odpowiedź
  • projekt gdzie wykorzystujemy swoje własne API. W tym momencie tworzymy swój własny Frontend jak i Backend.

4. Naucz się TSa

Naucz się TSa. Ja wiem, zwariowanie co nie? Po co mam się teraz uczyć TSa? Nie mogłeś mi go od razu polecić? TS jest moim zdaniem ciutkę trudniejszy w programowaniu. Dochodzi dodatkowo proces kompilacji kodu i instalowania Node.

Zainstaluj teraz Node.js i NPMa:

Jak nie chcesz jeszcze instalować TSa, to zawsze możesz się nim pobawić na TS: Playground:

5. Naucz się używania popularnego Frontendowego Frameworka

Teraz jest kilka dróg rozwoju. Tak jak w Pokemonach pierwszy wybór jest ciężki:

  • Pokemon wodny
  • Ognisty czy może
  • Trawiasty?

Wybór frameworka może być na początku problemem.

Jaki jest najlepszy? To zależy. Każdy ma swoje wady i zalety i swoje własne zastosowania.

Jak się kogoś z fronta spytacie, jaki framework, to w 90% przypadków usłyszycie:

  • nauczyć się Reacta, bądź, nauczyć się Reactowego frameworka.

Z nich będą:

Ja poleciłbym na początek NextJSa, ale nie ma w tym przypadku złotej zasady. Znajdą się osoby, co powiedzą, że dla początkujących NextJS będzie zbyt ciężki i że lepiej uczyć się najpierw Reacta.

Ale nawet oficjalna Dokumentacja Reacta mówi, że lepiej od razu uczyć się wybranego Frameworka. Ja podzielam tą opinię.

6. Wiedzieć jak działają bundlery

Takie jak:

Więcej informacji bundlowaniu w NextJS można znaleźć tutaj.

7. Nauczyć się Tailwinda.

TailwindCSS to takie ułatwienie, które pozwala wam większą kontrolę nad CSSem w projekcie zachować.

No okey. Umiem HTMLa, TSa, wiem jak działa CSS i umiem Tailwinda, umiem też w miarę proste aplikacje w wybranym przeze mnie frameworku pisać. Co dalej?

8. Pisać własne projekty, dzielić się doświadczeniami, udzielać się w open source, pomagać innym w programowaniu.

Znaleźć kilka osób aby stworzyć wspólnie projekt programistyczny. Co ciekawe, moim zdaniem dobre i zdrowe community jest tym co ci najbardziej pomoże Tobie w twojej drodze do znalezienia pracy jako programista.

9. Nauczyć się UI/UX Designu

Nauczyć się Figmy i UI/UX Designu.

Brać inspiracje z:

A darmowe fotki stąd:

Polecam:

10. Nauczyć się pisania testów.

Na podstawie Survey z 2022 roku do najpopularniejszych należą:

11. Nauczyć się pisania Backenda

12. Nauczyć się tematów DevOpsowych (Deploye, Pipeline, CI/CD)

Najlepiej Vercela, to będziecie mogli hostować swoje projekty na Githubie.

Do tego jako bonus można jeszcze nauczyć się:

  • Dockera
  • Kubernetes
  • AWS
  • Terraform

13. Nauczyć się używania Baz Danych

  • MongoDB
  • MySQL
  • PostgreSQL

14. Napisać schludne CV i do CV dołączyć plik PDF z projektami które napisaliście na Githubie.

Ja bym dodał do każdego projektu opis i do każdego projektu jeden screenshot aplikacji. Zdjęcie w CV to jest obowiązek. Zróbcie najlepiej do tego zdjęcia wizytę u fotografa.

Ja bym się ograniczył do max 5 dużych projektów, albo 10 małych. Albo zdrowego miksu 1/2 duże projekty i 2/3 małe.

Pamiętajcie. Wasz Github jest ważniejszą reprezentacją waszej osoby jako programisty, niż podanie o pracę, czy tam CV. W CV możecie nazmyślać, na Githubie już będzie to ciężej.

15. Jak rozmawiać i jak się zachowywać na rozmowie kwalifikacyjnej?

Przede wszystkim być na luzie. Jak wy się będziecie stresować, to prawdopodobnie rekruter też. Kilka razy siedziałem po drugiej stronie stolika i jak kandydat spocony od stresu przychodzi na rozmowę i coś tam duka pod nosem, że umie pisać w TSie patrząc się jednocześnie w stronę stolika, albo szklankę z wodą to w 95% przypadków nie dostanie tej roboty.

Czasem to nie twoje umiejętności techniczne mogą być powodem dostania roboty.

My mieliśmy naprawdę u nas w firmie wielu kandydatów, którzy dużo umieli, ale wiedzieliśmy, że nie odnają się w zespole.

Z drugiej strony mieliśmy kandydatów, którzy przychodzili na rozmowę uśmiechnięci i pełni zapału. Nie umieli wiele, ale byli gotowi się nauczyć tego co potrzeba.

16. Ale Rezix, ja wszystko zrobiłem jak powiedziałeś i ja dalej nie mam pracy!

Zmień taktykę. Naucz się Angulara, albo Vue. Albo idź na testera aplikacji.

Sprawdź: analiza-polskiego-rynku-it

Moja analiza z 23 Lipca 2023 roku pokazała, że na ten czas łatwiej jest znaleźć pracę jako Angular/Vue Developer niż React Developer.

Aktualnie na rynku brakuje testerów i testowanie może być dobrym pomysłem, aby wejść w branżę IT.

17. Co jeszcze mogę się nauczyć, aby zwiększyć swoje szanse na rynku jako programista?

Dla programistów Mid

  • Znajomość zasad DRY, KISS, Solid.
  • Znajomość Design Systemu i Design Tokenów
  • Nauczyć się SCSSa
  • Nauczyć się algorytmów i struktury danych
  • Nauczyć się Accesibility
  • Nauczyć się zasad UI/UX Designu.
  • Nauczyć się Google Lighthouse i optymalizowania performance aplikacji
  • Nauka podstaw SEO, Analytics
  • Umiejętność robienia Code-Review.
  • Znajomość Clean Code

Dla programistów Senior

  • Znajomość prowadzenia projektów (Jira, Scrum, Agile)
  • Wysoka umiejętność komunikacji w zespole (pisemnej jak i słownej)
  • Nauczyć się architektury, Design Patterns i znać jakie istnieją Design Anti-Patterns.
  • Duża znajomość podstaw. Posiadanie pełnego zrozumienia technologii.
  • Wysoka kreatywność i umiejętność znajdowanie błędów w aktualnych sposobach programowania
  • Umiejętność refactoringu
  • Umiejętność rozmowy z klientami i wyceniania projektów programistycznych
  • Umiejętność pisania PoCów (Proof Of Concept)
  • Znajomość podstaw BDD/TDD

About

Poradnik o tym jak znaleźć pierwszą pracę jako Programista

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published