Eksperci, profesjonaliści... prawie robi wielką różnicę
Część druga tekstu o kompetentnych technicznie młodych ludziach i związanych z nimi problemach (część pierwsza, czyli wstęp).
Zostań ekspertem w 10 lat
Istnieje mądrość ludowa mówiąca, że żeby rzeczywiście stać się kompetentnym w jakiejś dziedzinie wiedzy, potrzeba co najmniej dziesięciu lat. Zgodnie z tym wymogiem, nasz typowy dwudziestoletni rodzynek jest w najlepszym wypadku zaledwie w połowie drogi.
Gdy "normalny" młody człowiek rozpoczyna karierę zawodową, rozumie się niejako samo przez się, że jest to jego pierwsza praca, nie ma on doświadczenia, trzeba go podszkolić, etc, etc. Dla tych ambitniejszych, którzy po studiach chcą jak najszybciej dostać pracę oferującą duże możliwości rozwoju i awansu, istnieją tak zwane praktyki, które w założeniu mają pozwolić delikwentowi na przynajmniej częściowe zapoznanie się ze środowiskiem pracy, wymogami i temu podobnymi sprawami.
A co w przypadku młodego człowieka, który wiedzę techniczną zasadniczo rzecz biorąc już ma, takoż doświadczenie, gdyż uczestniczył już w niejednym projekcie, a w kilku zapewne był kimś ważnym. Wie on już jak różne rzeczy działają, potrafi bardzo szybko przyswoić nowe umiejętności i, co jest jednocześnie jego największą wadą i największą zaletą, zdaje sobie sprawę z własnej wartości oraz dostrzega dotychczasową ewolucję własnych poglądów.
Czy taki ktoś może zacząć pracę jako najniższa forma informatycznego życia, czyli koder php? [1] Może. Może też zacząć na wyższym stanowisku, robiąc coś poważniejszego za większe pieniądze. Jest to w sumie mało istotne. Istotne jest jak podejdzie do zastanego środowiska pracy i swoich współpracowników. Dla przykładowego praktykanta właściwie wszystko byłoby nowe, więc zanim mógłby wygłosić jakikolwiek sensowny komentarz, najpierw musiałby wszystko opanować. W przypadku naszego bohatera tak nie jest. Naturalna dla niego będzie próba przeniesienia swoich dotychczasowych doświadczeń na grunt nowej pracy. W tym dostrzeżonych niedociągnięć. I zapewne nie omieszka swoich uwag wyartykułować, gdyż, no cóż, po pierwsze do tego jest przyzwyczajony, a po drugie zauważanie i reagowanie na takie rzeczy, to jedna z cech, dzięki którym osiągnął co osiągnął (dotychczas, czyli w różnej maści projektach "internetowych").
W firmie jest CVS, a planują przejście na SVN-a? Jeśli jestem ze środowiska kernelowego (bitkeeper, git), to powiem, że to strata czasu, bo SVN prawie nic nie daje, a prawdziwy kop wydajnościowy to dopiero rozproszone SCM-y. W firmie jest bitkeeper, darcs, git, czy co tam jeszcze, a ja jestem z jednego z projektów opartych o centralne repozytorium CVS/SVN (np. PLD i KDE)? Powiem, że przez ten cholerny hype na distributed SCM-y teraz mam problem, bo jak można deweloperom pozwolić na taki chaos, że teraz nie mogę znaleźć który kod jest w którym drzewku u kogo na koncie.
No i są terminy. Terminy terminami, ale przecież wszyscy wiedzą, że długofalowo pisanie takiego śmieciowego kodu to samobójstwo, bo później zrobienie najmniejszej poprawki zajmuje bardzo dużo czasu, więc co za bałwan napisał ten system tak, jak go napisał.
I tak dalej, i tak dalej...
Oczywiście posiadanie zbyt wielu opinii na różne tematy, gdy tak na prawdę nie rozumie się jeszcze do końca dlaczego coś zostało zrobione tak, a nie inaczej, to nie jedyne potencjalne wpadki. Co robisz, gdy właśnie zauważyłeś, że te dane, które wygenerowałeś dla klienta dwa tygodnie temu są niepoprawne? Mówisz szefowi prawdę? Zwalasz na 'fluktuacje sieci'? A jak się tłumaczysz z nadal niedziałającego systemu? Mówisz mu o wszystkich błędach, jakie popełniłeś? Co robisz, gdy się okazuje, że on jednak ma rację w kwestii technicznej? Po raz drugi? Po raz trzeci? I tak dalej, i tak dalej...
Prawda jest taka, że praca komercyjna rządzi się swoimi własnymi prawami i ma specyficzne dla siebie sytuacje, z którymi najlepiej zapoznać się... pracując. I nie da się tego przeskoczyć. Projekty internetowe, niezależnie od tego jak duże i ważne, znacznie różnią się od tego, co można zastać u typowego pracodawcy. [2] Terminy, terminy i wszystko co się z nimi wiąże...
Czy te minimum dziesięciu lat to dużo? Niespecjalnie. Trzeba w tym czasie opanować wiedzę teoretyczną, wiedzę praktyczną, a na dodatek, co jest właśnie najbardziej czasochłonne, doświadczyć wystarczająco dużej ilości różnych środowisk i wystarczającą ilość razy złapać się na niewiedzy i popełnianiu pomyłek, by zrozumieć, że tak naprawdę nic się nie wie. I nie, takich rzeczy nie wystarczy intelektualnie wiedzieć, je trzeba zrozumieć, a na czym konkretnie polega różnica postaram się wyjaśnić następnym razem.
Opowiem też o kolejnych problemach czyhających na młodych zdolnych, bo te związane bezpośrednio ze środowiskiem pracy, to niestety jeszcze nie wszystko...
[1] To jest oczywiście żart. Miałem na myśli perla :)
[2] Dlatego tak fajnie jest pracować w Google'u, czy Microsofcie, bo to nie są typowi pracodawcy -- oni wiedzą jak się z tobą obchodzić.

01 IX 2006 o 00:47:55
Taka uwaga jedna - praca to nie McDonald i wcale kariera nie polega na zaczynaniu pracy jako programista i awansowaniu aż do prezesa. Ludzie, którzy są dobrymi programistami nie muszą mieć najmniejszych kwalifikacji na architektów, szefów projektów, dyrektorów technicznych ani managerów. To są prawie zupełnie rozłączne grupy cech wymaganych od pracownika.
Jest taki żart nawet, że w korporacjach zaczynasz jako sprzątaczka i jesteś awansowany tak długo, aż trafisz na stanowisko, na które się zupełnie nie nadajesz kompetencjami, gdzie spędzasz resztę swojego życia ;)
01 IX 2006 o 01:04:02
Rozłączne jak rozłączne, ale właśnie z tej rozłączności później wyrastają różne horror stories. Jeśli miałbym wybierać, to jednak wolałbym szefa z doświadczeniem jako najniższa forma życia, niż takiego, który nie ma zielonego pojęcia co robi firma, bo przecież 'management, to management, a pracownicy są nieistotni'.
01 IX 2006 o 01:59:48
Wcale nie miałeś na myśli perla >:P
01 IX 2006 o 10:21:17
Jak to Scott Adams (pan od Dilberta) swego czasu napisał - stanowiska menadżerskie / kierownicze dostają zawsze najmniej kompetentni ludzie, ponieważ tam mogą wyrządzić najmniej szkód. Niestety, przejście ścieżki kariery od programisty do prezesa, zupełnie nie jest związane z kompetencjami technicznymi. :( Chociaż przykład z prezesem jest wyolbrzymiony (aczkolwiek nie niemożliwy). Ale ja bym chciał chociaż, żeby mój bezpośredni przełożony był świetnym programistą, znającym wzorce projektowe, posiadającym doświadczenie, potrafiącym pisać przejrzysty kod, itd., itp. Chciałbym. ;)
10 XI 2006 o 13:55:49
Kiepski ten żart odnośnie PHP, obraża wielu ludzi. Ja zaczalem teraz postrzegac ciebie jako ignoranta, czy nie wiesz, ze jezyk to tylko narzedzie?