Informatyka, jako nauka ścisła, wiąże się z pewnymi wyobrażeniami co do osób pracujących w tym właśnie zawodzie. Wielu z potencjalnych kandydatów powiela nieświadomie mit o absolutnie niezbędnych talentach oraz predyspozycjach do zawodu, zamykając sobie automatycznie drogę w kierunku, który mógłby stać się ich życiową pasją. Badania pokazują jednak, że potencjał tego, co wielu z nas nazywa talentem, wykorzystywany jest w pełni tylko przy wsparciu pewnej kluczowej cechy - cechy, o której wielu z nas może zupełnie nie pamiętać w kontekście programowania.

Historia jednego programisty

Tomek to świeżo upieczony absolwent gimnazjum, którego zainteresowania nie odbiegają zbytnio od innych osób w jego wieku. Nie jest on specjalnie ukierunkowany na jedną konkretną ścieżkę zawodową, ale ilość czasu spędzanego przy komputerze jest dla niego podpowiedzią, żeby wybrać się do liceum o profilu informatycznym. Wszystkie inne profile na tym etapie wydają się tak samo nieprzekonywujące, więc - pomimo wielu wątpliwości - Tomek postanawia spróbować zaprzyjaźnić się z informatyką.

W liceum Tomek zauważa, że pomimo narastającej frustracji związanej z poziomem lekcji informatyki, programowanie samo w sobie wydaje się być czymś wartym uwagi. Rozwiązywanie kolejnych problemów algorytmicznych przynosi mu satysfakcję, a budowanie “czegoś z niczego” jest znakomitą odskocznią od wkuwania definicji związków frazeologicznych. Kosztem wielu rozrywek jakie niesie za sobą okres liceum, nasz bohater postanawia przeznaczyć pewną część swojego dnia po szkole na zgłębienie tego czym to programowanie właściwie jest w rzeczywistości. Odpowiedzi przynosi mu Google, nowopoznany portal StackOverflow, a także rozmaite grupy na portalach społecznościowych oraz fora dyskusyjne. Dzięki wszystkiemu co poznaje okazuje się, że po kilku miesiącach jego umiejętności zdecydowanie przewyższają to, z czym mierzą się jego rówieśnicy.

Na tym etapie Tomek jest pewien tego, czego będą dotyczyć jego studia oraz kolejne lata pracy - jego celem jest zostanie programistą z prawdziwego zdarzenia. Będąc na samym początku studiów nasz główny bohater nie ma zbyt obszernej wiedzy dotyczącej tego właśnie zawodu, ale czuje, że obrany przez niego kierunek będzie tym, co w przyszłości przyniesie mu wiele korzyści. Z czasu spędzanego na studiach stara się czerpać wszystko co tylko możliwe, jednak frustruje go to, że wymaga się od niego zaliczania przedmiotów, które nie mają nic wspólnego z rzeczywistą pracą programisty. Okres studiów traktuje jednak jako coś, z czego koniecznie musi wyciągnąć maksimum, więc postanawia zaangażować się w życie koła informatycznego, gdzie poznaje innych pasjonatów programowania z którymi zaczyna realizować pierwsze zespołowe projekty.

Od studiów i koła informatycznego do pierwszego stażu droga już niedaleka, więc przewijając naszą historię o kilkanaście miesięcy wprzód, Tomka możemy teraz spotkać w jednym z biur gdzie pracuje jako programista. Na razie to tylko staż, jednak nie zmienia to faktu, że daje mu on okazję do poznania prawdziwego oblicza tego zawodu. Bardzo szybko okazuje się, że pierwsza praca to nie tylko okazja do rozwoju w otoczeniu ekspertów, ale też długa lista wyzwań z którymi trzeba się zmierzyć aby udowodnić swoją wartość. Tomek poznaje cały cykl życia produktu który powstaje w miejscu gdzie pracuje, skupia się na podciąganiu swojego angielskiego, aby łatwiej komunikować się w międzynarodowym zespole, zaczyna rozumieć jak ważne w procesie wytwarzania oprogramowania są testy, a także robi co może, żeby zespół, do którego został przydzielony, czerpał z jego wysiłków jak najwięcej korzyści. Tomek zmaga się z pojęciami, których nie rozumie, z technikami, których wcześniej nie widział, z praktykami, które wcześniej wydawały mu się zbędne, a także z osobowościami, z którymi poza miejscem pracy mógłby po prostu nie rozmawiać...

...a to dopiero pierwszy staż!

Historię Tomka jakich wiele moglibyśmy kontynuować bazując na doświadczeniu znanych nam programistów, ale te kilka paragrafów wystarczyło do zaprezentowania tego z jak dużą liczbą wyzwań musi mierzyć się ktoś, to aspiruje do roli programisty. Zauważmy jednak, że w naszej historii zatrzymaliśmy się w miejscu, w którym kariera tak naprawdę nabiera rozpędu - trudno więc założyć, że wyzwania i trudne momenty miałyby się skończyć właśnie teraz. A skoro tak, to można się zastanowić jaka cecha pozwoliłaby nam przetrwać wszystko to, co ma dopiero nadejść?

Upór, czyli Talent x Czas

Pierwszy raz o uporze, jako samodzielnym temacie badań, przeczytałem w książce (o jakże zaskakującym tytule) “Upór”, napisanej przez Angelę Duckworth. Pozycja ta dotyczy wpływu tej właśnie na cechy na szeroko rozumiane “osiąganie sukcesów”, w którym - w potocznym wyobrażeniu - zdecydowanie większą rolę odgrywa talent czy tzw. “predyspozycje” (np. do grania na instrumencie, do uprawiania sportu czy do kariery naukowej).

Autorka książki pierwsze wskazówki na temat wpływu uporu na osiągane rezultaty dostaje na początku swojej kariery w zawodzie nauczyciela, kiedy to obserwuje jak rozwijają się grupy “zdolnych, ale leniwych” i “odstających, ale ambitnych”. Jak można się domyślić, zdecydowanie bardziej interesuje ją ta druga grupa - grupa osób, które początkowo uznawane są za “tych z brakami wiedzy”, jednak przy odpowiednim prowadzeniu przez nauczyciela przebijają wynikami wszystkich rówieśników.

Dlaczego?

Osoby powszechnie uznawane za zdolne - w opinii pani Duckworth - mają tendencję do wpadania w tzw. “pułapkę talentu”. Pułapka talentu pojawia się wtedy, kiedy dana osoba jest tak bardzo przekonana o swojej wyjątkowości i geniuszu do tego co robi, że najzwyczajniej w świecie przestaje się starać. Zagrożenie o którym mowa zdecydowanie rzadziej pojawia się wśród tych, których świat już w trakcie wczesnych lat nauki wrzucił do worka “minimalne szanse na odniesienie sukcesu”. Powodem tego jest to, że osoby ustawione w tej pozycji mogą przez całe życie tak bardzo próbować udowadniać swoją wartość, że w momencie kiedy faktycznie przebija ona już wszystkich w okolicy, osoby te nie zatrzymują się i brną dalej ścieżką rozwoju - ścieżką, która jest dla nich stanem domyślnym.

Jednym z najważniejszych spostrzeżeń w książce “Upór” jest to, że potencjał talentu realizuje się dopiero wtedy, kiedy do naszych predyspozycji dołożymy czas i cierpliwość. Z pozoru brzmi to banalnie, jednak kiedy pomyślimy o wszystkich “zmarnowanych talentach” świata sportu czy popkultury, nabiera to całkiem innego znaczenia.

Jakie to ma znaczenie dla mnie, programisty?

Badania badaniami, ale jedno pytanie jest tutaj kluczowe - jakie znaczenie ma upór w kontekście pracy programisty? Przecież wydaje się, że połączenie wysokich zarobków, wygodnej pracy biurowej i regularnych wyjazdów na konferencje (bo przecież to właśnie robią programiści, prawda?) skutecznie zabija dyskusję o tym jak niewygodna jest to ścieżka zawodowa. Czy na pewno?

Tak, jestem uparty

Przede wszystkim - będę tutaj bardzo nieobiektywny - wartość kierowania się uporem to coś, czego wielokrotnie doświadczyłem na swojej programistycznej ścieżce, kiedy tylko zależało mi na osiągnięciu "czegoś więcej".

Upór w programowaniu to dla mnie:

  • skuteczna realizacja projektów, które wymagały umiejętności nabywanych po godzinach
  • nieobowiązkowe projekty, realizowane aby eksplorować dane zagadnienie tylko i wyłącznie dla zaspokojenia własnej ciekawości
  • wszystkie posty na blogach, filmy czy momenty wychodzenia na scenę, kiedy to dzielę się wiedzą aby jednocześnie spłacić dług wobec społeczności oraz pracować nad własną marką osobistą
  • nieustanna nauka długo po tym, kiedy otoczenie zaczęło cię uznawać za specjalistę od danego zagadnienia
  • współpraca z programistami, którzy posiadają wartości i poglądy różniące się od twoich, ale dają ci znakomitą okazję do nauki nowych praktyk czy technik
  • angażowanie się w inicjatywy, gdzie wymaga się umiejętności innych od tych, które aktualnie posiadasz, ale które przecież zaraz nadrobisz

Bliższe przyjrzenie się temu jak wyglądała moja dotychczasowa przygoda z programowanie potwierdza, że bez uporu nie byłoby ogromnej części tego co dzisiaj zobaczysz na Przeprogramowani.pl, na moim GitHubie, blogu czy całej aktywności w sieci.

Tak, mówią, że jest łatwo i przyjemnie.

Kolejnym powodem pisania o uporze jest to, jak bardzo zaburzony jest obecnie temat wchodzenia do świata programowania. Dzięki niezliczonej liczbie bootcampów, szkół programowania oraz kursów można odnieść wrażenie, że po dwóch tygodniach przepisywania zadań pod okiem nauczyciela zostaniesz pełnoprawnym programistą.

Niestety, osoby które przechodzą przez tego typu “kursy błyskawiczne” bardzo często nie są przygotowane na realia tego zawodu, czyli:

  • liczbę godzin, którą spędzasz przy komputerze, a która często odbija się chociażby na takich kwestiach jak postawa, waga czy wzrok
  • nieustanne motywowanie się do poszerzania swojej wiedzy nawet wtedy, kiedy nikt nie patrzy ci przez ramię i nie sprawdza, czy na pewno się uczysz
  • rozwiązywanie problemów, na które StackOverflow nie daje odpowiedzi, a które spędzają ci sen z powiek
  • kontakty z klientem, który jest przecież faktycznym odbiorcą twojej pracy, a który wielokrotnie powodował u ciebie irytację i złość
  • konfrontację z niezliczonymi “prawdami objawionymi”, których w programowaniu doświadczysz w każdym miejscu i w każdym temacie
  • ...i wiele więcej

Programowanie to wyzwanie przynoszące niesamowitą satysfakcję oraz możliwość spełnienia się, ale - nie ukrywajmy - dla większości z nas to praca, która wiąże się ze standardowymi plusami i minusami… pracowania. Warto mieć to na uwadze zapisując się na nieprzeciętnie drogi bootcamp programistyczny przy jednoczesnym braku uporu do zmierzenia się z realnymi wyzwaniami świata programowania.

Tak, spokojnie - nadrobisz to.

Trzecim powodem dla którego piszę o takim temacie jest fakt, że mam wokół siebie całkiem sporo liczbę osób, które niczym innym jak uporem otwarły sobie drzwi do programowania pomimo tego, że wcześniej życie prowadziło ich w całkiem innym kierunku. Bez studiów informatycznych, na stażu innym niż programowanie, bez stuprocentowego przekonania i talentu. A jednak.

Być może pojadę tutaj tanią motywacją i banałami, ale wierz mi - to właśnie uporem nadrobisz wszystkie braki których tak bardzo obawiasz się zaczynając przygodę z programowaniem, nadrobisz to, co inni poznawali na "klasycznej ścieżce" do zostania programistą oraz to, o czym inni uczyli się kiedy ty nie byłeś pewien czy programowanie jest dla ciebie.

Jedną z najlepszych cech tego zawodu jest to, że jest on bardzo obiektywny, niewybaczający dróg na skróty i nagradzający za faktyczną pracę. Jeśli masz w sobie dostatecznie dużo zacięcia do pracy oraz masz możliwość poświęcenia setek godzin na realną praktykę i naukę przez kolejne projekty, to wyniki po prostu przyjdą. To właśnie dlatego jedną z najpopularniejszych metryk w ocenie programisty są lata doświadczenia, które de facto wskazują na liczbę rozwiązanych problemów oraz projektów w których dana osoba uczestniczyła.

Jeśli tylko uparcie dążysz do realizacji celu i stawiasz na tzw. "uczciwą pracę" - projekty wspierane konsultacjami ze specjalistami - to możesz być pewien, że pozycję w programowaniu wypracujesz sobie samemu.

Pozory mylą

Słownik PWN daje nam taką oto definicję słowa upór: niezmienne trwanie przy swoim stanowisku, często mimo oczywistej jego niesłuszności.

W powszechnym rozumieniu tego słowa jest to cecha, której raczej powinniśmy unikać, zamiast promować ją wśród społeczności programistów. Rzeczywistość pokazuje jednak, że bez uporu rozumianego jako nieustanne dążenie do stawania się lepszym praktycznie nie ma szans na zostanie programistą w pełnoprawnym tego słowa znaczeniu.

Jest to cecha która przygotowuje nas na proces nieustannej nauki, jest to wewnętrzny motywator przy rozwiązywaniu problemów z którymi mierzymy się po raz pierwszy oraz coś, dzięki czemu nadrobimy te słynne "tyły" wynikające z braku predyspozycji i talentu.

Dla mnie to coś, czego nie powinien się obawiać żaden programista, a dla was?