Cechy dobrego programisty

myślący budda

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.

nauka

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.

praca zespołowa

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ń

rozwiązywanie problemu

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? Sekcja komentarzy jest do Twojej dyspozycji, nie zapomnij napisać co sądzisz 🙂

Please follow and like us:

2 Replies to “Cechy dobrego programisty”

  1. Dzisiaj człowiek raczej w każdej branży zderza się z tym, że pewną część umiejętności musisz i tak zdobyć po rozpoczęciu pracy. Nie ma tak, że wszystkiego nauczysz się na studiach czy siedząc w domu. A jeśli nawet w tym miejscu nie potrzebujesz już nowych umiejętności, to dobry jest przykład chociażby mojego Wujka. Pracuje w urzędzie i codziennie musi analizować przychodzące dane, a następnie tworzyć z tego raporty. Każdy robi na Excelu, ale Excel albo w którymś momencie przestanie wyrabiać z przetwarzaniem operacji, albo zwyczajnie pracę można sobie ułatwić. Więc mój Wujek znalazł przydatny program, codziennie „układa i łączy klocki”, do tego zna dobrze wyrażenia regularne i praca idzie szybciej. Teraz ma zamiar nauczyć się Javy, która sprawi, że będzie jeszcze szybciej. A ma kilka lat do emerytury.
    Druga ważna według mnie cecha, praca w zespole. Pisząc nawet parę linijek kodu dla kumpla czy apkę na studia przekonałem się wielokrotnie, że jednak „co dwie głowy, to nie jedna”. Ktoś może rzucić pomysłem, ty od razu nie załapiesz, ale coś już to Ciebie naprowadzi. Poprosisz kogoś o pomoc, ktoś podeśle kawałek pomysłu, Ty zaczynasz widzieć resztę. Albo zwyczajna podpowiedź „jak szukać”.
    No i przekazywanie wiedzy dalej. Sam jestem jeszcze po stronie czerpania wiedzy od innych, ale nawet prosta pomoc koledze przed kolokwium i usłyszenie „Kamil, tak jak Ty to teraz wytłumaczyłeś, to ja to w końcu kumam” zwyczajnie motywuje do dalszego rozwoju.
    A najtrudniejsza cecha? Cierpliwość 😀 Szczególnie dla niezbyt cierpliwego na co dzień człowieka 🙂 Niedziałający kod, który na zwykłą logikę powinien działać, może lekko zniechęcić. Sytuacja, myślę, dość częsta dla programisty, przynajmniej na początku. Ale w końcu bez ciągłego próbowania nie ma efektów 🙂
    No i dobrze zobaczyć jak to wygląda od środka. Także podziękowania za Twój wpis od kogoś, kto zajmował się programowaniem bardzo amatorsko i właśnie próbuje wbić się w ten „profesjonalny” świat. Znalazłem tutaj trochę wiedzy. Może też początek mojego komentarza nie był na temat pracy programisty, ale część tych przymiotów jest bardzo uniwersalna. Choć może ich przydatność czasem bardzo widoczna właśnie w branży IT.
    Także Kuba, życzę powodzenia i z niecierpliwością czekam na więcej 🙂

    1. Dziękuje Kamil.
      Masz rację, niektóre z cech, mogą okazać się pomocne także w innych branżach. Nie wspominałem o tym, ze względu na to, że chciałem skupić się na tym jak to wygląda z perspektywy programisty 🙂
      Życzę powodzenia w dalszej pracy nad rozpoczęciem profesjonalnej kariery, a kolejnymi artykułami na blogu postaram się pomóc najbardziej jak mogę 🙂

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.