: index | programowanie | webmastering | algorytmika | download | projekty | słownik | grafika | flash | linki :

a r t y k u ł y > ogólne >

P R A C A   D L A   I N F O R M A T Y K Ó W

 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30

 

autor: 
źródło: 

Sebastian Schmmer
www.megapraca.pl

   

 

Minęły czasy kiedy aby dostać pracę wystarczyło pokazać dyplom i powiedzieć, że pracowało się tam a tam. Obecnie często można się spotkać z rozmową o pracę składającą się, w przypadku informatyka, zwykle z trzech części, z których najważniejszą są testy umiejętności technicznych. Każda z tych części może być mniej lub bardziej rozbudowana, a w skrajnych przypadkach może nie wystąpić wcale.

Część ogólna

Zwykle na początku następuje przedstawienie profilu i celu biznesowego działalności firmy. Mogą też występować pytania mające na celu wysondowanie osobowości i cech charakteru kandydata (pewna firma zagraniczna zapytała autora, co jego rodzice na to, że ma zamiar podąć pracę za granicą!). Nie będzie przesadą stwierdzenie, że część ta może być najtrudniejsza, jeśli łączy się z testem psychologicznym.

Ma ona dać odpowiedź na pytanie czy nasza osobowość odpowiada pracodawcy, czy umiemy pracować w grupie itp. Bywają również pytania o stan majątkowy, wyznanie, o to czy planuje się powiększenie rodziny w tym roku (jeśli do końca roku pozostało mniej niż dziewięć miesięcy to pytanie ma dość jasny wydźwięk, szczególnie jeśli zostało zadane nieżonatemu mężczyźnie...). Z pytań quasi technicznych zetknąć się możemy z pytaniem "Kim chciałbyś być i czym się zajmować?".

Pytania o doświadczenie zawodowe

nie są trudne pod warunkiem przygotowania się, zwłaszcza jeśli rozmowa ma być w języku obcym. To my nadajemy kierunek tej rozmowie. W rozmowie takiej lepiej nie wgłębiać się w niestrawne szczegóły, zwłaszcza gdy rozmówcą nie jest informatyk.

Część ta ma określić z jaką problematyką zetknęliśmy się praktycznie, jakie są nasze sukcesy w rozwiązywaniu problemów, jak umiemy mówić o tym co robiliśmy. Z pytań na pograniczu techniki wymienić można pytania o:

  •   rolę pełnioną w zespole,

  •   skład i organizację zespołu,

  •   wpływ na innych i na projekt w sensie umiejętności technicznych,

  •   z jakim największym problem - wyzwaniem technicznym spotkałeś się w pracy zawodowej,    jak go rozwiązałeś - bardzo częste pytanie zwłaszcza u zagranicznych pracodawców,

  •   dlaczego wybrałeś taki a nie inny zawód,

  •   czego oczekujesz od nowej pracy w zakresie problematyki technicznej, technologii, itp.

Testy umiejętności technicznych

mają zdecydować czy mamy odpowiednią wiedzę aby pracować na danym stanowisku. Testy takie mogą przybierać następującą formę:

  •   luźnej rozmowy na temat technologii, narzędzi,

  •   rozmowy składającej się z problematycznych pytań,

  •   testów pisemnych i testów wyboru,

  •   zadań domowych,

  •   zaprezentowania swojego dorobku w postaci napisanych programów.

Przeprowadzany podczas rekrutacji test jest w większym lub mniejszym stopniu kompozycją kilku form. Testy mogą być przeprowadzane podczas osobistego spotkania, zdalnie przez telefon lub za pośrednictwem internetu. Zadania domowe, czyli programy do napisania przez kandydata w domu zdarzają się rzadko i w przeważnie małych firmach, podobnie jak prezentacja napisanych w przeszłości programów. Można stwierdzić, że zarówno zadawanie zadania domowego, jak i prośba o prezentowanie dorobku nie świadczy zbyt dobrze o pracodawcy. Zdarza się niestety, że mała firma nie wie jak rozwiązać problem i chce się przy okazji rekrutacji czegoś nauczyć. Może się wydawać, że zadania domowe są najlepszą i najmniej stresującą formą rekrutacji. Doświadczenie w tej sprawie mówi jednak coś zupełnie innego. Nikt nam nie zagwarantuje, że gdy dobrze zrobimy zadanie, poświęcając np. tydzień, to zostaniemy zatrudnieni. Pokazywanie własnego dorobku ma sens w przypadku studenta lub osoby zaraz po studiach. Osoba z pewnym doświadczeniem zawodowym nie ma co pokazać, gdyż to co robiła u poprzedniego pracodawcy jest objęte tajemnicą i nie należy do pracownika. Chyba, że ktoś po spędzeniu dnia w pracy, przychodzi od domu i programuje dla rozrywki... Wydaje się, że firmy stosujące ten sposób rekrutacji, mniej lub bardziej świadomie, nastawiają się na studenta lub absolwenta, a nie na specjalistę z określonym doświadczeniem zawodowym. Pytania problematyczne są dość trudne do przewidzenia, ale związane są najczęściej z rzeczywistymi problemami z jakimi styka się firma. Do pytań tych nie zaliczamy zadań związanych z napisaniem fragmentu kodu, zapytania, algorytmu. Zwykle trzeba wypowiedzieć się jako fachowiec na dany temat. Pytania dotyczą mniej stanowisk związanych z programowaniem, a bardziej z analizą i modelowaniem (projektowaniem na poziomie modelu logicznego systemu). Czasami trzeba na coś "wpaść". Pytania te mają mało wspólnego z wiedzą wyuczoną np. na studiach.

Przykłady wzięte z życia:

  1. Mamy dwie bazy danych, jedna z nich zbiera zgłoszenia online i nie jest transakcyjna. Druga baza jest transakcyjna i znajdują się w niej dane dostępne dla systemu. Jak zapewnić aby dane w drugiej bazie były często uaktualniane (powiedzmy co godzinę) bez przestojów w działaniu systemu, zwłaszcza jeśli chodzi o rejestrację zgłoszeń online?

  2. Co jest ważniejsze: jakość kodu (w sensie łatwości czytania) czy niezawodność?

  3. Jakie będą następstwa użycia określonej technologii?

  4. Prośba o przeanalizowanie przydatności jakiegoś systemu do określonych celów na podstawie dokumentacji.

  5. Określić wszystkie narzędzia technologie, oszacować czas i koszty na podstawie wymagań stawianych systemowi.

  6. Jak należy zaprojektować system w architekturze klient serwer aby spełnić określne wymagania.

  7. Przychodzi do nas osoba chcąca "od ręki" posortować bardzo duży plik z wynikami określonych pomiarów. Plik jest tak duży, że MS Excel sobie nie poradzi. Sortowanie ma być przeprowadzone z wykorzystaniem dobrego algorytmu. Implementować nie ma czasu. (Prawidłowa odpowiedz: wczytać dane do motoru bazy danych. Implementują one najlepsze algorytmy sortowania. Po posortowaniu zapisać do pliku.)

  8. Wymień trzy ostatnio przeczytane książki (na temat informatyki) i określ jak na Ciebie wpłyneły?

Testy pisemne i testy wyboru są najłatwiejsze do przewidzenia. Wiele pytań powtarza się bardzo często i nie wypada nie znać odpowiedzi np.:

  •   COM (Componet Object Model),

  •   DCOM (Distrubuted COM),

  •   Interfejsy COM,

  •   Metody querry interface, addref, release.

  •   Funkcje wirtualne, (np. czy destruktor może być funkcją wirtualną),

  •   C++, ulubionym tematem są wyjątki,

  •   Łączenie statyczne a dynamiczne,

  •   Ręczne wykonanie fragmentu kodu (trzeba mieć pojęcie o kolejności operatorów itp.)

  •   Zarządzanie pamięcią w języku Java, JavaBeans.

  •   Znalezienie błędów (np. związanych z alokacją pamięci) w przedstawionym programie,

  •   Zapytania w języku SQL, Left Join, Right Join. Prawie zawsze trzeba napisać kilka   "selektów",

  •   Biblioteka STL,

  •   Jeśli stanowisko związane z administracją systemem i sieciami to np. SPX, FAT32, Hub a   Router,

Pracodawcy rzadko pytają o:

  •   Algorytmiczną stronę informatyki,

  •   UML (co najwyżej to jakie są relacje, typy diagramów. Nie zadania typu zaprojektuj, no   chyba, że się prosimy),

  •   Złożoność obliczeniową,

  •   Języki skryptowe: ssh, csh,

  •   Zagadnienia związane z zarządzaniem projektem informatycznym,

  •   Algorytmy związane z grafiką,

  •   Obliczenia numeryczne,

  •   Sztuczną inteligencję,

  •   Metody projektowania i specyfikacji (ale czasem pytają o podstawowe rzeczy z języków   obiektowych),

  •   Programowanie pod Windows i MFC,

  •   Przerwania,

  •   Aparaturę informatyczną (chyba, że stanowisko wiąże się silnie ze sprzętem),

  •   Assembler,

  •   Pascal,

  •   Ada,

  •   CORBA,

  •   RPC,

  •   Architekturę komputerów,

  •   UNIX, działanie systemów operacyjnych,

  •   Model ISO/OSI,

  •   Techniki kompilacji,

  •   Wielowątkowość.

Swoiste kwiatki w testach to:

  •   Wymień słowa kluczowe występujące w języku C++ a nie występujące w C

  •   Gdzie jest (tzn. jakie menu, podmenu itp.) w programie takim a takim polecenie służące   do...

Studia informatyczne nastawione są bardziej na projektową (Politechnika) lub algorytmiczną (Uniwersytet) stronę informatyki. Pracodawcy pytają przważnie o konkretne technologie, narzędzia i języki. Do ulubionych tematów pracodawców należy SQL. Zapytania są krótkie i łatwe do wykonania na kartce. Przed rozmową dobrze jest przerobić kilka zapytań. Zagadnienia związane z teorią informatyki, algorytmami są marginalne.

Pracodawca ma małe możliwości sprawdzenia co naprawdę umiemy. O pewnych problemach mogliśmy przeczytać w pociągu przed rozmową - pracodawca nie ma żadnej szansy tego sprawdzić. Zwłaszcza jeśli umiemy przeanalizować większą partię tekstu wyłapując z dużą łatwością rzeczy istotne i analogie. Z pewnych zagadnień nie da się zadać pytania na kartce, więc pozostają pytania teoretyczne.

Wiedza ze studiów nie wystarcza i do rozmowy w zakresie technologii trzeba się przygotować. Hakami mogą być zadania związane ze znalezieniem potencjalnych błędów w programach (na kartce), zwłaszcza jeśli program napisany jest nieczytelnie i z użyciem nietypowych konstrukcji. Pamiętajmy, że pracodawca ocenia to co widzi i słyszy podczas rozmowy, a nie sytuację rzeczywistą. Dlatego często osoby dobre wypadają gorzej od tych lepiej sprzedających się i sprytniejszych.