You are on page 1of 38

Twój pierwszy krok do branży IT

Zobacz nasz przewodnik po branży IT, z którego dowiesz się:


→→ Dlaczego branża IT jest wyjątkowa?
→→ Czego możesz się spodziewać w trakcie kursu?
→→ Od czego zacząć przygotowania nad CV i Linkedin?
→→ Jak będzie przebiegać rozmowa rekrutacyjna?
→→ Dostaniesz przydatne wskazówki od naszych absolwentów i rekruterów.

3, 2, 1… START!
1
1 Jet Pack Book

Poznaj rynek IT
IT to branża najbardziej przychylna pracownikowi. Nic dziwnego
– dziś każde urządzenie potrzebuje jakiegoś systemu operacyjnego,
więc pracy jest więcej niż mogących ją wykonywać specjalistów.

Prognozy są naprawdę imponujące!

Do 2020 roku świat odczuje deficyt aż 1 miliona programistów!

Nie inaczej jest w Polsce – pracodawcom stacjonującym w naszym


kraju już teraz brakuje około 50 tysięcy wyspecjalizowanych
w nowych technologiach pracowników. To oznacza deficyt
w niemal 30% firm! Mimo wszelkich starań ta liczba wciąż rośnie.

Technologie informacyjne są powszechnym kierunkiem,


który w swojej ofercie ma już ponad 120 polskich uczelni,
jednak w 2016 roku edukację na nich rozpoczęło zaledwie
26 tys. chętnych. Programiści zdecydowanie częściej uczą się
samodzielnie lub korzystają z szerokiej oferty bootcampów.

W Software Development Academy wierzymy, że właśnie


intensywny kurs to najskuteczniejsze wejście do branży IT.
Już niedługo zaczniesz odczuwać to na własnej skórze. :)

100 000

90 000

70 000
50 000 wakatów

50 000

30 000

2016 2017 2018 2019

wykres podaży i popytu na programistów podaż popyt

50 tys. 30% 1 mln


deficyt pracowników w 2017 deficyt w niemal 30% firm zapotrzebowanie na programistów w 2020 roku
Poznaj rynek IT 2

Słowem od branży IT

Jedną rzeczą jest zrekrutowanie programisty, a inną – utrzymanie


go w firmie. Organizacje prześcigają się w tworzeniu atrakcyjnych
benefitów i przyjaznego miejsca pracy, ale zdecydowanie najdłużej
związują programistów z firmą ciekawe projekty, możliwości
rozwoju zgodne ze swoimi aspiracjami, zespół, w którym czują się
dobrze oraz kompetentny przełożony.
Kamila Ożga, Recruitment Specialist w Jeppesen

Kto 15 lat temu pomyślałby, że oprogramowanie, tak samo jak


w komputerze, będzie potrzebne również w lodówce, zegarku
czy samochodzie? Kto pomyślał, że z wiedzy IT korzystać będzie
zarówno Microsoft, jak i nasze polskie Ministerstwo Zdrowia?
Te elementy w połączeniu z atrakcyjnością rynku polskiego dla
zagranicznych firmy (wyedukowana kadra oraz niższe koszty
prowadzenia biznesu) sprawiają, że brakuje programistów.
Systemy ktoś musi tworzyć, rozwijać, utrzymywać i testować.
Specjalistów w zestawieniu do potrzeb coraz mniej, firmy muszą
zastanawiać się jak ich pozyskać oraz jak.. utrzymać. Stąd cały
wachlarz benefitów :)
Martyna Broda, Jet Pack Manager w SDA

W sektorze IT szczególną uwagę przywiązuje się do warunków


miejsca pracy i utrzymywania work-life balance, w związku z czym
pracownicy mogą spotkać się z różnego rodzaju udogodnieniami
i benefitami pozapłacowymi. W Sapiens nasi specjaliści szczególnie
cenią sobie elastyczną możliwość rozpoczęcia pracy między
7 a 10 rano, dofinansowanie do nauki języka, możliwość korzystania
z technicznych szkoleń, jak również prywatną opiekę medyczną,
pakiet sportowy, owocowe i słodkie przekąski w biurze.
Barbara Łuchniak, Recruitment Specialist
w Sapiens Software Solution

Trudno sobie wyobrazić, by rynek pracownika w branży IT mógł być


jeszcze bardziej korzystny. Firmy prześcigają się z oferowaniu nie
tylko wysokiego wynagrodzenia, ale także różnego typu benefitów.
Opieka medyczna czy karty sportowe do klubów to branżowy stan-
dard. Spotkać można dofinansowania do paliwa, dni owoców lub
warzyw, indywidualne budżety szkoleniowe, finansowanie przepro-
wadzki i wiele innych propozycji, które mają zachęcić kandydata
do pracy w tym miejscu. Warto jednak pamiętać, że powinniśmy się
skupiać przede wszystkim na tym, gdzie najlepiej się rozwiniemy
(projekty, doświadczone zespoły). Wybierajmy miejsca, które
pozwolą nam wykorzystać to, co już umiemy i sprawić, byśmy
byli każdego dnia kompetencyjnie lepsi.
Małgorzata Wasilewska, dyrektor personalny w Yameo
3 Jet Pack Book

Sprawdź kim zostaniesz


po naszym kursie

1. BACK-END DEVELOPER
→→Na tym stanowisku odpowiadasz za systemową część strony
internetowej, aplikacji czy danego systemu.
→→Back-end developer zajmuje się tym, czego nie widzą
użytkownicy – analizą danych, bazami danych oraz importem
i eksportem treści.
→→Java, C#, Ruby, PHP, Python + frameworki (np. Spring, Laravel,
Zend, Symphony, Ruby on Rails).

2.FRONT-END DEVELOPER
→→Na stanowisku front-end developera będziesz odpowiedzialny
za przekucie wizji grafików i projektantów systemów w czytelny,
funkcjonalny kod.
→→Twoim zadaniem będzie tworzenie widocznej dla użytkownika
części strony internetowej, aplikacji czy narzędzia oraz dbanie
o ich responsywność.
→→Chętnie zatrudnia się również front-end developerów
potrafiących obsługiwać programy graficzne
(np. Adobe Photoshop).
→→HTML, CSS, JavaScript + frameworki
(np. Bootstrap, jQuery, Angular, React).

3.FULLSTACK DEVELOPER
→→Fullstack developer to osoba, która płynnie porusza się po
technologiach frontendowych i backendowych projektu.
Może samodzielnie odpowiadać za całą aplikację (tak często
dzieje się w agencjach interaktywnych) lub odpowiadać za
jedną ze stron.
→→Języki oraz frameworki wymagane przy frontendzie
oraz backendzie.

4. MANUALNY TESTER OPROGRAMOWANIA


→→Sprawdza działanie aplikacji ręcznie.
→→Tester manualny wczuwa się w rolę użytkownika.
Sprawdza, czy aplikacja nie zawiera błędów i jest zgodna
z wcześniej przyjętą specyfikacją. Ważna jest umiejętność
pisania dokumentacji, znajomość języków programowania
czy baz danych to duży plus oraz ułatwienie.
Poznaj rynek IT 4

5. AUTOMATYCZNY TESTER OPROGRAMOWANIA


→→Nie wykonuje on manualnych testów, ale sam pisze prosty
program, który zrobi to za niego, automatycznie.
→→Tester automatyczny powinien znać przynajmniej jeden
język programowania, w którym będzie tworzył kod przepro-
wadzający testy. Może to być np. Java, C#, PHP, JavaScript,
C++ czy Python.

6. ANALITYK DANYCH
→→To osoba odpowiedzialna za zarządzanie danymi oraz
ich analizę. Dzięki tym działaniom może wyciągać wnioski,
które mają realny wpływ na rozwój projektu oraz przeciwdzia-
łają zagrożeniom.
→→Pracując na tym stanowisku musisz być cierpliwy, dokładny
i posiadać zdolności analityczne. Znajomość Excela, wybra-
nych technologii oraz matematyczny umysł to podstawa.
W swojej pracy będziesz również korzystał z narzędzi
analitycznych (np. SPSS czy R).

7. IT PROJECT MANAGER
→→Osoba na tym stanowisku łączy predyspozycje do zarządza-
nia zespołem z wiedzą techniczną. Project manager znający
specyfikę pracy zespołu lepiej rozumie jego potrzeby i potrafi
odpowiednio rozdysponować zadania.
→→IT Project manager jest również łącznikiem między klientem
i światem IT, dlatego tak ważne jest, by miał pojęcie o stoso-
wanych przez jego zespół technologiach.
→→Zdolności komunikacyjne oraz organizacyjne, analityczny
umysł, znajomość branży IT oraz poszczególnych technologii
– te wymagania opisują stanowisko IT project managera.

8. SPECJALISTA HELPDESK
→→To osoba na pierwszej linii wsparcia technicznego. Przyjmuje
zgłoszenia o wadliwości produktu od klientów firmy oraz
prowadzi dokumentację tych problemów. Jest w stanie sam
usunąć niewielkie problemy i usterki systemowe.
→→Specjalista helpdesk musi odnajdywać się w sytuacji
bezpośredniej współpracy z innymi ludźmi. Cierpliwość
oraz opanowanie to bardzo cenione cechy.
→→Na tym stanowisku pomagasz rozwiązywać problemy,
niezbędna jest więc wiedza z zakresu informatyki oraz stoso-
wanych w projektach technologii.
5 Jet Pack Book

Dzień z życia pracownika


Zastanawiasz się, jak wygląda praca w branży IT?
Nasi absolwenci opowiadają o swoich spostrzeżeniach.
To dobra okazja, by dowiedzieć się, w jakim miejscu
możesz znaleźć się już za kilka miesięcy!

Zatrudnienie znalazłem po trzech miesiącach od rozpoczęcia kursu,


nie mając wcześniej żadnego doświadczenia w IT. Moja praca to
przede wszystkim programowanie w Javie.
Podjąłem ryzykowną decyzję o zmianie branży muszę powiedzieć
– było warto! Rynek pracy dla programistów jest niezwykle chłonny,
warunki zatrudnienia bardzo satysfakcjonujące, a benefity
pokazują, że pracodawcy dbają o swoich pracowników. Prywatna
opieka medyczna, karta sportowa, Pizza Day – to tylko niektóre
z nich. Otaczający mnie ludzie są przyjaźnie nastawieni i pomocni.
Są także entuzjastami programowania tak samo jak ja. :)
Łukasz Michalak, ukończył kurs Java od podstaw

Obecnie pracuję w software housie na stanowisku programisty


iOS, a czasami w miarę potrzeb dołączam do zespołu Androidów.
W moim przypadku przebranżowienie okazało się strzałem
w dziesiątkę. Praca jako programista daje nieograniczone
możliwości rozwoju i po roku pracy nadal cieszę się jak dziecko,
kiedy mogę w swoich projektach skorzystać z nowych technologii
lub wzorców projektowych. Na co dzień praca sprowadza się do
wprowadzania zmian w naszych aplikacjach mobilnych
– począwszy od drobnych poprawek aż po implementowanie
nowych modułów, funkcjonalności i generalne refactoringi.
Pisanie kodu daje ogromną satysfakcję, zwłaszcza, gdy uda się
napisać coś szczególnie eleganckiego. ;)
Daniel Płachta, ukończył kurs Java+Android

Obecnie pracuję w Tooploox – firmie, która stała się moją drugą


rodziną. Dzień zwykle zaczynam od dojazdu do wrocławskiego
biura i porannej kawy. Pracuję na pełen etat, więc przez osiem
godzin. Mam fantastyczny zespół, który rozumie, co to znaczy
junior - pomagają mi w nauce, dają liczne wskazówki, sprawdza-
ją i opisują mój kod jeśli mają jakieś uwagi. Praca jest wymaga-
jąca, bo muszę (i chcę) ciągle uczyć się czegoś nowego, ale jej
warunki to głównie komfort i wygoda (ach, elastyczne godziny
i praca zdalna!). Programujemy w Kotlinie na Androida. Firma
dużo w nas inwestuje: szkolenia, wyjazdy, konferencje oraz nasze
wewnętrzne eventy – jest w czym wybierać.
Adrian Borysionek, ukończył kurs Java + Android
Poznaj rynek IT 6

Pracuję w międzynarodowej korporacji jako Junior Java


Developer. Moja praca polega głównie na rozwijaniu aplikacji
dla zewnętrznego klienta. Przekłada się to na robienie zadań,
które są mi przydzielane adekwatnie do umiejętności. Kiedy mam
z czymś problem, mogę zwrócić się do każdego. Zawsze dostaję
wyczerpującą odpowiedź i pomoc. Oczywiście wspólne wyjścia
na kawę, lunche czy codzienne śmieszkowanie są uzupełnieniem
całości, co sprawia, że czuję się tam po prostu dobrze. :) Nie muszę
się też spinać, że nie zdążę do pracy na 8:00. Fajną sprawą jest też
elastyczny czas pracy. Nie denerwuję się z rana, że się spóźnię.
Jak jest korek, to zamiast się wkurzać i kombinować, puszczam
ulubioną składankę i zmierzam powoli do pracy.

Wiem, że w IT nie spotkam się z sytuacją, że potrafię już większość


i w zasadzie następnego dnia nic nowego mnie nie czeka.
Kiedy pomyślę, że będę pracować jakieś 40 lat jako programista
to nasuwa mi się – „tyle fajnych tematów do poznania,
a tak mało czasu..”

A benefity? Multisport, prywatna opieka medyczna, kawa, herbata,


integracje, spotkania, owoce itd. Aż chce się pracować!

Joanna Murawska, ukończyła kurs Frontend Developer


+ Java OCA

Pracuję w firmie Sii realizując projekt farmaceutyczny dla Roche.


W obecnej chwili moje zadanie polega w dalszym ciągu na nauce.
Poznaję utrzymywaną przez zespół aplikacje i z czasem otrzymuję
coraz trudniejsze zadania. Praca polega również na przyswajaniu
wiedzy teoretycznej z zakresu języka Java oraz wykorzystywanych
frameworków. W projekcie uczestniczy wiele osób nie tylko
z Polski, zatem jest to doskonała okazja, aby sprawdzić się
w pracy w środowisku międzynarodowym. Wszystkie dodatkowe
przejawy i chęci pozyskiwania wiedzy w nowych aspektach są
odbierane bardzo pozytywnie. Niewątpliwą zaletą jest również
elastyczny czas pracy, możliwość pracy praktycznie z każdego
miejsca, a w szczególności z domu. :) Oczywiście poza pracą jest
też trochę miejsca na zabawę. Firma organizuje różnego rodzaju
imprezy oraz eventy, nie ma więc czasu na nudę. Poza tym umoż-
liwia naukę języków, zapewnia kursy i szkolenia z tematyki tech-
nicznej oraz biznesowej, dofinansowuje pasje pracowników oraz
udziela się charytatywnie. Opieka zdrowotna oraz typowe benefity
dla zatrudnionych to raczej nieodłączny standard. Pomimo tego
że Sii należy raczej do największych firm IT w Polsce zdecydowa-
nie nie da się odczuć typowego dla „korpo” klimatu, atmosfera
jest bardzo przyjazna i zachęcająca do rozwoju.
Piotr Andrzejak, ukończył kurs Java+Android
7 Jet Pack Book

W trakcie kursu
W Software Development Academy wspieramy Cię na wielu
płaszczyznach - zarówno w kwestii merytorycznego przygoto-
wania do zawodu, jak i na płaszczyźnie rozwijania kompetencji
miękkich. Otrzymasz od nas niepowtarzalną szansę, by nauczyć
się nowych technologii, popracować nad profesjonalnym CV,
dowiedzieć się, co w LinkedIn piszczy, a nawet wziąć udział
w symulacji rozmowy rekrutacyjnej – IT Interview!

SDA ma genialną Absolvent Success Manager, która nauczy


Was przede wszystkim czego nie robić, pisząc CV. Opowie też
o najczęstszych rekrutacyjnych wpadkach, których można
łatwo uniknąć, oraz o specyfice rekrutacji w IT (uwierzcie mi
– można opowiadać tylko o tym przez trzy dni). Oprócz tego
po kursie dostaliśmy wejściówki na naszą pierwszą programi-
styczną konferencję.
Adrian Borysionek, ukończył kurs Java + Android

Do kursu, który właśnie odbywasz, dostajesz od nas prezent,


Jet Pack, który ułatwi CI wejście do branży IT. Co w ramach niego?

HR CLASS - wideospotkanie z praktykami HR w branży IT.


Konkretne wskazówki do tego jak stworzyć pierwszą CV
dedykowaną IT, gdzie szukać pracy, a także jak odnaleźć się
na rozmowie rekrutacyjnej. 3,5 h praktycznej, skondensowa-
nej wiedzy. Nie ma nudy!

Po ukończeniu kursu można się z pełnym zaufaniem oddać


w ręce specjalistów z SDA. Dostałem wszystkie niezbędne
narzędzia potrzebne do tego, by z impetem wejść na rynek pracy.
Szczególnie chwalę sobie zajęcia HR Class, które otworzyły mi
oczy na pewne prawidłowości, jakimi rządzą się procesy rekru-
tacyjne w obszarze IT. Otrzymałem wskazówki oraz pomoc przy
opracowaniu CV, które dosłownie zachwyca rekruterów,
więc rozsyłam je w świat z dumą. :)
Daniel Płachta, ukończył kurs Java+Android
W trakcie kursu 8

BIBLIOTEKA SDA i inne produkty dedykowane kursantom


i absolwentom. Masz okazję skorzystać z wielu benefitów
– darmowego dostępu do biblioteki SDA, która powiększa się
każdego miesiąca, a także zniżek na certyfikacje Java Oracle!
Baza partnerów programu cały czas rośnie, a wdrażane nowe
benefity, będziesz otrzymywać zarówno w trakcie jak i po
zakończeniu kursu.

Wsparcie ze strony SDA otrzymuję nawet po kursie. Dostęp do


biblioteki SDA, nowinki z branży oraz zwyczajne „Hej, co słychać?”.
Do dziś dzień mam kontakt nie tylko z kursantami z mojej grupy
ale również z pracownikami SDA czy trenerami. Fajnie móc po-
rozmawiać z niedawnym trenerem już jako z „kolegą z branży”
i wymienić się doświadczeniami. SDA umożliwią dotarcie do
ogromnej ilości firm partnerskich, które poszukują programistów.
Wystarczy w zasadzie tylko chcieć i upatrzyć sobie pierwszego
pracodawcę, a kontakt do niego na pewno się znajdzie. Trenerzy
wykazywali się pełnym profesjonalizmem. Wiedza wyniesiona
z kursu oraz możliwość poznania ludzi jest nieoceniona i jak dla
mnie warta każdych pieniędzy.
Piotr Andrzejak, ukończył kurs Java+Android

Ważnym punktem szkolenia będzie także IT INTERVIEW


– symulacja profesjonalnej rozmowy rekrutacyjnej z jednym
z naszych trenerów. Znakomita okazja, aby pokonać stres
i doświadczyć klimatu rekrutacji w IT. :)

Bez słodzenia – gdyby nie SDA i przychylność kilku osób, nie byłoby
mnie w miejscu, w którym jestem. Na początku wbiłam do nich
totalnie z ulicy; z CV, w którym nie było słowa o programowaniu.
Słaby materiał na kursanta, ale zobaczyli moją determinację
i dostałam się na kurs. Było baaaaaaaardzo ciężko! Poszłam na
staż, ale nie dostałam umowy. Odezwałam się do SDA i ku mojemu
zdziwieniu od razu zaczęliśmy rozmawiać o poprawianiu CV, konta
na LinkedIn, Goldenline itd. Nie minął miesiąc, kiedy odezwali się
do mnie proponując uczestnictwo w pewnym projekcie. W skrócie
– kurs z Javy oraz 4 miesiące stażu. BIORĘ! Tym sposobem dostałam
staż w miejscu, w którym pracuję do teraz. Czułam się totalnie
„zaopiekowana” przez SDA od początku naszej współpracy.
Joanna Murawska, ukończyła kurs Frontend Developer
+ Java OCA

Stay open minded i pozostań z nami w kontakcie!


Nasz JetPack rozwijany jest każdego dnia, więc regularnie
dodajemy do niego kolejne BENEFITY! :)
9 Jet Pack Book

Przygotowania do
poszukiwania pracy
check&protips
CV, LinkedIn oraz portfolio są Twoją wizytówką, a zarazem TREŚĆ MOŻEMY PODZIELIĆ NA:
przepustką na rozmowę rekrutacyjną. Dzięki nim Twoje szanse
na dostanie pracy na pewno znacznie wzrosną. Potraktuj ten 1. Zwrot grzecznościowy – formalny (Dzień dobry, Szanowni
moment jako okazję do spojrzenia na swoją kandydaturę Państwo) lub nieformalny (Cześć!). Sprawdź wcześniej,
z dystansu. czy Twoja wiadomość wyląduje u konkretnej osoby – jeśli tak,
użyj w tym miejscu jej imienia.
Zastanów się, jaki jest przebieg Twojej dotychczasowej kariery
i w jakim miejscu chcesz znaleźć się za kilka lat – to istotne, byś 2. Nawiązanie do ogłoszenia – na jakie stanowisko aplikujesz,
miał pomysł na siebie. Określ swoje mocne i słabe strony jak dowiedziałeś się o rekrutacji lub o samej firmie.
– zarówno umiejętności twarde, jak i miękkie. Na koniec pomyśl
po prostu - co chcesz w życiu robić. A potem zacznij to robić ;) 3. Krótką motywację do podjęcia pracy w firmie – maksymal-
nie 3 zdania, w których wyjaśnisz, dlaczego to właśnie Ty jesteś
idealnym kandydatem. Podkreśl swoje umiejętności oraz cechy
charakteru, które będą istotne na danym stanowisku.
SŁOWEM WSTĘPU – MAIL DO REKRUTERA IT
4. Link do portfolio - najpopularniejszym miejscem do prezen-
Wysłanie CV w pustym mailu jest jak prezent bez opakowania. towania kodu jest GitHub
Niby można, ale jakoś nie wypada, prawda? W dodatku rekru-
terzy szybko wyciągają wnioski - jeśli nie chciało Ci się napisać 5. Informacje o załączonych dokumentach – warto o tym
choćby kilku zdań na temat swojej kandydatury, to znaczy, że wspomnieć w treści, aby załącznik nie umknął wzrokowi rekrutera.
nie zależy Ci na pracy w tym miejscu.
6. Wezwanie do działania – końcowe zdanie, które będzie
Co z listem motywacyjnym? W branży IT jest rzadko spotykany miało na celu wywołanie reakcji. W tym przypadku zależy
– często za długi, skopiowany z Internetu, w rezultacie nie wnosi nam, by rekruter otworzył nasze CV, zapoznał się z portfolio,
do kandydatury nic nowego. Jeśli w treści ogłoszenia nie ma a w rezultacie uznał naszą kandydaturę za interesującą
adnotacji o obowiązku dołączenia listu motywacyjnego, i zaprosił nas na spotkanie.
spokojnie wystarczy dobrze napisany e-mail.

CO POWINNO SIĘ ZNALEŹĆ W TWOIM MAILU?

1. Tytuł wiadomości – krótki i treściwy. Powinna pojawić się


w nim nazwa stanowiska, na które aplikujesz. Dobrze, jeśli połą-
czysz je ze swoim imieniem i nazwiskiem.

Przykłady:
→→Odpowiedź na ogłoszenie – Junior Java Developer
→→Ambitny Junior java Developer
→→Imię_Nazwisko – Junior Java Developer

2. Treść – zanim zaczniesz pisać, sprawdź sposób komunikacji


firmy na stronie internetowej i w social mediach. Twój mail powi-
nien być do niego dostosowany - formalny lub nieformalny.
Przygotowania do poszukiwania pracy 10

KLASYCZNA, OFICJALNA

Szanowni Państwo,

w nawiązaniu do oferty pracy Junior Java Developera, którą


znalazłem na portalu praca.pl, zgłaszam chęć uczestnictwa
w procesie rekrutacji.

Jestem ambitną osobą dążącą do rozwoju w zakresie


technologii Java oraz pokrewnych. Szukam firmy, w której
z wysokim zaangażowaniem będę mógł rozwijać projekty
firmowe oraz swoje umiejętności.

Kilka moich projektów, m.in. projekt aplikacji webowej


dla osób niedosłyszących oraz aplikację mobilną dla osób
niepełnosprawnych, mogą Państwo znaleźć pod linkiem:
github.com/imie_nazwisko.

W załączniku przesyłam swoje CV.


Liczę na kontakt z Państwa strony!

Z wyrazami szacunku,

[podpis]

NIEOFICJALNA, DOSTOSOWANIA DO
LUŹNIEJSZEJ KULTURY ORGANIZACJI

Cześć, [nazwa firmy]!

Z ogromną przyjemnością aplikuję na ogłoszenie: [link].


Czytając je mam wrażenie, że to właśnie ja jestem idealną
osobą do Waszego zespołu, a Wasz zespół jest idealny dla
mnie! Chciałbym z Wami pracować.

W załączniku przesyłam swoje CV i liczę na kontakt!

Miłego dnia,

[podpis]
11 Jet Pack Book

CV
Mamy już treść wiadomości, zatem jak powinien wyglądać 2. Chwal się! – na początku kariery w branży IT nie masz jeszcze
załączony do niej dokument? doświadczenia zawodowego. Dlatego pokaż rekruterowi inne
rzeczy, które ukażą Twoje kompetencje – kursy, projekty, umie-
RAZ, DWA, TRZY! jętności techniczne.

1. Streszczaj się! – jedna, dobrze zaplanowana strona wystar- 3. Otwórz się! – niezawodnym formatem, który zadziała na
czy. Informacje powinny zostać przekazane w funkcjonalny każdym komputerze będzie PDF. Pamiętaj również o klauzuli
i estetyczny sposób. Używaj słów kluczy – najlepiej dodatkowo o przetwarzaniu danych osobowych. Poniżej aktualna klauzula
je pogrub. Stwórz szablon w Wordzie lub skorzystaj z gotowego – koniecznie ją wykorzystaj, aby Twoje CV mogło brać udział
narzędzia internetowego (np. Canva). w procesie rekrutacji!

„Co, jeżeli mam 10 lat doświadczenia zawodowego w innej


branży? Nie pisać o tym?”
Wyrażam zgodę na przetwarzanie moich danych
Pisać! :)
osobowych dla potrzeb niezbędnych do realizacji procesu
rekrutacji (zgodnie z Ustawą z dnia 29.08.1997 roku
W takim przypadku możesz pierwszą stronę poświęcić na
o Ochronie Danych Osobowych; tekst jednolity:
informacje dot. IT (dobry opis about, opis kursu, poznanych
Dz. U. 2016 r. poz. 922).
technologii czy prezentacja swojego projektu). Drugą stronę
przeznacz na pozostałe doświadczenia.

MUST HAVE (TO WRITE) O tych punktach nie


możesz zapomnieć – to Twoja esencja!

Jan Kowalski
Nazwa stanowiska Junior Java Developer

Początkujący, pełen zapału programista JAVA, poszukujący możliwości


Podsumowanie do rozwoju. Po ukończonym kursie „Java od Podstaw” ma na swoim koncie
pierwszy projekt, którym chętnie pochwali się na rozmowie rekrutacyjnej.

#Dane #Edukacja
Adres:
02–03/2017 Udział w konkursie „Daj się poznać”
Data

urodzenia:
Telefon:
06/2017–01/2018 Software Development Academy
E-mail:
– Szkolenie Java od podstaw

Kursy z opisem Kurs skupiający się na programowaniu


#Umiejętności w języku Java. Opanowane technologie:
Technologie:
HTML
Projekt końcowy:
CSS
Użyte technologie:
Technologie i ocena JavaScript
jQuery
Kod źródłowy dostępny na moim profilu
Bootstrap
GIT GitHub.
Scrum / Agile
Cechy: #Doświadczenie
Doświadczenie Komunikatywność
Umiejętność pracy w zespole 02/2017 – obecnie
z obowiązkami
#Języki obce 06-09/2016

Języki obce i poziom j. angielski


j. niemiecki
B2
A1
05/2015

#Zainteresowania
taniec 03/2013–05/2015
unihokej
nowe technologie
Zainteresowania gry planszowe
historia mody 01/2012–10/2012

1996–2010

Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych do realizacji procesu rekrutacji
(zgodnie z Ustawą z dnia 29.08.1997 roku o Ochronie Danych Osobowych; tekst jednolity: Dz. U. 2016 r. poz. 922).
Przygotowania do poszukiwania pracy 12

1. Podsumowanie – przedstaw się w dwóch zdaniach. Ciężka POCHWAL SIĘ KURSEM W SDA!
sprawa? Wyobraź sobie, że spotykasz rekrutera z branży IT na
targach. Co mu powiesz? :) Kurs na Software Development Academy to prawdopodobnie
Twoje podstawowe źródło wiedzy na temat programowania.
2. Kursy z opisem – miejsce, dzięki któremu Twoje CV będzie Warto wycisnąć z tego doświadczenia jak najwięcej i przekazać
interesujące nawet mimo braku wykształcenia kierunkowego pracodawcy, jak przebiegła Twoja nauka!
czy doświadczenia komercyjnego. Przekaż informacje o ukoń-
czonych kursach na samej górze CV, tuż pod podsumowaniem. Podaj informacje o kursie:
→→nazwę Akademii,
3. Technologie i ocena – opowiedz, jakie języki i technologie →→nazwę ukończonego kursu,
znasz, czego się uczysz i jak oceniasz swoje umiejętności. →→liczba godzin kursu,
→→zakres technologii poruszanych podczas kursu,
4. Doświadczenie i obowiązki – pokaż, gdzie pracowałeś →→jeżeli możesz pochwalić się projektem – opisz go krótko
i przedstaw, co należało do Twoich obowiązków. Ważne, aby nie i wstaw link do repozytorium.
były to puste hasła, a prawdziwe wartości podkreślające Twoje
mocne strony.

5. Języki obce i poziom – pamiętaj, aby poziom znajomości


każdego z języków określić w uniwersalnej międzynarodowej
skali (A1–C2). To ułatwi weryfikację Twoich umiejętności.

6. Zainteresowania – zadbaj, by Twoje pasje nie brzmiały po-


wtarzalnie. Chcesz napisać, że interesujesz się filmem? Określ,
jakie są Twoje ulubione gatunki i jak wyraża się to zainteresowanie!

IT COURSE
CHECK!
Software Development Academy
JEŚLI ODHACZYSZ WSZYSTKIE PONIŻSZE PUNKTY,
Java Course Attendant
MOŻESZ BYĆ PEWIEN, ŻE TWOJE CV JEST GOTOWE!
2016–2017

Programming cours focused around Nazwa stanowiska;


Java programming language.
Krótkie podsumowanie (2–3 zdania);
Technologies involved:
• HTML – CSS – JavaScript Umiejętności techniczne;
• MySQL
• Java 8SE – Java 7EE Doświadczenie i edukacja wymienione
• Maven
chronologicznie;
• Hibernate 5 – Spring 4 (Core, Data, MVC)

Kurs SDA z krótkim opisem


Course project: (jakich technologii się nauczyłeś?);

Krótki, konkretny opis obowiązków;


Technologies used:
Link do repozytorium (np. GitHub);

Oceniona znajomość języków obcych;

Source code available on my github profile. Klauzula o przetwarzaniu danych osobowych!


13 Jet Pack Book

Linkedin
Profil na tym portalu to podstawa dla wielu rekruterów!
Uzupełnij go jak najbardziej szczegółowo. Pamiętaj o persona-
lizacji linku do niego – domyślnie jest to przypadkowy
ciąg znaków, który warto zastąpić imieniem i nazwiskiem.
Taki estetyczny link możesz zamieścić także w CV.

CO MUSISZ UZUPEŁNIĆ NA SWOIM PROFILU LINKEDIN?

1. Zdjęcie – odpuść sobie zdjęcia z wakacji czy fotografie grupo-


we. Postaw na dobrą jakość i jasne, neutralne tło. Zaprezentuj
się jako osoba otwarta i sympatyczna. Uśmiechnij się lekko
i ubierz schludnie.

2. Nagłówek – jeżeli pozwala Ci na to sytuacja, daj jasny sygnał


rekruterowi o tym, że poszukujesz pracy. Np. „Junior Java
Developer looking for job”.

3. Podsumowanie zawodowe – możesz tutaj w kilku zdaniach


rozwinąć swój nagłówek, napisać o celach, motywacjach i tym,
czym się zajmujesz. Jeżeli masz dobre podsumowanie w CV
– skopiuj je do Linkedin.

4. Doświadczenie – pokaż, co robiłeś dotychczas. Nawet, jeśli


nie było to stanowisko bezpośrednio związane z IT, warto poka-
zać, że nie siedziałeś bezczynnie. Opowiedz o Twoim zakresie
obowiązków, użyj mierzalnych danych.

5. Umiejętności – dodaj kilka umiejętności, które będą kluczo-


we na stanowisku w branży IT – zarówno miękkie, jak i typowo
techniczne. Twoi znajomi, pracodawcy czy trenerzy z kursu SDA
będą mogli potem te informacje potwierdzić.

6. Rekomendacje – tu mogą napisać kilka miłych słów o waszej


współpracy Twoi szefowie, osoby z którymi współpracujesz czy
osoby prowadzący kursy. O rekomendację możesz poprosić
osoby, na których opinii najbardziej Ci zależy.

7. Projekty, nagrody, wolontariat – pokaż, że nie stoisz


w miejscu i pogłębiasz wiedzę. Opowiedz o kursie w Software
Development Academy i pokaż swój projekt końcowy.

8. Opisz kurs – możesz to zrobić w sekcji „edukacja” lub „kursy”. CHECK!


Pamiętaj o wszystkich informacjach ze wzoru (str. 12).
UPEWNIJ SIĘ, ŻE MOŻESZ ODHACZYĆ PONIŻSZE PUNKTY.

Uzupełniony treścią z CV profil;

Dodane umiejętności;

Projekty, które zrealizowałeś;

Budowanie sieci kontaktów – dodaj do niej rekruterów!

Zbieranie referencje – na początek np. od trenerów


lub innych osób z grupy.
14


15 Jet Pack Book
Przygotowanie do poszukiwania pracy 16

Gdzie szukać pracy?


ZROBIŁEŚ JUŻ CV, TWÓJ PROFIL NA LINKEDIN JEST
DOPRACOWANY. CO DALEJ?
Pamiętaj!
1. UŻYWAJ LINKEDIN Nawet, jeżeli teraz rekruter nie ma dla Ciebie oferty pracy,
nie oznacza to, że w przyszłości już nigdy nie podejmiecie
Czy wiesz, że doświadczeni programiści otrzymują 1–2 ofert współpracy.
pracy dziennie za pomocą Linkedin?
Wręcz przeciwnie. Im dłuższe posiadasz doświadczenie, tym
Brzmi świetnie! Jednakże na samym początku kariery to, że większe prawdopodobieństwo na przyszłą współpracę!
masz profil na Linkedinie, niewiele Ci da. Musisz z niego korzy-
stać i nie pozwolić, aby obrósł kurzem. Co możesz jeszcze zrobić?
Po zebraniu dużej grupy rekruterów w Twoich znajomych,
Czym jest Linkedin? To międzynarodowy serwis społecznościo- zwróć na siebie uwagę ciekawym postem.
wy, specjalizujący się w kontaktach zawodowo-biznesowych.
Oznacza to, że możesz znaleźć tam rekruterów, prezesów, Właśnie tak, jak zrobił to Łukasz!
dyrektorów, a nawet założycieli największych marek świata!

Kultura na Linkedin jest bardzo otwarta. W końcu portal służy do


tego, aby nawiązywać relacje biznesowe. Nie bój się więc zapra-
szać do znajomych ludzi z branży, najlepiej rekruterów.

Kroki, jakie powinieneś podjąć:

→→ KROK 1
Wyszukaj rekruterów IT ze swojej miejscowości. Możesz wyszu-
kać ich po frazie „recruiter IT”, „rekruter IT” lub „HR Manager”
z firmy IT.

Pamiętaj! Szukaj szerzej niż tylko w firmach które zajmują się


ściśle IT. W końcu banki, firmy logistyczne i inne, często też mają
swoje wewnętrzne zespoły IT.

→→ KROK 2
Kliknij „Nawiąż kontakt”

Pamiętaj!
Możesz wysłać zaproszenie bez żadnej wiadomości. Miło jednak 2. PORTALE Z OGŁOSZENIAMI O PRACĘ
będzie, gdy klikniesz „dodaj notkę” i napiszesz, czego od rekur-
tera oczekujesz. Oprócz popularnych portali o pracę czy lokalnych serwisów
z ogłoszeniami, warto być na bieżąco z tym, co się dzieje w branży.
Możesz napisać, że zapraszasz go do sieci kontaktów, gdyż
masz nadzieję, że w przyszłości podejmiesz z nim współpracę. Poniższe portale, oprócz transparentnych ogłoszeń o pracę,
Kto wie? :) mają również świetnie prowadzone blogi. Koniecznie obserwuj
całą czwórkę, zarówno na ich stronach internetowych, jak i na
Facebooku!

Bulldog Job
www.bulldogjob.pl

NoFluffJobs
www.nofluffjobs.com

Just Join It
→→ KROK 3 www.justjoin.it
Utrzymuj relacje z rekruterami.
Możesz po prostu zacząć z nimi rozmawiać lub odpowiadać na Crossjob
ogłoszenia, które dodają na swoich tablicach Linkedinowych. www.crossjob.pl
17 Jet Pack Book

3. GRUPY NA FACEBOOKU 6. ZAKŁADKI KARIERA

Szybkie, bezpośrednie, z dużą liczbą ofert, darmowe. Dlatego Każda większa firma posiada swoją zakładkę (lub nawet cały
cieszą się tak dużą popularnością wśród programistów oraz portal) Kariera.
rekruterów publikujących ogłoszenia o pracę!
Tam opisuje kulturę firmy, benefity czy publikuje obecnie
Zacznij od poniższych dwóch grup, później odkrywaj kolejne! otwarte rekrutacje (często takie, które nie pojawiają się na
zewnętrznych portalach z ogłoszeniami o pracę).

Warto śledzić zakładki kariera, a w przypadku, gdy nie możesz


znaleźć stanowiska odpowiedniego dla siebie – firmy pozosta-
wiają miejsce na wgranie swojego CV z deklaracją odezwania
się, gdy pojawi się oferta pracy dopasowana do Ciebie.

4. WYDARZENIA BRANŻOWE

Doskonała okazja, aby spotkać ludzi z branży. Zarówno progra-


mistów, jak i rekruterów.

Wydarzenia przybierają różną formę - mogą być targami pracy,


mogą być wielką konferencją lub niewielkim spotkaniem miło-
śników danej technologii.

To tam często możesz posłuchać wykładów z branży Tech,


spotkać się twarzą w twarz z rekruterami z firm poszukujących
programistów.

Pamiętaj, że programiści również mogą być Twoją przepustką do


ich firmy. Wystarczy, że Cię polecą! Jeżeli w ich firmie funkcjonuje
program poleceń, być może dostaną za Ciebie nagrodę, jeżeli
zostaniesz zatrudniony :)

GDZIE SZUKAĆ WYDARZEŃ?

Raz - Na naszej mapce, którą znajdziesz na następnych stronach.


Dwa - Na www.crossweb.pl
Trzy - na www.meetup.com

Baw się dobrze i zbieraj kontakty!

5. FORA PROGRAMISTYCZNE

Tu polecimy Ci największe forum programistyczne, zarówno


z wiedzą merytoryczną, jak i ofertami pracy.

Forum 4programmers.net to miejsce, które powinieneś bacznie


obserwować!
Przygotowanie do poszukiwania pracy 18

Rozmowa rekrutacyjna na 6+!


Pierwsza rozmowa rekrutacyjna na stanowisko w branży IT
może być dla Ciebie stresująca. Prawdopodobnie już na tym
etapie zostanie sprawdzona Twoja wiedza z zakresu interesu-
jących Cię technologii, a także umiejętności miękkie potrzebne
na danym stanowisku. Sprawdź, co koniecznie musisz
wiedzieć, zanim przekroczysz próg firmy Twoich marzeń.

umiarkowany kontakt wzrokowy schludny, prosty strój


z rozmówcą

lekki uśmiech

punktualność

pewny uścisk dłoni

otwarta postawa ciała

energia

entuzjazm
19 Jet Pack Book

Okiem rekrutera
Kandydata przychodzącego do Yameo czeka nie lada wyzwanie.
Pracujemy w zespołach scrumowych, a praca w naszej ekipie
wiąże się z bezpośrednim kontaktem z klientem, więc ogromne
znaczenie ma dla nas to, w jaki sposób ktoś się komunikuje.
Zatem, oprócz spotkania dotyczącego kompetencji, na nowego
pracownika czekają pytania behawioralne związane
z budowaniem relacji. To także wyzwanie dla rekrutera,
bo branża informatyczna nie słynie z wysokiego stopnia obycia
w tzw. tematach miękkich. ;) Z punktu widzenia HR, argumentem
„za” jest pewnego rodzaju balans pomiędzy pewnością siebie
a świadomością początkującego – podczas tzw. live-codingu
wszystkie umiejętności zostaną zweryfikowane.
Małgorzata Wasilewska, dyrektor personalny w Yameo

Koniec ze stereotypem programisty „informatyka”, który siedzi


zamknięty w piwnicy przed komputerem i stroni od kontak-
tów w innymi. Teraz programista to integralna część często
kilkunastoosobowych zespołów, często mająca bezpośrednią
styczność z klientem.
Umiejętności techniczne – niezbędne!
Umiejętności miękkie – bardzo ważne, jeżeli w przyszłości
będziesz chciał kierować zespołem lub mieć kontakt z klientem.
Martyna Broda, Jet Pack Manager w SDA

W trakcie procesu rekrutacyjnego kluczowym elementem jest


sprawdzenie wiedzy i umiejętności technicznych kandydata,
dlatego należy spodziewać się testów i case study do rozwiązania.
Choć wymagają one poświęcenia czasu, to są mierzalnym i obiek-
tywnym wskaźnikiem umiejętności, a kandydatowi dają pojęcie
o wykorzystywanych technologiach w danej firmie i wymaganym
poziomie ich znajomości. Rekruterzy podczas spotkania HR starają
się jak najlepiej poznać każdego kandydata, aby mieć pewność,
że odnajdzie się osobowościowo w zespole i będzie odpowiadać
mu kultura organizacyjna. W Sapiens szukamy osób nastawio-
nych na współpracę i dobrą komunikację w zespole, cenimy także
łatwość adaptacji do dynamicznego środowiska pracy. Oprócz
tego ważna jest dla nas chęć nauki kandydata i jego otwartość na
długoterminowy rozwój w obszarze produktów ubezpieczeniowych.
Barbara Łuchniak, Recruitment Specialist
w Sapiens Software Solutions

Rekruterzy, poza technicznymi kompetencjami i doświadczeniem


kandydatów, zwracają również uwagę na dopasowanie
kandydata do kultury swojej organizacji. Jeśli w kandydacie
znajdą oni „ambasadora” cenionych przez firmę wartości, istnieje
duża szansa na pomyślne przejście procesu rekrutacji.
Kamila Ożga, Recruitment Specialist w Jeppesen
Przygotowanie do poszukiwania pracy 20

Najczęściej pojawiające się pytania


Nigdy nie idź na spotkanie rekrutacyjne bez wcześniejszego przygotowania! Musisz wiedzieć, że są pytania,
które pojawiają się niemal na każdej rozmowie. Warto wcześniej przygotować do nich odpowiedzi.

PYTANIA NIETECHNICZNE → Pytanie o luki w CV i krótkie okresy zatrudnienia.


sprawdzające charakter, umiejętności miękkie i dające pole Po pierwsze – postaraj się, żeby w Twoim CV nie było jednak
do prezentacji swojej osoby. tych luk. Nie pracowałeś przez kilka miesięcy? Przypomnij
sobie, czy brałeś wtedy udział w kursach, projektach, a może
→ Jakie stanowisko pracy byłoby dla Ciebie idealne? rozwijałeś swoje zainteresowania? Pokaż, że nie zmarnowałeś
Wolisz pracować w grupie czy samodzielnie? W niewielkim czasu! Pracowałeś w jednym miejscu jedynie przez miesiąc?
pokoju czy na open space? Powiedz o tym rekruterowi! Dzięki Jeśli wina leży po stronie pracodawcy, nigdy nie mów o nim
temu możesz mieć pewność, że firma, która Cię zatrudni, źle. Poszukaj neutralnego wyjścia z sytuacji – np. nie wyne-
zapewni optymalne warunki do pracy. A jeśli się nie dogadacie? gocjowałeś stawki, która Cię interesowała. Przede wszystkim
Widocznie to nie było to miejsce. :) zastanów się, czy dana pozycja w CV na pewno zasługuje na
umieszczenie w tym dokumencie.
→ Opisz swój styl pracy – jak dzielisz sobie projekt na etapy?
Pokaż, jakie masz podejście do pracy i udowodnij, że jesteś
godnym zaufania pracownikiem o profesjonalnym podejściu.
PYTANIA TECHNICZNE
→ Przy jakich projektach chciałbyś pracować? sprawdzające umiejętności z zakresu technologii potrzebnych
Pokaż, że w tym, co robisz, odnajdujesz pasję. Opowiedz na danym stanowisku.
o ulubionych technologiach, o tym co chciałbyś robić i co znaj-
dujesz dla siebie w działalności firmy, w której chcesz pracować.
To ważny moment, aby pokazać, że wiesz, czego chcesz. Poza
tym jeśli porozmawiacie z pracodawcą o wzajemnych potrze-
bach i wyobrażeniach jeszcze na rozmowie, unikniesz sytuacji
pracy nad projektami, które Ci nie odpowiadają.

→ Opisz idealnego pracodawcę.


Nie używaj pustych słów - każdy będzie uważał się za uczciwego,
pracowitego czy szczerego, ale dla każdego może oznaczać to
coś innego. Postaraj się oddać jak najpełniejszy obraz osoby,
pod której skrzydła chcesz trafić.

→ Jak reagujesz na sytuacje konfliktowe w zespole? .NET


Pokaż się jako osoba skupiona, niewchodząca w konflikty
i potrafiąca trzymać emocje na wodzy. Pamiętaj, że najlepszym 1.Jakie są cechy zmiennych stałych?
sposobem na rozwiązywanie problemów jest rozmowa. →→ Przypisywanie wartości nie jest dla nich obowiązkowe,
→→ Wartość może zostać zmieniona w czasie wykonywania,
→ Dlaczego chcesz zmienić pracę/branżę? →→ Nie możemy zmienić wartości w gotowym kodzie,
Ważne jest to, co Cię motywuje do zmian. Nie wyrażaj się ne- →→ Nie możemy ponownie przypisać wartości do zmiennej stałej.
gatywnie – zamiast o braku perspektyw w poprzedniej branży
mów o nowych możliwościach w IT. Pokaż, jak bardzo ta branża 2. Jaka jest różnica między klasami „StringBuilder”
Ci się podoba i że nie znalazłeś się w niej przypadkowo. i „String” w C#?
→→ StringBuilder jest modyfikowalny (mutable), co oznacza,
→ Jakie są Twoje wymagania finansowe? że raz stworzony dla niego obiekt można później zmodyfiko-
Wielu osobom rozmowa o pieniądzach wydaje się krępująca wać za pomocą Append, Remove lub Replace.
– niepotrzebnie! Nikt nie chce pracować za darmo, więc dysku- →→ String jest niemodyfikowalny (immutable), co oznacza, że nie
towanie o wynagrodzeniu to żadne faux pas. Oczywiście, jeśli możemy go modyfikować i zawsze tworzymy nowy obiekt
podejdziesz do tego w odpowiedni sposób. Zastanów się wcze- w jego pamięci.
śniej, ile chcesz zarabiać i sprawdź w internecie, jakie są średnie
zarobki na stanowisku, o które się starasz. Podczas rozmowy 3. Jaka jest różnica między interfejsem a klasą abstrakcyjną?
możesz podać widełki lub określić, poniżej jakiej kwoty netto nie →→ Klasa abstrakcyjna to specjalny rodzaj klasy, której instancja
chcesz schodzić, by dane zajęcie było dla Ciebie opłacalne. nie może być utworzona. Pozwala tylko dziedziczyć inne klasy.
Podanie zbyt wysokiej, ale również zbyt niskiej kwoty może To rodzaj umowy, która wymusza na wszystkich podklasach tę
zostać odebrane jako brak rozeznania na rynku. samą hierarchię lub standardy.
21 Jet Pack Book

→→ Interfejs nie ma implementacji.


→→ Główną różnicą między nimi jest to, że klasa może imple-
mentować więcej niż jeden interfejs, ale może dziedziczyć
tylko z jednej klasy abstrakcyjnej. Ponieważ C # nie obsłu-
guje wielokrotnego dziedziczenia, interfejsy są używane do
implementacji dziedziczenia wielokrotnego.

4. Jaka jest różnica pomiędzy dispose i finalize?


→→ Dispose wywołujemy samodzielnie za pomocą explicite lub
lukru składniowego (np. using albo foreach). JAVA
→→ Finalize jest niedeterministycznie wywoływany przez
garbage collector. 1. Wymień 3 główne elementy programowania
obiektowego i opisz jeden z nich.
5. Jak zachowują się modyfikatory dostępu: protected, →→ Dziedziczenie – jest relacją pomiędzy bardziej ogólną klasą
internal oraz protected internal? (nadklasą) a bardziej konkretną klasą (podklasą). Podklasa
→→ Protected – elementy traktowane jako chronione. Oznacza to, dziedziczy stan (pola) oraz zachowanie (metody) od nadklasy
że będą dostępne dla danej klasy oraz na potrzeby klas dzie- (oprócz polami i metodami prywatnymi i statycznymi). Aby
dziczonych. Nie będą natomiast widoczne na zewnątrz klasy. wyrazić dziedziczenie używamy słowa kluczowego extends.
→→ Internal – elementy nie będą udostępniane na zewnątrz po- →→ Polimorfizm – z języka greckiego “poly” (wiele) + “morphe”
dzespołu. Innymi słowy ich użycie poza danym podzespołem (forma, postać, kształt). Oznacza, że dana referencja może
będzie niemożliwe. mieć dostęp do wielu różnych form. To wirtualizacja operacji,
→→ Protected internal – połączenie internal oraz protected. czyli możliwość dynamicznego (późnego) wiązania nazwy
Pozwala deklarować elementy/typy z więcej niż jednym operacji do różnych implementacji tej operacji zdefinio-
modyfikatorem. Element zadeklarowany z użyciem tej kon- wanych w klasach będących w relacji dziedziczenia lub
strukcji będzie chroniony. Oznacza to, że będzie on dostępny implementacji. Wybór konkretnej implementacji zależy od
jedynie dla klas potomnych. Dodatkowo słowo internal typu obiektu, a nie od typu referencji, na której wywołujemy
oznacza, że jedynie podzespół, w którym dany element został metodę. Polimorficzne wywoływanie metod dotyczy tylko
zadeklarowany, będzie mógł skorzystać z danego elementu. metod instancyjnych.
→→ Enkapsulacja – ukrywanie danych przed bezpośrednią
6. Jaka jest różnica między typem wartościowym, modyfikacją, która mogłaby prowadzić do niespójności
a referencyjnym? (np. zaburzyć niezmienniki klasy). Wprowadza pojęcie
→→Typ wartościowy – to podstawowy typ danych występujący publicznego interfejsu i ukrywania szczegółów implementa-
powszechnie w każdym języku programowania. Jego dekla- cyjnych. Umożliwia zmianę implementacji bez konieczności
racja alokuje odpowiednią ilość miejsca w pamięci, w której zmian w kodzie korzystających z danej klasy.
będzie przechowywana wartość zmiennej. Typy wartościowe
umieszczamy na stosie. 2.Jakie znasz implementacje kolekcji w Javie?
→→Typ referencyjny – to typ umieszczany na stercie programu. Czym się one różnią i kiedy jaką stosować?
Referencja do pamięci umieszczana jest na stosie, a obszar →→ ArrayList – implementacja, która przechowuje dane we-
pamięci do jakiego prowadzi referencja znajduje się na stercie. wnętrznie w tablicy. Używamy jej, kiedy znamy docelowy
rozmiar listy lub wykonujemy niewiele operacji dodawania
Główna różnica między tymi typami polega na tym, że typy warto- w stosunku do operacji odczytu, a operacje odczytu nie są
ściowe są niezmienne, w przeciwieństwie do typów referencyjnych. w pętli for-each.
→→ LinkedList – implementacja, która przechowuje dane
w postaci powiązanej. Jest ona wydajniejsza w momencie,
gdy dodajemy wiele elementów, a odczyt odbywa się
sekwencyjnie (odczytujemy elementy za pomocą iteratora
lub pętli for-each).

3. Jak działa Garbage Collector i czy możemy wymusić jego


działanie na żądanie?
→→ Garbage collector ma za zadanie identyfikować i usuwać
obiekty, które nie są używane. Działa automatycznie, więc nie
można wymusić jego działania. Sam usuwa każdy obiekt, do
którego nie możemy się dostać.

4. Co to jest skalowalność systemu?


→→ Skalowalność to zdolność do zachowania odpowiedniej
wydajności systemu wraz z rosnącym obciążeniem.
Przygotowanie do poszukiwania pracy 22

5. Co to jest transakcyjność?
→→Transakcja – trwała operacja na danych, którą traktujemy
jako jedną nierozerwalną całość. Zachowuje ona spójność
tych danych - jeśli są na nie nałożone jakieś warunki logiczne,
to muszą one zostać spełnione zarówno przed jak i po wyko-
naniu transakcji. Transakcje wykonywane są we wzajemnej
izolacji (czyli pojedynczo, w odpowiedniej kolejności).

6. Czym są strumienie i jakie są ich zastosowania? ANDROID


→→ Strumień – reprezentuje sekwencje elementów i pozwala na
różne operacje na tych elementach. Operacje te mogą być po- 1. Wymień komponenty dostępne w systemie Android
średnie (możemy je układać w łańcuchy metod) lub końcowe i opisz każdy z nich:
(zwracające wynik, lub nie). →→ Activity (Aktywność) – jest punktem styczności aplikacji
z użytkownikiem. Reprezentuje pojedynczy ekran
7. Jakie znasz wzorce projektowe? w interfejsie użytkownika.
→→ Wzorzec fasada – tworzymy klasę, której jedynym zada- →→ Service (Serwis) - jest komponentem używanym w przypadku
niem jest wywoływanie odpowiednich metod z innych klas, potrzeby uruchomienia zadania w tle, niezależnie od interfej-
niekiedy w odpowiedniej kolejności lub modyfikując pewne su użytkownika aplikacji, np. odegranie muzyki, aktualizacja
informacje. lokalizacji, pobranie pliku. W przeciwieństwie do Aktywności,
→→ Wzorzec metoda fabrykująca - tworzymy nowy obiekt, np. Serwisy nie posiadają interfejsu użytkownika i mogą działać
dlatego, że jako typ zwracany deklarujemy interfejs, a metoda nawet wtedy, gdy aktywność jest usuwana z pamięci.
zawiera logikę, która decyduje, jakiego typu obiekt utworzyć. →→ Content Provider (Dostawca treści) – zarządza dostępem do
→→ Wzorzec Singleton – mówi o tym, że w systemie będzie uży- struktur danych. Zawiera i udostępnia mechanizmy odpowie-
wany tylko jeden obiekt danego typu. dzialne za bezpieczeństwo danych. Zapewnia interfejs pomię-
dzy danymi działającymi w jednym wątki, a kodem aplikacji
8. Jakie znasz interfejsy kolekcji? działającym w innym wątku. Dane mogą być przechowywane
→→ Set (zbiór unikalnych elementów) - posiada taki sam interfejs w systemie plików, bazie danych, w internecie lub jakimkol-
jak Collection. Udostępnia zoptymalizowaną metodę spraw- wiek innym nośniku dostępnym z poziomu aplikacji.
dzającą przynależność elementu do zbioru. →→ Broadcast Reciever (Odbiorca powiadomień) – jest kompo-
→→ List (lista uporządkowanych elementów) – rozszerza interfejs nentem odpowiedzialnym za odbiór zdarzeń niezależnych
Collection o metody pozwalające na wstawianie i usuwanie od obecnego stanu interfejsu użytkownika, np. włączenie
elementów do i ze środka kolekcji. Zachowuje kolejność budzika, podłączenie telefonu do ładowarki, utrata zasięgu
elementów. komórkowego itp. Rejestracja Broadcast Receiver'a w aplika-
→→ Map (mapa, tablica asocjacyjna elementów typu klucz-war- cji pozwala na odbieranie dowolnych zdarzeń emitowanych
tość) - umożliwia odwzorowywania obiektów na inne obiekty za pomocą Intentów.
łącząc je w pary klucz-wartość.
2. Jakie dwa typy serwisów ze względu na ich cykl życia
9. Wymień różnice między List i Set. możemy wyróżnić i czym się one charakteryzują?
→→ List zachowuje kolejność elementów, natomiast Set przecho- →→ Bound Service – jest ściśle związany z pozostałymi kompo-
wuje elementy w nieuporządkowany sposób. nentami aplikacji które są z nim zbindowane. W przypadku
→→ List pozwala na przechowywanie takich samych elementów usunięcia ostatniego zbindowanego z serwisem komponentu,
(duplikatów), a Set nadpisze starą wartość nową wartością serwis kończy działanie.
podczas próby dodania duplikatu. →→ Unbound Service – jest uruchomiony przez inny komponent
→→ List umożliwia przechowywanie wielu wartości null, (na przykład Activity) i działa w tle nieskończenie, niezależnie
a Set może przechowywać tylko jedną taką wartość. od cyklu życia komponentu, który go wywołał.
→→ przykładowe implementacje List, to: ArrayList, LinkedList,
a Set, to: HashSet, LinkedHashSet, TreeSet. 3. Jaka jest różnica pomiędzy jawnym i niejawnym Intentem?
→→ Explicit (jawny) intent określa konkretną klasę wywoływanego
10. Co to jest GROUP BY? komponentu.
→→ GROUP BY – operacja agregująca, która umożliwia klasyfikację →→ Implicit (niejawny) intent nie określa konkretnego kompo-
rekordów według określonych kryteriów. nentu, natomiast powinien zawierać informacje co chcemy
zrobić i na jakich danych tę czynność wywołać
(np. akcja Intent.ACTION_VIEW oraz załączony adres url).
23 Jet Pack Book

5. Czym jest hoisting (windowanie)?


→→W języku JavaScript, funkcje oraz zmienne są windowane.
Windowanie (hoisting) w JavaScripcie oznacza przeniesienie
deklaracji na samą górę (do globalnego zasięgu lub do zasięgu
funkcji).Oznacza to, że możesz użyć funkcji lub zmiennej przed
jej zadeklarowaniem lub innymi słowy: funkcje lub zmienne
mogę być deklarowane po ich użyciu.

JAVA SCRIPT 6. Jaka jest różnica pomiędzy ID, a klasą w HTMLu i CSSie?
→→Jeden element może mieć kilka klas, a ta sama klasa może
1. Jaka jest różnica pomiędzy klasycznym dziedziczeniem, być przypisana do kilku elementów. Natomiast dane ID
a dziedziczeniem z wykorzystaniem prototypów? może na stronie występować tylko raz. Element nie może
→→W klasycznym dziedziczeniu instancja (obiekt) przejmuje mieć też więcej niż jednego ID. W CSSie odwołujemy się do
cechy szablonu (klasy), na którego podstawie jest budowana tych elementów na różne sposoby. Do klas odwołujemy się
z wykorzystaniem słowa kluczowego new. Zastosowanie poprzez zapis kropka i nazwa klasy np: .button, natomiast
tego rodzaju dziedziczenia tworzy zależności rodzic – dziecko do ID poprzed hasha i nazwę np. #rower. Reguły w CSSie
pomiędzy klasą nadrzędną, a klasami po niej dziedziczącymi. przypisane do ID są ważniejsze niż te przypisane do klas,
Instancja klasy pochodnej może być jednocześnie traktowana zgodnie z zasadami obliczania dokładności reguły.
jako instancja klasy bazowej.
→→W dziedziczniu z użyciem prototypów instancje (obiekty)
przejmują cechy z innych obiektów za pomocą funkcji tworzą-
cych (fabryki) lub Object.create(). W tym podejściu łatwiej jest
zbudować obiekt w oparciu o kilka źródeł. Zależność rodzic
– dziecko nie tworzy się automatycznie.

2. Czym jest AJAX?


→→Jest to zestaw technik wykorzystywanych w tworzeniu
aplikacji webowych, dzięki którym klient może wysłać PYTHON
i odebrać zapytanie do serwera w sposób asynchroniczny
i bez przeładowywania strony. Ta technologia składa się 1. Czy Python jest językiem interpretowalnym?
z kilku pomniejszych: →→Język Python jest językiem interpretowanym, co oznacza że
→→XMLHttpRequest nie jest kompilowany, lecz jest przechowywany w postaci
→→JavaScript kodu źródłowego i dopiero podczas uruchomienia wczytywa-
→→XML (obecnie zdecydowanie częściej JSON) ny, interpretowany i wykonywany przez interpreter języka.
→→HTML
→→CSS 2. Czym są „dekoratory”?
→→Dzięki takiemu podejściu możemy dopasowywać pobierane →→Dekorator to obiekt, który można wywołać jak funkcję lub
dane do akcji użytkownika (patrz tablica Facebookowa, klasę. Obiekt ten jest wrapperem dla obiektu pierwotnego.
ściąga więcej dopiero jak zjedziesz niżej).
3. Wymień złożone typy danych w Pythonie?
3. Czym jest rekurencja? →→tuple – krotka
→→Rekurencje to sposób budowania algorytmów w taki sposób →→list – lista
aby funkcja rozwiązująca w ramach swojego rozwiązania →→set – zbiór
wywoływała tę samą funkcję (samą siebie). Przykładem →→dict - słownik
może być obliczanie silnii. Silnia(n) = n * Silnia(n-1) lub
ciągu Fibonacciego. 4. Jaka jest różnica pomiędzy listą i tuplą?
→→Różnica pomiędzy tymi strukturami jest taka iż lista jest
4. Podaj przynajmniej 2 sposoby na wyzerowanie tablicy strukturą mutowalną,
w JavaScripcie. Poniżej metody: →→tupla nie.

arrayList = []; 5. Czym są przestrzenie nazw?


→→Przestrzeń nazw jest słownikiem, gdzie kluczami są nazwy
arrayList.length = 0; zmiennych, a wartościami słownika są wartości tych zmien-
nych. Możemy dostać się do przestrzeni nazw, podobnie jak
arrayList.splice(0, arrayList.length); do Python’owego słownika.

while(arrayList.length){ 6. Czym są funkcje lambda w Pythonie?


arrayList.pop(); →→Funkcja lambda jest funkcją, która pobiera dowolną liczbę
} argumentów (włączając argumenty opcjonalne) i zwraca
wartość, którą otrzymujemy po wykonaniu pojedynczego
wyrażenia. Funkcje lambda nie mogą zawierać poleceń
i nie mogą zawierać więcej niż jednego wyrażenia.
Przygotowanie do poszukiwania pracy 24

7.Jak skopiować obiekt w Pythonie? 4. Co to jest sesja i w jaki sposób z niej korzystamy (tworzymy/
→→Aby skopiować obiekt w Pythonie, można użyć formuł copy. modyfikujemy/usuwamy).
copy() lub copy.deepcopy(). Nie można skopiować wszystkich →→ Sesja to mechanizm pozwalający na przenoszenie danych,
obiektów zawartych w pamięci, ale większość z nich tak. pomiędzy kolejnymi requestami z bezstanowej aplikacji
klienckiej np. z przeglądarki. Dane są zapisywane (zależnie od
8.Czym są moduły i pakiety? wybranego silnika sesji) na dysku, w bazie danych, w redisie itp.
→→Moduł jest plikiem zawierającym definicje Pythona i jego →→ W momencie kończenia pracy skryptu dane są zapisywane
instrukcje. Nazwa pliku jest nazwą modułu pozbawionego pod odpowiednio spreparowanym identyfikatorem sesji.
rozszerzenia .py. W module, nazwa modułu dostępna jest jako Identyfikator przekazywany jest do aplikacji klienckiej (np.
wartość zmiennej globalnej __name__ w formie Cookie). W kolejnym requescie identyfikator prze-
→→Pakiety są przestrzeniami nazw, które zawierają w sobie wiele kazywany jest zwrotnie do serwera, który podnosi dane np.
modułów, a nawet innych pakietów. Są po prostu folderami, z dysku i wczytuje do zmiennej $_SESSION, dając tym samym
ale z pewnym znakiem szczególnym. do nich dostęp skryptom.
→→Każdy pakiet w Pythonie jest folderem, który MUSI zawierać →→ Sesję tworzymy przy pomocy komendy session_start().
specjalny plik nazwany __init__.py. Ten plik może być pusty Modyfikacja danych wykonywana jest poprzez manipulacje
i służy informowaniu, że ten folder zawiera pakiet Pythona. elementami tablicy $_SESSION. Usuwamy/niszczymy sesję
Dzięki temu może być importowany tak samo jak moduły. używając funkcji session_destroy().

PHP
1. Czym charakteryzuje się definiowanie stringów
z użyciem pojedynczego apostrofu a czym z użyciem
podwójnego apostrofu oraz w jakich okolicznościach
używamy odpowiedniego typu?
→→ Pojedyncze apostrofy traktują wszystko, co pomiędzy jako
czysty string. Nie analizują zawartości pod kątem występowa-
nia zmiennych.
→→ Podwójne apostrofy pozwalają na parsowanie zawartości pod
kątem występowania zmiennych. W miejsce tych zmiennych
podstawiane są docelowo ich wartości. Dobrą praktyką jest
używanie podwójnych apostrofów tylko wówczas, kiedy
string zawiera zmienne do podstawienia.

2. Czym różnią się operatory: =, ==, ===

= oznacza przypisanie wartości;

== to test, czy dwa wyrażenia są sobie równe. Jeżeli wyrażenia


są różnego typu, następuje
rzutowanie do stringów i ich porównanie;

=== to test identyczności dwóch wyrażeń. W pierwszej kolej-


ności sprawdzane jest, czy typy wyrażeń są identyczne np.
integer === integer, następnie sprawdzane jest, czy wartości
wyrażeń są sobie równe.

3. Podaj przykład, jak w bezpieczny sposób iterować po


tablicy, niezależnie od jej typu (tablicy asocjacyjnej
lub prostej)?
→→ Do bezpiecznej iteracji służy funkcja foreach, która zależnie od
użytej konstrukcji pozwala na dostęp do wartości elementów
lub do wartości oraz nazw kluczy/indexów.
25 Jet Pack Book

DODATKOWO OSOBA TECHNICZNA MOŻE SPRAWDZIĆ TWOJĄ


ODPORNOŚĆ NA STRES, SPOSÓB MYŚLENIA CZY STYL PRACY,
ZADAJĄC DODATKOWE PYTANIA, NIE ZWIĄZANE ŚCIŚLE
Z ŻADNĄ KONKRETNĄ TECHNOLOGIĄ:

1. Jak reagujesz na znaleziony w kodzie błąd?


→→ Do tego pytania może być załączone zadanie praktyczne,
które będzie polegało na znalezieniu bugu w kodzie. Rekruter
chce sprawdzić, czy potrafisz weryfikować kod napisany przez
innego programistę, znaleźć błąd i go usunąć, a także jak
poruszasz się po danym środowisku.

2. Opisz działanie wybranej lub przedstawionej przez rekru-


tera aplikacji słowami, które zrozumie kilkuletnie dziecko.
→→To zadanie pokazuje, czy jesteś osobą komunikatywną
i będziesz potrafił dojść do porozumienia z pozostałymi
członkami zespołu. Poza tym być może będziesz musiał
rozmawiać na temat aktualnych projektów z klientami lub
innymi ludźmi, którzy nie są biegli w technologicznym
żargonie. Przy okazji udowadniasz, że również rozumiesz,
nad czym pracujesz. :)

3. W jaki sposób zdobywasz nową wiedzę i jesteś na bieżąco


z technologiami, w których pracujesz?
→→ IT to bardzo dynamicznie zmieniająca się branża. Jeśli nie
będziesz znał aktualnych trendów, Twoja wiedza bardzo
szybko się zdezaktualizuje. Pracodawca chce mieć pewność,
że zatrudnia człowieka, który pasjonuje się swoją pracą i nie
straci do niej zapału.

4. Rekruter daje Ci zadanie, którego nie da się rozwiązać.


Co robisz?
→→To zadanie wcale nie sprawdza Twojej wiedzy technologicznej,
a elastyczność, umiejętność logicznego myślenia oraz odwagę
do wyciągania wniosków i stawiania hipotez. Nie mów od razu,
że zadanie jest niewykonalne – pokaż, że potrafisz się z nim
zmierzyć i stawić czoła trudnościom!

O co warto zapytać?
Musisz pamiętać, że rozmowa rekrutacyjna to nie jednostronny
wywiad, a dialog – Ty również masz prawo, a wręcz musisz zada-
wać pytania! W ten sposób pokażesz, że jesteś zainteresowanym Praca domowa przed każdą rozmową rekrutacyjną
oraz zaangażowanym kandydatem, a także rozbudujesz swoje – check lista!
spojrzenie na firmę o interesujące Cię kwestie.

→→1. Jak duży jest zespół, w którym miałbym pracować? CHECK!


→→ 2. Z jakich narzędzi korzysta firma i w jakiej metodologii Zapoznaj się ze stroną WWW i projektami firmy;
wytwarza oprogramowanie?
Śledź profil na Facebooku;
→→ 3. Jakie są konkretne wymagania i obowiązki na tym stanowi-
sku pracy? Za co będziesz odpowiedzialny? Sprawdź opinie o firmie w internecie;

→→4. W jakich godzinach będę pracować? Czy godziny pracy są Przeczytaj raz jeszcze treść ogłoszenia,
sztywne, czy elastyczne? Czy jest dopuszczalna praca zdalna? na które odpowiadasz;

→→ 5. W jaki sposób będą mierzone efekty mojej pracy i kto będzie Sprawdź na LinkedIn, kto jest HR w tej firmie;
moim bezpośrednim przełożonym?
Sprawdź lokalizację i dojazd do firmy;
→→ 6. Jak wygląda dalsza część procesu rekrutacyjnego i kiedy
mogę spodziewać się odpowiedzi? Przygotuj własne pytania.
26

Po kursie
Pamiętaj, że IT to bardzo dynamiczna branża, w której zawsze
możesz być lepszy. Nie stój w miejscu, rozwijaj się, a zawsze
znajdzie się dla Ciebie miejsce. ;)

BĄDŹ CZUJNY – POZOSTAŃ AKTYWNY

Poza udziałem w kursie SDA spędziłem naprawdę sporo czasu


na samodzielnej pracy w domu. Dużo czasu zabierało mi rozwią-
zanie zadań, które otrzymałem od trenera. Z każdym kolejnym
rosła moja wiedza i pewność siebie. Czasami nawet wymyślałem
sobie problemy czy algorytmy, które starałem się zamienić na
kod. :) Dyskusje z trenerem oraz zadawane mu pytania dały mi
zastrzyk motywacji i dociekliwości. Zacząłem oglądać nagrania
z konferencji poświęconych programowaniu (np. WJUG).
Znalazłem też sporo świetnych stron łączących naukę z zabawą
(np. codefight). Interesuję się kursami z portalu udemy.com
–ostatnio postanowiłem nauczyć się trochę C# i Unity żeby
tworzyć gry Indie. Kontynuuję też naukę Springa i Hibernate.
Może zabrzmi to trochę staroświecko i szkolnie, ale sporo czasu
poświęcam na zapisywanie ciekawszych rzeczy w zeszycie
– to świetny sposób na utrwalenie w głowie informacji!
Łukasz Michalak, ukończył kurs Java od podstaw

Po zakończonym frontendowym stażu zaczęłam uczyć się na


własną rękę. Było mi dużo łatwiej niż przed kursem, bo miałam już
jakieś podstawy. Dostaliśmy mnóstwo zadań, książek, prezentacji,
więc miałam sporo materiału do powtarzania. Dosyć szybko
dowiedziałam się, że idę na kurs Java OCA przygotowujący
do egzaminu Oracle, więc zostawiłam frontend i zaczęłam uczyć
się nowego języka. Korzystałam w dużej mierze z materiałów
z internetu oraz książki Oracle, którą dostałam od SDA. Trudno mi
było to wszystko zrozumieć w tak krótkim czasie, więc zapisałam
się na prywatne korepetycje, które bardzo mi pomogły. Później
udało mi się dostać na staż i teraz staram się zgłębiać wiedzę
w tematach, którymi zajmuję się w pracy.
Joanna Murawska, ukończyła kurs Frontend developer
+ Java OCA

Przede wszystkim należy pisać dużo aplikacji. Nie tylko dużo


kodować we własnym czasie, ale właśnie napisać kilka aplikacji
od zera. To lepsze niż dłubanie przez dłuższy czas przy jednym
projekcie, bo uczymy się szybciej i lepiej zapamiętujemy rzeczy,
którymi zazwyczaj zajmujemy się raz, a potem zapominamy
(np. budowanie warstwy sieciowej aplikacji). Przy każdej kolej-
nej aplikacji można to zrobić jeszcze lepiej, w bardziej elegancki
i przemyślany sposób, stosując nowe wzorce projektowe, tech-
nologie czy biblioteki. Warto również uczęszczać na wydarzenia
branżowe! To świetna okazja, żeby dowiedzieć się, co w trawie
piszczy, jakie technologie i trendy są wykorzystywane w innych
firmach. A poza tym znajdziemy tam inspirację co do obrania
kierunku dalszego rozwoju.
Daniel Płachta, ukończył kurs Java + Android
27 Jet Pack Book

Kierunki rozwoju
SPRAWDŹ, JAKIE KROKI MOŻESZ PODJĄĆ PO KURSIE SDA. ZAPLANUJ SWOJĄ ŚCIEŻKĘ KARIERY JUŻ TERAZ!

Required for any path Legends


WEB DEVELOPER IN 2017
Git – Version Control Personal Recommendation

SSH Possibilities

choose you path


HTTP/HTTPS and APIs Pick any!

Basic Terminal Usage Build Something

Learn to Research

Front-end Back-end DevOps


Data Structures & Algorithms

Character Encodings

GitHub
Create a profile. Explore relevant open
source projects. Make a habit of looking
under the hood of projects you like. Create
and contribute to open source projects.

FRONT-END

HTML Learn the Basics

CSS

jQuery JavaScript

Responsive Web

ES6
Getting Deeper
CSS
Preprocessors
Task Runners Choose Framework
JavaScript
npm scripts
Sass
Foundation
gulp
Typescript Less
Bootstrap
Grunt
Flow Stylus SUITCSS
Testing Materialize CSS
Package Manager PostCSS BEM
Jest Semantic UI
Choose a Framework Yarn
OOCSS
Mooha
npm
Methodologies
SMACSS
Jasmine
Angular
Systematic CSS
React Module Loader/Bundler
CSS
Vue.js Dive Deep CSS3
SVG
webpack Flexbox Gradients Grids
Ember JS
JavaScript
rollup Rotate Transform Skew
Preact

RequireJS / AMD D3 Scale Transition ..etc


Inferno

Browserify
Design Patterns
Flux
Regex
Redux
GOF Design patterns
Finish
Learn different testing techniques
Po kursie 28

BACK-END nose

doctest

py.test Pyramid
Sinatra Pip

unittest/pyUnit Flask
Ruby on Rails RSpec RubyGems
Package Manager
Django
Framework Testing Package Manager Testing Sync

Frameworks
ByeBug Ruby Python

Async Sonic

Tornado
Composer
Node.js
Package Manager gevent

Package Manager PHP 7


Framework Testing aiohttp
Debugger/Profiler

npm Express Jest

Yarn hapi Mocha Testing Framework


xDebug

Koa Jasmine PHPUnit Laravel PSRs XHProf

Sails.js Chai phpspec Symfony New Relic

should.js Codeception BlackFire

Slim
Caddy Mockery
Lumen
Apache
Web Server
Silex
Nginx
Restful Apis

read about MVC

JSON Web Token (JWT)


Authentication C# (.NET)
OAuth 2.0
SOLID, YAGNI, KISS etc
Java (Grails, Spring, Play)

Security
Go

GraphQL

Docker Coaching
Memcached

Storage Redis

Solr ElasticSearch
Relational Databases

Up your Game further! Oracle


Sphinx

PostgreSQL
NoSQL Databases
Search Engines
MariaDB
GOF Design Patterns
Redis MySQL
Architectural Patterns
MongoDB MSSQL
Give DDD a shot
Cassandra
Learn different testing techniques
RethinkDB

Couchbase

Finish
29 Jet Pack Book

Postwork, czyli jak się dokształcać

Warto rozwijać i utrwalać swoje umiejętności na własną rękę


poprzez dalsze tworzenie aplikacji, stron internetowych czy gier.
Na forach i grupach programistycznych można pozyskać zlecenia
na zasadzie wyzwań programistycznych online lub współtworze-
nia oprogramowania typu Open Source; cennym doświadczeniem
jest także udział w hackatonie. Swoje zaangażowanie i osiągnię-
cia dobrze jest dokumentować w CV oraz na profilu w serwisach
Github i LinkedIn. Na tym ostatnim portalu polecam nawiązy-
wanie bezpośredniego kontaktu z rekruterami, przedstawianie
swojego profilu zawodowego, dopytywanie o otwarte stanowiska
i ich poziom wymagań. Konferencje i spotkania branży IT są także
dobrą okazją do zostawienia swojego CV potencjalnym praco-
dawcom, jak również zapytania specjalistów z dłuższym stażem
o ich początki i polecane metody doskonalenia.
Barbara Łuchniak, Recruitment Specialist
w Sapiens Software Solutions

Wiele firm szuka początkujących programistów. Najłatwiej jest


dostać się na staż i tak się na nim zaprezentować, by firma chciała
podpisać przedłużenie stażu (zwyczajną umowę). Warto bywać
na wszelkiego typu targach pracy – analizować konkretne oferty,
angażować przedstawicieli firmy w dyskusję – w ten sposób moż-
na zweryfikować zarówno atmosferę w firmie, jak i jej styl pracy
(a niewielki software house i korporację różni wiele).
Nie lekceważyłabym obecności na wszelkiego typu meetupach
branżowych, konferencjach i warsztatach, bo to właśnie tam
można się najwięcej dowiedzieć o branży. W tej chwili są dziesiątki
takich spotkań w każdym większym mieście. To jednocześnie
doskonała okazja do poszerzenia wiedzy z danego tematu,
a pytania o rozwój pojawiają się na każdej rozmowie rekrutacyjnej.
Małgorzata Wasilewska, dyrektor personalny w Yameo

Najważniejsze są dwie rzeczy: praktyka, czyli wytrwała praca


własna i realizacja pomysłów/projektów, które pozwolą ci utrwalić
wiedzę zdobytą na kursie oraz regularny kontakt z osobami ze
środowiska IT. Bierz udział w konferencjach, meet-up’ach – to nie
tylko duża dawka wiedzy, ale i inspiracji do dalszego rozwoju.
Kamila Ożga, Recruitment Specialist w Jeppesen
Po kursie 30

Konferencje
ZOBACZ, GDZIE WARTO BYWAĆ, BY ZDOBYĆ
NOWĄ WIEDZĘ, SPOTKAĆ INSPIRUJĄCYCH
LUDZI I BYĆ NA BIEŻĄCO.

Confitura – Warszawa
http://2017.confitura.pl/
Największa polska konferencja dla entuzjastów Javy w Polsce.
Miejsce, w którym możesz podzielić się wiedzą i zdobyć ją.
Wstęp na Confiturę jest bezpłatny – zamiast tego istnieje
możliwość przekazania dotacji na cele charytatywne. Szczecin

DevCrowd – Szczecin
http://devcrowd.pl/
DevCrowd to otwarta i bezpłatna szczecińska konferencja dla
specjalistów i pasjonatów z branży IT. Uwagę poświęca głównie
zagadnieniom związanym z językiem Java.

code::dive – Wrocław
http://codedive.pl/
Code :: dive to coroczne wydarzenie gromadzące specjalistów
IT i entuzjastów programowania, którzy dzielą się nowymi
pomysłami, dyskutują o bieżących trendach i wymieniają się
doświadczeniami. Poznań
DevConf – Kraków
http://devconf.pl/
DevConf to jedna z największych corocznych konferencji
poświęconych rozwojowi oprogramowania w Polsce.
Gwarantuje liczne inspirujące rozmowy, sesje programowania
na żywo oraz czas na nawiązanie nowych znajomości.

4developers – Warszawa, Łódź, Gdańsk


http://2017.4developers.org.pl/pl/
4Developers to festiwal technologiczny dla programistów,
który składa się z różnorodnych ścieżek tematycznych prowa-
dzonych w kameralnych grupach. To także świetna okazja,
by w swobodnej atmosferze spotkać się ze specjalistami Wrocław
światowej sławy. Konferencja odbywa się w Warszawie,
ale ma również swoje lokalne wydania, np. w Łodzi i Gdańsku.

Vue.comf – Wrocław
https://conf.vuejs.org/
Pierwsza oficjalna konferencja o frameworku Vue.js na świecie
i to właśnie w Polsce! Na miejscu usłyszysz ciekawe historie,
dyskusje, wykłady, a być może nawet przybijesz piątkę Kariera IT – Wrocław, Łódź, Gdańsk, Warszawa, Katowice,
z Evanem You - twórcą tego narzędzia! Kraków, Poznań, Rzeszów, Białystok
Zapisy na: http://careercon.pl/
Get .NET – Trójmiasto, Łódź Połączenie profesjonalnej konferencji z targami pracy to idealne
https://konferencjaget.net/ rozwiązanie, by jednocześnie chłonąć wiedzę i poszukać
Konferencja GET.NET jest pierwszym tak dużym przedsięwzię- swojego zawodowego raju na ziemi. Masz okazję poznać nowych
ciem związanym z technologiami .NET i pokrewnymi w Polsce. ludzi, być na bieżąco z technologicznymi nowinkami, skonsul-
tować CV z doradcą zawodowym oraz osobiście porozmawiać
Java User Group (JUG) z potencjalnymi pracodawcami - czego chcieć więcej? :)
Trójmiasto, Warszawa, Wrocław, Bydgoszcz, Łódź, Lublin,
Poznań, Kraków, Toruń, Silesia. Więcej wydarzeń znajdziesz na:
Wydarzenia znajdziesz http://meetup.com www.crossweb.pl
Społeczność użytkowników języka programowania Java. www.meetup.com
31 Jet Pack Book

Gdańsk

Białystok
Bydgoszcz
Toruń

Warszawa

Łódź

Lublin

Katowice
Rzeszów
Kraków
Po kursie 32

10 przykazań juniora
CZYLI WSZYSTKO TO, CO CHCIAŁBYŚ WIEDZIEĆ PRZED ROZPOCZĘCIEM SWOJEJ PRZYGODY Z IT,
ALE JESZCZE O TYM NIE WIESZ. ;)

1. Joanna Murawska 6. Adrian Borysionek


Nigdy nie porównuj się do Nie spoczywaj na laurach – tutaj
innych programistów! Jeżeli zawsze jest coś nowego. Po Javie
chcesz się cieszyć tym, co ro- przeskocz na Kotlin, programowa-
bisz, porównuj się do samego nie stanie się przyjemniejsze. Rób
siebie np. sprzed miesiąca. kolejne programy - każdy projekt
to ekstra punkty przy rekrutacji

2. Łukasz Michalak 7. Piotr Andrzejak


Bądź otwarty na ludzi. Jeśli Praca zdalna może i jest kusząca,
czegoś nie wiesz – zadawaj jednak z biurze można porozma-
pytania trenerowi, dyskutuj wiać z bardziej. doświadczonymi
w grupie. Wspólnie poszukaj- programistami oraz poznać innych
cie odpowiedzi na pytanie: ludzi. Praca z domu? Tak, ale raz
jak zrobić to lepiej? w tygodniu.

3. Piotr Andrzejak 8. Łukasz Michalak


Nauka języka angielskiego Naprawdę koniecznie pamiętaj
(bądź dodatkowego języka) o uzupełnieniu profilu na LinkedIn
otwiera wiele nowych furtek – kreowanie wizerunku profesjo-
i daje możliwość pracy nalisty procentuje!
w międzynarodowym
środowisku i często przy dużo
ciekawszych projektach.

Joanna Murawska
Jeżeli przejrzałeś już całe Google
w poszukiwaniu odpowiedzi na
4. Joanna Murawska 9. nurtujące Cię pytanie, to znak, że
Przeczytaj książkę „Czysty należy zapytać kogoś, kto pewnie
Kod” Roberta C. Martina. zna odpowiedź. Nie trać czasu!
Zrób to dla siebie i ludzi, Swojego i klienta, który Ci płaci.
z którymi będziesz pracować. Ustal sobie, że samodzielnie po-
szukasz odpowiedzi przez godzinę.
Jeśli to nie rozwiąże problemu
– pytaj!

5. Łukasz Michalak 10. Adrian Borysionek


Aby nauka była jeszcze więk- Nie zrażaj się – wejście do branży
szą przyjemnością, wplataj jest ekstremalnie trudne, ale moż-
w nią swoje hobby. Lubię liwe. Do swojej firmy dostałem się
kleić modele, dlatego robię przez przypadek, poleciła mi ją
aplikacje o modelach. Znajdź na LinkedIn zupełnie mi nieznana
swoją niszę. :) rekruterka z Poznania.
33 Jet Pack Book

Słownik IT
DEFINICJE SZCZEGÓLNIE PRZYDATNE, GDY DOPIERO ROZPOCZYNASZ KARIERĘ W IT.

Abstrakcja – ma miejsce wtedy, kiedy na jakiś czas ukrywa- Hook – mechanizm, który przechwytuje komunikaty i pozwala
my w kodzie cechy, które aktualnie nie są nam potrzebne do na np. sprawne usuwanie błędów w kodzie.
rozwiązania problemu.
Kompilator – oprogramowanie, które umożliwia przetłumacze-
Agregat – to ogólne pojęcia dowolnego obiektu (klasy, tablicy, nie kodu z jednego języka programowania na analogiczny kod
kontenera), który może zawierać wiele elementów składowych. w innej technologii.

Antywzorzec – rozwiązanie problemu, które nadużywane staje Open source – otwarte oprogramowanie, dostępne legalnie
się błędem. Przykładami antywzorców jest np. niejednolity, oraz bezpłatnie dla każdego użytkownika.
nieczytelny kod (tzw. spaghetti), wprowadzanie niepotrzebnej
złożoności kodu (accidental complexity) czy przechwytywanie ko- Przeciążenie (overloading) – utworzenie kilku funkcji o tych
munikatu o błędzie, by nie zobaczył go użytkownik (error hiding). samych nazwach, ale różnych parametrach.

API (application programming interface) – zbiór publicznych Repozytorium (SCM – source code management) – to miejsce
interfejsów, które możemy wykorzystać, gdy pracujemy nad w wirtualnej przestrzeni, gdzie możemy zapisać i przechowy-
własnym projektem. wać kod naszego projektu. Dzięki SCM mamy dostęp do historii
zmian oraz poprzednich wersji kodu (rewizji).
Backup – kopia zapasowa danych (np. aplikacji, plików czy baz
danych). Warto je robić jak najczęściej, by uniknąć przykrej nie- Responsywność – cecha oznaczająca możliwość dopasowa-
spodzianki – zainfekowania plików czy ich straty na skutek awarii. nia się strony WWW czy aplikacji do np. sposobu wyświetlania
jej. Responsywna strona będzie estetyczna oraz funkcjonalna
Biblioteka – to plik, który dostarcza dane do wykorzystania zarówno na ekranie laptopa, jak i smartfona czy tabletu.
w naszym kodzie źródłowym. Dzięki temu rozwiązaniu nie
musimy pisać fragmentów kodu, które już kiedyś powstały, Serwer – rodzaj komputera, który łączy inne komputery podłą-
tylko użyć gotowych bibliotek. czone do sieci i wzajemnie udostępnia ich zasoby. Na serwerach
znajdują się m.in.: strony WWW, możemy również przechowy-
Bug – błąd, przez który nasza aplikacja nie może działać wać tam pliki.
poprawnie. Znajdują je sami programiści, testerzy, a także
użytkownicy. Software – inaczej oprogramowanie komputera, znajdujące swo-
je miejsce w hardware. Do software zaliczamy np. różnego rodzaju
Chmura – to wirtualne miejsce, w którym użytkownicy mogą edytory tekstu i obrazu, odtwarzacze, systemy operacyjne i gry.
na określonych warunkach przechowywać swoje pliki. Dzięki
takiemu rozwiązaniu wystarczy jedynie połączenie z internetem, Ticket/issue – zgłoszenie przez użytkownika bugu lub pewne
by mieć dostęp do danych z każdego miejsca na świecie. zadanie do wykonania. Dzięki niemu wiemy, na czym polega
błąd i gdzie się on znajduje.
CMS – to proste w obsłudze oprogramowanie, które zostało
oparte na gotowych szablonach, aby ułatwić zarządzanie UI (user interface) - to część graficzna naszej aplikacji, czyli
stronami internetowymi. Najbardziej znanymi systemami wszystko to, co widzi jej użytkownik. Dzięki UI możemy w spo-
CMS są Wordpress, Drupal i Joomla. sób estetyczny oraz wygodny komunikować się z systemem
naszej aplikacji czy strony WWW. UI jest ściśle związane z front
DNS – jest to system nazw domenowych, który tłumaczy nazwę end developmentem.
domeny na jej unikalny adres numeryczny, lepiej znany jako IP.
UX (user experience) – to wszystkie emocje i wrażenia,
Domena – to inaczej adres czyli nazwa, pod którą kryje się których doświadcza użytkownik naszej aplikacji. Warto mieć
dana strona internetowa. Każda ma unikalną część własną ich świadomość, ponieważ to może wpłynąć na usprawnienie
oraz powtarzalną końcówkę (np. com lub pl). naszego projektu i sprawienie, że będzie on bardziej funkcjo-
nalny (user friendly). UX pozwala nam ocenić, czy aplikacja
Framework – biblioteka, która dostarcza zbiór funkcjonalności jest wygodna, zrozumiała dla użytkownika i ułatwiająca mu
i na której opieramy naszą aplikację. Narzuca pewien styl lub konkretne czynności.
konwencję a jego podmiana w projekcie wiąże się z dużym
nakładem pracy, ponieważ kod w danym frameworku pisze się Unit testy (testy jednostkowe) – testy pisane przez progra-
w unikalny sposób. mistów, które sprawdzają funkcjonalności w oparciu o mały
fragment kodu. Są one tworzone i uruchamiane jeszcze
Hardware – „namacalny” sprzęt komputerowy, jak np. napęd, w trakcie tworzenia kodu, by na bieżąco sprawdzać, czy ostat-
procesor, karta graficzna czy płyta główna. nio wprowadzone zmiany nie zepsuły lub nadpisały żadnej
wprowadzonej funkcji.
Po kursie 34

Kapsuła czasu
NA KONIEC, UZUPEŁNIJ SWOJĄ KAPSUŁĘ CZASU – WRÓĆ DO NIEJ PO ZAKOŃCZONYM KURSIE
I ZOBACZ, CO UDAŁO CI SIĘ OSIĄGNĄĆ!

Mój cel z którym przyszedłem do SDA, to: Chcę pracować w małej firmie / dużej korporacji.
(niepotrzebne skreślić)

godzin tygodniowo chcę przeznaczyć Po kursie chcę być na stanowisku


na naukę programowania poza kursem SDA.

Pracę w IT chcę znaleźć


PO / W TRAKCIE kursu
(niepotrzebne skreślić)

Podczas kursu chcę aplikować


do co najmniej firm.

Moje mocne strony, które mogą być


przydatne w to:

Cotygodniową, świeżą dawkę informacji


na temat zdobycia pracy w branży IT
znajdziesz na YouTube
@software.development.academy
35 Jet Pack Book

Pierwsze Wydanie Jet Pack Book

Autorki:
Martyna Broda / Anna Kalska

Oprawa graficzna:
Mikołaj Sałek

Dziękujemy wszystkim zaangażowanym


w powstanie Jet Pack Booka:
absolwentom, firmom partnerskim
i ich reprezentantom,
kolegom i koleżankom
z Software Development Academy.

Wydawca:
SDA Sp. z o.o.
Aleja Zwycięstwa 96/98,
81-451 Gdynia

© 2018 SDA sp. z o.o.,


Wszelkie prawa zastrzeżone.
Bez zgody SDA Sp. z o.o.
zabronione jest m.in. powielanie
treści, ich kopiowanie, przedruk,
przechowywanie i przetwarzanie
z zastosowaniem jakichkolwiek
środków elektronicznych,
zarówno w całości, jak i w części.
Jakiekolwiek dalsze rozpo-
wszechnianie treści stanowi
naruszenie praw SDA Sp. z o.o.
www.sdacademy.pl

You might also like