Jest chłodne grudniowe popołudnie. Siedzę w kawiarni na warszawskim Ursynowie, popijając pyszną kawę przy uspokajającej muzyce sprzyjającej kreatywności. Za oknem zmrok, na ulicy można zaobserwować pojedyncze osoby. Po drugiej stronie ulicy migające światełka przypominają, że niedługo święta i koniec roku. Koniec roku zawsze mi przypomina o tym, że przydałoby się zajrzeć do spraw, których dawno z różnych powodów nie sprawdzałem. Jedną z nich jest ten blog. Zajrzałem więc do listy tematów, które zbieram od dłuższego czasu i znalazłem temat idealny na piątkowe popołudnie. Dziś postanowiłem napisać mało techniczny, raczej “lekki” i krótki tekst. Piszę ten wpis bardziej z myślą o programistach, niemniej jednak myślę, że myśli tutaj zawarte są dość uniwersalne i mogą mieć zastosowanie również poza branżą IT.
Być może zastanawiasz się czasem czy jesteś dobrym specjalistą lub dobrą specjalistką. Być może napisałeś/-aś wiele aplikacji w swojej karierze. Czy możesz powiedzieć, że jakość wytworzonego oprogramowania była bardzo dobra? Uważasz, że Twoim współpracownikom dobrze się z Tobą pracuje? Wdrażasz własne inicjatywy? Na jakim poziomie teraz jesteś? Jak w ogóle określić poziom, na jakim się znajdujesz? Czy udało Ci się określić swoje słabe strony i czy pracujesz nad nimi? Jak zostać dobrym programistą? Co robić, aby być w tym jeszcze lepszym?
Ja zadaje sobie takie pytania dość często. Przeważnie wydaje mi się, że nie mogę nazwać się dobrym programistą. Wynika to z mojego bardzo krytycznego myślenia na temat swojego rozwoju. Mój wewnętrzny krytyk, zawsze mówi “Ciśnij mordo, musisz poznać wszystkie technologie. Do tego warto byłoby znać kilka języków obcych, umieć się ładnie wysławiać, dbać o swoją prezencję i przy okazji o zdrowie i wiele innych rzeczy, na które niestety zaczyna mi już brakować czasu.”. Mimo to uważam, że udało mi się wybrać dobrą ścieżkę kariery i konsekwentnie nią podążać.
Moje sposoby na to jak zostać dobrym programistą
Być może kolejny raz zabrzmię jak pierwszy lepszy internetowy coach rozwoju osobistego, ale jak to mawia klasyk “Bez rozwoju jesteś w d… (tam, gdzie plecy tracą swą szlachetną nazwę)”. Oczywiście nie samym kodem człowiek żyje i czasy, gdy programiści siedzieli całe dnie tylko w piwnicy, bez konieczności rozmawiania z kimkolwiek, już się skończyły. Dziś prawdziwy specjalista w branży IT nie tylko pisze kod, ale również musi prowadzić dość dużo interakcji z innymi ludźmi, udzielając rad, zbierając wymagania czy tłumacząc swoje pomysły nie tylko programistom.
Poniżej zamieszczam kilka zasad, którymi ja kieruję się w życiu oraz które pozwoliły mi zajść w mojej karierze dość daleko w szybki sposób przy stosunkowo niewielkim nakładzie pracy.
Zasada 5W
Co według Ciebie odróżnia juniora od regulara (mida)? Co odróżnia programistę, który po pewnym czasie staje się dla zespołu ciężarem zamiast być wsparciem? Dlaczego niektórzy stają się wybitnymi programistami, a niektórzy po prostu zostają na przeciętnym lub gorszym poziomie? Wiele zależy od samych chęci i podejścia do życia. Uważam jednak, że jedną z ważniejszych rzeczy we własnym rozwoju jest zadawanie dużej ilości odpowiednich pytań. Odpowiedzi na pytania może udzielać ktoś z większym stażem, ale można też samemu szukać informacji w internecie. To będzie nawet lepsza droga. Najlepszymi pytaniami będą te rozpoczynające się od słowa “dlaczego”.
![Zasada 5W](https://codementor.pl/wp-content/uploads/2021/12/Screenshot_20211209-223020_Bitmoji-removebg-preview.png)
Nazwa zasady 5W wzięła się od 5xWhy. Mówi ona o tym, że gdy chcemy zrozumieć dogłębnie jakiś temat, to zadając 5 razy pytanie “Dlaczego…” po każdej uzyskanej odpowiedzi dochodzimy do sedna sprawy. Wyobraź sobie, że drążysz w ten sposób każdy nurtujący się temat związany z pracą. Spróbuj! Według mnie to jedna z najszybszych dróg do szybkiego awansu na wyższy poziom.
Naucz sie rozmawiac z biznesem
Kolejny punkt ma dość niefortunną nazwę, bo co to właściwie oznacza “rozmawiać z biznesem”. Wyjaśnię, że my programiści jako rozmowę z biznesem określamy rozmowę z ludźmi mającymi wiedzę w zakresie tego jak działa dany biznes. Po angielsku tych ludzi można nazwać stakeholders a po niemiecku Fachbereich co w obu przypadkach jest lepiej nazwane niż nasz polski odpowiednik.
Jak zatem nauczyć się rozmawiać z takimi ludźmi, którzy nie zrozumieją programistycznego żargonu. Otóż odpowiedź brzmi może trochę śmiesznie i niepoważnie, ale jest prosta. Naucz się tłumaczyć zagadnienia IT w taki sposób jakbyś tłumaczył to małemu dziecku, albo jeszcze lepiej swojej babci. Swoją drogą spróbuj wytłumaczyć swojej babci, jak działa SSL, to będzie bardzo dobre ćwiczenie. Lubię czasem zadawać to pytanie, gdy kogoś przepytuję. Odpowiedź nie tylko pozwoli mi się dowiedzieć czy ktoś rozumie SSL, ale również czy potrafi w prostych słowach, lub używając różnych analogii wytłumaczyć skomplikowane zagadnienie w prosty sposób. Gdy ktoś ma taką umiejętność, to będzie nie tylko cenionym konsultantem, ale również dobrym mentorem. Będąc przy mentoringu możemy przejść do kolejnego punktu…
Nauczanie innych
![](https://codementor.pl/wp-content/uploads/2021/12/Screenshot_20211209-223143_Bitmoji-removebg-preview.png)
Uczenie innych jest świetnym sposobem na samorozwój i świetnym sposobem, aby zostać dobrym programistą. Ucząc innych, bardzo dużo uczysz się sam/sama. Często zdarza się, że osoby z mniejszym doświadczeniem zadają pytania na tematy, które wydają się oczywiste i nigdy byśmy na nie nie wpadli. Pozwala to często zrozumieć powód powstawania wielu błędów pojawiających się w kodzie, a co za tym idzie, pomaga ich unikać. Robienie przeglądów kodu innych osobom również zmusza Cię do pogłębienia swojej wiedzy. Nauczanie ludzi rozwija w nas umiejętność klarownego przekazywania wiedzy oraz lepszego zrozumienia swoich rozmówców.
Szukaj lepszych rozwiązań
Czy wiesz, dlaczego tak zwana “świeża krew” jest tak bardzo ceniona w projektach? Często bardzo dobrze ułożone i ustrukturyzowane projekty mają to do siebie, że nie są ulepszane i aktualizowane. Wszystko jest utrzymywane na tym samym dobrym poziomie, ale nic ponadto. Czasem projekty nie są prowadzone nawet na akceptowalnym poziomie i zespołom to nie przeszkadza. To bardzo często występująca sytuacja. Wedle zasady “Jak działa to nie ruszaj” wiele aplikacji nie nadąża za trendami. Wersje bibliotek, metodologie, architektura i sposoby rozwiązywania problemów zostają takie same od początku do końca życia aplikacji, bo po prostu tak jest wygodniej.
![Szukaj lepszych rozwiązań](https://codementor.pl/wp-content/uploads/2021/12/Screenshot_20211209-223210_Bitmoji-removebg-preview.png)
Jeśli szukasz przepisu jak zostać dobrym programistą to — bez względu na to czy jesteś nowym członkiem zespołu, czy nie — bądź tą “świeżą krwią”, która zawsze poszukuje lepszych i nowszych rozwiązań. W poszukiwaniu informacji o technologiach polecam stronę thoughtworks.com oraz ich technology radar.
Zacznij prowadzić rozmowy kwalifikacyjne
Jeśli to tylko możliwe, postaraj się o dodatkowe zajęcie, jakim będzie prowadzenie technicznych rozmów kwalifikacyjnych. Będzie to dla Ciebie nie tylko motywacja do tego, aby samemu poszukiwać wiedzy i się rozwijać. Prowadzenie rozmów kwalifikacyjnych uczy nas wielu wartościowych miękkich umiejętności. Poza samym prowadzeniem rozmów, uczymy się udzielania konstruktywnego feedbacku oraz oceny umiejętności.
Mnie prowadzenie rozmów dodaje sporo pewności siebie. Często nie otrzymuję odpowiedzi, gdy pytam o rzeczy, które wydają mi się oczywiste i wydawały mi się oczywiste, gdy byłem na poziomie kandydata, z którym rozmawiam. Uświadamiam sobie wtedy, że faktycznie w którymś momencie mojej kariery włączyłem wyższy bieg i trochę odjechałem do przodu. Nie myślę już o tym jak zostać dobrym programistą a jedynie o tym jak poprawić swoją sytuację lub jak zostać architektem z prawdziwego zdarzenia. Mój biedny wewnętrzny krytyk wpada wtedy w depresję i długo się do mnie nie odzywa.
Zapisz się na newsletter, aby otrzymywać informacje o nowych artykułach oraz inne dodatki.
Podsumowanie
Jako podsumowanie chciałbym tylko zachęcić wszystkich do rozwoju nie tylko swoich umiejętności programistycznych. Miękkie umiejętności są nie mniej ważne niż te techniczne i powinny być tak samo regularnie pielęgnowane. Do wymienionych wyżej punktów dorzuciłbym jeszcze, dzielenie się wiedzą, w postaci bloga lub wpisów na branżowych portalach oraz rozwój umiejętności publicznego przemawiania. Celowo nie napisałem nic o przemawianiu publicznym, mimo iż uważam to za jedną w najważniejszych życiowych umiejętności. Po prostu nie chcę się wymądrzać na tematy, o których mam tylko niewielką wiedzę teoretyczną. Myślę, że nagram kiedyś film o tym jak zostać dobrym programistą, który będzie rozwinięciem i kontynuacją tego artykułu.
Jeśli udało Ci się dotrzeć do tego miejsca, to dziękuję Ci za przeczytanie tego tekstu i życzę wytrwałości w samorozwoju i dążeniu do zamierzonych celów.
Zapraszam do polubienia profilu na facebooku oraz obserwowania na instagramie. Zapraszam również do grupy Wsparcie w programowaniu i zadawania pytań oraz do kontaku.
The English version of this post is available on my other blog EagerToIT.com