P-Programowanie

CV programisty

Ostatania modyfikacja: 28 sierpnia 2017, kategoria: Studia i praca

Zastanawiasz się jak napisać CV programisty? Co powinno znaleźć się w CV? Czy warto wspominać o poznanych technologiach, czy warto wpisywać poprzednie miejsca pracy nie związane z informatyką? Odpowiedź na te wszystkie pytania znajdziesz w tym artykule. Po jego przeczytaniu napisanie CV programisty nie będzie dla Ciebie żadnym problem!

Wstęp

Przed Tobą pierwszy artykuł w serii poświęconej wszystkim co związane z pracą i karierą w zawodzie programisty. Do jej zapoczątkowania skłoniło mnie wiele pytań jakie dostaję na skrzynkę e-mailową. Przez kilka następnych wpisów postaram podzielić się z Tobą całą swoją skromną wiedzą dotyczącą szukania pracy i pisania CV w naszym fachu!

Dodatkowym argumentem jest to, że aktualnie pracuję w dziale HR, nie jako rekruter a właśnie jako programista. Otwarło mi to oczy na wiele mechanizmów i zwyczajów rekruterów, o których wcześniej nie miałem pojęcia. Całą swoją wiedzą podzielę się z Tobą!

W internecie można znaleźć wiele informacji na temat pisania poprawnego CV. Niestety w większości są to artykuły sponsorowane lub pisane przez osoby nietechniczne. Kolejnym problemem jest to, że wszystkie te artykuły pisane są na jedno kopyto, generalnie nie dostarczają żadnych sensownych informacji – jest w nich dużo lania wody i pisania o kwiatkach

Ja nie będę pisał o pierdołach ani tłumaczył czym jest CV. Postaram się za to przedstawić kilka ważnych informacji, o jakich trzeba wiedzieć.

Jak jest analizowane CV programisty?

Najważniejszą kwestią jest zdawanie sobie sprawy jak wygląda proces rekrutacji programisty. Jest on inny dla małych firm i inny dla dużych korporacji. To gdzie aktualnie aplikujesz bardzo zmienia postać rzeczy, absolutnie nie można tego samego CV wysyłać do dużych i małych jednostek!

Rekrutacja programisty w małej firmie

W małej firmie za proces rekrutacji przeważnie odpowiedzialny jest nikt inny jak szef. Nawet jeżeli CV zbierane są przez sekretarkę bądź asystentkę, ostatecznie i tak ocenia je oko szefa.

rekrutacja programista

W małych działalnościach gospodarczych szefem przeważnie jest osoba techniczna, posiadająca duże umiejętności programistyczne i umiejętności zarządzania projektami. Składając CV do małej firmy należy brać ten fakt pod uwagę! Rolę drugorzędną będą miały w tym wypadku kwiatki i wodotryski, osoba techniczna będzie skupiać się na szczegółach takich jak np. fachowa terminologia.

Osoba techniczna odpowiedzialna za swoją własną firmę, będzie chciała zatrudnić jak najlepszego fachowca. Dodatkowo szybko wyłapie z CV wszelkie nieścisłości, typowe lanie wody bądź wręcz nieistotne pierdoły.

Osoba techniczna kierująca firmą posiadająca duży bagaż doświadczenia zawodowego, będzie umiała odróżnić wartościowych kandydatów od tych, którzy się nie naddają. Zrobi to między innymi na podstawie zawartych w CV informacji takich jak poprzednie miejsca pracy, wykonane projekty oraz języki i technologie z jakimi spotkał się kandydat.

Rekrutacja programisty w korporacji

Duże korporacje żyją własnym życiem. Za rekrutację zawsze odpowiada rekruter pracujący w dziale HR. Profil rekrutera nie ma nic wspólnego z profilem programisty. Rekruter jest osobą nietechniczną. Podczas przeglądania CV rekruter skupia się na poszczególnych słowach kluczowych np. na językach programowania, które aktualnie są wymagane u nowego kandydata.

Rekruter przeglądając CV wyłapuje pojedyncze słowa kluczowe i na ich podstawie decyduje, czy jesteś kandydatem naddającym się na dane stanowisko.

programista korporacja cv

Aplikując do korporacji trzeba koniecznie brać to pod uwagę. Niestety rekruter jest pierwszą osobą, która może odrzucić Twoje CV i zdecydować o Twoim losie.

Wysyłając CV do korporacji należy skrupulatnie przygotować CV – wypisać w nim wszelkie znane języki programowania i technologie. Przykładowo możesz napisać, że doskonale umiesz technologię .NET, pracujesz w niej X lat. Osoba techniczna w małej firmie może być zainteresowana Twoją osobą i zaprosi Cię na rozmowę. Natomiast rekruter, który nie wie co składa się na technologię .NET odrzuci Twoje podanie ponieważ nie znajdzie w CV słów kluczowych takich jak ASP.NET, ASP.NET MVC, WCF, WPF itd.

Mówiąc najprościej, jeżeli źle przygotujesz swoje CV starając się o pracę w korporacji nawet nie będziesz miał możliwości ani szans aby zaprezentować się na rozmowie kwalifikacyjnej – nie ważne jaki dobry byś nie był.

Różnice

Wniosek z tego akapitu jest bardzo prosty. Wysyłając CV do małej firemki może być to CV bardzo treściwe. Masz bardzo duże szanse, że CV będzie przeglądać osoba, która wie kogo szuka.

Składając CV programisty do korporacji należy wypisać maksymalnie dużo poznanych technologii, wpłynie to na naszą korzyść. Obok każdego języka programowania powinieneś dopisać nazwy frameworków i bibliotek z jakich umiesz korzystać. Osobiście nie rezygnuję z wypisywania takich oczywistości jak znajomość HTMLa i CSSa. Są to kolejne słowa kluczowe, które zwiększą Twoją atrakcyjność i mogą zdecydować o zaproszeniu na rozmowę.

Przykładowo programując w technologii .NET warto wspomnieć o wszelkich technologiach z nią związanych, np. o Entity Frameworku. Być może rekruter wychwyci dane słowo kluczowe, a niekoniecznie musi mieć pojęcie czy .NETEF są ze sobą powiązane.

Oczywiście, nie chciałbym aby rekruterzy poczuli się urażeni. Jest to naturalna kolej rzeczy, inny fach i inny rodzaj zdobytej wiedzy. Nikogo nie powinno dziwić, że rekruter nie jest wstanie powiązać frameworka AngularJS z frontendem. W naszej gestii leży, aby ułatwić pracę rekruterom i jednocześnie zwiększyć swoje szanse na dostanie pracy.

Co napisać w CV programisty?

CV programisty powinno być konkretne i schludne. Poczucie estetyki jest związane z zawodem programisty, chyba że skupiasz się stricte na backendzie i logice. Konkretne CV to CV zawierające wszystkie najważniejsze informacje czarno na białym – bez bajerowania.

Wpisywanie pracy w McDonaldzie lub zbierania truskawek w Niemczech mija się z celem – niepotrzebnie zajmuje miejsce. Znajomość Excela może zaimponować ale raczej nie w środowisku wytwarzającym oprogramowanie komputerowe.

Poniżej wymienię kwestie, na które moim zdaniem należy zwrócić największą uwagę.

Porządek w językach programowania i technologiach

Języki programowania są kwestią kluczową jeżeli chodzi o CV programisty. Istnieje jednak kilka szczegółów, o których trzeba pamiętać.

Po pierwsze, złym pomysłem jest zaczynanie od Delphi, Pascala lub Visual Basica 6. Są to technologie archaiczne, obecnie w projektach komercyjnych praktycznie nie używane. Są dobre do rozwiązywania zadań maturalnych ale niekoniecznie mówią o naszych umiejętnościach. Próba zaimponowania znajomością Pascala może poskutkować negatywnym odczuciem na temat kandydata.

Języki programowania i technologie należy koniecznie mądrze pogrupować. Wymienianie języków skryptowych, obok języków obiektowych, obok znanych frameworków, oddzielając wszystko przecinkiem wygląda nieetycznie a przede wszystkim nieczytelnie.

Osobiście uzupełniając CV dzielę wszystko według stopnia znajomości oraz według przeznaczenia. Przykładowo często wykorzystuję takie sekcje:

  • Good programming skills of – główne języki programowania, w których czuję się najlepiej. Reprezentuję w nich wysoki poziom i nie boję się rozmawiać o nich na rozmowie kwalifikacyjnej. Są to języki, w których głównie mogę pracować.
  • Knowledge of – poboczne języki programowania (także skryptowe, znacznikowe, proceduralne) i przede wszystkim technologie związane z językami z sekcji wyżej (np. frameworki i biblioteki).
  • Knowledge of RDB – relacyjne bazy danych, które znam
  • Basic knowledge of – ostatni akapit, w którym zawieram całą resztę także pomniejsze rzeczy (słowa klucze) ważne np. dla rekruterów. Przeważnie rozbijam akapit na kilka linijek. W pierwszej umieszczam ważne zagadnienia, które znam tylko w stopniu podstawowym np. WPF, LINQ, Git, Svn. W drugiej linijce zagadnienia związane ogólnie z inżynierią oprogramowania np. Scrum, SOLID principles, DRY, KISS itp. W trzeciej linijce umieszczam języki programowania, z którymi się spotkałem i coś w nich napisałem, jednak ich znajomość jest bardzo podstawowa.

Podając nazwy frameworków i technologii należy także pisać o ich wersji. Daje to osobie technicznej lepsze spojrzenie na profil kandydata, nasza osoba wypada bardziej profesjonalnie. Przykładowo dodając znajomość HTML istotne jest czy znamy HTML 4.01 czy HTML5. Jeżeli nie podamy wersji nie powinno dziwić, jeżeli na rozmowie kwalifikacyjnej padnie pytanie o WebSockety z HTML5 podczas gdy kandydat ledwo odróżnia znacznik ul od ol.

Przykłady z wersjami technologii można mnożyć w nieskończoność. Istnieją spore różnice np. pomiędzy C++ 11 a C++ 14. Jeszcze większe różnice istnieją pomiędzy frameworkiem .NET 3.0, .NET 3.5 oraz .NET 4.5. Nie podając wersji technologii przedstawiamy siebie nie fachowo.

Inżynieria oprogramowania – pokaż, że umiesz

Dobrym zwyczajem jest dodanie do powyższego akapitu (np. do sekcji Basic knowledge of) zagadnień stricte z inżynierii oprogramowania. Chwaląc się znajomością wzorców projektowych czy znajomością zasad SOLID udowadniamy, że wiemy czym jest programowanie. Pośrednio odróżniamy się od tłumu zwykłych klepaczy kodu.

Każdy umie napisać pętlę operującą na określonych strukturach, jednak nie każdy potrafi pisać profesjonalny, skalowalny kod dobrej jakości. Zaprezentowanie się od tej strony może odegrać kluczową rolę, szczególnie podczas rekrutacji do dużych projektów.

Dodatkowo można pochwalić się umiejętnościami charakterystycznymi dla architekta systemowego lub project managera, wspomnieć o znajomości narzędzi wykorzystywanych do continuous integration, systemach kontroli wersji, napisać o znajomości RestAPI. Są to zagadnienia charakterystyczne dla dużych projektów.

Osoba techniczna przeglądająca nasze CV od razu stwierdzi „Wow, ten gość ma potencjał, chcę mieć go koniecznie w swojej drużynie!”. Wiadomo, jeżeli jesteś młodym programistą, w trakcie lub tuż po studiach, nikt nie będzie wymagał od Ciebie zarządzania projektem. Jednak sama informacja o tym, że znasz takie zagadnienia stawia Cię poziom wyżej od innych kandydatów kończących studia, którzy wpisują do CV znajomość C++ i HTMLa – i na tym CV się kończy.

Doświadczenie, własne projekty, blogi

Poprzednie miejsca pracy to drugi co do ważności akapit w CV. Nie warto wpisywać informacji o pracach dorywczych niezwiązanych z informatyką. Ani rekrutera ani kierownika nie obchodzi to, że w wakacje kandydat zbierał truskawki w Niemczech.

Jeżeli posiadasz jakiś bagaż doświadczenia, ta sekcja nie będzie dla Ciebie żadnym problemem. Trochę gorzej jest w przypadku, kiedy właśnie ukończyłeś studia i nigdzie nie pracowałeś. Uratują Cię własne projekty wykonane hobbystycznie oraz podczas studiów. Własne projekty to coś co uwielbiają zarówno rekruterzy jak i menedżerowie (techniczni).

Pamiętaj, że doświadczenie to nie tylko praca zawodowa dla kogoś. Można pracować w domowym zaciszu i nie czerpać z tego korzyści w postaci wynagrodzenia pieniężnego. Doświadczenie zawodowe to przede wszystkim:

  • odbyte staże i praktyki związane z programowaniem
  • poprzednie miejsca pracy związane z programowaniem
  • kursy i szkolenia informatyczne
  • udział w konferencjach IT oraz kołach uczelnianych
  • własny blog i różne publikacje

Uzupełnienie listy własnych projektów stawia kandydata w bardzo pozytywnym świetle. Pokazuje, że programowanie jest dla niego rodzajem zainteresowania a nie tylko smutnym obowiązkiem. Mi osobiście lista własnych projektów bardzo pomogła podczas szukania pracy, mimo tego, że doświadczenia zawodowego na 2 roku studiów nie miałem wcale.

doświadczenie zawodowe programista

W doświadczeniu zawodowym wspomniałem o projektach (prostych bo prostych) oraz artykułach na blogu. Link do bloga był podany w innej sekcji. Jak dowiedziałem się od osoby mnie rekrutującej, wrażenie bardzo pozytywne.

Edukacja

W sekcji edukacji podajemy ukończone szkoły i uczelnie. Moim zdaniem osoby studiujące nie muszą podawać szkoły średniej – jest to strata miejsca. Skoro ktoś studiuje to wiadomo, że ukończył jakieś tam liceum. Można rozważyć wpisanie szkoły średniej w przypadku absolwentów techników. Technikum samo w sobie przygotowuje nas do zawodu w jakiejś określonej specjalizacji (szczególnie jeżeli to technikum informatyczne). Wielu rekruterów i menedżerów starszej daty przychylnie patrzą na absolwentów techników, ponieważ dawniej technika miały wysoki poziom.

Oprócz szkoły warto napisać o specjalności jaką wybraliśmy, szczególnie jeżeli jesteśmy po kierunku informatycznym. Jeżeli studiowałeś na wydziale glonów i wodorostów możesz śmiało tę informację pominąć. Jeżeli na wydziale matematyki, fizyki i informatyki można śmiało dopisać.

Staraj się aby sekcja edukacji nie zabrała zbyt wiele miejsca, nie są to informacje szczególnie istotne z punktu widzenia samej rekrutacji lub umiejętności kandydata.

Wydaje mi się, że niestety studenci studiów dziennych są chętniej rozpatrywani przez różnego rodzaju firmy niż studenci zaoczni. Nie wnikając w szczegóły tak to po prostu działa. To samo dotyczy przekonania do poszczególnych uczelni. Pracodawcy bardzo chętnie rekrutują osoby z uczelni prestiżowych takich jak Uniwersytet Jagielloński czy Akademia Górniczo Hutnicza, a mniej chętnie z Wyższych Szkół Robienia Hałasu (WSRH).

Pamiętaj, że akapit edukacji jest tylko informacją czysto poglądową. Nie powinien decydować o karierze, jeżeli kandydat posiada duże umiejętności i wykształcenie wyższe.

Gorzej sytuacja wygląda jeżeli kandydat wcale nie posiada wykształcenia wyższego. Prawdopodobnie pracę znajdziesz, ale jest bardzo prawdopodobne, że będziesz zarabiał mniej niż kolega z przedrostkiem inż.

Umiejętności poziom wyżej niż inni

Ogólnie pisząc, musisz potrafić sprzedać siebie. Jest to bardzo ważne, często pracę dostaje osoba, która umie się sprzedać i jest dobrze przygotowana merytorycznie. Osoby zamknięte mogą mieć większy problem.

Nie chcę powtarzać wiadomości z akapitu inżynieria oprogramowania – pokaż, że umiesz, ale właśnie o to chodzi! Oprócz wpisania standardowych umiejętności programisty, musisz pokazać, że umiesz coś więcej.

Każdy kto stara się o posadę programisty umie wachlarz języków programowania. Oprócz Twojego CV na biurku rekrutera leży jeszcze 40 innych aplikacji. Wszystkie niestandardowe umiejętności mogą wpłynąć na Twój sukces.

Dodatkowe, hobby i język

Nie pisz pierdół. Hobby powinno zawierać się w maksymalnie jednej linijce. Generalnie jest to informacja całkowicie bezużyteczna, niemniej jednak niektórzy fetyszyści ją analizują. Jeżeli zdecydujesz napisać się o zainteresowaniach i sporcie, wymieniaj zagadnienia rozwijające logiczne myślenie. Jeżeli chodzi o sport wymieniaj koniecznie sporty drużynowe, w których ważna jest współpraca. Chodzenie po górach i wszystkie sporty niedrużynowe, w których brak jest współpracy, są teoretycznie w fachu programisty gorsze.

Jeżeli napiszesz o czytaniu książek, napisz o książkach takich jak Pragmatyczny programista lub Czysty kod. Takimi pozycjami możesz zaciekawić programistę/menedżera przeglądającego Twojego CV. Pisanie o książkach w stylu Harry Potter mija się z celem.

Obowiązkową pozycją w CV każdego programisty jest znajomość języka angielskiego.

Osobiście zrezygnowałem z podawania informacji o posiadanym prawie jazdy, o tym że znam pakiet office, oraz o tym że znam zarówno system Windows jak i Linux. Są to informacje trywialne, które absolutnie nic nie wnoszą. Niepotrzebnie zajmują miejsce i rozpraszają.

Sytuacje kiedy nie musisz wysyłać CV

Idealną sytuacją jest moment, w którym nie musisz wysyłać CV, ewentualnie firmy same proszą Cię o wysłanie im CV i zapraszają na rozmowę. W zawodzie programisty jest to sytuacja dość powszechna – wystarczy umieć korzystać z internetu.

Krokiem obowiązkowym dla każdego programisty jest założenie profilu na portalu linkedin. Jeżeli posiadasz motywację do prowadzenia własnego bloga związanego z branżą – to bardzo dobrze! Uwierz mi, promowanie własnej osoby w internecie i działanie w kierunku social media gra duże znaczenie. Rozgłos można zdobyć także będąc ekspertem na jakimś forum tematycznym, jednak jest to zabieg powolony.

Osobiście mimo małej popularności bloga, dostają przynajmniej jedną ofertę pracy tygodniowo związaną z programowaniem. Zachęcam wszystkich do promowania własnych umiejętności w sieci.

Podsumowanie

Podsumowując artykuł mogę jedynie wspomnieć o kilku ogólnikach, o których i tak pewnie każdy wie:

  • CV programisty powinno być zawsze w języku angielskim
  • Jedyny słuszny format CV to *.pdf. Pomijając fakt ukrywania spacji i tabulatorów jest lepiej parsowany przez automatyczne systemy rekrutacji w dużych firmach
  • Do CV zawsze warto dołączyć zdjęcie. Osobiście stawiam na elegancję ale nie zdecydowałbym się na zdjęcie w garniturze
  • Nie bój się używać pogrubień i list aby dodatkowo wpłynąć na estetykę CV, nie należy natomiast przesadzać z kursywą
  • Spotkałem się z CV, w których do listy projektów był dołączony link do repozytorium GitHuba. Pomysł bardzo oryginalny, należy się tylko upewnić czy kod rzeczywiście jest dobrej jakości.

Ostatecznie CV dzielę na sekcje, starając się aby sekcje mniej ważne takie jak edukacja oraz informacje dodatkowe zajmowały jak najmniej miejsca, każdy wpis w tych sekcjach to z zasady jedna linijka.

Głównym elementem CV rzucającym się w oczy powinno być bogate doświadczenie zawodowe (zamiennie z projektami w przypadku startujących osób) oraz umiejętności kandydata.

Moje przykładowe CV

Wrzucam przykładowy schemat CV, którego używałem na 2 roku studiów. Jest nieco przeterminowany, moje CV rozrosło się pod względem umiejętności jak i doświadczenia zawodowego.

cv

Schemat wygląda dobrze. Myślę, że może się komuś przydać jako wzór. Na wszelki wypadek nie wrzucam dokumentu w formacie edytowalnym, zbytnie lenistwo bywa zgubne :p.

Użytkownik om napisał:

30 lipca 2015


O tym czy masz „good programming skills” dowiesz się podczas pierwszej rekrutacji. To co miałeś na studiach i te twoje projekty to podstawy. Czy napisałeś kiedykolwiek grę używając openGL? Czy umiał być stworzyć swój system operacyjny. To co jest na studiach to podstawy. Miałeś typ wyliczeniowy enum? Nie zgodzę się z tym że nie warto pisać znajomości systemów operacyjnych. Są testy z linux i Windows Server. powinno się określić poziom znajomości. Część firm wymaga znajomości CLI na poziomie zaawansowanym. Good c++ skills? Poczytaj trochę na stronach zagranicznych o programowaniu bo na polskich to jest szajs. OOP jest uznawane jako zaawansowana umiejętność a to guzik prawda. To jest podstawa do tego żeby w ogóle się dostać na praktyki.

Użytkownik Karol napisał:

02 sierpnia 2015


@om
No dobrze, dowiesz się na rozmowie. Jednak musisz zaznaczyć, z czego tę rozmowę chcesz odbyć. Dlatego zaznaczasz w CV w czym jesteś mocny oraz te technologie, które tylko liznąłeś. Oczywiście jeżeli piszesz, że posiadasz „good programming skills” z technologii .NET to będziesz pytany z C# lub ASP.NETa, a nie z Javy, którą oznaczyłeś jako „basic knowledge”. Taka jest rola CV aby rekruter mógł pobieżnie dopasować Cię do jakiegoś wakatu w danym projekcie, a dopiero jak taki wakat istnieje zostajesz zaproszony na rozmowę – nigdy nie na odwrót. Dlatego ważne jest konkretne podkreślenie z czego jesteś na prawdę dobry, a o czym masz jakieś tam pojęcie.

To jaką skalę i miarę przyjmiemy do pojęcia „good programming skills” zależy już od konkretnego człowieka a nie pierwszej rekrutacji. Wiadomo, że student aplikujący na stanowisko juniora ma inny poziom „good programming skills” niż senior. Mimo tego w dalszym ciągu student ma prawo napisać, z czego jest lepszy a z czego jest gorszy.

Użytkownik on napisał:

02 sierpnia 2015


to można użyć słowa „medium” – średnie. Czytając twojego bloga i mając już pewne doświadczenie, ja mogę powiedzieć że masz „bardzo dobre podstawy”, bo good to jeszcze daleko, w firmach się tworzy bardziej zaawansowane rzeczy niż te na studiach i pracując 4 lata w firmie można powiedzieć good. Biegła po 8-10 latach. Firm nie interesuje znajomość struktury tworzenia oprogramowania, ale znajomość funkcji wbudowanych, mechanizmów, wyjątków i tak dalej. Jest dużo podchwytliwych pytań, a nie takich łapu capu jak na studiach. Testy w firmach IT są na tyle szczegółowe, że może dostać do napisania funkcję której akurat nigdy wcześniej nie używałeś, a używałeś 15 innych. I co i nic? test nie zaliczony. Proponuje zrobić sobie test SCJP. Jest kilka free w sieci do zrobienia online.

Poza tym z CV wynika że nigdzie nie pracowałeś. tylko masz projekty ze studiów, a to tylko wstęp do rozmowy. Nawet jak miałeś jakieś praktyki/staże nie związane z IT też warto to wpisać. Nawet związane z obsługa klienta, bo w IT nawet jako programista też będzie musiał się kontaktować z klientem.

Użytkownik Karol napisał:

02 sierpnia 2015


Napisałem że CV załączone w artykule jest stare, ze studiów, wtedy jeszcze nigdzie nie pracowałem. Czy według Ciebie budując CV powinienem sugerować się poziomem umiejętności innych programistów? A co gorsza z innych krajów? Absolutnie! Nie doradzaj nikomu w ten sposób, bo jeszcze ktoś to podchwyci. Czy według Ciebie każdy programista powinien wpisywać poziom umiejętności „basic” danej technologii, jeżeli nie przepracował w niej minimum 2 lat? Absolutnie! Znowu podajesz ten sam zły przykład, źle spostrzegasz proces rekrutacji.

Ty sam decydujesz w CV w jakim stopniu umiesz daną technologię. Pracodawca weryfikuje poprzez rozmowę kwalifikacyjną czy mu odpowiadasz – czy nie. Zarówno junior świeżo po studiach, jak i senior z 30 letnim stażem pracy ma prawo napisać, czy umie daną technologię na poziomie „excellent, good, basic”. Poziom „good” seniora to nie to samo co poziom „good” juniora. Każdy pracodawca o tym wie podczas szukania kandydatów. Według Twojego toku myślenia każdy świeży programista powinien wszystko wrzucać do worka „basic”. W CV nie chodzi o to aby zestawić własną osobę na tle innych kandydatów – to zadanie nie należy do Ciebie. To pracodawca ma wyłowić najlepszego kandydata z pośród całej dziedziny chętnych. Twoim zadaniem jest tylko jak najlepiej się zaprezentować. W CV chodzi o to aby pracodawca wiedział do jakiego projektu może Cię przydzielić oraz z czego przeprowadzić ewentualną rozmowę. Dodatkowo można w CV pokazać własne zaangażowanie w zawód – nic więcej.

Użytkownik Kaczus napisał:

20 sierpnia 2015


Troszkę się czepię:
1) Po pierwsze, złym pomysłem jest zaczynanie od Delphi, Pascala lub Visual Basica 6. Są to technologie archaiczne, obecnie w projektach komercyjnych praktycznie nie używane.
No zobacz – znam conajmniej kilka projektów komercyjnych pisanych w Delphi. W firmie w której pracuję, część programów robi się w Delphi, a w kilku narzędziach tworzy sie skrypty dla programów w PascalScripcie… WIęc jest to jak dla mnie bzdura.

2) wymienianie technologii dla mnie to strata miejsca, zatrudniając kogoś na stanowisko programisty interesuje mnie czy potrafi programować, technologie w razie czego pozna w miedzyczasie.

3) zdjęcia nie daję, bo nie startuję na stanowisko modelki, a wymóg dodawania zdjęcia w CV jest niezgodny z prawem.

Użytkownik Karol napisał:

20 sierpnia 2015


Proszę nie żartować. 1) Delphi, Pascal i VB6 to stare nieużywane syfy. Posiadają niewspierane kompilatory. To, że jakiś archaiczny projekt jeszcze „na tym żyje” to gruby wyjątek. Ja nie spotkałem się z takim przypadkiem w żadnej korporacji. 2) Wymienianie technologii to strata czasu? Tak było może 20 lat temu. Obecnie chcąc być programistą nie liczy się umiejętność programowania, bo tą chyba każdy posiada chcąc zaistnieć w tym zawodzie? Poza tym jak pokazać w CV, że umiemy programować? Wymieniając Delphi i Pascala? Znajomość nowych technologii, mechanizmów i frameworków to po części wyznacznik wiedzy i umiejętności danego programisty. Wymienienie kilku języków programowania w CV to CV na poziomie technikum informatycznego. 4) Zdjęcie do CV dołączamy zawsze, aby pracodawca nie traktował nas przedmiotowo, jest do dobry zwyczaj.

Użytkownik Kaczus napisał:

21 sierpnia 2015


1) no proszę – ostatnia wersja kompilatora jest z tego roku, wiec może trochę najpierw się dowiedzieć. Nie jestem jakimś wielkim entuzjastom, ale wiesz spotkałem się w kilku firmach i to dużych, w których ciągle jest używane – głównie właśnie do małych pchełek – bo pisze się szybko

2) tak wymienianie technologii to strata czasu, gdyż bibliotekę doświadczony programista pozna dość szybko jeśli będzie musiał, a brak umiejętności programowania i rozłożenie rąk, jeśli nie potrafi się tego znaleźć w google’u to najgorsze co może być. Szczególnie jak się okaże, że w technologii jest jakiś nieopisany błąd i akurat u nas on się objawia i musimy go obejść (co zdarzało mi wiele razy)

3) tak mozesz starcić wysyłając w języku angielskim, jesli nie bylo napisane, by w takim języku wysłać. Umiejętność czytania wytycznych jest też istotna (że tak sobie zadworuje), po prostu ktoś kto robi automatyczny odsiew (ma minimalne rzeczy wymienione w cv, czy nie), odrzuci takie CV, tak samo jak odrzuci te nieczytelne, albo pisane na kilka kartek.

4) dołączanie zdjęcia, nie widze takiej potrzeby.

Jeśli chodzi o linkedin, to jest inna bajka, bo to jest takie miejsce, gdzie głównie szuka się do międzynarodowych korpo.

Użytkownik Piotr napisał:

04 października 2015


„Obecnie chcąc być programistą nie liczy się umiejętność programowania” – niezłe brednie.
rozwiązanie większości problemów dla większości języków programowania znajdziesz przy pomocy googla i stackoverflow w max 30 min. Jak nie zrobić syfu tego tam nie znajdziesz – a nawet nie będziesz szukać. Umiejętności są rozwijane latami i nie zależą do języków.
nie jeden mówi czy pisze w CV że umie wzorce projektowe a jak dochodzi co do czego to nie dość ze nie umie podać przykładu to jeszcze nie rozumie o co w nich chodzi.

Użytkownik Karol napisał:

05 października 2015


@Piotr Niezłą brednią jest to, że zmieniasz sens wypowiedzi usuwając połowę zdania z cytatu. Przeczytaj moją wypowiedź ze zrozumieniem zamiast wyciągać fragmenty zmieniając cały kontekst.

Użytkownik CTS napisał:

26 października 2015


Niestety dobrze napisane CV jest 80% sukcesu w podjęciu nowej pracy.

Użytkownik Informatyka Studia napisał:

27 października 2015


Zgadzam się w 100%, że porządne CV z pięknie okraszonym portfolio to takie „must have” w dzisiejszych czasach. Na rynku jest coraz więcej programistów i wybór jest więc spory. Dlatego trzeba czymś przykuć uwagę już na samym początku to może przyjść z pomocą właśnie szata graficzna, prostota i ciekawy zamysł a później pozostaje przytrzymać potencjalnego pracodawcę poprzez fajne portfolio z wieloma rekomendacjami i próbkami naszych zdolności.
Ps. Warto pamiętać, że CV jak i portfolio na bieżąco uzupełniać bo Ci którzy byli niby nie zainteresowani robią bazę i czasami przeglądają „stare” Cv’ki i patrzą czy pracujemy nad własnym rozwojem.

Użytkownik Krzysiek napisał:

11 listopada 2015


@Kaczus: Jaki jest sens udowadniania pierwszeństwa kury przed jajkiem? Karol napisał porządny artykuł, który może być dla wielu osób przydatny. Zamiast to docenić i skorzystać z rad, lepiej czepiać się szczegółów? Nie rouzumiem tego.

@Karol: jestem pod ogromnym wrażeniem tego jak sensownie piszesz. Niejeden absolwent ma mniejsze zrozumienie programowania.

Użytkownik Kaczus napisał:

25 lutego 2016


@krzysiek jeśli są rzeczy nie do końca prawdziwe, warto zwrócić uwage czytających, by nie traktować ich jak wyrocznię. Zwrócenie uwagi na pewne rzeczy to niekoniecznie krytykowanie całego artykułu. Nie rozumiem czemu ktoś wskazywanie błedów, bądź niejednoznaczności traktuje jako atak. Po to sa komentarze, aby móc ustosunkować się do treści i jesli ma się konkretne uwagi, moze warto je przekazać, inni mogą ocenić, czy uwagi sa trafne, czy nie. @Karol jak widać zaakceptował wpis (co nie zawsze czyni), więc chyba nie jest on tak niekonkretny i nadaje się jako pokazanie innego spojrzenia na problem.

Użytkownik Madix napisał:

08 marca 2016


„O tym czy masz „good programming skills” dowiesz się podczas pierwszej rekrutacji. To co miałeś na studiach i te twoje projekty to podstawy. Czy napisałeś kiedykolwiek grę używając openGL? Czy umiał być stworzyć swój system operacyjny. To co jest na studiach to podstawy. Miałeś typ wyliczeniowy enum? Nie zgodzę się z tym że nie warto pisać znajomości systemów operacyjnych. Są testy z linux i Windows Server. powinno się określić poziom znajomości. Część firm wymaga znajomości CLI na poziomie zaawansowanym. Good c++ skills? Poczytaj trochę na stronach zagranicznych o programowaniu bo na polskich to jest szajs. OOP jest uznawane jako zaawansowana umiejętność a to guzik prawda. To jest podstawa do tego żeby w ogóle się dostać na praktyki.”

Boże, co za pierdoły…

Tak, jasne, każdy początkujący programista zanim poszuka pracy powinien najpierw nauczyć się pisać systemy operacyjne w assemblerze, tworzyć własne gry na poziomie Wiedźmina i programować roboty ;)

Ja dostałam praktyki umiejąc wg Twoich definicji dosłownie NIC – po prostu zadzwoniłam do znajomego game-developera i spytałam, czy mnie przyjmie. Obejrzał moje koślawe tworki w OpenGL i się zgodził ;) A i tak ten OpenGL szkolny nie przydał mi się u niego, bo on korzystał z innych technologii (to jak umiejąc C++ przesiadać się na Javę – niby łatwiej, ale nadal nauczyć się musisz bardzo dużo).
Większość studentów umie niewiele, bo dopiero na studiach zaczyna się uczyć, a jednak dostaje się na praktyki, bo są one obowiązkowe w toku nauki do tego, by w ogóle studia ukończyć. Poza tym praktyki, staże i w ogóle praca jest od tego, by się uczyć i rozwijać – w momencie, kiedy już tak wszystko świetnie umiesz, to nie szukasz pierwszej pracy, a jakiejś seniorskiej posadki za 10k+ zł/msc…

Jasne, firmy piszą często czego to one nie wymagają ale nie zapominaj, że czasem te oferty piszą nietechniczni rekruterzy i dla takiego rekrutera umiejętność stworzenia prostej, prymitywnej gierki w Java to już zaawansowana znajomość tego języka, skoro oni nie odpaliliby nawet programu „Hello World”… tak więc każdy mierzy swoją miarą.

Rady Karola są bardzo dobre.
Wypisanie projektów bardzo zgrabnie pozwala określić swój poziom i IMO zdecydowanie lepiej napisać: „zrobiłem taki i taki projekt” (może prymitywny, ale zrobiłem, poza tym osoba nietechniczna i tak nie będzie w stanie określić czy to duży projekt był, czy nie) aniżeli wpisać do CV 5 języków programowania i wszystkie na poziomie znajomości „podstawowy” czy „dostateczny” sugerujący, że znasz je za mało, by coś praktycznego z nimi zrobić…

Użytkownik Paweł napisał:

18 marca 2016


Dobre CV to podstawa. Jeśli nie mamy wystarczającego doświadczenia musimy zwrócić uwagę na inne szczegóły. Na rynku jest mało ofert pracy dlatego stosować mniej konwencjonalne sposoby.

Użytkownik Programista napisał:

24 kwietnia 2016


Wydaje mi sie, ze wiekszosc z Was nie rozumie w ogole co to jest programowanie. Caly czas Wasza rozmowa kreci sie wokol tego, kto jak duzo technologii wkuł na pamięc. W podrzednych firmach, albo kiepskich korpo ktore nie rozumieja co to jest programowanie, faktycznie liczy sie wkucie na pamiec tej konkretnej aktualnej na rynku technologii.
W mojej firmie liczyła się ALGORYTMIKA, DRZEWA BST, DRZEWA PRZEDZIAŁOWE, WIEŻE HANOI, rekurencja i tak mogę wymieniac i wymieniac.
To i tylko to jest oznaką czy jestes dobrym programistą, oraz to, czy potrafisz napisać krótki acz bardzo tresciwy kod.
To co Wy tutaj nadmieniacie, to wkucie na pamięć X technologii i uznawanie siebie za ‚znawcę’.
U mnie nikt nie pytal czy znasz daną technologie, ale czy znasz drzewa przedziałowe. A technologię taki ziomuś to ogarnie w 2-3 dni na tyle, zeby moc tworzyc dobre oprogramowanie.
Oj ludzie ludzie, pojecia zielonego nie macie co to jest programowanie

Użytkownik Programista napisał:

24 kwietnia 2016


Może jeszcze doprecyzuję: u mnie kompetencje rozpoznawalo sie po tym, czy rozumiem algorytmikę, drzewa przedziałowe i tak dalej i tak dalej? Technologie? Wrzucili mnie od razu na Javę w Eclipse w czym nigdy nie programowałem i… po paru dniach już był zrobiony pierwszy projekt :)
Po prostu jak masz mózg do programowania, algorytmow, to technologia to jest kilka dni. Naprawdę padam ze smiechu czytajac te Wasze batalie kto wiecej wkuł na pamięć technologii.
Nie chcialbym miec stycznosci z firmami w ktorych pracuja tacy ludzie, nie ten poziom w ogóle inteligencji, wykształcenia (UW, IT)
Dajta spokoj

Użytkownik Karol napisał:

25 kwietnia 2016


@Programista
Z adresu Twojego e-maila wynika, że jesteś nauczycielem matematyki, pewnie stąd u Ciebie taki „nacisk” na algorytmikę i działy matematyki dyskretnej. Ton Twojej wypowiedzi jest lekko „pogardliwy”, jednak bierz pod uwagę, że nie każdy ukończył matematykę. Algorytmika jest ważna w niektórych dziedzinach wytwarzania oprogramowania, ale w innych jest kompletnie niepotrzebna i nie da się jej zastosować. Dawniej systemy były bardzo ograniczone przez sprzęt a przede wszystkim pamięć – teraz już tak nie jest. Dawniej wszystko było desktopowe (gdzie technologii do wyboru było strike mało) a teraz wszystko zmierza w stronę interfejsów webowych (gdzie technologii do wyboru jest bardzo dużo). Dzisiejszy rynek to nie to samo co rynek 5 czy 10 lat temu. Front-endowcowi nijak algorytmika nie jest potrzebna, za to znajomość X technologii już tak. Różnorodność frameworków bazujących np. na JavaScript jest nieporównywalnie większa (wręcz niezliczona) względem starych języków niskiego poziomu. Mimo to front-endowiec jest programistą. Przykład z wieżami hanoi zupełnie nietrafiony, równie dobrze mógłbyś wspomnieć o znajomości funkcji kwadratowej lub całek. Uczysz się po to, żeby się rozwiać.
Zarówno zdolny matematyk bez znajomości technologii nic nie zdziała, jak i znawca wielu technologii, który ma problem z rozwiązywaniem prostych problemów oraz czystością kodu. A przede wszystkim: nikt nie jest od wszystkiego i im wcześniej człowiek to zrozumie tym lepiej – szczególnie w zawodzie programisty. Menedżer projektu wie kogo mu potrzeba, czy matematyka do rozwiązywania problemów natury algorytmicznej czy kilku front-endowców. Zespoły są budowane z różnych osób, w zależności na co nastawiony jest projekt. Uwierz mi, firma realizująca strony internetowe nigdy nie zatrudni matematyka z krwi i z kości z zamiłowaniem do algorytmów. Byłbyś lekko mówiąc „useless”. Zespół realizujący projekt fizyczny lub operujący na big-data bez wyprowadzania danych na interfejs nigdy nie zatrudni żadnego front-endowca chwalącego się X technologiami. Jeżeli myślisz, że skomplikowane systemy rozproszone obsługujące miliony użytkowników tworzą sami matematycy – to się mylisz.
W moim mniemaniu tendencja jest rosnąca. Komputery coraz szybsze, języki coraz wygodniejsze, proste programy nie ważą już 500kb, byle aplikacja androidowa to minimum 30MB. Osobiście nie dożyłem czasów, aby ktoś na rozmowie rekrutacyjnej zapytał mnie o złożoności obliczeniowe/pamięciowe jakichkolwiek algorytmów. Fakt faktem jestem programistą technologii .NET być może to jest powodem. W gałęzi programowania w której działam, nikt nie zastanawia się jaki algorytm do sortowania listy wybrać, ponieważ załatwia to za mnie framework (np. LINQ). Takie przykłady można podawać w nieskończoność.

Użytkownik Programista napisał:

25 kwietnia 2016


Masz jakieś problemy z czytaniem ze zrozumieniem? Przeciez jasno mozna wywnioskowac z mojego wpisu ze jestem programistą. Skonczylem matematyke i informatyke.
Mail mam taki jaki mam bo zawsze chcialem byc nauczycielem matematyki i w sumie jestem nim hobbystycznie.
Nie rozumiem w ogole Twojego uzasadnienia niepotrzebnosci algorytmiki. Czy Ty kiedykolwiek pracowales na jakichkolwiek duzych systemach, gdzie to, jak zaimplementujesz cały proces wymiany informacji na serwerze, zapytan do bazy, caly proces np generowania tabel przestawnych w systemach bazodanowych jest BARDZO UZALEŻNIONE od Twoich umiejetnosci pisania czystego, mądrego kodu, znania algorytmiki?
Niemal w kazdym duzym systemie jest to PODSTAWĄ, a jeśli w danej firmie się na to nie stawia to dlatego, że jest to kiepska firma której oprogramowanie działa wolno. Czy wiesz jak w Javie w Spring framework na pluginie GWT może wolno się mielić dane zapytanie w Hibernate? Kwestie algorytmiki są tutaj BARDZO WAŻNE, a to, żę sprzęt bedzie swietnej jakosci to jest podstawą i warunkiem koniecznym, a nie wystarczajacym jak Ty piszesz.

Wlasciwie masz racje jedynie co do frontendowców, gdzie im w tworzeniu malych stronek do niczego algorytmika nie jest potrzebna, ale my rozmawiamy o programistach a nie małych koderkach.

„Zarówno zdolny matematyk bez znajomości technologii nic nie zdział”

A to już jest głupota do potegi n-tej. Sam jestem tego najlepszym przykladem. W pracy przekierowano mnie na projekt w nowej technologii- kilka dni i zrobiona implementacja pierwszego modułu. Jak rozumiesz rozne frameworki, umiesz zrozumiec duze systemy, znasz zasady dzialania sieci, JavaScript i przede wszystkim reprezentujesz swietne wyksztalcenie inteligencje i znajomosc algorytmiki, to nowa technologia to kwestia kilku dni.

Co do ostatniego akapitu- też fail. Wraz z rozwojem technologii rosnie tez zlozonosc systemow, a wraz z ta zlozonoscia rosna wymogi algorytmiczne. Niedawno kolega zaimplementował na zasadzie drzew (nie pamietam juz jakich) algorytm ktory wyłapywał cykl w zlozonym zapytaniu SQL-owym po to, aby nie bylo mozliwosci, ze takie zapytanie się zapętli (podpodpod…zapytanie bedzie się dowiązywało do zapytania glownego czyli takie bledne kolo). A mozliwosc zapetlenia jak najbardziej byla, bo byl to zlozony system bazodanowy, gdzie uzytkownik mogl napisac wlasne wyrazenie SQL i je przetwarzac na swoich tabelach.

Krotko mowiac kolego mysle, ze nie miales najwyrazniej za duzo wspolnego z prawdziwym programowaniem i duzymi systemami, a raczej programowales jakies tam pomniejsze projekciki w Androidzie czy „stronki”.
Niestety, ale widać to wyraznie

PS. Kazda duza powazna firma IT jak Accenture, Google, etc stawia BARDZO wlasnie na algorytmike. Przypadek?

Użytkownik Karol napisał:

26 kwietnia 2016


Drogi Panie, mylisz algorytmikę z utrzymywaniem i pisaniem poprawnego kodu. Mylisz ją też ze wzorcami projektowymi. Wygląda na to, że dla Ciebie wszystko jest algorytmem. Znowu gardzisz grupą programistów zajmujących się front-endem a nie zdziw się, że kiedyś mogą od Ciebie więcej zarabiać (tendencja ciągle rosnąca) albo już tak jest. Nie będę więcej wdawał się w dyskusję, każdy wyraża i przedstawia swoją opinię, do której ma prawo. Forum publiczne na moim blogu ma być źródłem różnych opinii. Wydaję mi się tylko, że zbyt nerwowo podchodzisz do dyskusji.

Użytkownik Programista napisał:

30 maja 2016


Widze, ze nic nie zrozumiales z mojego postu, wiec sie tylko niepotrzebnie naprodukowalem. W takim razie koncze dyskusje. Pozdrawiam

Użytkownik Carplan napisał:

26 września 2016


Ciekawy artykuł, tylko nie wiem czy dobrym rozwiązaniem jest podkręcanie sobie skillów ;), byłem wiele razy „osobą techniczną” z twoich infografik. Niestety CV ludzi ni jak mają się do rzeczywistości :) proste 10 zadań powiązanych z pytaniami dla nie jednego stanowiły przeszkodę. Więc albo startujesz na niskie stanowisko gdzie się uczysz, albo musisz być mega pewny swoich umiejętności, wg. mnie tylko debil wpisuje w CV że ma jakiś skill zaawansowany :). To co pisał „Programista” ma też dużo racji… duże projekty są na prawdę złożone z wielu procesów i mechanizmów, gdzie zmienia się myślenie…

Użytkownik Tomek napisał:

20 lipca 2017


Ten artykuł jest trochę śmieszny w swojej istocie. Szanuję pracę włożoną w jego napisanie, infografiki itp. ale czy nie uważasz, że zwyczajnie brakuje Ci doświadczenia, dystansu do branży, która zmienia się szybciej niż jakakolwiek inna, że jesteś w tym zawodzie zaledwie chwilę? Co innego pisać o doświadczeniach które zdobyłeś, a co innego wypowiadać się jako specjalista w temacie o którym nie możesz mieć dużego pojęcia (patrz wyżej). W ilu rekrutacjach brałeś udział jako rekrutujący – żeby mieć pełny obraz z obu stron?

Użytkownik Karol napisał:

20 lipca 2017


@Tomek
Błędnie zakładasz, że „nie mogę mieć doświadczenia”. Pracuję w dziale rekrutacji.

Użytkownik Krystian napisał:

22 września 2017


Witam, co to znaczy znajomość języka programowania x, którą widzę w ofercie pracy, co to znaczy znać dany język programowania?

Użytkownik Karol napisał:

23 września 2017


@Krystian
Znajomość języka programowania polega na tym, że jesteś w stanie w tym języku napisać program, wykonywać powierzone zadania. Przeważnie oznacza to, że masz w tym języku doświadczenie. Gdy na rozmowie o pracę zapytają Cię o jakieś tajniki tego języka, mało znane fakty i zasady, będziesz umiał bez problemu odpowiedzieć.

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0