Konkurs, konkurs i po konkursie – znowu:)

Tak sobie pisałam i pisałam te notki, że aż przegapiłam, kiedy przekroczyłam regulaminową liczbę 20 notek w ciągu 10 tygodni. A było to 5 notek temu (jeśli liczyć tą to 6).

W takim razie dziś postanowiłam napisać sobie jakieś małe podsumowanie.

Przyznam, że tym razem już nie czuję się tak bardzo wygrana jak w poprzedniej edycji po zakończeniu tych trzech miesięcy. W zeszłym roku był to dla mnie pierwszy raz i naprawdę nie sądziłam, że uda mi się te trzy miesiące wytrwać. Tym razem – już wiedziałam, że jestem w stanie czemuś takiemu podołać. Oczywiście tak samo się cieszę, że dotrwałam, bo fajnie jest jednak kolejny raz „się spróbować”. Jednak nie jestem do końca zadowolona z efektu, bo o ile w zeszłym roku maj kończyłam z praktycznie gotową aplikacją o tyle w tym kończę go jedynie z dużą ilością wiedzy w głowie.

Czy bardzo mnie to martwi? Nie do końca, ale trochę mi szkoda, że nie miałam tak dużo czasu jakbym chciała, żeby osiągnąć więcej. Nie mniej – przez czas trwania konkursu nauczyłam się bardzo dużo na temat Pythona i jego możliwości wykorzystania w temacie Data Science. Tą wiedzę zamierzam nadal poszerzać i utrwalać.

No i na koniec – kto powiedział, że „Daj się poznać” nie może trwać cały rok? Właśnie, że może! Niniejszym ogłaszam rozpoczęcie jeszcze jednego pet projectu. Tym razem będzie miał związek z Django, ponieważ chciałabym poznać Pythona również w zastosowaniu związanym z tworzeniem aplikacji przeglądarkowych. Pomysł jaki chcę zrealizować, to w skrócie aplikacja do wybierania filmu na wieczór. Powiedzmy, że chcemy się z kimś umówić na wspólne oglądanie filmu więc przesyłamy sobie mailem propozycje a później się dogadujemy, że to bym obejrzała, a to może a tego to nigdy. Moja aplikacja ma pomóc w dzieleniu się tymi informacjami. Zamiast przesyłać sobie maile, będzie można po prostu wrzucić listę filmów do aplikacji jako propozycji. Aplikacja dociągnie z serwisów takich jak Filmweb czy IMDB informacje na temat filmu – oceny, opis itd by ułatwić wybór filmu i mieć wszystko w jednym miejscu. I teraz osoby korzystające z serwisu mogą sobie wybrać które z propozycji ich interesują i zakolejkować je do obejrzenia lub też odrzucić i wtedy te filmy pozostaną tylko na liście osoby, która je zaproponowała.

Żródła apki znajdziecie na Githubie.

Tak czy inaczej trochę mi smutno, że kolejna edycja DSP dobiegła końca. Trzymam kciuki za wszystkich uczestników i mam nadzieję, że do zobaczenia na Gali w czerwcu!

Rekruterów rozmaite przypadki – część 3

Witajcie w trzeciej części cyklu na temat różnych przypadków związanych z procesem rekrutacji widzianej oczami kandydatów. Poprzednie części znajdziecie tutaj:

http://programistka.net/rekruterow-rozmaite-przypadki-czesc-1/
http://programistka.net/rekruterow-rozmaite-przypadki-czesc-2/

Niestaranność

Ręka w górę kto dostał kiedyś maila zatytułowanego „Panie Wojciechu” chociaż ma na imię Paweł? Z kolei dziewczyny – ile razy dostałyście ofertę pracy zatytułowaną „Drogi Panie”? Ja nie zliczę…

Rekruter musi podjąć próbę kontaktu z około setką osób, żeby z tego chociaż jedna mogła być tym poszukiwanym kandydatem. Jeśli poszukuje 2-3 osób musi zatem wysłać setki maili/wiadomości na LinkedIn/Goldenline itp. żeby kilkadziesiąt osób odpisało. Z tych kilkudziesięciu może kilkanaście będzie naprawdę zainteresowanych. A tylko kilka ostatecznie zostanie przedstawionych klientowi czyli firmie docelowej. Jeśli poszukuje kilkunastu osób skala jest oczywiście odpowiednio większa i w pierwszym etapie musi spróbować skontaktować się z naprawdę niesamowitą ilością ludzi. Do tego oczywiście dochodzą terminy, więc trzeba działać szybko.

Niestety często szybkość jest wrogiem dokładności. Jak wszyscy programiści wiedzą – nie da się zrobić projektu szybko, dobrze i tanio. Wygląda na to, że podobnie ma się sprawa z rekrutacją – przynajmniej z punktu widzenia kandydata. W tej masowej komunikacji często ginie jakiekolwiek indywidualne podejście, co sprowadza się do tego, że rekruter wysyła jednakową wiadomość nie patrząc na płeć kandydata.
Co myślę, gdy dostaję ofertę zaczynającą się od słów „Drogi Panie” – no cóż, może powiem tylko, że bardzo rzadko zdarza mi się odpowiadać na takie wiadomości. Do odpowiedzi może zachęcić mnie tylko naprawdę interesująca zawartość oferty.

Kiedy wyobrażam sobie nadawcę takiego maila, widzę osobę, która w jakimś CRMie albo na LinkedIn z góry na dół przekleja tą samą wiadomość nie zwracając uwagi na to, do kogo ją tak naprawdę kieruje. Zastanawia mnie też dlaczego oferty pracy nie są konstruowane w bardziej uniwersalny sposób – nasz język jest przecież bardzo bogaty i bez trudu można napisać ofertę na tyle bezosobowo, by pasowała do obu płci. Ot choćby zwrot „Droga Pani/Drogi Panie” – tak mało a tak dużo. Nie jestem jakąś wojująca feministką ani w ogóle feministką w sumie, ale miło by było gdyby wreszcie te oferty zaczęły wyglądać jakby nie pisał ich ktoś, komu nawet nie przyjdzie do głowy, że kobieta może pracować w tej branży.
Zwłaszcza, gdy ktoś pisze do danej osoby bezpośrednio – powinien zadać sobie tą odrobinę trudu i tak skonstruować mail, żeby formy gramatyczne i językowe jednak do tego odbiorcy pasowały. Tego po prostu wymaga kultura.

Wniosek

Naprawdę niewiele trzeba, żeby oferty pracy wysyłać zgodnie z zasadami dobrego wychowania. Jeśli rekruter chce zrekrutować specjalistów na poziomie, musi się na ten poziom wspiąć. 

NumPy, NumPy ale Pandas to dopiero coś

Kiedyś już wspominałam o Pandas czyli bibliotece do Pythona, która umożliwia analizę danych a przy tym robi to bardzo wydajnie oraz jest łatwa i przyjemna w użyciu. Przy tym jest obecnie najpopularniejszą biblioteką do pracy z danymi tabelarycznymi w Pythonie.

W Pandas do przedstawiania danych tabelarycznych stosujemy tzw dataframe czyli dwuwymiarową strukturę, która dostarcza nam zestaw narzędzi do szybkiego przeglądania, analizowania i wizualizowania danych.

W czym Pandas jest lepsze od NumPy?

  • Jednym z powodów jest to, że w NumPy w tabeli mogliśmy mieć wyłącznie dane jednego typu. W Pandas te dane mogą mieć różne typy.
  • Przewagą Pandas jest również obiekt NaN, który umożliwia nam obsługę nie istniejących danych (na przykład pustych niektórych pól w tabeli).
  • Kolejna rzecz to możliwość odwoływania się do wierszy i kolumn nie tylko poprzez numery, ale również poprzez nazwy (label).

Przede mną jeszcze kilka lekcji na temat Pandas, więc na pewno wrócę tutaj z kolejnymi ciekawostkami.

Rekruterów rozmaite przypadki – część 2

Witajcie w drugiej części cyklu na temat różnych przypadków związanych z procesem rekrutacji widzianej oczami kandydatów. Poprzednią część znajdziecie tutaj:

http://programistka.net/rekruterow-rozmaite-przypadki-czesc-1/

Tajny agent

Poprzednio pisałam o anonimowości oferty pracy polegającej na ukrywaniu nazwy firmy na początku procesu rekrutacyjnego. Dziś będzie o czymś podobnym, ale z drugiej strony – o tzw anonimizacji profilu kandydata. Jest to mechanizm, który stosują niektóre firmy rekrutacyjne aby ograniczyć dyskryminację.

Na czym to polega? Otóż z CV wysyłanego klientowi (firmie dla której rekruter szuka kandydatów) usunięte są wszelkie dane osobowe – od imienia i nazwiska, poprzez zdjęcie, narodowość, wiek czy płeć kandydata. Póki co wszystko w porządku.

Niestety niektóre firmy idą o krok dalej i mieszają w CV. W skrajnym przypadku – tutaj akurat moim własnym, doprowadziło to do tego, że w CV przestawiono dane na temat okresów zatrudnienia w poszczególnych firmach. O ile zmiana kolejności firm, w których pracowałam nie byłaby jeszcze niczym strasznym o tyle zmieniono daty początku i końca zatrudnienia. Zrobiono to na dodatek tak nieudolnie, iż okresy się o siebie zazębiały i z CV wynikało, że w danym momencie pracuję jednocześnie w trzech firmach.

Na szczęście historia ta ma szczęśliwy koniec, bo dostałam zaproszenie na rozmowę w firmie do której byłam rekrutowana i miałam okazję odpowiedzieć na pytanie jak to się stało, że pracuję w trzech miejscach naraz. Możliwe, że nawet nie dostałabym zaproszenia na tą rozmowę, ale okazało się, że pomógł mój profil na LinkedIn, który umożliwił ludziom z firmy zweryfikowanie tego CV gdy już dostali moje pełne dane i domyślenie się, że to firma rekruterska maczała palce w tak dziwnym dokumencie.

Wniosek

Niestety nie zawsze mamy wpływ  na to co z naszym CV zrobi firma rekruterska, ale pewne ryzyka możemy ograniczyć. Ja od wielu lat swoje CV wysyłam wyłącznie w formacie PDF, żeby uniemożliwić nieautoryzowane przeze mnie zmiany. Niestety zdarza się, że rekruter prosi nas o dokument w formacie Word – jeśli tak, koniecznie dopytajmy czy zamierza wprowadzać w nim jakieś zmiany i czy możemy się z nimi zapoznać przed wysłaniem naszego CV do firmy docelowej.  Dobrze również mieć swój profil w sieci – LinkedIn, Goldenline, lub na własnej stronie. Firma do której się rekrutujemy ma wówczas jakiś punkt odniesienia oprócz naszego CV. Dodatkowo możemy tam umieścić o wiele więcej informacji niż w tym jednym dokumencie.

Kolejne fajne rzeczy w NumPy

W zeszłym tygodniu pisałam o tym jak NumPy ułatwia nam życie. Dziś będzie jeszcze troszkę w tym temacie. Co jeszcze fajnego dostarcza nam NumPy? Na przykład wygodnego filtrowania danych. Załóżmy, że mamy jakąś tablicę:

some_numbers = numpy_array([0, 10, 100, 200, 201]);

I chcemy z niej wyciągnąć tylko wartości, które dzielą się przez 100.
W zwykłym Pythonie oczywiście musielibyśmy przejść pętlą przez całą tablicę i po kolei sprawdzać poszczególne wartości. Z pomocą NumPy możemy to zrobić dużo sprawniej. Zapiszemy sobie coś takiego:

divisible_by_one_hundred = (some_numbers % 100)

Ale to tylko krok pośredni. W tablicy divisible_by_one_hundred będziemy mieli obecnie coś takiego:

[false, false, true, true, false]

Co możemy z tym zrobić dalej by uzyskać pożądany wynik? Otóż możemy tablicy divisible_by_one_hundred użyć jako filtra w ten oto sposób:

numbers_divisible_by_one_hundred = some_numbers[divisible_by_one_hundred]

To stworzy nam taką oto tablicę:

[100, 200]

Proste i takie wygodne! Analiza danych w takich warunkach to naprawdę fajna sprawa:)