
Dlaczego nie powinienem być programistą
Nie tak dawno temu opublikowałem wpis „Ja, programista”, w którym mówiłem o tym jak wygląda życie programisty z perspektywy osoby, która jest raczej na początku swojej kariery. Mówiłem tam m.in. o tym jakie cechy są istotne w tej pracy. Oprócz tego jest też sporo krążących po internetowych forach opinii o tym bez czego nie warto brać się za ten zawód. Więc czemu teraz nagle wyskakuję z takim tytułem?! Odpowiedź jest prosta – ja sporej części tych cech, jak sądzę, nie posiadam, albo dopiero je wypracowuję, a mimo to programuję i w dodatku ktoś za to mi płaci. Wspomniany wcześniej wpis mówił raczej o sytuacji idealnej i to co w nim zawarłem było nie tylko tym co sam robię, ale też tym co powinienem robić i co wynika z mojego doświadczenia i obserwacji. Oczywiście nie jest tak, że teraz będę Was przekonywał, że nie ma potrzeby pracy nad sobą, po prostu chcę powiedzieć, że czasami nie warto się zniechęcać nawet jak grupa mówi „nie nadajesz się”, ale oczywiście wtedy mimo wszystko dobrze jest się zastanowić czy warto.
Dokładnie tak. W tym miejscu pokażę Wam, że tak na prawdę jeśli jest się odrobinę ogarniętym i wie się co chce się w życiu robić to nie trzeba się wpasowywać w schematy. Ale żeby nie było tak różowo od razu mówię, że programowanie nie jest oczywiście dla każdego i często nawet mimo ogromnych chęci nie uda się wciągnąć w ten temat na tyle, żeby móc zacząć pracę. Sam jednak miałem i mam wystarczająco dużo samozaparcia i chęci do nauki żeby móc dalej się w to bawić i poznawać kolejne zagadnienia. Dodatkowo cała ta informatyka mnie po prostu kręci, ma w sobie coś co mnie do niej ciągnie.
No dobra, ale gadam tutaj jakieś wstępy, a dyskusja czeka. Więc jakie to cechy są potrzebne w programowaniu, a ja ich podobno nie posiadam? Zacznijmy może od tej, której brak chyba najbardziej mi dokucza czyli skupienie się na jednym zadaniu. Ogólnie programowanie zazwyczaj wymaga siedzenia krótszą lub dłuższą chwilę nad danym problemem w celu szybkiego rozwiązania go. Ale żeby siedzieć nad problemem trzeba skupić się na zadaniu. Niestety u mnie to skupienie jest bardzo słabe. Albo inaczej, rzadko zdarzają mi się momenty kiedy potrafię siedzieć nad jedną rzeczą nawet kilka godzin. Być może wynika to ze złego przygotowania swojego otoczenia, ale mówiąc najogólniej lubię często zmieniać wątki. Oznacza to w moim przypadku, że np. co kilka, kilkanaście minut zaczynam robić coś innego, żeby po kolejnej chwili znowu wrócić do poprzedniego zajęcia, albo przełączyć się na jeszcze inne jeśli pula jest większa. Nie mówię tu nawet o zaglądaniu na Facebooka co chwilę, ale chociażby w przypadku samego kodu potrafię zmieniać co chwilę pliki i problemy, nad którymi siedzę. Jest to dla mnie strasznie denerwujące, ale przychodzi to samo, jakaś wewnętrzna siła nie daje mi spokoju i jak na razie nie udało mi się tego zwalczyć. Tak więc jak widać skupienie się na pracy nie jest moją mocną stroną, ale oczywiście jestem świadomy problemu i powoli (bardzo powoli) próbuję z tym walczyć. Nie oznacza to oczywiście, że jest tak zawsze. Zdarza się od czasu do czasu, zazwyczaj kiedy problem jest wyjątkowo ciekawy, albo kiedy po prostu wszystko idzie w miarę gładko, że jak siądę nad jednym fragmentem to mijają godziny zanim wrócę do rzeczywistości, ale niestety są to sytuacje zbyt rzadkie. Nawet pisząc ten wpis co kilka zdań przerzucam wzrok na drugie monitor i otwieram jakąś stronę, artykuł, dyskusję na forum, film na YouTube itp.
Druga sprawa to moja słaba organizacja czasu połączona z odkładaniem wielu rzeczy na później. To jest straszna rzecz, która powoduje, że moja aktywność skacze co chwilę z nic nierobienia do poziomu maksymalnego zapierdalania byle mieć jak najmniejsze opóźnienie, bo o terminowość w tym wypadku już ciężko (ale nie mówię, że się nie zdarza). Niestety ta cecha, czyli brak systematyczności i planowania dnia będzie chyba najtrudniejsza do wyplenienia u mnie, dlatego znalazła się jako wróg nr 1 na liście postanowień noworocznych, które w tym roku mam zamiar z dużo większą motywacją niż w latach poprzednich realizować i będę z nią walczył najmocniej jak to tylko będzie możliwe. Brak planowania połączony ze wspomnianym wcześniej szybkim przełączaniem kontekstu powoduje, że czasami zaczynam pracować nad kodem, a pół godziny później czytam o podróżach po Polsce całkowicie odstawiając to co robiłem :P Wspomnienie o takim moim podejściu pewnie od razu Wam podsuwa do głowy obraz człowieka, który nigdy nic nie kończy, jeśli w ogóle uda mu się cokolwiek zacząć. A jednak mimo tego co opisałem udaje mi się zrobić konkretne, działające rzeczy czy nauczyć się czegoś nowego więc można uznać, że jestem podwójnym paradoksem – po pierwsze posiadam cechy, których nie powinien mieć programista, a mimo to programują, a mimo posiadania cech, które uniemożliwiają kończenie zadań udaje mi się kończyć zadania. Ot takie dziwactwo.
Jeszcze jedna negatywna cecha, która może być powodem, dla którego może nie powinienem być programistą to moja impulsywność i szybkie denerwowanie się kiedy coś nie idzie. Zwykle jestem człowiekiem bardzo spokojnym, ba, czasami nawet za spokojnym, wręcz dającym w niektórych sytuacjach sobą pomiatać, jednak wystarczy większa zwiecha IDE, jeden dziwny błąd, którego powinno nie być i nagle bluzgi lecą w kierunku ekranu, a klawiatura błaga o litość. Być może patrzenie w monitor wywołuje u mnie agresję? Nie wiem, ale na pewno poziom irytacji jakimś problemem rośnie we mnie bardzo szybko. Co prawda raczej nie okazję w zbyt ekspresyjny sposób swojego niezadowolenia kiedy jestem w grupie, np. pracując w zespole w pracy, ale kiedy tylko siedzę sam w domu, albo przyjdę jako pierwszy do biura i trafię na gorszy dzień Windowsa, podczas którego wszystko idzie opornie to 'ku**a’ potrafi lecieć gęsto. A podobno tylko spokój może nas uratować.
Kolejna rzecz to „chaos twórczy”. Właściwie trochę wynika on ze wspomnianej wcześniej słabej organizacji, a cechuje się tym, że mając problem z jakimś zadaniem (po wcześniejszym zbluzganiu kodu) rzucam się na nie ze wszystkich stron jednocześnie szukając w Google, pisząc jakiś nowy kod na ślepo, testując różne przypadki, debugując to co do tej pory zrobiłem i panikując, że nie działa, a jest potrzebne. Co prawda takie podejście nie występuje u mnie zawsze, ale nasila się zwłaszcza kiedy termin dobiega końca, a coś nie działa. Niestety chaos powoduje jeszcze większy chaos i zdarza się, że w pewnym momencie właściwie nie wiem za co się chwycić, w jakim momencie jestem i czy to co robię w ogóle ma sens. Zazwyczaj po dłuższej chwili takiego burdelu stwierdzam, że trzeba jednak trochę się cofnąć i niektóre rzeczy lepiej przemyśleć. I o ile uda mi się to zrobić, tzn. jeszcze raz zastanowić się nad tym co robię to jest dobrze, gorzej jak cofnięcie się kilka wersji wstecz powoduje, że po prostu chaos zaczyna się od początku…
Może wystarczy tego narzekania na samego siebie, bo jeszcze ktoś pomyśli, że nie ma sensu czytać tego bloga skoro pisze go ktoś tak nienadający się do tego zawodu ;) Podsumowując mogę powiedzieć, że ogólnie jestem w tym momencie osobą, która teoretycznie nie tylko nie nadaje się do pracy jako programista, ale pewnie nie nadaje się do pracy w ogóle. Jednak mimo, że z tego opisu wyłania się osoba niezorganizowana i rozkojarzona to mimo wszystko jestem aktualnie zatrudniony, wykonuję swoje zadania i rozwijam się zawodowo. To co opisuję powyżej nie występuje oczywiście przez 100% czasu inaczej nie potrafiłbym nawet najprostszego zadania doprowadzić do końca, i myślę, że na prawdę mało jest osób, które nieustannie są bezproduktywne, jednak każdy w końcu bierze się za to co ma do zrobienia, tak samo raczej się nie zdarza, że ktoś potrafi nieustannie pracować bez spadku produktywności i odpuszczenia na chwilę. Po prostu te problemy występują u mnie częściej niż u osób „normalnych”. Uważam też, że przynajmniej część z tych rzeczy nie jest całkowicie zła i rozwija inne cechy. Przykładowo słaba organizacja wymaga umiejętności pracy w stresie i chociaż sam stres nie jest ani zdrowy, ani na dłuższą metę pomocny to jednak zdarzają się momenty kiedy mimo, że jest go dużo trzeba dopchnąć pracę do końca, wtedy „przeszkolenie” z takich sytuacji sporo pomaga. Ale to już jest pewnie tłumaczenie się na siłę, a teraz i tak już za późno na to, mogłem nie publikować wpisu po prostu :P
Ale oczywiście nie jest też tak, że pogodziłem się z tym stanem. Co więcej nie występował on u mnie od zawsze, a to znaczy, że może być odwracalny. Cały czas staram się walczyć ze swoimi słabościami. Momentem przełomowym na pewno będzie ten kiedy nie powiem ani razu „zaraz” lub „jutro” tylko od razu zrobię wszystko co do zrobienia jest. Na pewno też te moje złe cechy nie rozkładają się równomiernie na cały dzień. Wiadomo, że inaczej sprawa wygląda kiedy jest się w pracy, inaczej kiedy się z tej pracy przyjdzie, a jeszcze inaczej kiedy jest środek weekendu. Każde zadanie to indywidualna porcja motywacji i chęci skończenia (z sobą lub z zadaniem) dlatego nie ma co generalizować, że jeśli ktoś zazwyczaj nie potrafi siąść na dłużej nad jedną rzeczą to na pewno dostając kolejny problem do rozwiązania też szybko będzie uciekał od niego.
A u Was jak wygląda sprawa posiadania cech, które każdy programista powinien mieć? Wpasowujecie się we wzorzec osoby opanowanej, pracowitej, dociekliwej i zorganizowanej czy wręcz przeciwnie? Piszcie w komentarzach :)
Jeśli tekst Ci się spodobał i masz ochotę na więcej to zapraszam do polubienia mojej strony na Facebooku dzięki czemu żaden nowy wpis Ci nie umknie :)
Witaj Marku
Ten tekst mocno mnie przekonał w tym że jednak mogę zostać programistą :)
Sam osobiście jeszcze nie jestem programistą, ale po szkole powoli zgłębiam tajniki wiedzy programistycznej. Mam te same problemy co Ty ( odkładanie na później, poddawanie się w razie problemów i brak wystarczającego skupienia się podczas nauki). Myślałem czasami że nie poradzę sobie w pracy co powodowało u mnie brak chęci do dalszej nauki. Jednak ten tekst mnie zmotywował.
Dzięki :)
Dzięki za ten wpis, studiuje informatyke 2 rok i strasznie się w kręciłam w kodowanie. Bałam się jednak że cechy które wymienieś i które mam skreślają mnie na starcie, teraz wiem że jest dla mnie nadzieja :D
Cieszę się, że mogę dać komuś nadzieję :D Zawsze warto próbować robić to co się lubi nawet jeśli nie wszystko nam w tym pomaga ;)
ja jestem programistą i cechy które Ty próbujesz w sobie wyrobić mam. Jednakże jest jeszcze jedna ważna cecha której nie mam i słono za to płacę. Mam na myśli uczenie się – ale takie uczenie się czegoś nowego nie dlatego że mam taki projekt i muszę (wtedy oczywiście muszę się czegoś nauczyć i łapię opóźnienie) ale uczenie się sam z siebie czegoś co pozornie nie jest potrzebne (bez czego można się obejść). Każdy szanujący się programista musi ale to musi się ciągle uczyć i generalnie nie robiąc tego w pracy.