fbpx

Brzmi strasznie? Otóż spokojnie, nie ma się czego bać. 

Dlaczego jesteś słabym programistą to zaczepny tytuł, który może dać Ci wiele do myślenia. Wszędzie pojawia się informacja, że każdy z nas może zostać programistą/programistką. W gruncie rzeczy jest to prawda i w teorii każdy może zostać programistą.

Wystarczy przerobić kurs, zrobić kilka mniejszych projektów, opublikować swoją pracę szerszej publiczności i przy odpowiedniej dozie szczęścia to wystarczy, by zdobyć pierwszą, nie zawsze wymarzoną pracę jako developer.

Albo w drugą stronę. Trafiasz do branży IT nie dlatego, że wyskoczyła Ci reklama, w której wymuskany programista ocieka złotem. Zostajesz programistą, bo dość przypadkowo przebrnąłeś przez studia i gdzieś nauczyłeś się pisać kod. Było ssanie na rynku i kodujesz zawodowo w korpo lub Janusz soft.

To tylko dwie z możliwych ścieżek, do tego, by zostać programistą. I tu pojawia się pytanie. Dlaczego możesz być słabym programistą?

Zatrzymaj się!


Książki to obowiązkowa pozycja dla każdego zainteresowanego programowaniem!

Jest to zdecydowanie jedno z najlepszych źródeł do nauki programowania! Zyskasz przewagę w branży IT i osiągniesz dużo jako deweloper.


Spokojnie, nie obrażaj się. Każdy z nas ma gorszy czas i każdy z nas może być słabym programistą. Najważniejsze w tym wszystkim jest to, że jest to proces odwracalny. Pod kilkoma niżej wymienionymi warunkami możesz stać się kimś wybitnym (o ile już nie jesteś!).

Mało mówi się w branży o trudnościach, bolączkach i patologiach, a one są często codziennością dla wielu programistów. Niech ten wpis będzie pewnego rodzaju sprzeciwem. Zresztą to nie pierwszy tego typu głos z mojej strony w stronę „cukierkowych” głosów ludzi na temat bycia programistą.

Musisz być inżynierem oprogramowania

Wieczna dyskusja dotyczy tego, jakiego języka trzeba się uczyć, co jest trendem i ile czasu powinienem poświęcać na naukę nowych rzeczy. Przecież dziś każdy uczy się JS, Python czy kolejnego nowego framework. Słaby programista zapomina o tym, że nauka jedynie składni języka i kilku mechanizmów za nim stojących to tylko ułamek procesu, który nazywa się wytwarzaniem oprogramowania.

Wybitny programista poza znajomością danego języka programowania zna zagadnienia związane z algorytmami, strukturami danych, bazami danych, architekturą oprogramowania, wzorcami projektowymi, działaniem sieci. Potrafi pracować w zespole, testować swoje rozwiązanie i wie, których narzędzi używać w danym przypadku i w optymalny sposób. Warto wspomnieć o aspektach bezpieczeństwa aplikacji i kwestiach optymalizacji.

Nie bądź ignorantem i nie zaniedbuj kluczowych elementów związanych szerzej z inżynierią oprogramowania. Nauka kolejnego języka bez zrozumienia wielu podstawowych elementów sztuki tworzenia aplikacji jest bez sensu. Słaby programista zna język i klepie kod, wybitny programista jest inżynierem oprogramowania (nie musi mieć formalnego tytułu, bo studia nie znaczą dziś zbyt wiele).

Nie znasz produktu

Pracujesz z dużym systemem i nie wiesz nawet dokładnie, co on robi. Wydaje się to sytuacją kuriozalną, ale niestety tak jest. Ile razy bywało tak, że programista wykonuje zadanie, omawia je z analitykiem czy architektem. Pisze kod, testuje konkretne przypadki testowe i oddaje jako zakończone. 

Ktoś za nas to rozplanował, rozpisał i niemal palcem po ekranie pokazał nam, co, jak i gdzie ma działać. Bez głębszego zastanowienia siadasz i piszesz. I gdzie tu głębszy sens? Poczucie odpowiedzialności za produkt? Pewnego rodzaju duma z pracy nad tym konkretnym oprogramowaniem? Wydaje mi się, że pracując nad konkretnym produktem, niejako musisz się nim zajarać. To pozwala rozwijać się całej firmie, budować jeszcze lepsze produkty. 

Wyobraź sobie, że budujesz sklep internetowy sprzedający mięso, taki wirtualny targ mięsny. Ale nie jadasz mięsa, bo od kilku lat jesteś weganinem. Produkt totalnie nie rezonuje z Tobą. Albo budujesz oprogramowanie dla amatorów sportu, a masz nadwagę i ostatni raz ruszałeś się na lekcjach WF w szkole średniej 10 lat temu. Przecież nie każdy musi kochać sport. Produkt nie rezonuje z Tobą, więc trochę się możesz męczyć. Biznesowa wiedza jest na wagę złota. 

Słaby programista klepie kod, bez zastanowienia się nad przeznaczeniem produktu. Wybitny programista jest zajarany produktem i w miarę możliwości sam z niego korzysta.

Brak pasji i chęci rozwoju

Połączyłem w tym akapicie dwa elementy. Pasja oraz rozwój. One ze sobą mocno się wiążą. Programista, który nie rozwija się i nie pasjonuje go technologia, jest słabym programistą. Nie da się utrzymać na programistycznej powierzchni na dłużej, jeśli nie będziesz niejako płynąć z prądem. Widać to po gościach, którzy zostają na długie lata w jednym projekcie. Mają gigantyczną wiedzę na temat produktu, działają w starej wersji konkretnego języka i nawet są wyspecjalizowani w nim. Ale co z tego, jak język ma już 10 kolejnych wersji. Czasem z zupełnie nową semantyką języka. Albo totalnie umiera jak Delphi.

Programista budzi się z ręką w przysłowiowym nocniku i rynek szybko go weryfikuje. Kończy się to bezmyślnym kopiowaniem kodu z portalu StackOverflow i zadowoleniu, gdy cokolwiek działa. Oczywiście nigdy nie jest za późno na naukę, jednak wybitny programista nie czeka, gromadzi wiedzę, bo go to pasjonuje. Słaby programista wegetuje w projekcie i albo zostaje tam na stałe, jako utrzymanie w kodzie legacy ucząc się nowości przy okazji zmian w projekcie albo po prostu traci projekt i nadzieję na lepszą karierę w innej technologii.

Pozjadałeś wszystkie rozumy

Pokutuje takie przekonanie, że programista to łebski gość lub łebska babka. Coś w tym jest, ale z drugiej strony to strasznie pompuje nasze ego. Wydaje nam się, że jesteśmy wszechwiedzący i nikt inny nie ma racji. Można być świetnym koderem, ale jeśli nie potrafimy przyznać się do błędu, posłuchać rady innych i poddać analizie uwagi z zewnątrz, to po prostu jesteśmy słabymi programistami. 

Niestety branża jest pełna osób, do których nic nie dociera. Zwrócenie uwagi to dla takiej osoby obraza. Dobrze, że pracujemy zdalnie, bo jeszcze mógłby jeden czy drugi programista skoczyć sobie do gardeł. 

Często osoby takie, to tak zwana starszyzna. Mają za sobą spektakularną karierę, duże korpo, uczelnie, doktoraty. Zapominają jednak, że mimo doświadczenia czy tytułów nadal nie są nieomylni. Psują atmosferę w zespole upierając się przy swojej racji. Pół biedy, jeśli to pracownik niebędący liderem. Wtedy rozsądny team leader może siłą zmienić podejście takiego ignoranta. Często jednak zdarza się, że takie osoby kierują zespołem. Kończy się to zazwyczaj kwasem, a w gorszej wersji możemy poczuć się jak załoga Titanica, którą kapitan skierował wprost na górę lodową. 

Reasumując, w tym przypadku słaby programista to ktoś, kto ma ego wielkości pomieszczenia, w którym się znajduje. 

A może boisz się pytać?

Kto pyta, nie błądzi. Zwłaszcza w branży IT i programowaniu. Nie ma nic bardziej irytującego, jak opóźnienie w projekcie, ponieważ jeden czy drugi programista nie dopytuje. Zamiast poszukać pomocy u innych i wypracować rozwiązanie wspólnie, zamyka się w sobie i kilka dni szuka dziury w całym. 

Jest to moja największa bolączka z przeszłości, przez którą wiele traciłem. Dziś byłbym kilka kroków dalej, gdyby nie to, że na początku swojej drogi chciałem być zbyt samodzielnym typem. I wbrew pozorom nie dotyczy to tylko juniorów. Często problemy, jakie napotykamy w pracy zawodowej, są mocno złożone.

Soft pisze się na wielu poziomach abstrakcji i nie każdy będzie nagle ekspertem od wszystkiego. Zasięgnięcie  języka u analityka, lidera czy innego programisty może być na wagę złota i skutecznie popchnie produkt do przodu. A kto wie, może nawet i naszą karierę zmieni w sposób drastyczny. 

Robisz wszystko byle nie programować

Pracując jako programista, zwłaszcza w dużym zespole natrafiasz na dziwną sytuację. Możesz udawać, że pracujesz! Serio.

Spotkania, kawa w biurze, lunch, maile, później znów spotkania, trochę dokumentacji, analiza kodu. Dorzucasz do tego testy, code review i kolejną garść maili z korporacyjnymi kolegami lub koleżankami i dzień zleci.

Możesz tak wtopić się w zespół, że nie będziesz zmuszony pisać kodu w dużej ilości. Słaby programista na to czeka. Zrobi jedno zadanie w tygodniu, pościemnia na spotkaniach, napisze kilka długich maili z analizą problemu, który mógłby poczekać i czas leci. Jest to problem dużych korporacji. Na pracy zdalnej da się to jeszcze łatwiej ograć. Nikt nie patrzy za plecami, czas zostaje rozciągnięty w raportach i pensja się zgadza. 

Pamiętaj jednak, że na takim mało profesjonalnym podejściu zawsze cierpi zespół, zwłaszcza inni programiści, którzy muszą odwalić Twoją część pracy.

Nie uczysz się na błędach

Kolejny problem słabych programistów. Po dziesięć razy analizują ten sam rodzaj błędu, mimo że już w tym miesiącu identyczny błąd dostali na ekran. Nie wiem totalnie z czego to może wynikać. Brak skupienia, ignorancja lub wspomniana wcześniej nadmierna analiza, tylko po to, by zleciało 8 godzin pracy i żeby za dużo się nie napracować.

Najgorsze w tym bywa to, gdy kolejny raz ktoś z tym samym problemem zgłasza się właśnie do Ciebie. A są i takie przypadki. Siadasz z drugim programistą do problemu i co się okazuje? Że przecież już o tym nie tak dawno rozmawialiście. Ba, nawet Google i Stack Overflow ma ten problem rozpykany na części pierwsze. Wystarczy przeczytać i wdrożyć kod. A następnie zapamiętać, że błąd A wynika z sytuacji B. Tylko tyle i aż tyle. 

Ok, juniorowi można wybaczyć. U juniora każdy error na ekranie podnosi ciśnienie krwi i tętno wzrasta do wyników sprintera po biegu. Ale żeby senior tak partaczył sprawę? Niestety zdarza się! Bądź wybitnym programistą i ucz się na błędach. Zapamiętuj, kojarz i nie ponawiaj problemów.

Dlaczego jesteś słabym programistą — podsumowanie

Poruszyłem temat mało popularny, ale czasem też tak trzeba. Programowanie jest piękne, dobrze tu płacą za robotę i jest względnie bezpiecznie oraz bez stresu. Jest tylko jedno ale. Nie potrzeba tu ludzi bez odpowiedniego skilla. A dziś niestety to się dzieje coraz częściej. 

Wielu ludziom brakuje werwy, polotu i pasji. Z tego później powstaje góra problemów wśród osób mocniej zaangażowanych. Piętrzące się błędy, które wpływają na jakość i opóźnienia. Tłumaczenie po kilka razy tego samego zagadnienia. Brak jakiegokolwiek zaangażowania w produkt i życie firmy. Wszystko to bardzo psuje branżę i jest tu po prostu ciężej.

Jeśli możesz wynieść jedną rzecz z tego felietonu, to bądź dobrym programistą. Będzie to z korzyścią zarówno dla Ciebie, jak i ludzi zawodowo Cię otaczających!

Newsletter

Nie przegap i dołącz już dziś do 838 osób będących w tym Newsletter! Otrzymuj co niedzielę o godzinie 20 listę kilku ciekawych tematów, które miałem okazję obserwować w mijającym tygodniu.

Tematy będą głównie techniczne, ale czasami pojawi się coś, co może wprowadzi Cię w stan zadumy i zmusi do dyskusji w szerszym gronie. Zero spamu!

Autor

Programista .NET i Python. Autor książki "Programistą być".

2 komentarze

  1. Niestety ja się spotkałam z firmą, gdzie za pytania i pokazywanie niewiedzy punktowano w dół i to już od okresu stażu. Zamiast chwalić za postępy, otwartość i chęć rozwijania się, wypominano brak samodzielności i słabe skille. Niby w ramach feedbacku, ale taki feedback jest bezsensowny, bo widać parcie, żeby pracownik wszystko robił samemu i to już od początku. A chyba nie o to w tej robocie chodzi. A jak człowiek zaczął unikać pokazywania, że ma się z czymś problem, to naturalnie kolejnym problemem był wolny progress.

  2. Dlaczego jesteś słabym programistą?
    Dobre pytanie, część z tego co pisałeś tyczy się mnie, przynajmiej tak czasami czuję.
    Czasami chciałbym zrozumieć na czym to wszystko polega, a czasami nie potrafię.
    Najgorsze w tym wszystkim jest ta tzw. strefa komfortu, przyzwyczajam się do czegoś, jest mi dobrze, wiem czego sie mogę spodziewać, piszę ciągle w tym samym (chociaż już nie nowym)środowisku, jest mi dobrze, nie wypływam na nie nieznane wody, mogę spokojnie dryfować.
    Ja wypłynołem, teraz sztorm targa mym okrętem, a on cały trzeszczy, bo być może nigdy nie byłem gotowy na to żeby wypłynąć, tylko jak bym to sprawdził, nie wypływając.

Napisz komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

SPRAWDŹ POLECANĄ KSIĄŻKĘ. Najlepsze materiały do nauki programowania!

X