lineblur
blog
teamwork
facebooklinkedintwitterShare

Soft skills – czyli jak zostać programistą, który nie wpada w schematy  

Szukając odpowiedzi na pytanie „jak zostać programistą” większość przyszłych deweloperów skupia się na technicznych aspektach tego zawodu. I nic dziwnego! Nie oszukujmy się, ale bez praktycznej wiedzy o kodowaniu nie mamy nawet co marzyć o karierze w IT. Kiedy ten etap mamy za sobą, można zadać sobie pytanie – i co dalej?  

Ostatnimi laty coraz więcej mówi się o kompetencjach miękkich (soft skills) jako kluczu do sukcesu w branży programistycznej. Niestety, temat ten często kierowany jest w stronę osób spoza IT jako zachęta do zakupu szkoleń i kursów mających w łatwy i bezproblemowy sposób zapewnić im pracę w sektorze. Robi to trochę złej sławy temu terminowi – zupełnie jednak niesłusznie!  

Bo w rzeczywistości umiejętności miękkie od zawsze stanowią nieodłączny element pracy programisty.  

Umiejętności miękkie – cechy dobrego programisty  

Zanim przejdziemy do omówienia przypadków, w których miękkie kompetencje otwierają programiście nowe ścieżki w karierze, określmy sobie jasno czym właściwie są soft skills w branży IT. Pojęciem tym określamy szereg umiejętności będących wspólnymi dla różnych profesji i zawodów. Zazwyczaj opierają się one na zdolnościach interpersonalnych,    

Sposobów na podzielenie, zdefiniowanie i uszeregowanie soft skills adekwatnych dla branży IT jest mniej więcej tyle, ilu specjalistów od HR-u jest na świecie. Sam jako osoba siedząca w branży IT od lat mam już nieco inne podejście do tematu. Nauczony doświadczeniem wiem, że wymieniane jednym tchem kompetencje miękkie można uszeregować w dwie kluczowe kategorie:  

Kreatywność 

czyli otwartość na nowe rozwiązania i nieszablonowe myślenie. Soft skill, który pozwala nam uniknąć zamknięcia się w pętli myślenia „skoro tak robi się od lat, to znaczy, że nie można inaczej”.  

Komunikatywność 

czyli zdolność współpracy, nawiązywania kontaktu z otoczeniem: zarówno swoim zespołem, jak i klientami. Umiejętność ta pomaga zarówno w przekonywaniu innych do swoich racji oraz przekazywaniu im wiedzy, jak i w rozumieniu i odpowiednim przyswojeniu informacji kierowanych w naszą stronę.  

Te dwie umiejętności mogą wydawać się dość ogólne, ale w gruncie rzeczy o to w soft skills chodzi. Nie są to techniczne kompetencje wymagające miesięcy szkoleń i wkuwania teorii, a zdolności o charakterze społecznym, które rozwijamy w trakcie naszego codziennego zawodowego życia.  

 

Jak zdać test na programistę z ambicjami?  

Na początku kariery wiedza i kompetencje techniczne w dziedzinie programowania w zupełności wystarczają do osiągnięcia pierwszych sukcesów w branży IT. W końcu jednak dotrzemy do granicy, w której dalsze ich rozwijanie okazuje się być niewystarczające. Konieczność nawiązywania nowych relacji interpersonalnych oraz przekonywania poznanych osób do swoich racji staje się ważnym czynnikiem decydującym o dalszych sukcesach.  

Wychodząc poza poziom mid developera musimy liczyć się z tym, że nasza praca zacznie w dużej mierze opierać się na zdolności komunikatywności. Jako seniorzy musimy nie tylko posiadać imponujące zasoby wiedzy technicznej – jest ona bezużyteczna bez zdolności przekazania jej dalej zespołowi, w którym pracujemy. Mając pod sobą młodszych stażem programistów powinniśmy także pełnić wobec nich rolę mentora, wspierając i motywując ich w rozwoju.  

W końcu, rozwijając swoją karierę w IT coraz częściej będziecie musieli osobiście kontaktować się z klientem w sprawie realizowanego dla niego projektu. Nawet jeśli nie pełnicie roli project ownera, musicie być zawsze gotowi przedstawić realizowane zadania w sposób jasny i klarowny dla osoby niezaznajomionej z tematem. Poza tym, nawiązane w ten sposób relacje mogą otworzyć przed Wami wiele nowych ścieżek o charakterze biznesowym.  

 

Kompetencje programisty i skutecznego architekta  

Przechodząc do bardziej technicznego zastosowania kompetencji miękkich, warto opowiedzieć o ich użyteczności w planowaniu architektury systemu. Rola architekta niezaprzeczalnie wymaga posiadania szerokiej wiedzy technicznej, ale wachlarz umiejętności programisty pełniącego tę funkcję musi także zawierać kreatywność i komunikatywność. Więcej na ten temat opowiedział już Krystian w wywiadzie znajdującym się na naszym blogu – ja przybliżę dzisiaj tylko ogólny zarys.  

Pierwsza z nich wiąże się z samym podejściem do opracowywania nowych rozwiązań. Spojrzenie na problematykę projektu z szerszej, nieszablonowej perspektywy jest niezbędne w projektowaniu systemów – szczególnie, kiedy mierzymy się ze skomplikowanymi, kompleksowymi wyzwaniami.  

Komunikatywność jest z kolei niezbędną kompetencją programisty muszącego przedstawić swoje pomysły innym osobom. Jakkolwiek genialne nie będą obmyślone przez Was rozwiązania, to do ich wprowadzenia będziecie potrzebować zespołu, który dobrze rozumie przekazane instrukcje. W wielu przypadkach architekt jest także odpowiedzialny za wykładanie założeń projektu klientom – a w takich sytuacjach komunikatywność jest już zdolnością obowiązkową.  

 

Miękka optymalizacja  

Sama kreatywność to cecha przydatna nie tylko na poziomie projektowania architektury systemu – jest ona pożądaną umiejętnością w programowaniu ogółem. Myślenie outside of the box jest kluczowe w procesie optymalizacji, który uważam za podstawę współczesnego podejścia do programowania.  

Oczywiście, kreatywność w dziedzinie IT nigdy nie będzie oznaczać robienia wszystkiego inaczej dla samej sztuki wytaczania nowych ścieżek. Nazwałbym to raczej nieszablonowym spojrzeniem na już istniejące rozwiązania, pozwalającym dostrzegać furtki, które umykały dotychczas innym. W ten sposób dochodzimy do rozwiązań pozwalających realnie wpływać nie tylko na sukces projektu, ale także na otaczającą nas rzeczywistość.  

 

Ucz się od otoczenia  

Niezależnie od tego, czy znajdujecie się na początku Waszej kariery, czy może perspektywa wchodzenia na kolejne jej etapy jest już na wyciągnięciu ręki – kreatywność i komunikatywność zawsze będą dla Was asem w rękawie. Wciąż pozostaje jednak przed nami proste pytanie: w jaki sposób zdobyć te mityczne soft skills?  

Owszem, znajdziemy sporo kursów i szkoleń mających z definicji rozwijać kompetencje miękkie u programistów, jednak ich skuteczność zawsze stanowi loterię. Wszystko dlatego, że nabywanie takich umiejętności stanowi bardzo personalny proces, który każdy z nas może przechodzić inaczej. Najlepszym sposobem jest więc po prostu się angażować: nawiązywać kolejne kontakty w branży, szukać alternatywnych podejść do znanych tematów i stale posiadać otwarty umysł na to, co nieznane.