fbpx
Select Page
Autoscaling na chmurze

Autoscaling na chmurze

autoscaling-temp

Autoscaling na chmurze. Jakie problemy rozwiązuje, a jakie stwarza?

Tomek-Sapalski-Picture

TOMEK SAPALSKI

Autoscaling jest to temat, który bardzo mocno zyskał na popularności po powstaniu chmur. Zanim mieliśmy do nich dostęp, najczęściej po prostu kupowaliśmy sobie serwer np. na rok za 10-15 tysięcy złotych i nie zwracaliśmy uwagi, czy chodzi on godzinę, miesiąc czy rok.
Jednak jak powstały chmury i zaczęły się rozpowszechniać, pojawiła się możliwość kupowania serwerów na krótszy okres. Właśnie wtedy pojawił się koncept, zwany auto skalowaniem, czyli po ang. autoscaling i jemu będzie poświęcony ten tekst.  

Autoskalowanie to taki sposób działania, którego celem jest dostosowanie ilości zasobów do potrzeb użytkownika. Rozwiązanie to tak, jak wiele rozwiązań chmurowych ma swoje plusy i minusy. Generalnie chodzi w nim o to, że możemy sobie dodawać i odejmować serwery w
zależności od tego, jaki jest ruch na stronie – najczęściej właśnie w taki sposób to się odbywa.
Normalnie każdy serwer można skalowć w opcji scale up i scale down, które polegają na tym, że możemy np. dodać więcej RAMu, dodatkowe procesory i w ten sposób zwiększać jego możliwości. Jednak powoduje to, że jego zasoby również rosną – w związku z tym jest to metoda, która działa do pewnego momentu, ale niestety nie jesteśmy w stanie powiększać
serwera w nieskończoność.  

Co w takiej sytuacji? Pojawia się drugie rozwiązanie, czyli dodawanie i usuwanie kolejnych serwerów (scale out i scale in). Możemy więc wystartować z jednym serwerem, ale po pewnym czasie wraz ze
zwiększeniem ruchu na stronie będziemy ich mieli już 2, 5 czy 50. Koncepcja ta sprawdza się bardzo dobrze w przypadku stron typu stateless, czyli takich, które nie posiadają sesji. Dla zobrazowania możemy użyć przykładu strony internetowej z kilkoma zakładkami,
np. o mnie, portfolio, oferta, itp. Użytkownik wchodzi na stronę, czyta, ogląda i wychodzi. I tak samo 10, czy 100 użytkowników – wchodzi, czyta, ogląda, wychodzi. W tym przypadku nie mamy do czynienia z sesją, bo niezależnie od tego, w którym miejscu czytelnik się znajduje to
przechodząc do kolejnego tematu, wychodzi z poprzedniej zakładki i tylko czyta.  

Przejdźmy więc do sytuacji, kiedy sesja jest. Wyobraźmy sobie aplikację linii lotniczej, która sprzedaje bilety. Wchodzi klient i wybiera, że chciałby kupić bilet z Warszawy do Paryża – klika i wyświetlają mu się wyniki zgodne z jego zapytaniem. Na co klient wybiera sobie datę i godzinę i ponownie klika. Następnie wyświetlają mu się dostępna miejsce i użytkownik
wybiera sobie np. 27A. Taki “dialog” wymaga, żeby następowały jakieś zwrotne działania – konkretne zapytanie zostało wysłane do serwera i serwer na tę informację odpowiedział dając dopasowaną odpowiedź. W jaki sposób realizuje się takie połączenie? Serwer musi niejako wiedzieć, że to jest ten konkretny użytkownik, bo w tym samym czasie na stronie mogą być inni klienci wyszukujący zróżnicowane połączenia. Na tym właśnie polega sesja – serwer „wie” z kim „rozmawia”.

Problem z sesjami przy auto scalingu jest więc taki, że nasz serwer musi pamiętać użytkownika, żeby go obsłużyć.  

Wyobraźmy sobie taki prosty przykład. Idziemy do urzędu, w którym pracuje kilku różnych urzędników. Trafiamy do Pana Jacka, z którym załatwiamy jakąś sprawę i ten Pan mówi nam, że brakuje kilku dokumentów i będziemy musieli je donieść. Wracamy więc do domu, kompletujemy resztę papierów i przychodzimy ponownie. Pan Jacek na nasz widok mówi tak
wiem, pamiętam, uzupełnia dane i wszystko jest załatwione. Jednym słowem mamy z Panem Jackiem sesję. Ale co w sytuacji, kiedy nie ma Pana Jacka i trafimy do Pani Basi, która widzi nas po raz pierwszy? Nie będzie wiedziała kompletnie o co chodzi i ciężko jej będzie rozwiązać nasz problem. Podsumowując, serwer musi mieć informację o każdym użytkowniku, którego obsługuje.  

Problem pojawia się, kiedy mamy kilka serwerów i musimy przyporządkować go za każdym razem do odpowiedniego klienta. Z pomocą przychodzi load balancer, którego zadaniem jest
delegowanie ruchu na poszczególne serwery. Żeby to zrobić musi wiedzieć, kogo należy wysłać do kogo. Wracając do naszego przykładu – nazwijmy load balancera Panem Krzysiem, który wita klientów przy wejściu do urzędu i kieruje odpowiednio do Pana Jacka lub Pani
Basi. Żeby to zrobić poprawnie – musi mieć informacje o danym użytkowniku i osobie, z którą rozmawiał ostatnio. Tak samo w przypadku naszej aplikacji biletowej, load balancer zapamiętuje informację o przychodzącym użytkowniku i o tym, który serwer go obługiwał. W ten sposób możemy zarezerwować sobie konkretne miejsce w samolocie, mimo wielu serwerów, jesteśmy obsługiani ciągle przez ten, do którego zostaliśmy przydzieleni na początku.  

A co w przypadku, kiedy ruchu na stronie nie ma? 1000 osób zakupiło bilety i wyszło ze strony, zostały na niej 2, a my mamy aż 10 aktywnych serwerów. W tej sytuacji trzeba je usuwać – to także robi load balancer. W pierwszej kolejności sprawdza, które z serwerów są zajęte, a które się zwolniły i usuwa te, które nie są już potrzebne. To rozwiązanie jest
oczywiście w porządku, ale pojawia nam się inny problem.  

Problem polega na tym, że chcemy usunąć użytkowników natomiast nie wiemy, kiedy.
Powiedzmy, że mamy 5 serwerów i każdy z nich może obsługiwać jednocześnie 1000 osób – jeśli jest większy ruch to trzeba dostawić nowy. No i faktycznie w pewnym momencie mieliśmy po kilkaset osób wchodzących, jednak teraz ruch spadł i mamy 3 serwery, a na
każdym z nich zostało po 1 użytkowniku. Do ich obsługi oczywiście wystarczyłby nam 1 serwer, jednak nie możemy ich przerzucić, bo każdy z nich ma osobne sesje i stracilibyśmy do nich dostęp. Tak więc mimo, że teoretycznie moglibyśmy obsługiwać 1000 użytkowników na
jednym serwerze, jesteśmy w tej sytuacji zmuszeni trzymać te 3, ponieważ rozpoczęto już na nich sesje.  

Możemy wówczas zastosować rozwiązanie, które nazywa się server drainage i polega na wprowadzeniu maksymalnego czasu trwania sesji dla użytkownika. Czyli np. jeżeli w ciągu 15 minut użytkownik nie odpowie na wszystkie pytania dotyczące lotu to go usuwamy – dostaje informację, że sesja wygasła i musi rozpocząć proces od nowa.  

Chciałbym tutaj zrobić taką prostą analogię do kolejki w Lidlu. Ja sobie tam gdzieś stoję, wyłożyłem na taśmę swoje zakupy, jestem trzeci w kolejce i pani, która obsługuje prosi, żebym wziął plakietkę i na końcu położył – z informacją, że już dalej nie obsługujemy. Co to oznacza? Nowych klientów już nie obsłużymy, ale oczywiście tych którzy już wyłożyli swoje
produkty tak. Na podobnej zasadzie funkcjonuje server drainage – load balancer widzi, że serwer ma tylko kilka aktywnych sesji, więc przestaje kierować do niego nowych użytkowników. Natomiast te sesje,
które zostały już rozpoczęte mogą pozostać włączone – jednak ustawia się limit czasowy, np. tylko przez 15 minut. Inaczej użytkownik, który rozpoczął sesję i nie zakończył, mógłby taki serwer blokować w nieskończoność.

Co jeszcze możemy zrobić, żeby usprawnić ten proces? Najwygodniej byłoby, gdyby serwery mogły użytkowników między sobą przejmować – jak to zrobić? Istnieją dwa sposoby. Pierwszy z nich to zastosowanie tzw. serwerów sesji. Stawiamy sobie dodatkowy serwer, którego
jedynym zadaniem jest zbieranie informacji o sesjach. Działa to w ten sposób, że użytkownik przechodzi przez load balancer, a następnie jest kierowany do losowego serwera, który nie ma informacji o jego sesji. W pierwszym zapytaniu nie ma to znaczenia, serwer rozpoczyna sesję i informacje o niej wysyła na serwer sesyjny. Gdy użytkownik wyśle kolejne zapytanie, zostanie znów skierowany na losowy serwer, który z kolei wyśle zapytanie o sesję do serwera sesji. Dostanie z powrotem wszystkie dotychczasowe informacje i będzie mógł obłużyć użytkownika.

Drugim ze sposobów jest przechowywanie informacji o sesjach, zamiast na serwerze, w bazie danych. W tej sytuacji wszystkie serwery mają do niej dostęp i mogą z niej korzystać. Dane zwykle przechowywane są w tabeli – możemy tam znaleźć session ID i dodatkowe informacje na temat tego, co użytkownik aktualnie robi. Wówczas, kiedy klient wchodzi na stronę serwer
pobiera informacje z bazy i jest w stanie bez problemów go obsłużyć.

Na zakończenie, jest jeszcze jedna kwestia, którą chciałbym poruszyć. A mianowicie skąd właściwie mamy wiedzieć, ile powinniśmy usunąć serwerów i w jakim tempie to robić, kiedy zauważymy spadki w ruchu na stronie? Może się przecież zdarzyć sytuacja, że użytkownicy
przestaną wchodzić na naszą aplikację, my usuniemy 95% serwerów, ale po krótkim czasie okaże się, że ruch znowu znacząco wzrośnie i będziemy zmuszeni tworzyć nowe. Żeby uniknąć takiego przebiegu wydarzeń dajemy load balancerowi zazwyczaj określony czas zanim usunie kolejny serwer, np. 5 minut. Czas ten oczywiście jest do sprecyzowania
przez nas.  Dzięki temu w razie wzrostu ruchu jesteśmy przygotowani na nowych użytkowników. Wadą autoskalingu jest to, że wszystkie procesy trwają, także dużo rozsądniej jest poczekać dłużej z usunięciem serwera, niż później nie nadążać ze stawianiem nowych.
Czas, jaki potrzebuje nowy serwer, żeby się uruchomić to zwykle 3-4 minuty – równolegle nasz działający serwer stara się obsłużyć nowych użytkowników, ale nie daje rady, co kończy się najczęściej niedziałającą stroną z informacją typu time out.  

A jak myślicie, skąd load balancer wie, kiedy ma stawiać nowe serwery albo usuwać stare?
Otóż przez niego przechodzą informacje o ruchu więc wie on ile zapytań jest na każdym serwerze. Może więc ustalić limit 1000 requestów na serwer i pewien margines na uruchomienie nowego serwera, np. już przy 700 trzeba postawić nowy serwer, a przy spadku do 100 któryś z nich można usunąć. Load balancer może również badać obciążenie procesora – jeśli np. przy 90% się grzeje to jest to informacja, że trzeba uruchomić nowy serwer. Analogicznie, jeśli wykorzystuje tylko 10% mocy to znaczy, ze można usunąć. Można oczywiście również ustalić swoje własne parametry i ich górny/dolny pułap, na który load balancer ma odpowiednio reagować.   

To już wszystko w dzisiejszym artykule – tak właśnie działa auto scaling na chmurze. Mam nadzieję, że był dla Was przydatny i udało mi się choć trochę rozjaśnić, jak funkcjonuje autoskalowanie i w jaki sposób może się różnić w przypadku aplikacji bezsesyjnych oraz sesyjnych. Jeśli macie jakieś pytania lub wątpliwości to piszcie i dawajcie znać.

Jak dostać pracę w IT po znajomości?

Jak dostać pracę w IT po znajomości?

Znajomosci

JAK ZNALEŹĆ PRACĘ W IT PO ZNAJOMOŚCI?

Tomek-Sapalski-Picture

TOMEK SAPALSKI

Szukanie pracy po znajomości to temat dość kontrowersyjny. Jednak moim zdaniem jest to jedna z najlepszych i najskuteczniejszych metod znalezienie zatrudnienia, szczególnie w branży IT. Dlaczego? Poniżej dzielę się swoimi przemyśleniami.


Pamiętam jak 17 lat temu przyjechałem do Dublina, byłem świeżo po studiach i szukałem pracy jako programista. Rozmawiałem z kolegą Irlandczykiem i zwierzyłem mu się, że kiedyś w Polsce podczas rekrutacji nie przyjęli mnie mimo wysokich kwalifikacji, a zatrudnili kogoś innego, po znajomości właśnie. Wytłumaczyłem mu sytuację i szczerze mówiąc liczyłem na pewnego rodzaju pocieszenie czy zrozumienie, że no niestety nie mogłem nic zrobić, a jednak odpowiedź była zupełnie inna. Dla Irlandczyka było oczywiste, że ten drugi kandydat miał po prostu dobrą sieć kontaktów – tzw. dobry networking i że jest to jedna z cech, którą powinien posiadać kandydat ubiegający się o pracę. To było dla mnie ogromne zaskoczenie i spowodowało totalną zmianę w moim myśleniu. Wcześniej zawsze wydawało mi się, że jak ktoś wygrywa rekrutację ze względu na znajomości to, że jest to „nie fair”. A jednak okazuje się, że networking zależy tylko od nas, możemy go sobie zbudować i jest to duży atut!
To była dla mnie nowość. Ja podchodziłem do tego raczej w taki sposób, że liczy się najlepsze wykształcenie i umiejętności na papierze, i że powinno się przechodzić rekrutację etap po etapie, a na końcu wygrywa najbardziej odpowiedni kandydat. Wydaje mi się, że nadal sporo osób może podobnie na to patrzeć i czuć się potraktowana niesprawiedliwie, jeśli nie dostanie pracy ze względu na brak znajomości. Tym, którzy tak uważają chciałbym spróbować zmienić myślenie i pomóc przełamać pewną barierę z tym związaną.

Zacznijmy od takiego przykładu, czy jeśli Twój blog, webinar, czy kanał na YouTube pomógłby Ci w znalezieniu pracy to uważasz, że byłoby to niesprawiedliwe? To też jest pewna forma znajomości. Potencjalny pracodawca znalazł Cię w Internecie i postanowił zaproponować Ci pracę, bo podoba mu się to, co robisz. To już nie wydaje się tak bardzo nie fair, prawda?

Chciałbym podzielić się kolejnym przykładem. Pewien Polak otworzył start-up w Nigerii. Potrzebował deweloperów i postanowił zrobić rekrutację. Mimo zaleceń swoich pracowników, którzy radzili, żeby wziął kogoś od nich po znajomości, nie posłuchał i postanowił dać ogłoszenia do gazet i Internetu. Następnego dnia, kiedy pojawił się w biurze – miał w skrzynce 10 000 CV. Wyobrażacie sobie? Po jednym dniu! Jak się później okazało, większość z tych zgłoszeń pochodziła od osób, które zupełnie nie miały kwalifikacji na to stanowisko, a proces weryfikacji tak dużej ilości dokumentów był wręcz niemożliwy. W związku z tym Polak w końcu dał się przekonać i faktycznie poprosił o polecenia swoich pracowników, co było strzałem w dziesiątkę.
Powyższe przykłady dobrze obrazują powody, dla których firmy płacą za rekomendacje. Szczególnie w dużych korporacjach, często zdarza się, że pracownicy otrzymują dodatkowe wynagrodzenie w wysokości 500-2000 zł za polecenie dobrego pracownika. To jest sytuacja, w której zarówno pracodawca jak i pracownik odnosi korzyści. Dlaczego? Pracownicy mają szansę pracować z ludźmi, którym ufają i których dobrze znają, a pracodawcy zyskują rzetelne polecenia i mogą uniknąć długiego i często żmudnego procesu rekrutacji. Zauważ też, że pracownicy chcą raczej pracować z osobami, które są wykwalifikowane i dobrze wypełniają swoje zadania. Także nie ma tutaj właściwie ryzyka, że polecony zostanie ktoś nieodpowiedni.
Warto w tym momencie zapytać siebie, ile znam takich osób, które chętnie i z czystym sumieniem poleciłyby mnie do pracy w branży? Odpowiedź pokazuje, jak dobrą masz sieć kontaktów.

Z mojego doświadczenia wynika, że zbudowanie swojej sieci profesjonalnych kontaktów jest dużo ważniejsze niż nauczenie się kilkunastu technologii. Zawsze może okazać się, że akurat jednej brakuje aktualnie w Twoim CV, ponieważ te nieustannie się zmieniają.  Patrząc z innej strony, jeśli okaże się, że w 100% spełniasz wymogi pracodawcy, wszystko znasz i potrafisz, masz doświadczenie to być może wcale tak naprawdę nie chcesz tej pracy, bo nie stawia ona przed Tobą żadnych nowych wyzwań? To są pytania, na które pracodawca nie zna odpowiedzi i nie znajdzie ich w CV. Odpowiedzi może jednak uzyskać pytając Twoich znajomych.
W Irlandii i być może w Polsce aktualnie również, zatrudnia się według tzw. attitude, czyli podejścia do pracy. Pracodawca chce mieć pewność, że pracownik dobrze się czuje, chce pracować i nie odejdzie z dnia na dzień. Same kwalifikacje i ukończone szkoły nie są w tym momencie najważniejsze.

Na podsumowanie moich rozważań, zebrałem dla Was kilka rad, które mam nadzieję pomogą Wam w zbudowaniu własnej sieci kontaktów i tym samym zwiększą Wasze szanse na zdobycie wymarzonej pracy.

1.    Dziel się swoją wiedzą w Internecie! Załóż bloga, kanał na YouTube. Nie musisz być ekspertem w swojej dziedzinie, ale ważne żeby pisać, o tym co robisz, jak sobie radzisz, jakie masz problemy i jak je rozwiązujesz. To droga jest najważniejsza – proces jaki przechodzisz podczas nauki i sposób w jaki dzielisz się swoją wiedzą.

2.    Postaw na autopromocję. To właściwie uzupełnienie poprzedniej rady. Nie ma takich osób na świecie, które nie muszą się promować. Chwal się tym co robisz, czy podczas rozmów ze znajomymi, rodziną, itp. Im więcej osób będzie wiedziało jakie masz pasje, czym się zajmujesz, jak sobie radzisz, tym prędzej ktoś szukając specjalisty w Twojej dziedzinie zwróci się do Ciebie po pomoc w pierwszej kolejności! To taki marketing szeptany, który jest bardzo istotny w procesie pozyskiwania pracy po znajomości.
3.    Pomagaj innym za darmo! Nie bój się dzielić wiedzą, to przyniesie Ci mnóstwo korzyści w przyszłości. Nie daj się złapać w pułapkę „jeśli będę wszystkim pomagał za darmo, to nic nie zarobię”. Działa to dokładnie na odwrót. Ludzie najchętniej właśnie w ramach wdzięczności chcą pracować z takimi osobami, które wcześniej podzieliły się czymś bezpłatnie i zyskały w ten sposób zaufanie!

4.    Zbuduj profesjonalny profil na LinkedIn. Szczególnie w branży IT jest to bardzo istotne. To tam najczęściej pracodawcy sprawdzają wszystkich kandydatów. LinkedIn to bardzo dobre narzędzie, za pomocą którego można się pokazać od strony zawodowej. Na swoim profilu możesz zbudować ogromną bazę przydatnych kontaktów. Dzięki temu Twoje CV może dziennie zobaczyć mnóstwo osób. Jeśli dodatkowo masz referencje, na pewno bardzo podniesie to wartość Twojego profilu. Poproś o nie znajomych z poprzednich prac.

5.    Pamiętaj, że to co dajesz innym, zawsze do Ciebie wróci! Jeśli czujesz się sfrustrowany, że być może za dużo pomagasz, dajesz rad, a ludzie tylko biorą i nie dostajesz nic w zamian, zastosuj prosty trick. Po każdym podziękowaniu powiedz „wiem, że Ty byś mi też pomógł”. Zobaczysz, że zapadnie to w pamięci tej drugiej osoby na długo.
Mam nadzieję, że moje przemyślenia pomogą Ci nieco inaczej spojrzeć na pracę po znajomości i nie będzie to już temat tak kontrowersyjny. Kto wie, może dzięki networkingowi otworzą się dla Ciebie zupełnie nowe możliwości?
Najczęstsze problemy osób początkujących z bootcampami IT i jak ich uniknąć.

Najczęstsze problemy osób początkujących z bootcampami IT i jak ich uniknąć.

bootcamp-class

NAJCZĘSTSZE PROBLEMY OSÓB POCZĄTKUJĄCYCH Z BOOTCAMPAMI IT I JAK ICH UNIKNĄĆ

Tomek-Sapalski-Picture

TOMEK SAPALSKI

Ja Cię rozumiem, naprawdę. Masz dość swojej pracy, bez rozwoju, bez możliwości  awansu, bez żadnych ciekawych wyzwań. Co innego w IT – może i na początku trzeba się dużo  nauczyć, ale znów nie tyle ile żeby zostać lekarzem. Bootcamp w 7-9 miesięcy, po pracy  godzinka, czy dwie. Python, Java albo tester, najlepiej Python bo najłatwiejszy. I już za rok  ciekawa praca, super zarobki, międzynarodowa kariera, żyć, nie umierać.

Nie chciałbym psuć Twojego snu, ale pozwól, że spojrzymy trochę krytycznym okiem na te  bootcamps i najczęstsze z nimi problemy.

1. Może się bardzo szybko okazać, że kurs nie jest dla Ciebie.

Oczywiście nikt Ci tego nie powie, ale trzeba mieć określony typ osobowości, żeby być testerem, programistą front-end czy administratorem baz danych. Możesz zostać nieszczęśliwym  testerem, tak samo jak istnieją całe rzesze nieszczęśliwych ludzi pracujących w bankach czy  firmach prawniczych. Pieniądze są dobre, ale szczerze nienawidzą swojej pracy. Ale chyba nie o  to Ci chodzi. Niestety firmy oferujące bootcampy mają zazwyczaj tylko 2-3 propozycje kursów. I  jedyne co możesz od nich uzyskać to informację, czy najlepsza opcja dla Ciebie to A, B czy C.  Rady, żeby nie zapisywać się na żaden kurs raczej nie dostaniesz. 

 

2. Bootcampy są drogie. 

Prawdopodobnie pierwszy raz gdy zobaczysz mityczne 15.000zł, o których mówią wszyscy w IT będzie wtedy, gdy znikną one z Twojego konta. Bootcampy są drogie i nie chodzi o  przeliczanie kursu na godziny, ale o kwotę, którą musisz zapłacić na początku. I jeśli się okaże (a jest duże prawdopodobieństwo) że to jednak nie jest dla Ciebie, to będziesz chodzić na kurs tylko  dlatego, że już jest opłacony. Z moich doświadczeń wynika, że wraz z postępem kursu, zwiększa  się liczba osób, które chętnie by się z niego wypisały gdyby tylko odzyskały pieniądze. 


3. Poziom i zaangażowanie trenerów są bardzo różne. 

Szansa, że bootcamp będzie nauczany przez tą samą osobę, przez kilka miesięcy jest  zerowa. Są trenerzy od front-endu, od back-endu, od baz danych, od testów i od różnych innych  specjalności. Niektórzy są świetni, inni niestety nie. Problem polega na tym, że wiedzę buduje się na informacjach z poprzednich zajęć. Jeśli ktoś nie wytłumaczy dobrze baz danych, ciężko będzie  Ci z następnym trenerem tworzyć wykresy w oparciu o dane. A to jest jak gonienie  rozpędzającego się pociągu. Im więcej będzie niedostatecznie wytłumaczone, tym trudniej będzie  Ci zrozumieć kolejne rzeczy. 

4. Sukces będzie dopiero na końcu procesu, kilka miesięcy później albo wcale.

Powiedzmy, że faktycznie zawsze marzyłeś, żeby zostać programistą Pythona, ale przez  nieszczęśliwy zbieg okoliczności zostałeś selekcjonerem kadry Polski w piłkę nożną i teraz chcesz  się przebranżowić. Uwielbiasz Pythona, samodzielne dokształcanie po nocach, bez problemu  możesz zapłacić za taki kurs. Po jego zakończeniu jesteś w trójce najlepszych absolwentów.  Prawda jest taka, że wszystkie osoby z Twojej grupy napiszą CV dokładnie tak samo jak Ty. Że  zrobiły kurs na renomowanym bootcampie, że zrobiły super projekt, który się wszystkim podobał i  że już są gotowe do pracy jako Junior. Będzie Ci bardzo ciężko się odróżnić od osób, które ledwo  rozumiały o co chodziło na kursie, a projekt od razu poszedł do szuflady. Firmom nie chce się sprawdzać setek identycznych CV, tego kto faktycznie nauczył się Gita i rozumie dziedziczenie  obiektów. Czy byłeś najlepszy, czy najgorszy na kursie, wyglądasz tak samo. I nie wiesz w  gwarancje zatrudnienia, coś takiego nie istnieje. Żadna firma nie ma obowiązku zatrudniania  absolwentów Twojego kursu. 
Dobrze, dobrze, już wystarczy tych problemów. Jakie są w takim razie rozwiązania?

1. Musisz poznać całą gamę specjalizacji w świecie IT, żeby podjąć świadomą decyzję gdzie tak  naprawdę pasujesz. 
Oprócz przypadków osób, które nie znoszą pracy z komputerem i nie wyobrażają sobie  siedzenia 8 godzin dziennie przed ekranem przez najbliższe lata, większość osób nadaje się do  pracy w IT. Nie daj sobie wmówić, że to co oferują bootcampy to jedyne możliwości. W kolejnych  postach postaram się pokazać Ci całą różnorodność tej branży i wyjaśnić jakie cechy pasują najlepiej do określonych stanowisk. Tak, żeby wybór podjęty przez Ciebie był dokonany z  radością i ekscytacją na myśl o nauce nowej specjalizacji. Jednocześnie nie bój się, zawsze  możesz dobierać nowe umiejętności tak, żeby najlepiej Ci pasowały. Ta branża jest bardzo  elastyczna i nowe specjalizacje powstają bardzo szybko. Ważne, żeby wiedzieć jakie są Twoje  podstawowe kompetencje i na ich podstawie budować swoją karierę w IT. 
2. Spróbuj zrobić kilka krótkich i tanich kursów, żeby się przekonać, czy faktycznie Twój wybór  jest odpowiedni.

Lepiej zapłacić 500zł i stwierdzić, że to nie to, niż kilkanaście tysięcy. Ta  wiedza nie ucieknie, nawet jak później zapiszesz się na bootcamp to będziesz lepiej rozumieć materiał i szybciej wykonywać ćwiczenia. Pieniędzy tak czy inaczej nie zmarnujesz.
3. Nawet jeśli trafisz na słabego trenera, nie może to być wymówką.

Twoja kariera to Twoja  odpowiedzialność. Musisz douczyć się samodzielnie. Z blogów, z YouTube czy z innych  kursów. Pamiętaj, robisz to dla siebie i jeśli się nie przyłożysz, tylko Ty przegrasz. 
4. Twoja największa wada to Twoja największa zaleta.
Byłem kiedyś na konferencji gdzie  prezentowały się firmy IT założone przez osoby niepełnosprawne. Opowiadały jak łatwo  potrafiły zyskiwać przewagę rynkową nad innymi rozwiązaniami z branży, ponieważ nikt tak  dobrze nie rozumiał ich klientów jak oni sami. Jedną z osób, którym pomogłem znaleźć pracę po bootcampie był 45-letni żołnierz zawodowy, który nie chciał już biegać po poligonach i  konkurować z młodszymi i silniejszymi kolegami. Jak wiele innych osób, zrobił kurs  programisty aplikacji webowych. Pomogłem mu zrozumieć, że ma dużo większą przewagę nad innymi osobami z kursu jeśli użyje swojej wiedzy do zrozumienia bezpieczeństwa stron internetowych. Kto inny z jego grupy może powiedzieć, że na codzień traktuje  bezpieczeństwo równie poważnie co on? I faktycznie, spodobał mu się ten kierunek i niedługo  później dostał pracę jako IT Security Engineer, a przy wyborze kluczowym elementem okazało  się jego doświadczenie dla obronności kraju. Również i Tobie życzę znalezienia swojego  miejsca w IT.I proszę, nie idź w ciemno na bootcamp.