Rekruterów rozmaite przypadki – część 1

Co rusz napotykam się na artykuły z cyklu „błędy kandydatów podczas rekrutacji”, „tego nie rób na rozmowie kwalifikacyjnej” itp. Zawsze wtedy przypominają mi się sytuacje z własnych bądź zasłyszanych doświadczeń na temat drugiej strony – czyli tego jak rekruterzy wypadają w oczach kandydatów.
Dzisiaj chciałabym podzielić się właśnie tymi doświadczeniami. Tak dla przeciwwagi:)

Najpierw miał być to jeden artykuł, ale w trakcie tworzenia okazało się, że zawarcie wszystkiego w jednym poście jest niemożliwe, zatem powstał cykl.

Na początku jednak chciałabym zaznaczyć, że nie ma to być żaden hejt na rekruterów, choć faktycznie do poprawy jest mnóstwo rzeczy. Niemniej na swojej drodze spotkałam również ludzi bardzo kompetentnych i profesjonalnych a kontakt z nimi zaowocował ciekawymi ofertami pracy. Niestety mam wrażenie, że takich przypadków jest zdecydowana mniejszość.

Jako programiści niemalże codziennie w naszej skrzynce email/LinkedIn/Goldenline znajdujemy kolejne oferty – lepsze i gorsze. Bardzo ciężko jest czasami oddzielić ziarno od plew i zdecydować na co warto odpowiedzieć. Niestety nadawcy nie zawsze nam to ułatwiają. Mam nadzieję, że ten cykl nieco Wam pomoże w zorientowaniu się czego się spodziewać.

Tajne/poufne:)

Pierwszy typ ofert to oferty anonimowe – czyli zaczynające się od słów „dla naszego klienta z branży takiej a takiej poszukujemy”.

Tutaj sytuacje mogą być dwie – pierwsza, to gdy firma faktycznie nie chce się ujawnić i to raczej nie jest dobry znak. Głównie dlatego, że często zanim się dowiemy o jaką naprawdę firmę chodzi czeka nas co najmniej jedna rozmowa z rekruterem, czasem nawet dwie – pierwsza żeby nam przedstawił ofertę i sprawdził czy się z grubsza nadajemy a druga, gdy firma docelowa zaakceptuje naszą kandydaturę. Czyli dwie rozmowy telefoniczne + odpowiedź którą musimy wysłać na pierwszą propozycję mailową. Trochę dużo czasu, żeby poznać nazwę firmy.
Co najlepsze – w skrajnym przypadku może się okazać, że rekruter nie dysponuje naszym aktualnym CV, ponieważ jesteśmy w jego bazie już od wielu lat (wielu prac wstecz) i na tej pierwszej rozmowie telefonicznej dowiemy się, że chce nas zrekrutować do naszej aktualnej firmy albo którejś z poprzednich. Znów spora strata czasu. Co ciekawe przecież to nie tylko nasz czas, to też czas rekruterów. Czemu więc sami sobie utrudniają życie zamiast przechodzić do konkretów na samym początku?

Ważne jest też, by zadać pytanie czemu firma ukrywa swoją nazwę? Jaką ma opinię na rynku? Może czegoś się wstydzi i boi się, że jeśli na samym początku się ujawni, to nikt się nie zgłosi. Gdy już proces rekrutacyjny się rozpocznie, to niektórym kandydatom będzie trochę szkoda się wycofać.

Druga sytuacja jest wtedy, gdy rekruter wysyła nam ofertę, która zaczyna się od takich tajemniczych słów, ale bez trudu jesteśmy w stanie znaleźć w Google dany opis stanowiska wraz z nazwą firmy. Skąd więc ta anonimowość?

Tutaj również są dwie opcje – jedna to, że rekruter obawia się, iż jeśli poda nam już na początku nazwę firmy, to zgłosimy się do niej bezpośrednio a on straci prowizję. Jest to obawa zrozumiała dlatego zdecydowanie zachęcam Was, jako kandydatów, do niepostepowania w ten sposób. Być może spowoduje to, że tajemniczych ofert będzie mniej. Z kolei ze strony rekruterów jest też dość naiwnym sądzenie, że kandydat chociaż nie spróbuje wyszukać nazwy firmy na własną rękę.

Druga opcja to z kolei oferty, gdzie firma docelowa nawet nie wie, że jakiś rekruter dla niej szuka kandydatów. Jak to możliwe? Rekruter wyszukuje oferty pracy różnych firm po czym kontaktuje się z kandydatami działając samodzielnie. Jeśli ktoś okaże się zainteresowany, próbuje skontaktować go z firmą. Najczęściej próby te nie kończą się sukcesem a kontakt z rekruterem się urywa.

Wniosek

Najlepsze oferty to takie, gdzie mamy jasną informację na temat nazwy firmy. Wszelkie utajniania powinny wzbudzić naszą czujność i sprawić byśmy dwa razy się wszystkiemu przyjrzeli zanim w ogóle rozpoczniemy proces rekrutacji na dane stanowisko.

NumPy – jak ładnie ułatwia nam życie

Załóżmy, że mamy takie oto dane:

Year Number of items Number of another items
2001 100 1000
2002 101 1001
2003 102 1002
2004 103 1003

Wszystko to znajduje się w pliku csv o nazwie data.csv i chcemy je sobie wczytać do jakiejś zmiennej. W czystym Pythonie musimy zrobić coś takiego:

with open('data.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    data = []
    for row in reader:
        data.append(row)

Kiedyś już wspominałam o tym, że w ramach zapoznawania się z tematem data science uczę się również NumPy czyli pakietu szeroko stosowanego w przetwarzaniu danych w Pythonie. I tak jakbyśmy chcieli wykorzystać NumPy by uzyskać to samo co powyżej musielibyśmy napisać coś takiego:

import numpy
data = numpy.genfromtxt('data.csv', delimiter=',', dtype="U75")

Dużo mniej kodu prawda?

NumPy pozwala nam od razu z pliku zrobić sobie tablicę. Nie musimy pisać pętli by dane z pliku sobie do tablicy przypisać. Co znaczą te tajemicze ustawienia – delimiter i dtype? Otóż pierwsze z nich to ustawienie znaku którym oddzielane są poszczególne kolumny w naszym pliku. Natomiast drugie to ustawienie które powoduje, że wszystkie wczytywane wartości zostaną zinterpretowane jako 75 bajtowy unicode. Umożliwia nam to wówczas pracę nie tylko z danymi liczbowymi, ale również poprawne wczytanie tekstów.

Kolejna rzecz jaką często robi się przy przetwarzaniu danych to wyciągniecie wartości z wyłącznie jednej kolumny w naszym zbiorze danych.
By zrobić to w czystym Pythonie musimy napisać:

number_of_items = []
for item in data:
    number_of_items.append(data[1])

Natomiast korzystając z NumPy:

number_of_items = data[:,0:1]

Podobnie na przykład możemy z pomocą NumPy wyciągnąć prosto wartości 2 i 3 kolumny tylko dla 1 i 2 wiersza. Robimy to w następujący sposób:

number_of_items = data[1:2,0:1]

Notacja z dwukropkiem jest również w czystym Pythonie, ale nie daje nam aż takich możliwości. Pozwala na wyciągniecie zakresu pewnych wartości. Przykładowo

otherdata[a:b]

zwróci nam wartości z tablicy jednowymiarowej other_data o indeksach od a włącznie do b wyłącznie. Z kolei jeśli zapiszemy:

otherdata[a:]

zwróci nam wartości o indeksach zaczynających się od a włącznie.
Tymczasem:

otherdata[:b]

zwróci nam wartości o indeksach od 0 do b wyłącznie.

Commonlounge – czyli społeczności skupione wokół różnych tematów w jednym

Niedawno w przestrzeniach internetu napotkałam coś takiego jak Commonlounge – Competitive Programming. Jest to społeczność pasjonująca się tematem Competitive Programming czyli rozrywek typu SPOJHackerRank czy Topcoder o których jakiś czas temu tutaj pisałam.

Commonlounge to tak naprawdę zbiór różnych społeczności – Competitive Programming to tylko jedna z nich. Są też na przykład: Algorithms and Data StructuresSphere Online Judge (SPOJ) czy z innej beczki: TED Talks.

To co wyróżnia Competitive Programming jest to, że mamy tutaj oczywiście to co lubię najbardziej czyli zadania;) ale jest to tak zorganizowane, że możemy zasubskrybować się do listy i rozwiązywać zadania po kolei w swoim własnym czasie. Przychodzą nam po kolei na maila, rozwiązujemy, odznaczamy że zrobione i przychodzą kolejne.
Poza tym serwis jest raczej zorientowany na wymianę wiedzy – jest dużo dyskusji oraz materiałów na temat popularnych algorytmów. Pozostaje pytanie czy warto się nim zajmować kiedy mamy takie strony jak HackerRank, CodeWars itd oraz oczywiście Stackoverflow na którym możemy przecież również wymienić myśli. Ja to widzę tak, że społeczność Competitive Programming ma na celu właśnie przygotowanie do stawania w szrankach w konkursach i zadaniach algorytmicznych. Zbiera wszystkie informacje w jednym miejscu i pozwala szybko dotrzeć do innych osób zainteresowanych tematem. Póki co więc myślę, że warto się tej stronie przyglądać i to zamierzam robić. Może i Wam się spodoba.

Ponieważ jednak dopiero co się zarejestrowałam być może odkryję jeszcze jakieś inne ciekawe funkcjonalności – obiecuję bezzwłocznie o nich napisać:) A może Wy już znacie ten serwis i możecie coś ciekawego o nim dodać?

Konto zablokowane z powodu przekroczenia transferu:)

„Konto zablokowane z powodu przekroczenia transferu” – taki komunikat czekał na mnie w skrzynce mailowej w sobotę rano:) No i fajnie! Miło jest przekroczyć transfer, bo jednak świadczy to o tym, że strona jest odwiedzana i nie zieje pustką. Bardzo mnie to cieszy. I pozdrawiam wszystkich odwiedzających, którzy do tego przekroczenia się przyczynili. Dziękuję!

Co ciekawe po kontakcie z firmą hostingową, ponieważ nie wiedziałam jak ten transfer w tym momencie rozszerzyć, okazało się, że coś mieli źle ustawione i w moim planie hostingowym jest nie nie 20GB a 50GB więc mogę hulać wesoło dalej bez dopłat. Z jednej strony shame, bo przez ich niedopatrzenie moja strona nie działała przez ponad 7 godzin:( a z drugiej fajnie, że w sobotę 7.30 jest tam ktoś, kto odpisuje w kilka minut. Choć może to typowe dla takich firm:) Nie wiem, bo od lat korzystam praktycznie wyłącznie z linuxpl.com i mimo tej pomyłki nadal ich polecam:)

Gdzie jestem i jak daleko mi do celu:)

Mijają dwa miesiące od początku tegorocznej edycji konkursu „Daj się poznać” więc może czas wreszcie zatrzymać się i podsumować co się do tej pory udało bądź nie udało. Na pewno muszę przyznać, że jest inaczej niż rok temu. Z jednej strony łatwiej a z drugiej – trudniej:)
Dlaczego?

Łatwiej, ponieważ przecież celem w tym roku nie było to, żeby przebić swój zeszłoroczny wynik (drugie miejsce), bo jest to przecież, obiektywnie rzecz biorąc, mało prawdopodobne. Bardziej chodzi mi o zyskanie widoczności w sieci w nowych dla mnie obszarach takich jak właśnie data science czy Python.

A trudniej, bo temat jaki wybrałam w tym roku jest dużo bardziej obszerny niż rok temu. Cóż to było napisać apkę w Androidzie w porównaniu ze zgłębieniem całkiem nowego języka jakim jest Python plus biblioteki typu NumPy i Pandas a jeszcze do tego statystyka:) Jest tego trochę, prawda? Co więcej – tym razem projekt na „Daj się poznać” nie jest jedyną rzeczą jaka mnie pochłania po pracy – z technicznych rzeczy zajmuję się jeszcze nauką Javy, doskonaleniem JavaScriptu (bo mało go używam na codzień). Po co? No cóż, o tym to może w przyszłości jeszcze napiszę;) Tymczasem trzymajcie kciuki!!

Jeśli zatem chodzi o konkurs jestem na dobrej drodze, ponieważ kontynuuje kurs na Dataquest w ścieżce Data Scientist a tak wygląda mój postęp:
Postęp

Jak widać zatem – jeszcze bardzo długa droga przede mną. Ale również długi weekend – więc mam nadzieję, że co nieco nadrobię:)

Pewne jest, że kursu nie skończę przed końcem maja, ale jest szansa na rozwiązanie tego zadania, które było częścią mojego celu, czyli: Partly Sunny with a Chance of Hashtags. Mam również nadzieję, że jeszcze uda mi się przyjrzeć „żywym” danym na Twitterze właśnie w związku z pogodą.