@wojtekf:
Moja ogólna porada, a jestem typkiem przeglądającym nieraz CV kolesi kandadującej do dużej, poważnej firmy, jest taka: za podstawowy cel uznaj przekazanie czytającemu, że jesteś dobrym programistą. Dobrym relatywnie. Jasne, że nie jesteś supermistrzem dopiero po studiach, ale możesz być dobrym kandydatem na junior developera.
Nie chcę Cię wkręcić w coś głupiego, ale za siebie i za znanych mi ludzi -- łącznie z managerami -- mogę powiedzieć, że w CV tolerujemy i nawet chętnie widzimy więcej rzeczy odstających od formalnego CV, niż mogłoby się wydawać. Nie, nie dawaj tam emotikon i głupich żartów, to nie aż taki poziom. Ale pisanie CV w pierwszej osobie zamiast bezosobowo, prostymi zdaniami, nie jest dla mnie ŻADNYM minusem.
My, programiści, zajmujemy się na co dzień skomplikowanymi rzeczami, mimo wszystko. Niektórzy twierdzą, że pracujemy zupełnie jak robotnicy, tylko nasze wirtualne młotki i układane przez nas mury mają więcej ruchomych części i dlatego jesteśmy (zwykle :P) lepiej opłacani. Cóż: one mają znacznie więcej ruchomych części, nawet jeśli są tylko stosunkowo prostymi aplikacjami, bez specjalnych cudów.
Skoro robimy tak skomplikowane rzeczy, to cenimy prostotę. W kodzie i poza nim. Zasady DRY i KISS. Jeśli zobaczę te akronimy w CV, daję nawet małego plusika. Dlatego jeśli ktoś wrzuci tabelkę z nagłówkami "Nazwa projektu" oraz "Czego się nauczyłem?", nie uznam, że jest gorszy niż gdyby drugą kolumnę nazwał "Zasymilowana wiedza do ponownego wykorzystania".
Lubimy jednak staranność i trzymanie się konwencji. I dlatego pierdoły takie jak formatowanie czy styl mają znaczenie. Jeśli piszesz nie tylko równoważnikami zdania, to pisz tak konsekwentnie. Jeśli w listach elementów masz średniki lub przecinki na końcu, to miej tak wszędzie. Jeśli są zdania czynne, to niech będą co najmniej w całej liście, albo i całym CV.
Ludzie nie potrafią pisać, a w naszej pracy, jak mawiają pragmatyczni programiści, wszystko jest pisaniem (nie tylko kodu). CV napisane w 100% formalnie i oficjalnie, ale z pewnymi potknięciami i niezgrabnościami, zostawi gorsze wrażenie za styl niż napisane luźniej, z pewnym (lekkim -- nie przesadzajmy) jajem, ale konsekwentnie.
Kumpel ma właśnie tak zrobione CV i jest świetnym, bardzo dokładnym pracownikiem. Możemy w tym CV przeczytać, w dziale z paroma ciekawostkami, że "obudzony w środku nocy wymieniam 72 [czy ileś tam] tagi HTML5 w ciągu 3 minut". Dziwne? Może, ale niektórzy ludzie z branży pamiętają popularną gierkę przeglądarkową, w której właśnie to trzeba było zrobić i wiedzą, że te 72 to niezły wynik ;-). Ten znajomy jednak interesuje się też składaniem druku i CV miał naprawdę spójnie zrobione.
Co z projektami, ktore pisalo sie samodzielnie, niekomercyjnie? Stworzyc portfolio i dodawac link do danych kontaktowych, czy pisac o tym w doswiadczeniu?
Pisz w doświadczeniu! Jeśli projektów jest dość dużo (więcej niż kilka), wybierz tylko takie małe kilka najlepszych i najważniejszych i wpisz je pod nagłówkiem "Wybrane projekty". Możesz dorzucić króciusieńki opis każdego z nich -- taki na parę słów kluczowych lub 1-2 zdania. Informacja o najlepszych rzeczach z tego projektu. Jeśli robiłeś jakikolwiek projekt metodą TDD, napisz to -- to będzie ważne!! I taki projekt może całkiem nieźle rzutować na CV, mimo że będzie mały. Bo od strony programistycznej dał Ci fajne doświadczenie.
Czy jesli nie posiadam doswiadczenia komercyjnego, ale pracowalem w wakacje przez 3 miesiace wakacji w calkiem innej branzy, to wpisywac o CV cos takiego?
Nie za bardzo zgadzam się z @aurel. Może gdybyś faktycznie miał ZERO doświadczenia... nawet zero projektów na zlecenie. Ale może i nawet wtedy nie. Zdarzało mi się czytać CV, gdzie gościu -- mający ponad 30 lat -- wymieniał chyba WSZYSTKIE prace, fuchy i uprawnienia, jakie miał w życiu. Doświadczenie branżowe nie było zbyt imponujące, tj. brak ciekawych firm (choć ileś tam "lat" niby w branży robił), ale za to dowiedziałem się, że miał uprawnienia do obsługi motopompy strażackiej (czy tam wojskowej?) do mocy iluś tam wat włącznie. WTF? To mi raczej śmierdzi nieumiejętnością segregacji informacji. CV było w sumie na 4 strony, prawie jak na jakiego eksperta ;)
Bardziej się zgadzam z tym, co napisał @Shalom. Napisz tylko o tym, co może jakkolwiek rzutować na obecną pracę. I napisz w CV, co jest tą rzutującą umiejętnością, którą zdobyłeś. Np. praca w McDonalds sama w sobie byłaby pewnie bez sensu, ale jeśli pracowałeś za granicą jako sprzedawca, a na stanowisku wymagana jest znajomość angielskiego, to możesz dopisać, że nauczyło Cię to bezproblemowych kontaktów z klientami po angielsku. Albo że praca przy wylewce asfaltowej na autostradzie A2 nauczyła Cię szacunku do deadline'ów.
Powiedzmy, ze mam dobra znajomość Javy, czy wystarczy napisac, ze ona jest dobra, czy rozbijac to na "moduly", ktore opanowalismy w dobrym stopniu (np. dziedziczenie, wielowatkowosc itd)?
Tutaj nie jestem pewien. W mojej branży, gdzie ludzie aplikują do znacznie mniej rozumianego języka, wymienienie paru kluczowych cech tego języka uznałbym za plus. W Javie w zasadzie fajerwerków nie ma, tylko klasyczna, solidna obiektowość.
Ciężko też powiedzieć, byś bez super-hiper-OGROMNEGO doświadczenia mógł mieć "dobrze" opanowaną wielowątkowość, która jest szalenie skomplikowanym i trudnym zagadnieniem.
IMO trochę szczegółów przy opisie umiejętności wymienić można. Bo to, że umiejętności powinny być, i to szersze niż tylko sam opis języków, to już jest standard (pomaga to też wypełnić CV z niewielką ilością doświadczenia).
Np. testowanie automatyczne -- wraz z frameworkami, jakich używałeś (np. JUnit, możesz nawet podać wersję). Tutaj można podać jakieś szczegóły, które świadczyłyby o tym, że naprawdę tu działasz. Niby numer wersji to pierdoła, ale jest lepszą wskazówką, że coś faktycznie stawiałeś w tym JUnicie (i to np. na nowym API), a nie że usłyszałeś tę nazwę i tak se wstawiłeś. Albo np. za napisanie "Wzorce projektowe" dałbym małego plusika, ale za napisanie "Wzorce projektowe, w tym również te lepsze niż Singleton" dałbym podwójnego. Raz, że nie jesteś jednym z tych, co zapamiętał na wykładach tylko Singletona, bo jest prosty i ma wpadającą w ucho nazwę (80% ludzi poproszonych o wymienienie wzorca mówi właśnie o nim), ale również wiesz, że singletony są w sumie be i trzeba je stosować tylko wtedy, gdy naprawdę jest to mocno uzasadnione. Oczywiście, musisz umieć swoje stanowisko obronić na rozmowie kwalifikacyjnej!
Zauważ, że jeśli masz biedne CV, to możesz dość łatwo i niezależnie od rynku je wypełnić czymś pożytecznym. Np. jak masz zero doświadczenia komercyjnego, to możesz sobie wziąć troszkę zleceń. Nawet jeśli w ciągu pół roku zrobisz małą appkę wujkowi i rozwiążesz parę zadań "studenckich" (oczywiście nie zadając pytań -- bo przecież nielegalnego projektu na studia byś komuś nie zrobił ;-) ) i zgarniesz coś ze zlecenia-przez-net , to już praktycznie możesz napisać, że od tego do tego miesiąca robiłeś "freelancing".
A rubrykę Umiejętności możesz wypełnić, ucząc się w domu. Np. te wzorce projektowe czy TDD. W najgorszym razie możesz usiąść sam i zrobić dla siebie mały projekt, używając formalnego TDD -- to będzie całkiem spory plus.
Tak samo, w Zainteresowaniach, możesz mieć mały pod-paragrafik (1 linijka) dotyczący zainteresowań profesjonalnych. Jeśli w nim miałbyś napisane "Nałogowa lektura książek technicznych", to mógłbyś nawet dodać "w tym" i ze 3 tytuły ("Pragmatyczny programista", "Czysty kod") lub ulubionych autorów, jeśli elementy te są znane i powszechnie szanowane (Banda Czterech, Robert C. Martin., może nawet Bruce Eckel -- choć ja bym tu skupił się na książkach ciekawszych niż "Thinking in Java"; to oczywiste że musisz czytać o swoim języku, ale np. książki o IO poszerzają horyzonty i są ciekawym dodatkiem).
Podsumowując, wg mnie niemal wszystkie chwyty dozwolone, jeśli tylko pokazują jakoś Twoją wiedzę/podejście/umiejętności. No i całość niech będzie zrobiona starannie i porządnie.
Trzeba pamiętać, że CV samo w sobie prawie nigdy nie będzie żadnym killerem. Widziałem już wiele bardzo mocnych CV, które zostały ocenione bardzo wysoko (takie prawie że z wykrzyknikiem ;) ), a na rozmowie kwalifikacyjnej kandydat wypadał blado i okazywało się, że przez te X lat w super firmie A oraz hiper firmie B wcale tak wiele się niestety nie nauczył, tylko najwyraźniej "klepał kod". Ktoś inny mógł mieć tylko 2 lata doświadczenia, a był dosłownie 2-3x lepszy. Rekrutujący, przynajmniej ci techniczni, wiedzą, że tak bywa.