sobota, 8 grudnia 2012

12 things successful people do differently

https://www.facebook.com/photo.php?fbid=291793344275349&set=a.269105549877462.60842.266409250147092&type=1&ref=nf

Jeden z moich sakseful znajomych umieścił post na FB z odpowiedzią na to, jak się zachowują ludzie sukcesu. Nie wiem do końca dlaczego, ale ten zbiór mądrości zwyczajnie mnie odrzuca, jak wszystkie tego typu przewodniki o szczęściu i sukcesie. Żeby naprawdę osiągnąć sukces, trzeba najpierw określić, czym on dla Ciebie jest, czego szukasz w życiu. Większość ludzi bezmyślnie stara się te rady stosować do swojej obecnej sytuacji. Trzeba uważać, żeby nie wpaść w pułapkę dążenia do ogólnie przyjętej definicji sukcesu.

Może tylko ja to tak widzę, ale te przewodniki starają się nam wmówić, że sukces to BMW, dom, wysokie stanowisko i rodzina. I faktycznie kryteria bardzo SMART, tylko czy na pewno to jest cel? Czy nie chodzi o to, żeby znaleźć pasję i przekonanie, że robi się właściwe rzeczy, to do czego jest się powołanym? Czy nie bardziej odkrywczy od tych 12 rad jest cytat z Chłopaki nie płaczą:
Wystarczy że odpowiesz sobie na zajebiście, ale to zajebiście ważne pytanie: Co lubię w życiu robić, a potem zacznij to robić.

Najpierw odpowiedz, czym jest sukces. Dopiero wtedy te rady mogą pomóc. Ale czy teraz nie są one oczywiste?

sobota, 24 listopada 2012

Piąteczek, czyli impreza

Ostatni wpis na Make Life Harder idealnie wpisał się w mój wieczór. Faktycznie, wychodziłem na imprezę i rzeczywiście oszukiwałem się, że tym razem będzie fajnie. Najgorszą rzeczą w życiu jest nadzieja. To jest trudne, ale trzeba ją zabijać w zarodku.

Z oszukiwania się, że tym razem trafimy 6tkę w totka, nic dobrego nie wyniknie. Ludzie wysyłają po raz 100tny to samo CV z nadzieją, że w końcu rekruterzy się odezwą. Dlaczego? Co miałoby się zmienić? Oczekiwanie, że te same metody zaczną nagle przynosić zupełnie inne rezultaty jest naiwne. To dotyczy wszystkiego.

Dlatego, w następny piątek muszę albo zmienić strategię spędzania wieczoru albo przynajmniej zabić odpowiednio wcześnie nadzieję. Znowu mi się nie uda.

sobota, 27 października 2012

Niejasne zadania - jak do nich podejść

Gdy robimy coś po raz pierwszy, nigdy nie jesteśmy pewni, czy podążamy we właściwym kierunku. Zauważyłem to szczególnie wyraźnie dziś na warsztacie konferencji warsjawa. Prowadzący po teoretycznym wstępie przydzielił nam do wykonania konkretne zadania. Wszyscy byliśmy zagubieni. Okazało się nawet, że teoria może być interpretowana na wiele sposobów.

W takiej sytuacji najlepiej wypytywać osobę, która zleciła nam zadanie, tak długo aż dokładnie zrozumiemy, o co chodzi. Jednak w praktyce nie zawsze mamy szansę spytać. Managerowie bywają bardzo zajęci, a dziś prowadzący na chwilę wyszedł. Co wtedy możemy zrobić? Przecież oddając pustą kartkę nie odróżnimy się od małpy.

Na ratunek zawsze przychodzi zdrowy rozsądek. Robimy coś po raz pierwszy, więc nie ukrywajmy, że dokładnie wszystko wiemy. Ja opisuję najpierw, jak zrozumiałem zadanie, a później je rozwiązuje. Przedstawienie samego rozwiązania jest zbyt ryzykowne, bo jeśli okaże się błędne, pewnie ocenią nas jako idiotów. A ja w najgorszym wypadku dowiem się, że przyjąłem zupełnie złe założenia. Ale za to mój prawidłowy proces wnioskowania i analizowania zostanie oceniony trochę lepiej niż możliwości intelektualne małpy.

środa, 24 października 2012

Dlaczego obecne czasy są trudne

Zwierzęta wszystkie swoje akcje (oczywiście nieświadomie) podporządkowują chęci przeżycia swojego i gatunku. Po to jedzą, polują, budzą się, rozmnażają. Są dobrze zaprogramowanymi maszynami.

My się od nich różnimy. Dzięki rozwojowi cywilizacji przetrwanie nie stanowi dziś większego problemu. Skoro nie musimy tak zaciekle o nie walczyć, mamy więcej czasu na cokolwiek. To jest źródło wolności.

Ale czy na pewno wszyscy różnimy się od zwierząt? Nie jestem przekonany. Wielu jest zniewolonych przez system. Nagrodą mają być pieniądze, środkiem do celu edukacja i ciężka praca. I tak ludzie od wczesnych lat bezrefleksyjnie uczą się wszystkiego, słuchają wszelkich nakazów i zakazów, zdobywają świetne oceny z każdego nawet nielubianego przedmiotu. A gdy trzeba iść na studia, ponieważ są ze wszystkiego dobrzy i nie mają większych zainteresowań, wybierają te, które zapewnią im pracę. A później to już są blisko celu - wymarzonej pracy w korpo po 12 godzin dziennie.

Z tą ścieżką leminga jest tylko jeden problem. Jesteśmy ludźmi i niegodne jest, żeby wyrzekać się daru wolności.  Prawda jest taka, że obecne czasy do niczego nas nie zmuszają, więc nie możemy udawać szczurów. Człowiek musi swoją ścieżkę znaleźć sam. To jest trudne, bo nie istnieją żadne uniwersalne odpowiedzi.

Nie twierdzę, że każdy może zarabiać na tym, co lubi. Ale nawet wtedy nie trzeba zaprzedawać swoich pasji. Każdy może znaleźć jakąkolwiek, nieangażującą pracę zapewniającą przetrwanie i korzystać z wolności po pracy. A może z czasem każdy się nauczy zarabiać na tym, co lubi.


niedziela, 7 października 2012

Mierzalność celów zawodowych

W Accenture najbardziej mi się podoba, że firma zachęca a nawet wymaga od pracowników myślenia o przyszłości. Niestety, postawienie mierzalnych celów jest w mojej branży bardzo trudne. Takie cele sportowca są bardzo łatwe do postawienia. Np. wiem, że w tym roku chciałbym zacząć ćwiczyć martwy ciąg i osiągnąć 8*80kg front squat. Ze względu na naturę sportu to są proste mierzalne cele.

A w pracy? Powiedzmy, że chciałbym stać się ekspertem w jakiejś nowej dla mnie technologii np. EJB. Kiedy będę mógł powiedzieć, że osiągnąłem sukces? Pierwszym krokiem musi tu być zakomunikowanie swoich celów przełożonym. Jeżeli EJB jest używane obecnie w pracy to sprawa jest prosta. Bycie ekspertem oznacza, że będę sam efektywnie wykorzystywał tą technologię a z czasem stanę się osobą, z którą będą konsultowane wszystkie problemy z nią związane.

Tak czy inaczej warto dokumentować swoją wiedzę. Jeżeli w przyszłym projekcie zespół będzie zupełnie nowy dla mnie, to z mojej renomy eksperta nic nie zostanie. Dlatego, certyfikat to zawsze dobry pomysł, szczególnie na początku drogi zawodowej, gdy dopiero zaczynamy pracować nad swoją renomą.

Mierzalność rozmów - jak ją osiągnąć?

W pracach programistycznych nie miałem problemu z mierzalnością. Moim zadaniem było dostarczenie kodu, którego działanie było opisane, więc dokładnie wiedziałem jakie są kryteria sukcesu. Może dlatego taki problem sprawia mi teraz osiąganie mierzalnych efektów.

W pracy analityka jak dotąd muszę ustalać przyszły kształt systemu. Wiąże się z to wieloma rozmowami. Tylko że rozmowa sama w sobie nie jest wartością. Istotne są wnioski i ustalenia, które z niej płyną. Aby były zapamiętane, musimy je spisywać, co samo w sobie nie jest zbyt proste. Dla mnie głównym zadaniem analityka jest interpretacja wniosków z rozmowy i przedstawienie ich w sposób zrozumiały dla wszystkich uczestników. Dlatego, żeby osiągnąć mierzalny efekt rozmowy konieczne jest przesłanie dokumentu, który musi zostać zaakceptowany. Notatka to minimum, ja uważam, że ustalenia jak najszybciej powinny być przenoszone do dokumentacji projektowej. Muszę pamiętać, że to jest jednym z moich głównych celów. Nie mogę dopuścić, żeby efekty komunikacji były rozmyte. Potrzebne są ustalenia, deklaracje, terminy itd.


sobota, 8 września 2012

Czy Codility naprawdę wie, jakim jesteś programistą?


Jak przetestować, czy ktoś jest dobrym programistą? Najpierw należałoby zastanowić się, co to właściwie miałoby znaczyć. Jakie cechy i umiejętności posiada dobry programista? To zagadnienie jest bardziej złożone niż mogłoby się zdawać, ale o tym później. 

Na pewno dobry programista musi umieć programować. Twórcy Codility wyszli z założenia, że w takim razie proces rekrutacji można przyspieszyć i zautomatyzować, odrzucając już na początku kandydatów, którzy nie umieją napisać prostego algorytmu. Zadanie polega na implementacji w wybranym języku funkcji, której zachowanie jest opisane. Dodatkowo muszą być spełnione wymagania na złożoność obliczeniową i pamięciową. Następnie, za pomocą serii testów jednostkowych sprawdzane jest, czy zachowanie funkcji jest zgodne ze specyfikacją. 

Na jednej z rozmów dostałem następujące zadanie polegające na znalezieniu, czy w tablicy jednowymiarowej znajduje się dominanta. Szczegółowy opis zadania i rozwiązanie znajduje się w moim poprzednim poście. Zadanie bardzo proste, ale maksymalna złożoność obliczeniowa miała wynosić O(N), a pamięciowa O(1). Na rozwiązanie miałem pół godziny. Przyznam, że w obliczu kończącego się czasu zdecydowałem, że zaimplementuje trywialne rozwiązanie z użyciem tablicy mieszającej (złożoność pamięciowa O(N)).

Trzeba przyznać, że zadania na Codility są bardzo ciekawe i wciągające. Sam rozwiązywaniu ich poświęciłem parę weekendów. Są one dla mnie rodzajem łamigłówek, wyzwaniem dla umysłu. Problem w tym, że w mojej karierze programistycznej, nie przypominam sobie, żebym musiał rozwiązać problemy podobne do tych z Codility. Wystarczyło mi, żeby pamiętać, że w Javie Arrays.sort używa quicksorta i że wyszukanie elementu z uporządkowanej tablicy kosztuje logN. Prawdziwe wyzwania zawsze dotyczyły organizacji kodu.

Więc zastanawiam się, czy to aby na pewno najlepszy pomysł, żeby oceniać programistę na podstawie umiejętności, które są rzadko wykorzystywane. Na pewno istnieją firmy dla których szukanie nowych efektywnych sposobów na rozwiązywanie matematycznych problemów jest podstawą działalności. Jednak nie oszukujmy się, dla 95% firm dużo ważniejsze jest to, czy zatrudniany progamista jest komunikatywny, czy dobrze zna technologie, frameworki, czy ma doświadczenie, czy stosuje wzorce projektowe itp. To jest właśnie zestaw cech, którego rekruterzy powinni poszukiwać. 

Czy w takim razie stosowanie Codility nie ma sensu? Przeciwnie, wydaje mi się, że Codility to najlepszy test IQ dla programistów. Trzeba po prostu pamiętać, że Codility nie daje ostatecznej odpowiedzi na to, czy ktoś umie programować i twierdzenie “Our programming tests let your candidates demonstrate their abilities in a natural working environment, showing you how they will really perform on the job.” jest fałszywe. Codility to nie jest naturalne środowisko pracy, a zadania nie przypominają zadań, z którymi zmaga się 95% programistów.

SyntaxHighlighter