Sprawdź czy byłbyś dobrym programistą?

Sprawdź czy byłbyś dobrym programistą?

Gdy zastanawiasz się nad tym czego potrzeba, aby zostać dobrym programistą prawdopodobnie przychodzi Ci do głowy: znajomości algorytmów, języków programowania, technologii bazodanowych czy internetowych. Wszystkie z nich są technicznymi zagadnieniami. Myślałeś natomiast kiedyś nad tym, jakie cechy charakteru powinien posiadać taki człowiek? Poniżej przygotowałem listę przymiotów, w której umieściłem swoje refleksje na ten temat. Zapraszam do lektury.

Chęć do nauki i rozwoju

Na początek disclaimer: nie chcę brzmieć jak jakiś motywacyjny coach, więc nie będę Ci truł o wychodzeniu ze strefy komfortu,  ani o pokonywaniu ograniczających Cię przekonywań. To co chcę przekazać jest, można powiedzieć tego przeciwnością. Trenerzy personalni głównie skupiają się na teorii, ja natomiast mam na myśli praktykę.

Mam nadzieję, że każdy zgodzi się z tym, że świat aktualnie pędzi do przodu w niewyobrażalnym tempie. Branża IT rozwija się jeszcze szybciej, więc jeśli zależy Ci na dobrej pracy będziesz musiał za tym wszystkim nadążyć. Bez obaw, nikt nie będzie wymagał, żebyś wiedział wszystko, a nowinki techniczne chłonął szybciej niż zostaną przedstawione światu. Chcę Ci przekazać, że jeśli rozważasz wejście do świata zer i jedynek, nie możesz mieć nastawienia: „Po studiach nie będę musiał się już uczyć”, bo wiesz co? Po studiach to dopiero zaczniesz. W przypadku programisty, takie myślenie po prostu nie przejdzie.

Moim zdaniem, najlepszą metodą podejścia do tego problemu jest codzienna nauka w małych porcjach. Uważam, że godzina kursu, czytania lub praktyki każdego dnia jest lepsza niż 6 godzin klepania kodu w sobotę. Masz więcej czasu na przemyślenie, ustrukturyzowanie wiedzy i przede wszystkim zapamiętanie. Taki sposób nazywany jest metodą slight edge. Zainteresowanym polecam zgłębić temat. Kliknij, żeby poczytać o książce na ten temat.

Umiejętność pracy w grupie

Akceptacja innych

Praca w naszej branży wymaga również pewnych cech, ułatwiających współpracę. W zespole każdy człowiek spełnia kilka ról. Przede wszystkim jest jego członkiem. Z tego punktu widzenia trzeba zmierzyć się z różnymi ludzkimi osobowościami.

Pierwsza z oczywistych oczywistości. Nie znajdziesz drugiej takiej samej osoby. Wbrew pozorom, w pracy programisty, to także może stanowić problem. W końcu spora część naszych zadań polega na komunikacji z ludźmi. Jeden z kolegów może głośno rozmawiać przez Skype, drugi inaczej niż Ty, co wcale nie oznacza gorzej, opisywać zadania do zrobienia, a kolejny lubić głośno siorbać kawę. Widzisz co staram się Ci przekazać? Bez zaakceptowania odmienności innych będzie ciężko. Nie dasz rady przecież ustawić wszystkich tak, jak Tobie odpowiada. Współpraca wymaga pewnej dozy empatii i zrozumienia, a przede wszystkim przyjęcia, że tak ma być i wszystko z resztą świata jest w porządku. Pomocna może być też świadomość, że Twoje nawyki też mogą kogoś irytować, a mimo to w zazwyczaj kulturalny sposób je znosi. Najprościej mówiąc, nie bądź zadufanym w sobie bufonem, który zachowuje się jakby Ziemia kręciła się wokół niego. Życie stanie się o wiele prostsze, serio.

Zadawanie pytań

Analizując pracę zespołową pod kątem doświadczenia i wiedzy oczywistym jest, że każdy posiada inny bagaż umiejętności, zdobywanych wraz z kolejnymi zadaniami. Programiście, a szczególnie temu początkującemu, często i gęsto może zdarzyć się, że utknie z pewnym problemem. A to leci jakiś dziwny wyjątek, a to nie możesz połączyć się z bazą, przykładów można mnożyć. Zwykle problem łatwo rozwiązać. Brakuje jedynie małego skrawka wiedzy, a czasami spojrzenia na sprawę pod innym kątem. Co w takich przypadkach pasowałoby zrobić? Podejść do kogoś mądrzejszego i zapytać, proste? No pewnie, że proste… w teorii. Piszę to z własnego doświadczenia, bo doskonale pamiętam, co przeżywa człowiek, który nie ma pomysłu jak popchnąć sprawę do przodu, a jednocześnie obawia się poprosić o pomoc. Powodów może być dużo, najczęstsze to strach przed ośmieszeniem i obawa o tym, co pomyślą inni, ale wiesz co? Nic sobie nie pomyślą! Jedno pytanie też w żaden sposób nie zrobi z Ciebie głupka. Prawda jest taka, że większość kolegów z chęcią udzieli Ci pomocy, jedyne co trzeba zrobić to zapytać. Nikt nie będzie Cię oceniał za niewiedzę. Powiem więcej, ci których prosisz o radę też nie są nieomylni. Kto wie? Może kiedyś Ty im w czymś pomożesz?

Pomoc innym

A teraz popatrzmy na to drugiej strony. Wyobraź sobie, że jesteś człowiekiem, który ma pewną wiedzę. Jak myślisz? Co powinieneś z nią zrobić? Chomikować dla siebie? Czy może jednak podzielić się nią z innymi? Myślę, że zgodzisz się ze mną- druga opcja ma zdecydowanie większy sens. Wypadałoby jednak pamiętać o tym, że ludzie mają prawo nie wiedzieć pewnych rzeczy lub potrzebować więcej czasu na zrozumienie. Szczypta opanowania też się przyda, szczególnie, gdy będziesz musiał drugi i kolejny raz powtórzyć jakieś zagadnienie.

Cierpliwość i upartość w dążeniu do celu

Zapewne nie lubisz, gdy coś Ci nie wychodzi. Spokojnie, każdy tak ma. Ważniejsza jest odpowiedź na pytanie ile nieudanych prób jesteś w stanie znieść? Jeśli odpowiedzią jest: dopóki ostatnia nie okaże się udana, to świetnie. Takiego nastawienia wymaga programowanie. Jako koder nie jeden raz zderzysz się z przeszkodą z pozoru nie do pokonania. Zdarzy się, że spędzisz nad nią kilka lub kilkanaście godzin. W takich sytuacjach przydadzą się cechy wymienione powyżej. Szczególnie w początkowej fazie Twojej kariery, kiedy to brak doświadczenia powodować może częstsze popełnianie błędów.

Zainteresowanie technologią

Na koniec zostawiłem sobie cechę, która w moim przekonaniu nie jest czymś niezbędnym. Z pewnością jednak pozwala przetrwać trudniejsze momenty i chwile zwątpienia. Myślę o zainteresowaniu technologią.

W Polsce panuje przekonanie, że każdy programista kocha swoją pracę. Z pewnością jednak tak nie jest, jednak uważam, że taki stan jest czymś wspaniałym, pozwalającym wstawać do pracy z uśmiechem na twarzy i z radością przeżywać każdy dzień. Pomaga w tym fakt, że nasza praca łączy się z hobby.

Ciężko ocenić, która z powyższych cech jest najważniejsza. Moim skromnym zdaniem programista chcący być uznawany za dobrego w swoim fachu musi świadomie pracować nad nimi przez cały czas. Sam jestem świadomy moich braków w wielu kwestiach. Nie zmienia to jednak tego, że widzę ideał i staram się do niego dążyć każdego dnia. Podsumowując, wszystkie te przymioty bardzo ułatwiają mierzenie się z codziennymi wyzwaniami świata IT, dlatego uważam, że warto je w sobie rozwijać i nad nimi pracować.

Ufff, pierwszy merytoryczny post za mną. Jest mi niezmiernie miło, że dotrwałeś do tej części. Jestem bardzo ciekawy czy Ci się podobał. Czy zgodzisz się z moją opinią? A może masz całkowicie inne zdanie na ten temat?

Dodaj komentarz