Nauka języków programowania to za mało. Co powinien umieć junior?
Niezależnie od tego, w jakim języku rozpoczynasz naukę programowania, sama znajomość jednego z nich nie wystarczy, żeby dostać pracę. Jest wiele technologii i narzędzi, które powinieneś znać jako junior web developer. W tym artykule przeczytasz o kilku z nich. Poznasz też zakres wiedzy niezbędny dla każdego Juniora.
Git
Jest kilka umiejętności, bez których zawodowy programista nie może się obejść. Jedną z nich jest opanowanie systemu kontroli wersji (VCS). To oprogramowanie, które operuje na repozytoriach – przechowuje wcześniejsze wersje plików i umożliwia łączenie zmian w kodzie, nawet jeśli wykonało je kilkudziesięciu programistów w różnych miejscach na świecie. Dodatkowym plusem VCS jest więc kopia zapasowa kodu na komputerze każdego programisty. Gwarantuje to zabezpieczenie przed utratą pracy, nawet gdyby nie odpowiadał zdalny serwer.
Najpopularniejszym systemem kontroli wersji jest obecnie Git. Działa on w ten sposób, że przechowuje pliki w trzech stanach:
- zmodyfikowany – plik został zmieniony, ale w bazie danych nie wprowadzono zmian,
- śledzony – plik został zmieniony i czeka na zatwierdzenie,
- zatwierdzony – plik został zmieniony i jest przechowywany w bazie danych.
W ten sposób widzimy, jaki jest bieżący stan (migawka) kodu i możemy zarządzać jego historią. Nie potrzebujemy do tego połączenia sieciowego – wszystkie działania wykonujemy lokalnie, na własnym dysku, a następnie zmiany synchronizujemy ze zdalnym repozytorium.
GitHub
Nad projektem może pracować jednocześnie kilka, a nawet kilkadziesiąt osób. W takiej sytuacji należy zadbać o dwie rzeczy. Po pierwsze, by każdy miał dostęp do kodu. Po drugie, by każda zmiana była widoczna dla pozostałych członków zespołu. Tutaj z pomocą przychodzi GitHub – platforma, która oferuje programistom udostępnianie online repozytorium Gitowego.
Dzięki GitHub możemy opublikować swój kod i poprosić innych o sprawdzenie i poprawienie błędów. Nie musimy też zastanawiać się, czy ktoś z zespołu rozwinął projekt – wszystkie zmiany monitorujemy w Gicie. Korzyści dotyczą nie tylko pracy zespołowej. GitHuba z powodzeniem możesz wykorzystać do budowania swojej pozycji na rynku pracy, np. eksponując swoje najlepsze projekty.
Korzystanie z hostingu repozytoriów Gitowych jest przy tym łatwe w obsłudze:
- Jeśli chcesz udostępnić swój pierwszy projekt, zarejestruj się online na stronie GitHub. Darmowe konto oferuje możliwość wgrywania repozytoriów publicznych, natomiast płatne również prywatnych. Osoby, które studiują (nie tylko kierunki związane z IT) mogą uzyskać za darmo rozszerzoną wersję nie tylko GitHuba, ale również wielu innych narzędzi. Więcej szczegółów tutaj.
- Zainstaluj Git na swoim komputerze.
- Stwórz repozytorium na GitHubie – nazwij folder i dodaj krótki opis projektu.
- Dodaj do niego pliki z komputera (pamiętaj o zatwierdzeniu zmian w kodzie i dodaniu komentarzy, na czym one polegały).
Slack
W każdym zespole kluczowa jest komunikacja. Dlatego mail czy Facebook zdecydowanie się nie sprawdzą. Jednym z najlepszych i najpopularniejszych narzędzi do komunikacji wewnątrz firmy jest Slack. To aplikacja, w której można tworzyć otwarte i prywatne kanały, a każdy z nich ma określony temat np. #nazwa_projektu, #offtop, #ciekawe_linki. Korzystając ze Slacka można również udostępniać pliki i robić ankiety. Możliwości jest mnóstwo – Slack ma wiele rozszerzeń i można go połączyć z wieloma aplikacjami np. Google Drive, Google Calendar, Microsoft OneDrive, Trello, Doodle, Adobe Creative Cloud, Skype, Evernote czy Pocket.
Ciekawym dodatkiem jest @must-read – umieszczamy ten znacznik w poście, który dane osoby muszą przeczytać. Wystarczy na początku wiadomości dodać @must-read i otagować konkretne osoby lub @channel, jeśli dotyczy to wszystkich na kanale. Po wysłaniu wiadomości pojawi się znaczek reakcji ✔️, który oznaczone osoby muszą kliknąć, gdy przeczytają post. Dodatkowo osoby, do których skierowana jest taka wiadomość, dostaną powiadomienie o nowym wpisie.
Spis treści
SCRUM/Agile
Zarządzanie projektami w każdej firmie wygląda trochę inaczej, jednak są pewne systemy, według których działają. Najpopularniejszą metodą działania wśród projektów IT jest Agile, natomiast do organizacji zadań wykorzystuje się framework Scrum. Znajomość tego stylu zarządzania projektami ułatwia wdrożenie się w pracę zespołu, a co za tym idzie sprawniejszą pracę.
Czym dokładnie jest Agile? To nic innego jak zbiór metod i praktyk, które umożliwiają elastyczne zarządzanie projektami. Jego podstawą jest tzw. Agile Manifesto, czyli 4 zasady, według których:
- ludzie i interakcje są ważniejsze od procesów i narzędzi,
- działające oprogramowanie jest ważniejsze od szczegółowej dokumentacji,
- współpraca z klientem jest ważniejsza od negocjacji umów,
- reagowanie na zmiany jest ważniejsze od realizacji założonego planu.
Twórcy Agile stworzyli także 12 Zasad Zwinnego Tworzenia Oprogramowania, które znajdziecie tutaj. Są one dość ogólne, dlatego stanowią punkt wyjścia do tworzenia frameworków realizacji projektów. Jednym z najpopularniejszych jest wspomniany wcześniej Scrum.
W Scrumie najistotniejsze jest podejście do tworzenia produktu – dostarczanie gotowego rozwiązania w małych przyrostach. Pozwala to na zaprezentowanie gotowej części produktu w dowolnym momencie oraz zebranie feedbacku od klienta czy użytkowników. Ważny jest też określony proces planowania i wdrażania rozwiązań. Składa się on z kilku etapów:
- Pierwszym z nich jest tworzenie backlogu, czyli zbioru pojedynczych działań (tasks) i zbiorów działań (stories) do wykonania.
- Następnie podczas Sprint Planning Meeting (planning) wybiera się tasks i stories, które będą realizowane w ciągu najbliższego sprintu. Dla każdego zadania określa się poziom trudności (tzw. estymacja). Tak opracowane zadania trafiają do Sprint Backlog.
- Zadania ze Sprint Backlogu powinny zostać zrealizowane podczas sprintu, czyli okresu obejmującego od 1 do 4 tygodni. Jego efektem jest oddanie sprawnej wersji produktu.
- Każdy dzień sprintu rozpoczyna tzw. daily. Polega to na tym, że każdy członek zespołu developerskiego odpowiada na pytania: Co zrobiłem od ostatniego daily? Jakie napotkałem problemy? Czy coś mnie blokuje? Co planuję zrobić do kolejnego daily?
- Gotową wersję produktu, stworzoną podczas ostatniego sprintu, prezentuje się klientowi podczas sprint review (demo). Podczas takiego spotkania klient może przekazać swoje sugestie dotyczące kolejnych działań zespołu.
- Zespół omawia przebieg ostatniego sprintu podczas sprint retrospective (retro). Na tym spotkaniu analizuje się, które działania przebiegły pozytywnie, a które negatywnie. Zespół ustala, które zadania należy dopracować w kolejnym sprincie i wyznacza osoby, które się tym zajmą.
JIRA
W każdej porządnej firmie znajdziesz narzędzie do zarządzania projektami. Najpopularniejszym softwarem z tej kategorii wśród projektów IT jest Jira od Atlassiana. To narzędzie, które pomaga całemu zespołowi w planowaniu, monitorowaniu i wdrażaniu projektu. Wykorzystuje się je m.in. do podziału i hierarchizacji zadań, sprawnej komunikacji wewnętrznej czy przechowywania dokumentów (cała historia projektu znajduje się w jednym miejscu).
Korzystając z Jiry, organizujesz pracę w formie tablic, które możesz swobodnie modyfikować. Od Ciebie zależy ich podział na kolumny, ilość zadań i wygląd graficzny. Możesz dodawać taski z różnymi opcjami, a wykorzystując SCRUM – dzielić je na te pozostałe w backlogu oraz sprinty.
Jednym z największych plusów Jiry jest możliwość mobilnego zarządzania projektem – na dowolnym urządzeniu, w każdym miejscu i o każdym czasie. Narzędzie to sprawdza się również przy analizowaniu przepływu pracy w zespole.
To była teoria. Co z praktyką?
Niektóre z tych narzędzi jesteś w stanie wypróbować samemu. Większość jest jednak wykorzystywanych grupowo, co wiąże się z dodatkowymi opłatami za ewentualne szkolenia czy kursy. Taka bariera sprawia, że osoby, które uczą się same w domu, nie są w stanie się przebić i dostać pracę jako junior web developer.
Wzięliśmy to pod uwagę, organizując CodersCamp – największy otwarty kurs programowania webowego. Poza nauką podstaw HTML-a, CSS-a, JavaScriptu oraz Reacta, Reduxa i Node.js pokazujemy, jak korzystać z wyżej opisanych narzędzi. Oswajamy też naszych uczestników z pracą projektową, będą bowiem częścią kilkuosobowego zespołu koordynowanego przez mentora.
W tej chwili trwa rekrutacja do piątej edycji CodersCamp (od 1 do 10 października). Jeśli jesteś zainteresowany praktyczną wiedzą, zajrzyj tutaj.
Zdjęcie główne artykułu pochodzi z unsplash.com.