Jak zapewne część z Was wie, mam wielki zaszczyt należeć do grona ludzi, którzy często nazywają siebie – zwykle na wyrost – nadludźmi. Teorie o programistach, z jakimi spotykam się praktycznie codziennie mogę zaklasyfikować jako literaturę naukową wypełniającą lukę pomiędzy Dr. Andersenem i duetem Dr. Grimm & Dr. Grimm. Opowiem Wam, dlaczego…

„Programiści to nadludzie…

…często się edukują, rozwijają swój talent w programowaniu”. WTF? Kto wymyślił tak wspaniały poemat na własną cześć i chwałę? Osoby po studiach programistycznych często specjalizują się w jednym języku programowania, nie rozwijają żadnych umiejętności a weekendy spędzają na „świętowaniu” weekendu. Jeśli jesteś innym programistą, gratuluję – stanowisz „wyjątek potwierdzający regułę”. Niestety z autopsji znam przypadki programistów, którzy obecnie świadczą nieco „oddalone” od wyuczonej profesji zawody: przedszkolanka, spawacz, mechanik.

Długo zadawałem sobie pytanie – dlaczego tak jest. Dlaczego ludzie, którzy męczyli się na trudnym kierunku studiów podjęli pracę w zupełnie innym zawodzie. Ponieważ, nie mogłem znaleźć na nie bezpośredniej odpowiedzi, zadałem sobie nieco oddalone od tematu, ale istotne dla dalszych rozważań pytanie: „Co robią Ci ludzie w swoim wolnym czasie, jakie są ich pasje?”. To zadziwiające, jakie odpowiedzi uzyskałem!

Zaledwie 3 osoby z całego roku pasjonowały się programowaniem, pracą kreatywną. Reszta korzystała z komputerów bardziej w celach rozrywkowych – gry komputerowe, oglądanie kotów na Fejsbuku – niż nad programowaniem. Nie jest to oczywiście zamiłowanie „twórcze”. Czego więc potrzeba, by stać się dobrym programistą?

Kreatywność, pasja

Tak, chodzi o możliwość wykreowania w swojej głowie procesu twórczego. Pomysł, zebranie danych, oszacowanie kosztów, oszacowanie materiałów, wykonanie, przetestowanie, wdrożenie. U bardzo małej grupy znajomych „programistów” łańcuch ten występował w ich działaniu. Większość nie pokusiła się nawet w trakcie studiów, by jakikolwiek pomysł na aplikację stworzyć.

Jeśli więc osobom, które kończą kierunek „programowanie” nie chce się tworzyć projektów, nie ciekawi ich to, to w jakim kierunku dąży edukacja? Patrzymy przecież nawet nie tyle na określoną profesję, ale na wąski jej przedział, wąską grupę „badanych”. Profesja wśród nich traktowana jest jako nadanie, dokument poświadczający ukończenie studiów na kierunku „Integrator Systemów Informatycznych” robi z nich programistów sam w sobie. 10k miesięcznie na konto musi wpływać, ponieważ mam dokument potwierdzający moje umiejętności! Bzdura.

Jest więc coś więcej, niż sam dokument, który robi z Ciebie programistę – to kreatywność, to pasja.

Problem z osiągnięciem stanu programisty

Jak zauważyliście, piszę tutaj o „stanie programisty” ponieważ programistą można być, ale żadna szkoła Wam tego nie da. „Sorry, taki mamy klimat”. Niestety bycie programistą to coś więcej niż papierek z uczelni – nadanie tytułu zawodowego. W dzisiejszym czasie tytuł zawodowy można zdobyć wszędzie. Niestety do osiągnięcia stanu programisty potrzeba czegoś więcej – kreatywności, pasji i wytrwałości (także u najbliższych).

Kreatywność sprawia, że w Twojej głowie rodzą się pomysły na nowe aplikacje, pasja sprawia, że chcesz je programować a wytrwałość – powinna być mierzona w punktach XP – skłania do szukania rozwiązań, gdy projekt napotka na „bariery nie do pokonania”.

Idea Bootcamp

W przypadku samej kreatywności istotne jest to, by co pewien czas nasze pomysły zderzać z rzeczywistością. Osobiście nazywam taki proces Bootcamp’em. Proces ten wygląda w następujący sposób:

– Wymyśliłem sobie aplikację, która „lokalizuje wiewiórki w parku i wysyła mi alert, gdy jakaś przebiegnie obok mnie”.
– Zadaję pytania:

a) Ile osób na świecie posiada smartfona?
b) Ile osób na świecie chodząc do parku zabiera smartfona ze sobą?
c) Ile osób na świecie chciałoby mieć taką aplikację?
d) Ile osób na świecie interesuje śledzenie wiewiórek w parku?
e) Ile osób na świecie w ogóle interesuje temat wiewiórek?

Po takiej serii pytań okazuje się, że czas poświęcony na produkcję oprogramowania do śledzenia wiewiórek nie przynosi większego efektu finansowego ale może… no właśnie, co?

Aspekt finansowy vs. dobre samopoczucie psychiczne

Do życia jako programista potrzeba nam dwóch czynników – czystości umysłu, co uwalnia kreatywność i sprawia, że proces twórczy nie jest rozchwiany oraz dóbr materialnych wszelakich (np. pożywienie, dach nad głową, czyste ubranie, zaspakajanie rozpraszających natręctw itp). Ponieważ każdy człowiek dąży do równowagi, pomiędzy tym co „muszę” a tym co „mogę” zwykle stawia aspekt finansowy na równi z dobrym samopoczuciem na szali. Niestety jak wiecie, nie zawsze możemy postawić znak równości pomiędzy tymi dwoma aspektami, głównie za sprawą czynnika losowego, jakim jest… życie. Do wszystkich naszych finansowych planów należy dorzucić trochę danych z /dev/random.

Oznacza to, że często musimy bardziej ograniczyć w danej chwili swoje „mogę” by zwiększyć nacisk na „muszę”.

Wracając do naszego przypadku – więcej czasu poświęcamy na procesy, które sprawią, że zapewnimy sobie warunki finansowe na wyrost czynnika random+regularne zapotrzebowanie aby osiągnąć twórczą nirwanę.

Programiści, którzy są świadomi otaczającego świata są więc w stanie przedłożyć niewygody i potrzebę poświęcenia wolnego czasu ponad wrodzony, wpojony przez edukację konformizm, aby osiągnąć stabilny konformizm w dalszym okresie czasu.

To dobre podejście: Zrób teraz więcej, byś później mógł robić mniej tego co musisz, a więcej tego co możesz.

Taka ładna sentencja mi wyszła :). Będąc programistą lub osobą z otoczenia programisty musisz więc uwzględnić, że wolny proces twórczy wymaga czasu a czas to zasoby finansowe, które wypływają wraz z jego biegiem. Dlatego też moi znajomi programiści zatrudniają się w różnych firmach, aby uzupełniać te zasoby i osiągnąć nirwanę.

Znak równości

Czy aby na pewno można postawić znak równości pomiędzy muszę i mogę? Większość znajomych pracuje po 8-10 godzin w korporacji, oznacza to jednoznacznie, że nie bardzo „mogą”, w większości „muszą”. Nie jest to oczywiście dobre podejście w przypadku constans-u nadchodzących 60-ciu lat życia. Nikt z nich też nie uwzględnia chyba faktu, że każdy dzień w korporacji to kolejny dzień życia mniej, to powolne zabijanie myśli twórczej rutyną, projektami, dokumentacjami, rozmowami z klientami – powtarzalnością, którą może wykonać każdy.

Dilbert kodowanie programowanie
Źródło: dilbert.com

Moim zdaniem korporacja nie może być constans-em w życiu programisty. Jako twór toksyczny dla jego twórczego myślenia, programista powinien zastosować środki szczególnej ostrożności oraz przepisy BHP. Ze środkami toksycznymi powinniśmy przebywać w jak najkrótszym okresie czasu, ponieważ przynoszą nam one trwałe zmiany w organizmie – w tym przypadku, w umyśle.

Nirwaną programisty rasowego jest więc – prędzej czy później – wyrwanie się z klatki stawianej przez „muszę” na wolność zwaną „mogę”. Ponieważ korporacja nakłada na nas ramy czasowe, ograniczające nasze „mogę” trzeba by wybrać inną metodę.

Jeśli posiadasz więc Pasję – kolejny atrybut programisty – to prędzej czy później wyrwiesz się z okowów korporacji na własne poletko, w którym uzyskasz niepodległość a tym samym sam wyregulujesz sobie czas pracy osiągając lub nie – wszystko zależy od Ciebie – wolność finansową pozwalającą na zwiększenie istoty „mogę” w swoim życiu.

Na koniec życzę Wam, byście nie ulegli rutynie i mogli dalej rozwijać się kreatywnie osiągając coraz bliższy kontakt z „móc”.