Pokazywanie postów oznaczonych etykietą książka. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą książka. Pokaż wszystkie posty

czwartek, 6 listopada 2014

Recenzja książki "Czy jesteś wystarczająco bystry, żeby pracować w Google?"

Nie mam w zwyczaju recenzowania na blogu przeczytanych książek (wyjątkiem była dotychczas książka Tomka Kacznowskiego: Practical Unit Testing), ale po przeczytaniu „Czy jesteś wystarczająco bystry, żeby pracować w Google?” Pana Poundstone Williama, postanowiłem to zmienić (aby pojawiały się na moim blogu nie tylko posty relacjonujące różne konferencje, ale i recenzje i tematy techniczne [o te najciężej ze względu na konieczny duży nakład na przygotowanie czegoś fajnego]).

Na książkę wpadłem przypadkiem, będąc kiedyś w księgarni i standardowo przeglądając co jest na półce pod szyldem „informatyka”. Książka jest wydana przez Wydawnictwo SQN, (na stronie Heliona niby też jest, ale wiecznie „czasowo niedostępna”), więc pewnie niewielu z Was na nią trafiło. Sam pewnie bym ją szybciej kupił i przeczytał, gdyby wieść o niej przyszła do mnie wraz newsletter’em wspomnianej księgarni.

Książka od samego początku opisuje z jakimi przywilejami wiąże się, wymarzona przez wielu, praca w Google. Szybko jednak przechodzi do tego, jak bardzo ciężko się tam dostać. W końcu jednej osobie na 130 kandydatów się to udaje. A dlaczego? Głównie ze względu na pytania otwarte, w których trzeba się wykazać swoimi umiejętnościami. Nie ma jednego zbioru pytań (i poprawnych odpowiedzi), z których korzystają podczas rekrutacji w Google. Pytania są tak ciężkie, że albo się już wcześniej zna pytanie wraz z poprawną odpowiedzią, albo się na nie raczej nie odpowie. Co gorsza, pytania często nie mają jednej poprawnej odpowiedzi.

W książce jest również uzasadniona bezsensowność i bezcelowość prowadzenia rozmów kwalifikacyjnych.

Podczas rozmowy o pracę można stwierdzić, czy dana osoba potrafi miło prowadzić rozmowę, można zadać szereg pytań technicznych, by wykluczyć kandydatów, którzy nie mają zielonego pojęcia, o czym mówią, lecz po za tym można by równie dobrze rzucać kośćmi.
- twórca BitTorrenta, Bram Cohen

Niby coś tam można sprawdzić podczas rozmowy kwalifikacyjnej, ale to nie gwarantuje sukcesu, że kandydat sprawdzi się w danym projekcie lub firmie. Poza tym jest ciężko zweryfikować, czy odrzuceni kandydaci by się sprawdzili. Można jedynie zwiększać prawdopodobieństwo, że dany człowiek się nada.

Dalej książka opisuje szczegóły odrzucania aplikacji kandydatów przez Google. Proces ten jest bardzo skomplikowany i decyzja zależy od wielu osób. Taki skomplikowany proces musi sporo kosztować firmę, ale dzięki temu jest ona pewniejsza, że ma u siebie tych najlepszych.

Książka jest przepełniona zabawnymi historyjkami i anegdotami, które w dużej mierze uszczypliwie wyśmiewają podejście do problemów firmy Microsoft. Tzn. książka porównuje, jak pewne zadania rozwiązał by ktoś z Google, a jak ktoś z firmy produkującej Windowsy (lub cokolwiek innego). Ma to jednak na celu pokazanie innego sposobu myślenia.

Powyższa książka nie mogłaby się oczywiście obejść bez zagadek. Są w niej opisane pytania logiczne, pytania wymagające przebłysku geniuszu, myślenia niestandardowego (lateralnego), myślenia rozbieżnego, pytania Fermiego i pytania oparte o algorytmy. Na początku każdego rozdziału, jak i często w środku, dostajemy porcję pytań, aby można było wytężyć swoje szare komórki i zatrzymać degradację neuronów. Oczywiście książka oferuje na koniec odpowiedzi do wszystkich zagadek, jak i praktyczne wskazówki, w jaki sposób próbować odpowiadać na te pytania.

Podsumowując, polecam tę książkę każdej osobie technicznej, która chce zrobić coś więcej ze sobą niż tylko odbębnić 8 godzin w pracy. Książka nadaje się również dla osób, które nie koniecznie pracują w IT, a ich praca (aktualna lub przyszła) wymaga kreatywności i niestandardowego myślenia. Oczywiście jest to pozycja obowiązkowa dla tych, co wybierają się do Google.

Btw. Za tydzień 15-stego listopada jest Global Day of Code Retreat i obywa się on również we Wrocławiu. Zostało jeszcze kilka wolnych miejsc, więc czas najwyższy się zarejestrować: http://coderetreat-2014-wroclaw.eventbrite.com.

piątek, 30 marca 2012

Nowa ksiazka o testowaniu jednostkowym


Dnia 28 marca 2012 pojawiła sie oficjalnie książka: Practical Unit Testing with TestNG and Mockito napisana przez Tomka Kaczanowskiego. Wspominałem w jednym z poprzednich wpisów (na temat testowania wyjatków), że ta książka nadchodzi. Już oficjalnie jest dostępna do kupienia na practicalunittesting.com do czego zachecam.

Dlaczego o tym pisze?

Powodów jest kilka.

Po pierwsze jest to książka polskiego autora (co prawda po angielsku, ale spolszczenie jest w przygotowaniu), a tych należy wspierać. Łatwiej (podobno) jest napisać książkę techniczną po angielsku i później ją przetłumaczyć na nasze, niż pisać po polsku i później się męczyć.

Po drugie jest to kompletny, uporządkowany i aktualny zbiór technik z przykładami, jak pisać dobre testy. Książka wyjaśnia wszelkie wątpliwości związane z nazewnictwem, konwencjami i dobrymi praktykami, jak i daje wiele cennych wskazówek.

Dla kogo jest ta książka?

Książka jest bardzo dobra dla osób, które chcą właśnie zacząć pisać testy jednostkowe do swojego kodu i nie wiedzą jak wystartować. Książka wprowadza krok po korku do lepszego świata kodu pokrytego testami. Również dla startych wyjadaczy znajdzie się sporo cennych informacji. Dalsze rozdziały książki omawiają zaawansowane zagadnienia ze świata testowania. Tomek wskazuje również dobre praktyki jak pisać testy, a także prezentuje narzędzia powiązane z nimi(jak catch-exception czy testy mutacyjne).

Dlaczego więc się wypowiadam o tej książce, skoro dopiero co się ukazała?

Dobra, dość tej krypto reklamy, czas na konkrety ;)

Powodem dla którego piszę na blogu o tej książce, jest fakt, że brałem udział w jej powstawaniu. Mianowicie robiłem korektę (review) książki, za co dostałem podziękowania uwiecznione na jednej ze stron w książce:
In various different ways a number of people have helped me with writing this book – some by giving feedback, others by comforting me in times of doubt.
Marcin Stachniuk was the first person to offer to review the book in the early stages of its being written, and at the same time the most persistent of my reviewers. He read every part of the book and gallantly overcame the obstacles I frequently put in his way: frequent releases, constant juggling of the contents, minor piecemeal adjustments, etc.
Nadszedł teraz czas podzielenia się moimi wrażeniami ze wspólnej pracy z autorem.

Wszystko zaczęło się na konferencji GeeCON 2011 w Krakowie, Podczas (za)ostatniego dnia konferencji (tzw. Community Day) Tomek miał swoją prezentację pt.: Who watches the watchmen? - on quality of tests. Na prezentacji trochę się wynudziłem, gdyż otarłem się już o większość omawianych tam zagadnień. Pod koniec jednak prelegent pochwalił się, że właśnie pisze książkę o testach. Wówczas jeden z uczestników (nazwisko do wiadomości redakcji) zaproponował, że chętnie by zrobił review jego książki. Bardzo zaciekawiła mnie ta inicjatywa, i mimo iż wszyscy już wychodzili z sali, zostałem chwilę dłużej, aby przysłuchać się rozmowie na temat recenzowania książki.

Tomek zaproponował aby chętni się do niego zgłosili mail’owo, aby ustalić szczegóły współpracy.  I tak to się zaczęło. Stwierdziliśmy, że najlepszą formą wymiany informacji będzie założona na Google prywatna grupa dyskusyjna, poprzez którą Tomek będzie podsyłać nowe wersje książki. Tym kanałem można również podyskutować i wyjaśnić ewentualne kwestie sporne. Rozwiązanie to sprawdziło się.

Preferowanym sposobem zgłaszania uwag, było odsyłanie aktualnego pdf’a ze wstawionymi komentarzami w teksie, w formie żółtych karteczek. Funkcjonalność taką daje nam Foxit Reader. Dzięki temu Tomek widział dokładnie, którego miejsca dotyczy uwaga. Było to również wygodne dla mnie, gdyż fragmenty czytałem na ekranie komputera. Niektórzy zgłaszali swoje uwagi w postaci wiadomości na grupie, ale dla mnie żółte karteczki i tak były lepsze, gdyż dokładniej wskazywały miejsce, gdzie jest coś nie tak.

Na podstawie e-maili naliczyłem jakieś 20 „release’ów” książki, tzn. fragmentów, które Tomek podsyłał do korekty. Początkowo przychodziły pojedyncze rozdziały do czytania, ale lepszym wyjściem, jak się później okazało, było podsyłanie całości. Dzięki temu nie było rozdziałów wyrwanych z kontekstu i było widać ogólnego zarys całości książki, w którą stronę ona dąży.

Koleje wersje pojawiały się z różną częstotliwością. Czasem było kilka w tygodniu, a czasem była cisza przez dłuższy czas. Ale to już była kwestia Tomka jak sobie organizuje pracę nad książką. Ze swojej strony mogę powiedzieć, że często nowe wersje się pojawiały, jak akurat mocno byłem zajęty innymi sprawami i niemiałem możliwości aby usiąść od razu do lektury. Kilka razy dogoniła mnie kolejna wersja i wtedy już trzeba było się zmobilizować i przeczytać to co tam Tomek naskrobał :)

Co do zgłaszanych uwag, to Tomek zazwyczaj je akceptował. Jak nie widziałem poprawy w następnej wersji, to początkowo się czepiałem, że moje sugestie są nieuwzględniane, ale w późniejszym czasie doszedłem do wniosku, że nie powinienem się tym przejmować. W końcu to książka Tomka i Jego koncepcja, a nie moja. Jedynie sprawy edytorsko/estetyczne (zła czcionka, rozjeżdżające się tabelki) były dla mnie bardzo irytujące, ale to chyba przez spędzenie dawniej sporej ilości czasu z LaTeX’em. Tomek postanowił zostawić to sobie na sam koniec, przez co ciągle widziałem te niedoskonałości. To była chyba jedyna pierdółka, która mi troszkę przeszkadzała w naszej współpracy.

Moje zaangażowanie zostało wynagrodzone cytowanymi wyżej podziękowaniami w książce (Dzięki Tomek!). Właściwie to nie nawet nie ustaliliśmy szczegółów współpracy, tzn. co ewentualnie będę z tego miał. Do samego końca nie wiedziałem nawet, czy pojawią się te podziękowania w książce (po cichu na nie liczyłem). W końcu w jednej z ostatnich wersji książki zobaczyłem, że są :) Świadczy to o tym, że moje zaangażowanie było kompletnie non-profit.

Podsumowując współpracę cieszę się, że wziąłem udział w tym przedsięwzięciu. Było to bardzo ciekawe doświadczenie i mogłem przez to poznać proces powstawania książki. Robienie review sprawia wielka frajdę, czego zwieńczeniem jest oczywiście ukazanie się książki „na produkcji”. Szczerze polecam każdemu zaangażowanie się w tego typu akcję.


Btw. Co do relacji z 33 degree (kilka osób już o nią pytało), to musi ona jeszcze poczekać kilka dni, z powodu natłoku innych zajęć (w tym korekty ostatecznej wersji książki Tomka), jak i obecnych sporych zmian życiowych.