## Zapraszamy do Sealcode!
Aby dołączyć do nas nie trzeba prosić o pozwolenie - wystarczy wykonać poniższe kroki ;)
WARNING: W razie pytań dotyczących poniższych kroków lub **odbywania praktyk zawodowych**, pisz śmiało do @kuba-orlik, na [maila](mailto:kuba.orlik@sealcode.org), telefon (+48 662 842 840), [Matrixa](https://matrix.to/#/@kuba:matriks.chat), lub [Telegrama](https://t.me/kuba_orlik)
Sealcode to przede wszystkim społeczność programistów chcąca się rozwijać w webdevie i wzajemnie się w tym wspierać. Aby stać się częścią Sealcode'u, wystarczy założyć konto na naszym forum. Nie bój się, to jest nowoczesne forum z przystepnym UX:
https://forum.sealcode.org/
Dołącz także do naszych grup za pomocą Matrixa lub Telegrama:
https://hub.sealcode.org/w/sealcode_wiki/matrix-i-telegram/
i zrobione! Witamy w społeczności Sealcode ;)
Aby wdrożyć się w nasz workflow, trzeba:
0. Przedstawić się na forum!
1. uzyskać dostęp do naszego systemu zarządzania taskami;
2. rozważyć dopisanie się do naszego newslettera;
3. dopiąć formalności;
4. poznać nasz stack;
5. postawić sobie środowisko developerskie;
6. przydzielić się do projektu/projektów;
7. wybrać sobie taska;
8. przyswoić treść taska;
9. wykonać taska ;)
Poniżej opiszemy, jak to zrobić :)
Jeżeli masz problem z którymkolwiek z kroków, pisz śmiało na forum! Jeżeli wolisz abyśmy zaczęli od spotkania "ramię w ramię" i pomogli Ci niezdalnie, daj znać mailowo, na Telegramie lub telefonicznie i znajdziemy na to odpowiedni termin :) **Zapraszamy też na [Sealcodingi](https://hub.sealcode.org/w/sealcode_wiki/sealcodingi/)**
# 0. Przedstawienie się na forum
Upewnij się, że masz założone konto na [Forum](https://forum.sealcode.org/);
A następnie napisz kilka słów o sobie :) Załóż nowy wątek z tagiem `#hello-sealcode`. Napisz w nim, czego chcesz się nauczyć, pochwal się tym, co już umiesz, jakie masz hobby. [Tutaj](https://forum.sealcode.org/tag/hello-sealcode) możesz przeczytać, jak przedstawiały się inne osoby dołączające do Sealcode.
# 1. Dostępy
1. Upewnij się, że masz już [założone konto na Sealhubie](https://hub.sealcode.org/w/sealcode_wiki/sealhub/#zak-adanie-konta), oraz że **masz taki sam login i na forum, i na Sealhubie**.
2. Dołącz do naszych grup na Matriksie lub Telegramie:
https://hub.sealcode.org/w/sealcode_wiki/matrix-i-telegram/
3. Napisz do [Kuby Orlika na Telegramie](https://t.me/kuba_orlik) z prośbą o dopisanie do odpowiednich grup. **W wiadomości napisz swój nick na Sealhubie/forum**
Poczekaj na odpowiedź ;)
# 2. Newsletter
Polecam zapisanie się na nasz newsletter:. Piszemy na nim strasznie rzadko (odkąd powstał w 2019 wysłaliśmy na niego **jednego maila**), więc nie bój się o spam. Newsletter służy nam do wysyłania informacji o większych eventach lub naborach do projektów komercyjych. **Zapisanie się jest całkowicie opcjonalne** i można go dokonać za pomocą tego linka:
https://mailing.sealcode.org/subscription/UWHbloGZl
# 3. Formalności.
(Dotyczy w szczególności osób, które chcą zaliczyć praktyki studenckie w Sealcode)
W [tym dokumencie](https://hub.sealcode.org/w/program-mentoringowy/formalnosci/) znajdują się szczegółowe informacje dot. wzoru umowy, sposobu na śledzenie czasu, programu praktyk.
# 4. Poznaj nasz stack
Po prawidłowym ustawieniu dostępów masz uprawnienia do zapoznania się z treścią tego dokumentu:
https://hub.sealcode.org/w/intro-to-our-projects/
Poczytaj o projektach, które rozwijamy wewnętrznie - aby lepiej rozumieć, do czego nawiązujemy w trakcie rozmów o innych, komercyjnych projektach.
W Sealcode można zarobić nie tylko na projektach komercyjnych (zapytaj zespołu, jakie aktualnie komercyjne projekty realizujemy!), ale także na taskach taskach płatnych dotyczących naszych projektów open-source. Listę płatnych tasków możesz znaleźć tutaj:
https://hub.sealcode.org/project/board/115/?filter=7G0hZ8jbJrsw
# 5. Postawienie środowiska deweloperskiego
## System operacyjny
Najmniej problemów sprawi GNU/Linux - polecamy w szczególności dystrybucję [Manjaro](https://hub.sealcode.org/w/sealhub_workflow/narzedzia/manjaro-linux/), ale Ubuntu czy inna w miarę aktualna dystrybucja też będą spoko.
WARNING: EDIT: Windows sprawia więcej problemów, niż się spodziewaliśmy. Zachęcamy do spróbowania [Windows Subsystem fot Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) lub instalacji [Manjaro](https://hub.sealcode.org/w/sealhub_workflow/narzedzia/manjaro-linux/) obok/zamiast windowsa lub w maszynie wirtualnej.
Najnowszy OSX i Windows 10 Pro też dadzą radę, ale nie obejdzie się bez przeszkód. Windows 10 Home odpada, ponieważ nie działa na nim Docker, wymagany do uruchamiania naszych apek. Jeżeli masz tę wersję Windowsa, to musisz albo postawić Linuksa w maszynie wirtualnej, albo zainstalować Linuksa obok Windowsa. Jeżeli nie wiesz, jak to zrobić - zapytaj na forum! Pomożemy ;)
## Phabricator
Phabricator to aplikacja stojąca za stroną, którą właśnie czytasz ;)
Przeklikaj się przez widoczne dla Ciebie opcje i zapoznaj się z układem. Na początku może być przytłaczający, ale z czasem stanie się intuicyjny ;)
Zapoznaj się też z artykułem zalinkowanym poniżej - jest w nim zawarty kluczowy tip pozwalający ograniczyć ilość "spamu" wysyłanego przez Sealhuba:
https://hub.sealcode.org/w/sealhub_workflow/narzedzia/phabricator/
## Klucz SSH
Wykonaj instrukcje z tego tutoriala:
https://hub.sealcode.org/w/sealhub_workflow/narzedzia/klucz-ssh/
## Programy developerskie
Będą potrzebne:
* Przeglądarki internetowe - Firefox (najlepiej [developer edition](https://www.mozilla.org/en-US/firefox/developer/)) i Chromium (albo w ostateczności Chrome)
* edytor kodu dla programistów - Twój ulubiony. Jeżeli nie masz ulubionego, spróbuj [VSCodium](https://github.com/VSCodium/vscodium) (do instalacji VSCodium na Manjaro/arch potrzebne jest [włączenie repozytoriów AUR](https://wiki.manjaro.org/index.php?title=Arch_User_Repository))
* [Prettier](https://hub.sealcode.org/w/sealhub_workflow/narzedzia/prettier/)
* [arcanist](https://hub.sealcode.org/w/sealhub_workflow/linting/)
* [docker oraz docker-compose](https://hub.sealcode.org/w/sealhub_workflow/narzedzia/docker_i_docker-compose/)
* GNU Make (domyślnie zainstalowany na MacOS oraz na GNU/Linux, na Windowsie trzeba go doinstalować za pomocą installera cygwin - http://www.cygwin.com/install.html )
* git (na Windowsie potrzebny jest także Git Bash)
* Node.js - polecamy instalację za pomocą [`nvm`](https://github.com/creationix/nvm) na wspieranych systemach. Na Windowsie można po prostu skorzystać z instalki na stronie https://nodejs.org/en/)
Zainstaluj każdy z nich - w razie problemów z instalacją poproś o pomoc :)
## Notka o `sudo`
Czasem zdarza się, że jakaś komenda rzuca błąd typu `access denied`. Jeżeli ta komenda dotyczy instalacji czegoś globalnie w systemie, to najprawdopodobniej należy użyć `sudo`. Jednak jeżeli dotyczy czegokolwiek innego, to lepiej wstrzymać się z sudo i znaleźć inne rozwiązanie. Jest tak dlatego, że używanie sudo w lokalnym repozytorium może popsuć uprawnienia plików. W razie problemów `access denied` (i jakichkolwiek innych) - pytaj śmiało na forum/telegramie :)
## Piaskownica
Aby oswoić się z używanymi przez nas aktualnie technologiami, sklonuj i uruchom to repo:
https://hub.sealcode.org/diffusion/PLAY/
Po uruchomieniu spróbuj coś pozmieniać w kodzie, popsuć itp :) Ryzyko jest zerowe, a daje to fajną intuicję odnośnie tego, jak rzeczy u nas działają i pomaga też zdiagnozować potencjalne obszary robocze w Twoim środowisku deweloperskim.
# 6. Przydzielenie się do projektów.
Zapoznaj się z listą aktualnych projektów:
https://hub.sealcode.org/project/query/QOuVi6oZQgk6/
Znajdź interesujący Cię projekt - lub kilka! - i dopisz się do niego używając opcji "join project":
{F43900}
{F43902}
Większość z naszych projektów komercyjnych jest za kasę. Aby móc je zobaczyć w Sealhubie, trzeba podpisać NDA (można to załawtić cyfrowo). Napisz do Kuby Orlika, aby to załatwić, jeżeli chcesz brać udział w projektach komercyjnych.
# 7. Wybór taska
Poczytaj o tym, jak działają taski w Sealhubie i jak wybierać sobie taski:
https://hub.sealcode.org/w/sealcode_wiki/maniphest_%28w_sealhubie%29/
Wejdź na stronę projektu, aby wyświetlić listę odblokowanych tasków do wzięcia:
{F43904}
Warto też zobaczyć taski z tagiem "good for training" - lądują tam taski, które w sam raz nadają się na pierwszy task do wykonania, także komercyjne! :) Ich lista jest tutaj: https://hub.sealcode.org/tag/good_for_traning/
Gdy znajdziesz task dla siebie, użyj opcji "Move on Workboard", aby przenieść go do kolumny "doing". To automatycznie przypisze task do Ciebie i sprawi, że nikt inny nie weźmie taska, nad którym Ty już pracujesz.
{F655568}
# 8. Przyswojenie treści taska
Przeczytaj uważnie opis taska, który wybrałeś. Jeżeli nie jest jasne, co należy zrobić - pytaj! Napisz swoje pytania w komentarzu pod taskiem i daj znać na telegramie.
# 9. Wykonywanie taska - Sealhub workflow
Przypisz taska do siebie ("assign/claim") oraz ustaw mu stan na Doing - to sygnał dla innych programistów, że Ty zajmujesz się tym zadaniem.
Zapoznaj się ze [Standardami Sealcode](https://hub.sealcode.org/w/sealhub_workflow/standardy/).
W Sealcode robimy taski w dwóch trybach - Audyt i Review. **W ramach programu mentoringowego będziemy pracować tylko w trybie review**, ale warto dowiedzieć się o nich obu:
https://hub.sealcode.org/w/sealhub_workflow/audyt-i-review/teoria/
https://hub.sealcode.org/w/sealhub_workflow/audyt-i-review/review-workflow/
Sklonuj repozytorium projektu, **przeczytaj plik `README` w nim zawarty** i postępuj wg Review Workflow.
Nad taskami pracujemy gdzie i kiedy chcemy - w domu, w pociągu, w trakcie okienka na uczelni, oraz na tzw. Sealcodingach:
https://hub.sealcode.org/w/sealcode_wiki/sealcodingi/
Powodzenia! 💪