O laniu wody na blogu dla programistów

O laniu wody na blogu dla programistów

Motywacją do napisania tego posta była niedawna rozmowa ze znajomym programistą. Podczas jednego z wypadów na miasto zapytałem go wprost – jak widzisz z boku to co robimy na PoznajProgramowanie.pl? Wiadomo jak to jest – człowiek wkręci się w swój pomysł, robi to, co wydaje mi się słuszne, i z dnia na dzień może stracić obiektywne spojrzenie na realizowany projekt. Takiego spojrzenia byłem ciekaw – jak z boku wygląda to, co robimy w tym miejscu? Jak czytelnicy odbierają tematykę naszego bloga?

Wtedy usłyszałem, że czytając początkowe posty nie do końca jasne było jak tematykę miękką (bo o tym, mówiąc w dużym skrócie, były pierwsze posty) będziemy łączyć z nazwą bloga, czyli „Poznaj Programowanie”. To zrozumiałe – wiele osób może się zastanawiać, co wspólnego z poznawaniem programowania ma wiara we własne możliwości i zapewnianie czytelników, że programistą naprawdę może zostać każdy? Miało być o programowaniu, a tymczasem my piszemy o odpowiednim nastawieniu – ani słowa o kodzie, wzorcach projektowych i frameworkach. Można zadać sobie pytanie czemu w takim razie nazywamy to wszystko blogiem dla programistów?

O jakim programowaniu jest PoznajProgramowanie.pl

Zacznę od pewnego tweeta:

Tak się jakoś złożyło, że nigdy nie byliśmy fanami programowania dla samego faktu programowania.

Jeden z nas zaczynał swoją przygodę z programowaniem od modyfikowania silników gier sieciowych – C++ był wtedy podstawowym narzędziem dzięki któremu można było stworzyć bądź zmodyfikować daną funkcjonalność gry MMORPG. Drugi chciał nauczyć się tworzenia stron internetowych po to, żeby prezentować layouty które wtedy projektował. Przez przypadek nauczył się więc czegoś o HTML i JavaScript. Programowanie było tym, co musieliśmy poznać żeby zrealizować nasz cel.

Przy takim „przedsiębiorczym” podejściu do programowania stało się dla nas jasne, że sama wiedza o języku programowania nie wystarczy. Aby projekt się powiódł, musieliśmy się nauczyć zarządzania własnym czasem, lepszego komunikowania się z innymi ludźmi którzy chcieli podzielić się swoim doświadczeniem oraz pracy w zespole. Okazało się, że wszystko to czego nauczyliśmy się pracując „na własną rękę” jest niesamowicie przydatne w codziennej pracy programisty, bo przecież (uwaga) nie programujemy dla własnej satysfakcji – programujemy aby zrealizować dany cel, pomóc w rozwiązaniu problemu albo usprawnić dany proces.

Teraz w naturalny sposób dzielimy się takim podejściem na blogu. Piszemy o kodzie, jednak o kodzie równie dobrze moglibyście przeczytać w dokumentacji danej technologii. Do kodu dokładamy więc wiele innych tematów z którymi wiąże się praca programisty – piszemy o branży programistycznej i poszukiwaniu pracy, piszemy o budowaniu własnej marki, albo też o skutecznych prezentacjach. Nie uciekamy też od umiejętności miękkich, ponieważ w dzisiejszych czasach są one kluczowe jeśli chodzi o twoją pozycję na rynku.

A skoro o umiejętnościach miękkich mowa…

Po co szlifować umiejętności miękkie

Ostatnio wszystko co jest związane z IT musi zawierać w sobie coś o “AI”, więc i u nas będzie o sztucznej inteligencji. Cały świat zastanawia się, kiedy maszyny wyślą nas wszystkich na bezrobocie. Co stanie się z nami, programistami, i co wspólnego mają z tym “soft skille”?

Automatyzacja i robotyzacja wybranych gałęzi, np. przemysłu, to nic nowego. Motoryzacja dobrych kilkadziesiąt lat temu postawiła na automatyzację i wszelkie powtarzalne czynności zastąpiła robotami – powtarzalnym jest przykładowo przelewanie czegoś z pojemnika do pojemnika, wkładanie danego elementu w odpowiednie miejsce, czy lutowanie układów scalonych.

Czy my jako programiści mamy się więc czego obawiać? Niektórzy z nas – wykonujący ciągle odtwórcze operacje – na pewno tak. Przecież na tym właśnie polega lwia część naszego zawodu. Bierzemy problem z określonej dziedziny, staramy się go znormalizować regułami biznesowymi i upraszczamy do momentu, kiedy całość będzie można wyrazić algorytmem. Dojście do ostatniego kroku w tym procesie to coś czego jeszcze długo nie uda się pewnie zautomatyzować. A co dalej? Przy określonym stanie wejściowym oraz wyjściowym jesteśmy już niedaleko od sieci neuronowych, które można można „uczyć” sposobu dojścia do danego rozwiązania.

Zastąpienie nas robotami jest czarnym, ale wciąż możliwym scenariuszem. A czy za umiejętnościami miękkimi stoi coś bliżej nas, co można zobaczyć wokół siebie zaraz po przeczytaniu tego posta? Moim zdaniem robią one ogromną różnicę jeśli chodzi o pozycję na rynku.

Zacznijmy od poszukiwania pracy. Rozmowa kwalifikacyjna? Bez dobrej prezentacji siebie jesteś o dwa piętra niżej od kandydatów którzy taką umiejętność posiadają. Praca w zespole? Bez skutecznej komunikacji możesz odczuwać, że ludzie wokół ciebie cię “nie rozumieją” albo nie wiedzieć czemu nie akceptują twoich pomysłów. Kierowanie zespołem? Bez umiejętności wczucia się w to co czuje dana osoba nigdy nie będziesz mógł w pełni zrozumieć czym kierowała się podejmując taką a nie inną decyzję.

Nikt nie przekona mnie, że wszystko to co wymieniłem nie dotyczy programistów, bo programista “ma pisać kod”. Pisanie kodu to ten najbardziej podstawowy obowiązek, na którym my staramy się nie zatrzymywać. Niestety, ale grupa pięciu osób których jedyną umiejętnością jest pisanie kodu nigdy nie osiągnie takiego sukcesu i nigdy nie będzie pracować tak efektywnie jak osoby które postawiły na rozwój holistyczny, czyli po prostu szerszy.

A gdybyś chciał lepiej zrozumieć w którą stronę możesz pokierować swoim rozwojem to zobacz co na ten temat mówi nauka.

Programista, czyli właściwie kto?

Słyszałeś o Dr Belbinie? Ten brytyjski naukowiec, specjalizujący się w tematyce zarządzania zespołami, zdefiniował w latach 70′ konkretne role w jakie wcielają się członkowie zespołów w organizacjach. Jest ich dziewięć, i są to m.in. Koordynator, Realizator czy Dusza Zespołu.

Wszystkie te role mogą być zajmowane przez osoby, które formalnie zajmują to samo stanowisko – np. programisty. Każdy programista, pomimo pozornie tego samego zestawu obowiązków, może w swój własny sposób komunikować się z otoczeniem, dzielić się pomysłami i wpływać na ostateczną formę projektu.

Dlaczego to takie ważne? Ponieważ wiedza ta daje odpowiedź na to, czemu dana grupa specjalistów pracuje jak szwajcarski zegarek, a inna to zbiór jednostek które się ze sobą męczą i nie dowożą na czas. Proporcja ról w zespole, ich podział i oddziaływanie na siebie – to wszystko jest niezmiernie ważne jeśli chodzi o organizację zespołu który ma działać efektywnie.

Co wiedza o rolach w zespole ma do bloga dla programistów? Wyobraź sobie, że każda z tych dziewięciu ról to dziewięć ścieżek kariery którymi możesz podążać. Dziewięć równoległych możliwości. Jeśli jesteś zwolennikiem przekonania, że programowanie to tylko kod, to automatycznie zamykasz sobie drogę do każdej z nich i nakładasz na siebie ten słynny szklany sufit. Tymczasem rozwijanie umiejętności miękkich pozwoli ci lepiej poznać siebie, odkryć rolę w której odnajdujesz się najlepiej i być może pozbyć przekonania, że nie jesteś w czymś tak dobry jak twoi koledzy i koleżanki.

Z umiejętnościami miękkimi jest tak, że zalety z ich szlifowania zaczniemy zauważać dopiero po czasie. Jest to główna bariera która stoi na przeszkodzie do zagłębienia się w temat i doskonale to rozumiem – posty z kodem to prawie jak rozwiązania gotowe do zastosowania. Czy potrzeba czegoś więcej?

Gorąco zachęcam, żeby w swoim podejściu do nauki programowania zachować balans – posty techniczne są niezbędne do tego, żeby realizować kolejne projekty, jednak bez pracowania nad sobą szybko dojdziemy do miejsca którego nie będziemy w stanie przeskoczyć.

A jeśli komuś nauka skutecznej komunikacji, pracy w grupie czy publicznych przemówień kiedyś zaszkodziła, to zachęcam to podzielenia się swoją historią w komentarzach – wtedy zastanowimy się nad zmianą tematyki bloga 😉

  • unai

    po tytule miałem nadzieję że będziesz pisał o innych blogach ktorych ostatnimi czasu wyrosło jak grzybów i ich wpisach typu: ’10 wtyczek do atoma’, ‘mity o byciu programistą’, ‘jak przygotowac sie do rozmowy kwalifikacyjnej’ a samego kodu to prozno tam szukać

    • Przemek Smyrdek

      Uważasz, że przygotowanie się do rozmowy kwalifikacyjnej jest tematem o którym nie warto pisać? “10 wtyczek do Atoma” to prawie jak 10 sposobów na bardziej efektywną pracę, sam z chęcią zobaczyłbym takiego posta 😉

      • unai

        wszystko zalezy od tego kto o tych rozmowach pisze, jaki jest sens pisania o typ przez juniora ktory ledwo co dostal sie do swojej pierwszej pracyi de facto nie wiadomoczy do najlepszej do ktorej aplikował?
        jesli chodzi o atoma to czas poswiecony na czytanie takiego artykulu mozna smialo zamienic na przeglądniecie ‘Trending’ na https://atom.io/packages.

        mi nie chodzi o to ze to zle ze sie takie artukuly pojawiaja, ale czesto to w moim odczucu jest robione na zasadzie: ‘nie mam o czym pisać a przydał by sie jakiś post to napiszę jakich wtyczek uzywam’

        • Adrian Bystrek

          Muszę dorzucić od siebie parę groszy 😀

          Z jednej strony rozumiem i podzielam zadanie. Z drugiej strony z krótkiego doświadczenia w blogowaniu (ale zawsze to jakieś) mogę powiedzieć, że posty typu “10 wtyczek do Atoma” rozchodzą się x10 lepiej niż posty jak np. ten tutaj. Pytanie, czy jest zatem sens się produkować?

          Teraz ja to sobie porównuję do sytuacji, gdzie np. sprzedawałbym bułki 🙂 Mam w ofercie zwykłe kajzerki, które są w opinii “ekspertów” słabej jakości, ale rozchodzą się jak woda. Mam również jakieś domowej roboty bułki, które są z pełnego ziarna, robione z sercem, zamysłem i nie wiadomo co jeszcze, ale nikt ich nie chce kupować, bo każdy woli tamte szybkie, tanie kajzerki. I co teraz? Czy warto skupiać się dalej na tych bułkach domowej produkcji tylko po to, żeby utrzymać paru klientów? Czy lepiej pójść w zwykłe kajzerki, gdzie obiór jest x10 większy, a tamtym paru klientom po prostu dać odejść?

          PS. to jest tylko takie moje przemyślenie, które urodziło się w tym momencie w mojej głowie, nie jest o jakaś żelazna zasada, której podporządkowuje wszystko co robię 😉

    • Dariusz Borawski

      Dodałbym tu przede wszystkim n-te identyczne opisanie wzorców projektowych czy SOLID z identycznymi przykładami.

      • Przemek Smyrdek

        Rozumiem i twoje spojrzenie, i ludzi którzy po raz n-ty piszą o SOLID. Miejsca w internecie jest sporo, nikt nie zabiera bajtów z przestrzeni na wspólnym serwerze pisząc o SOLID. Bardziej zaawansowani szukają blogów o bardziej zaawansowanej tematyce, a ci mniej opracowują na własną rękę tego np. SOLIDa żeby jeszcze lepiej to zrozumieć. To tak jak z prezentacjami na konferencji – jeśli widzisz temat który znasz, to możesz np. wyjść na świeże powietrze na 30 min. i poczekać na coś bardziej interesującego. W tym czasie autor spróbuje zainteresować ludzi jeszcze mniej doświadczonych od siebie w tym konkretnym obszarze.

        • unai

          oj, nic tak chyba nie denerwuje jak np w warszawie jechać na konferencję czy meetup godzinę z nadzieją na fajną prezentację po czym okazuje się ze to jakieś zupełnie podstawowe podstawy podstaw ktore i tak kazdy początkujący może samemu w necie znaleźć w 5min bo juz to w innych miejscach zostalo napisane i opowiedziane 1000 razy.

          trochę wychodzę na hejtera, ale mi zupełnie nie o to chodzi, bo ja naprawdę doceniam to ze ktos ma ochote dzielic sie swoją wiedzą albo tworzyc community, tylko problem zaczyna się dla mnie wtedy gdy tej wiedzy jest naprawdę niewiele a blog czy wystąpienie gdzieś ma służyć głównie do tego by zbudować swoją ‘markę’ czy w jakiś inny sposób podbudować swoje ego

          • Przemek Smyrdek

            Zgadzam się. Mnie samego denerwuje podpinanie krytyki każdego typu pod hejt w taki sposób, że albo mówisz o czymś dobrze, albo nie mówisz wcale. To o czym ty piszesz to po prostu trzeźwe spojrzenie na temat i tyle – tego nie można zabraniać.

            Protip a propos konferencji – przed wycieczkami np. do Warszawy zawsze staram się poszukać w internecie tej konkretnej prezentacji która będzie przedstawiana danego dnia. Nie chcę sobie psuć zabawy, ale sprawdzam kilka pierwszych minut lub agendę no i mam obraz tego co będzie się działo dalej.