Poprzedni post, tj. Wybór studiów a szanse na rynku pracy, wywołał całkiem niezłą dyskusję, zarówno na temat, jak i na różne tematy mniej lub bardziej powiązane z głównym wątkiem, np. "studia (nie) są niepotrzebne", "prawdopodobieństwo może przyjmować (nie) tylko wartości od 0 do 1", czy też temat który chciałbym dzisiaj rozwinąć - "jak udokumentować swoją wiedzę". Zachęcam do lektury, a przede wszystkim, do dyskusji!
Problem jest następujący: jak udokumentować wiedzę nabytą we własnym zakresie?
W przypadku wiedzy nabywanej na kursach, studiach, etc, sprawa jest prosta - dostajemy zazwyczaj pewien papierek który potwierdza (?) nabyte kwalifikacje:
- po ukończonej szkole będzie to świadectwo ukończenia
- po zdanym egzaminie zawodowym będzie to dyplom technika
- po studiach będzie to dyplom magistra, inżyniera, etc
- po ukończonym kursie lub szkoleniu będzie to zapewne jakiś certyfikat ukończenia
No i jasne jest, że powyższe "papierki" wpisujemy sobie do CV, w część "edukacja" czy też "dodatkowe kwalifikacje/umiejętności".
Kilku czytelników (zarówno w komentarzach, jak i w rozmowach poza blogiem) zauważyło, że sytuacja nie jest taka klarowna, jeśli wiedzę nabyliśmy sami. Ale tylko pozornie :)
Cała sprawa, moim zdaniem, rozbija się o publikowanie tego co się robi - tj. dajmy szansę przyszłemu pracodawcy zobaczyć, że faktycznie pewne doświadczenie już zdobyliśmy, mimo, iż wcześniej nie byliśmy nigdzie zatrudnieni.
Co można publikować (etc), jeśli uczymy się programować, reverse engineeringu, lub hackingu/security? (na podstawie doświadczeń własnych)
- Aplikacje, biblioteki, czy też mniejsze fragmenty kodu. Nieistotne jest tutaj czy faktycznie projekt będzie w 100% działać, czy był to tylko programik który chcieliśmy sobie napisać dla zabawy, i po zaimplementowaniu 50% rzeczy nam się znudził. Natomiast starajmy się pisać poprawny kod, schludny, z komentarzami, etc. Zastanówmy się również dwa razy przed opublikowaniem np. "nowego trojana kradnącego hasła z Tibii i GG, niewykrywalnego przez nic na VirusTotal" - może to przekreślić nasze szanse dostania później pracy w niektórych firmach (np. AV).
- Artykuły lub tutoriale (publikowane na własnej stronie, w różnych serwisach, czy w prasie branżowej [thx Mariusz]). Po pierwsze - przekazujemy wiedzę dalej. Po drugie - udowadniamy, że faktycznie czegoś się nauczyliśmy. Ale ostrożnie! To jest obusieczna broń! Jeśli artykuł będzie wtórny (tj. w naszym języku było już 150 artykułów na ten temat), będzie nierzetelny (pełen błędów), zbyt chaotyczny, na temat którego potem będziemy się wstydzić (np. "jak ukraść koleżance hasło do skrzynki pocztowej"), lub, o zgrozo, będzie plagiatem, to uzyskamy efekt dokładnie odwrotny do zamierzanego.
- Prelekcje, wystąpienia, etc. Jeśli czujemy się silni w danym temacie (i faktycznie mamy ku temu podstawy ;>) - spróbujmy wystąpić na konferencji. Konferencji jest całkiem sporo, są zróżnicowane tematycznie i pod względem poziomu prelekcji (tj. na niektórych tylko oryginalny research jest akceptowany, ale sporo jest takich na których można mówić o czymkolwiek ciekawym). W Polsce jest dużo świetnych konferencji odbywających się co rok, np. konferencja Inżynierii Gier Komputerowych w Siedlcach, konferencjach SEConference na Politechnice Krakowskiej, czy choćby największa polska konferencja o tematyce security/hacking - CONFidence. Oczywiście w wypadku wystąpienia musimy zadbać o jakość prelekcji, jej ciekawość (liczoną w ilości osób ziewających lub zasypiających), etc.
- Uczestniczyć w konferencjach. Jeśli niespecjalnie widzimy się w roli prelegenta, to warto choćby uczestniczyć w konferencjach. Wiele nowych rzeczy możemy się nauczyć, no i możemy zaznaczyć że braliśmy udział w takiej i takiej konferencji.
- Prowadzić bloga. Piszmy tam co robimy aktualnie, czym się zajmujemy, wrzucajmy jakieś małe artykuły o tym jak użyć funkcji XYZ w ciekawy sposób, etc. I ponownie, starajmy się nie być wtórni, pisać ciekawie, poprawnie (hehe język polski temu nie sprzyja ;p), i nie wrzucać postów typu "ukradłem 1000 haseł do mejli, w00t".
- Publikować tzw. advisory lub case study. Zazwyczaj po znalezieniu jakiejś luki publikuje się advisory i PoC exploit. Jest to w zasadzie przyjęty schemat w środowisku i zapewne nikt nie będzie w tym punkcie zaskoczony. Jeśli planuje się szukać pracy jako pentester czy security researcher, warto pokazać, że faktycznie się umie cośtam znaleźć. Oczywiście warto przemyśleć sprawę samej publikacji, czyli odwieczne Full-Disclosure vs. Vendor-Coordinanted-Disclosure.
Wszystkie powyższe rzeczy można ująć w CV. Osobiście dodaną mam w CV sekcje "Publikacje, prelekcje, projekty warte wspomnienia, badania warte wspomnienia" i tam pakuje wszystko co moim zdaniem warte jest wspomnienia (prowadzenie bloga jest tu wyjątkiem, i osobiście umieszczam to w sekcji 'zainteresowania'). Z czasem prawdopodobnie zrobi się tego dużo, więc warto co mniej ciekawe rzeczy pomijać - CV ma jednak być dość zwięzłe i podobno dobrze, żeby nie przekraczało dwóch stron.
Istotną sprawą jest, aby w CV nie wpisywać nic, czego tak naprawdę nie wiemy. Rozmowy kwalifikacyjne w dobrych firmach często mają za zadanie sprawdzenie, czy to co dana osoba napisała w CV faktycznie jest prawdą, więc możemy być pewni, że zostaniemy dokładnie przemaglowani ze wszystkiego co tam jest wpisane. Ale skoro się tym zajmowaliśmy, to nie powinno to sprawić nam najmniejszych problemów :) (patrząc na to jak uczeń/student, jest to wyjątkowo korzystna sytuacja - bo nie dość, że znamy część pytań, to jeszcze już jesteśmy na nie nauczeni ;p).
Jeśli chodzi o aplikacje które tworzymy podczas nauki programowania (a programowania się człowiek nigdy nie przestaje uczyć) - jest to bardzo istotna część powyższego, a przynajmniej tak wynika z mojego doświadczenia - zarówno w przypadku Arcabit jak i Hispasec poproszono mnie o przedstawienie projektów, które udowodnią, że faktycznie coś z niskopoziomowymi rzeczami mam wspólnego. I nie chodziło tu o projekty na 1000000000000000 linii kodu, a o drobne toolsy, biblioteczki, etc.
Powyżej wymieniłem kilka rzeczy które osobiście stosuje, natomiast w żadnym wypadku nie jest to pełna lista!
Zachęcam do podsuwania w komentarzach innych pomysłów na dokumentowanie własnej wiedzy (w taki sposób aby można to w CV później zaznaczyć), a ja postaram się dla przejrzystości je tutaj wpisywać.
- (by Karton) Brać udział w otwartych projektach (np. open source). Możemy po pierwsze wykazać się wiedzą, a po drugie pomóc rozwinąć jakiś ciekawy projekt i nabrać doświadczenia w pracy zespołowej (nawet jeśli ogranicza się to do tworzenia patchy i ich podsyłania maintainerowi kodu).
- (by Karton) Zrobić portfolio. Takie zbiorcze miejsce gdzie publikujemy to co zrobiliśmy :)
- (by michał) Certyfikaty. Po nauczeniu się czegoś we własnym zakresie można spróbować się certyfikować z danej rzeczy - tj. zdać egzamin i mieć śliczny wpis w CV. Słyszałem kiedyś, iż "na zachodzie" niektórzy pracodawcy mają fioła na punkcie certyfikatów (zachęcam do przeczytania komentarzy carsteina oraz Mariusza Kędziory poniżej) :)
- (by Gynvael) Brać udział w różnych konkursach/challenge/compo, etc, a najlepiej je wygrywać ;>. A konkursów takich nie brakuje - choćby różne compo/CTF/crackme na konferencjach, challenge publikowane przez różne firmy (np. Panda), różne konkursy algorytmiczne, etc, etc. Czym bardziej prestiżowy konkurs, tym lepiej ;)
- (by myst) Praktyki dla studentów. "Co wieksze firmy organizuja takze roznego rodzaju praktyki dla studentow, ktore mozna odbyc w ich siedzibie lub w trybie zdalnym w czasie roku studenckiego. Mozna sie o nich czesto dowiedziec na kolach naukowych lub gdzies na uczelni. Udzial w takich praktykach to chyba takze dobry sposob na udokumentowanie ze "cos" sie robi ;>". Dodam tutaj od siebie, że niektóre firmy robią również testy kwalifikacyjne z języków programowania i wybierają na praktyki osoby które najlepiej sobie poradziły. Zachęcam do podejścia do takiego testu, nawet jeśli nie uda nam się załapać na praktyki (bo np. są tylko dla osób starszych lat, a my jesteśmy na 1szym).
- (by y) Napisać i rozwijać jakąś aplikację. Sprawa podobna do proponowanego przeze mnie pisania aplikacji, ale z naciskiem na stały rozwój jakiegoś programu. "Później na rozmowie 'O jest Pan autorem tego programu. Używamy go w firmie' Zdecydowanie dobrze wtedy się wypadnie." :)
- (by Mariusz Kędziora) Na blogu zrobić listę najważniejszych/najciekawszych wpisów. "To co może w pewien sposób podusmować np. naszego bloga (bo sam blog to jednak sposo do przeglądania przez potencjalnego pracodawcę/współpracownika) - to zebranie najlepszych i najciekawszych naszym zdaniem wpisów." (szczerze to zabieram się do tego od pewnego czasu :D)
- (by Jurgi) Udzielanie się na forach. Pracodawcy oraz headhunterzy przeglądają też fora tematyczne. Jeśli użytkownik ma sensowne posty, to może wzbudzić zainteresowanie. "Podobnie udzielanie się na forach (może warto dopisać?). W moim przypadku się sprawdziło — to nie ja się ubiegałem, tylko pracodawca się zgłosił, że chce, żebym dla niego pisał."
- (by Jurgi) Prowadzenie warsztatów, zinów, kół naukowych, etc. "[...] pozainternetowa aktywność (prowadzenie warsztatów literackich, prowadzenie kilku zinów) poskutkowało przyjęciem mnie do redakcji tygodnika, mimo że jak zapytałem, to nie było już wolnych etatów."
- (by Kele) "Portfolio" rozwiązanych zadań na stronach ze stałymi wyzwaniami (zadaniami, konkursami, etc). "Dostałem ostatnio maila z polskiego SPOJa z linkiem do ankiety. Jedno z pytań dotyczyło tego, czy chcielibyśmy widzieć w serwisie możliwość stworzenia profilu, który byłoby można pokazać przyszłemu pracodawcy. To też jakaś forma 'konkursu', ale takiego bardziej długoterminowego".
- to be continued ;)
P.S. Może to zabrzmi trochę nieprzyjemnie, ale jeśli trochę (parę lat) już się uczymy, i po przeczytaniu powyższej listy nie przychodzi nam do głowi totalnie nic co byśmy mogli wykorzystać, to powinniśmy się pooowaaażnie zastanowić czy nasza dotychczasowa nauka faktycznie jest wystarczająco efektywna i czy czasem nie czas na jakieś zmiany.
2010-07-27:
Comments:
PS. A w Google Cie nie sprawdzali?
To co mój pracodawca promuje dosyć mocno to certyfikacja potwierdzana egzaminami i określonymi tytułami (MCP, MCSA, MCSE, MCTS, MCITP) - tu oczywiście jest trochę wątplwiości co do tego czy osoba która zdała egzamin faktycznie taką wiedzę posiada, ale generalnie jeśli my zrobiliśmy to faktycznie uczciwie to moim zdaniem powinniśmy takie rzeczy w CV podawać.
Ja bardzo mocno popieram to co napisałeś o wystąpieniach na konferencjach (bo tu jednak organizator wybiera tych najlepszych, wiec coś to musi znaczyć), choć z drugiej strony wiem też, że niekoniecznie osoba która nie potrafi prezentować nie ma wiedzy (sam znam conajmniej 5 takich osób).
To co może w pewien sposób podusmować np. naszego bloga (bo sam blog to jednak sposo do przeglądania przez potencjalnego pracodawcę/współpracownika) - to zebranie najlepszych i najciekawszych naszym zdaniem wpisów.
Myślę, że ciekawą dokumentacją będą też artykuły napisane do prasy branżowej. To nadal chyba całkiem spore wyróżnienie (bo w internecie może pisać każdy, w gazecie już nie).
Chyba tak na szybko nic więcej mi do głowy nie przychodzi... Ale jak mi się coś przypomni to dorzucę na pewno :)
Ah, dzięki za komentarz! Podlinkowałem go w poście (noo w zasadzie to napisałem, żeby go znaleźć, bo nie mam niestety jeszcze linków do komentarzy... będą w następnej wersji engine ;p)
@myst
Słuszna uwaga, taka oczywistość, a o niej zapomniałem :)
Dodane to listy ofc :)
@y
Tak, zdecydowanie słuszna uwaga. Dodane do listy :)
Ad sprawdzanie w Google - 5 rozmów kwalifikacyjnych, z czego na pierwszej sprawdzali czy to co mam w CV to nie bujda (poziom rozmowy był taki, że naprawdę odradzam wpisywanie czegoś czego się nie wie do CV ;>), a pozostałe to była taka mieszanka tego co powinienem wiedzieć, tego co oni potrzebują, i tego czy w razie czego umiem wydedukować rozwiązanie (lub rozwiązania). Podczas którejś z rozmów chwilę dyskutowaliśmy również o którymś z moich projektów.
Ehm. Więc tak, sprawdzali mnie ;)
@Mariusz Kędziora
Taak, podsumowanie/spis najważniejszych postów to świetna sprawa. Od pewnego czasu zabieram się już żeby coś takiego u siebie zrobić ;D Dodałem to do listy ;)
Co do certyfikatów, thx za info, podlinkowałem (j/w) komenta w poście :)
Co do prasy branżowej - zgadzam się, chociaż też nie wszystkie branżowe (sic!) gazety mają godny polecenia poziom ;p
Niemniej jednak fakt faktem trudniej jest coś opublikować w HITB Magazine / phrack / uninformed / etc, niż u siebie na blogu :)
Jeśli by Ci coś jeszcze do głowy wpadło to pisz śmiało :)
Podobnie wcześniej, pozainternetowa aktywność (prowadzenie warsztatów literackich, prowadzenie kilku zinów) poskutkowało przyjęciem mnie do redakcji tygodnika, mimo że jak zapytałem, to nie było już wolnych etatów.
Dzięki za ten post. Mi osobiście trochę rozjaśnił sytuacje. Chociaż mam jeszcze parę pytań. Np. Co zrobić jeżeli nasze postępy są małe i osiągnięcia na razie nie wielkie? Czy mimo to warto się nimi dzielić? Interesuje mnie też odpowiedź na pytanie y. Jak wyglądała rozmowa w google? A także jak znalazłeś swoją pierwszą prace w branży? Z góry dzięki za podjęcie tematu. :)
wpisujcie miasta, ktorych mieszkancy chca sie dowiedziec wiecej na ten temat!
WARSZAWA
;D
Hmm, przyznaję, że nigdy nie myślałem o udzielaniu się na forach w kontekście postu, ale masz rację, warto dopisać :)
Prowadzenie warsztatów/kół naukowych/innych podobnych aktywności jest też fajnym pomysłem, dopiszę ;)
Cóż, fakt faktem tego typu aktywności powodują czasem, że praca ciebie szuka, a nie ty pracy (vide przykład z redakcją).
@Kele
O, to widać mają dobry pomysł ;) Dorzucę do listy ;)
@y
Szczerze to temat rozmów w Google był na sieci dużo razy poruszany, więc w skrócie:
- miałem 1 rozmowę telefoniczną (1.5h; miało być 30-45 minut, ale zdecydowaliśmy się przedłużyć (szczerze, po prostu fajnie się rozmawiało ;>)), tematem przewodnim był reverse engineering i język C/C++ (dyskusja na temat fragmentów kodu, od strony bezpieczeństwa głównie)
- a potem 4 na miejscu w Zurichu (po 45 minut każda + do tego 30 minut przerwy na herbatkę, etc ;>), tematami były:
-- (na pierwszej) krypto, język C/C++, exploitacja vulnów, etc
-- (na drugiej) exploitacja vulnów, reverse engineering, etc
-- (na trzeciej) webowe rzeczy, z naciskiem na security, programowanie (wybrałem język C dla odmiany ;p), etc
-- (na czwartej) rozplanowanie audytu, wektory ataku, etc
Rozmowy były prowadzone w bardzo sympatycznej atmosferze, w zasadzie nie czuło się, że to rozmowa kwalifikacyjna, a raczej ot taka okazja żeby porozmawiać o ciekawych rzeczach z ciekawymi ludźmi ;) (szczególnie że garnitur nie był wymagany, z czego ofc skorzystałem, bo nie przepadam za garniturami ;p)
Natomiast z całą pewnością proste nie były ;> Już na telefonicznej czułem się przemaglowany, dowiedziałem się kilku rzeczy których nie wiedziałem (ale i udało mi się zaskoczyć czymś nowym Neela raz czy dwa ;>). Na miejscu w Zurichu też prosto nie było, szczególnie że mój pierwszy rozmówca zaczął od krypto, z którego się super nie czuje. W sumie imo najsłabiej mi poszło na ostatniej rozmowie - łaaadną chwilę mi zajęło zanim się zorientowałem, że ta rozmowa nie ma być strikte-techniczna, tylko bardziej "menadżmentowa" ;D
Ale ogólnie jak widać, wyszło pozytywnie ;)
Poza tym muszę naprawdę dać duży plus jeśli chodzi o kontakt podczas całego procesu rekrutacji, a także po nim ;) Po prostu wow ;)
I w sumie tyle jeśli chodzi o rozmowy hehe ;)
@Bukal
Dzielić się warto zawsze, zgodnie z tym co napisałem w "Poradniku Początkującego Programisty" (choćby dlatego, że sam sobie utrwalasz, a także masz motywację żeby sprawdzić dodatkowe rzeczy, no i nabierasz pewnego nawyku) ;)
Ważne jest oczywiście aby to co piszesz publicznie było rzetelne :)
Co do pierwszej pracy w branży, to wyszło dość zabawnie, bo w zasadzie ona znalazła mnie (a raczej nas), na IRCu ;)
Tj. siedziałem na pewnym kanale gdzie sporo było osób zajmujących się reverse-engineeringiem, i na owym kanale pojawiła się pewna osoba, przedstawiła się, powiedziała że jest z firmy antywirusowej, i że szukają reverserów ;)
Co prawda wtedy się nie zdecydowałem (dopiero z RE zaczynałem), ale postanowiłem sobie, ze jak będą rozszerzać dział ponownie, to się do nich załapie (niezła motywacja do nauki btw). No i jak sobie założyłem tak się stało, po jakimś pół roku od pierwszego "kontaktu" :)
@ged_
j/w ;)
Ja jak na razie natrafiałem(jak stażu szukałem) na panie z hr które pojęcia nie miały o tym czym miałbym się zajmować, tylko pytały o rzeczy typu "Jakim zwierzęciem wolałbyś być, bykiem czy królikiem?".
Szczerze to wolałbym się "popisać" niewiedzą w rozmowie z kimś konkretnym a nie odpowiadać na bzdurne(psycholodzy mnie już nie lubią :)) pytania.
Hehe współczucia w takim razie ;)
Szczerze to mam drobne uczulenie na pytania tego typu co cytowane przez Ciebie ;>>>
Jest już jasne - interesuje mnie informatyka, programowanie, hacking/security no wiele zagadnień z tym związanych.
Zaczynam właśnie 3 klasę TI.
Wiem, że w tej szkole zbyt wiele się nie nauczę, jednak chciałbym znaleźć jakąś ciekawą pracę, związaną z moimi zainteresowaniami, a chciałbym też je sam rozwijać.
Właśnie w tym rozwijaniu umiejętności tkwi problem (przynajmniej u mnie). Nie wiem czego mam się uczyć i JAK mam się uczyć (mam nadzieję, że ktoś coś mi podpowie).
Może jestem zbyt leniwy (ooo, tak jestem i to bardzo), ale naprawdę chciałbym coś osiągnąć i ( co obiecuję sobie od dłuższego czasu) na pewno się za siebie wezmę, tylko czy ktoś mógłby mi cokolwiek podpowiedzieć ?
Trudna sprawa... Tzn, konkretniej, trudną sprawą jest:
"Może jestem zbyt leniwy (ooo, tak jestem i to bardzo), ale naprawdę chciałbym coś osiągnąć"
Hmm, może to zabrzmi brutalnie, ale z mojego doświadczenia wynika, że jak coś jest dla człowieka pasją/hobby, to owy człowiek po prostu to robi, w każdej wolnej chwili. Zastanów się, czy ta informatyka jest faktycznie tym co cię pociąga. A nuż skrzydła byś rozwinął w czymś innym :)
Ale jest to Twój wybór, może, będąc konsekwentnym, no i na pewno nie leniwym ;>, Ci się uda ;)
W każdym razie...
"Nie wiem czego mam się uczyć i JAK mam się uczyć (mam nadzieję, że ktoś coś mi podpowie)."
Napisz mi mejla, napisz w nim co już umiesz i jak się tego nauczyłeś, może uda mi się coś Ci podpowiedzieć :)
ZADBAJ o angielski
tzn. taki który pozwoli Ci na swobodne i na odpowiednim poziomie szczegółowości, ze zrozumiałym dla innych akcentem funkcjonowanie w środowisku pracy.
Wiele dobrych technicznie osób mocno ogranicza swoje możliwości rozwoju kariery w IT przez ten "feler".
Add a comment: