Szybko pojawia się pytanie: Co jeszcze muszę opanować?
“Czego jeszcze muszę się nauczyć?” Kiedy sztuczna inteligencja każdego dnia staje się coraz inteligentniejsza, a na rynku pracy nie jest łatwo – co pomoże Ci znaleźć pracę marzeń? Eksperci, rekruterzy, menedżerowie, podkreślają znaczenie miękkich kompetencji jako klucza do sukcesu (nie tylko w karierze programisty). Rozwiązywanie problemów, myślenie krytyczne, komunikacja i empatia to ważne cechy, o których łatwo zapomnieć (choć nie jedyne).
Oto pięć nie-technicznych, a jednak kluczowych umiejętności doświadczonych programistów.
1. EFEKTYWNE LENISTWO
Nie, lenistwo to nie to, czego nauczyli cię rodzice i nauczyciele, mówiąc “nie leń się”. Dlaczego ludzie sukcesu, tacy jak Bill Gates, uważają lenistwo za umiejętność?
Chodzi o rozwijanie swojego zapału do wykonywania bardziej efektywnej pracy. To zdolność do znajdowania sposobów na szybkie i jak najlepsze wykonanie trudnych zadań (ponieważ zwykle jesteś zbyt leniwy, żeby poświęcić im dużo czasu i energii). Lenistwo staje się pociągiem do rozwoju i znajdowania kreatywnych uproszczeń. W tym kontekście lenistwo to pozytywna umiejętność ponieważ nie chodzi o odwlekanie czy znaną wszystkim prokrastynację, ale o większą efektywność.
2. MYŚLENIE ABSTRAKCYJNE
Kod, który piszesz, nie jest namacalny. To, co produkujesz, nie może być obserwowane, zmierzone i skopiowane (przynajmniej podczas rozwoju oprogramowania). Dlatego musisz wykorzystać swoją umiejętność myślenia abstrakcyjnego, aby stworzyć coś konkretnego.
Myślenie abstrakcyjne polega na obserwacji z różnych kątów i na różnych poziomach, aby wyciągnąć analityczne wnioski z tego, co na pierwszy rzut oka wydaje się nielogiczne lub nieprecyzyjne.
Programista przetwarza dane i wymagania. Jest w stanie władać symbolami, poleceniami i procesami, aby używać kodu jako podstawy, która umożliwia rozwiązanie problemu. Nie tylko odtwarza kolejność manualnych kroków, ale znajduje wzorce, sposoby na ich zoptymalizowanie, czy wynalezienie od nowa.
3. LOGIKA
Twoja wiedza z matematyki, fizyki i programowania stanowi dobry zestaw narzędzi do rozwijania najważniejszej umiejętności programistów: logiki.
Ćwicz ją jak mięsień: gry logiczne, puzzle, gry planszowe, sudoku, czytanie i pisanie. Używaj aplikacji takich jak Lumosity czy Brilliant do rozwiązywania problemów i tworzenia modeli logicznych online. Również rozwijają myślenie warunkowe, którego ogólny model wygląda tak:
if (warunek jest Prawdziwy):
wtedy rób te rzeczy tylko dla „Prawdziwy”
else:
w przeciwnym razie rób te rzeczy dla „Fałszywy„





4. WYTRWAŁOŚĆ
Dni i noce spędzone nad kodem, aby wreszcie działał: który z programistów tego nie zna? Niepowodzenia są nieuniknione i powinny być traktowane jako codzienne narzędzia. Wiele prób uruchomienia projektu, różne podejścia do prób, dziesiątki zagadek do rozwiązania: wszystko to wymaga wytrwałości.
Traktuj błędy jako wyzwania do pokonania, a nie jako znaki twojej porażki. To twoje podejście do zadania jest ważne.
Jak definiuje Anurag Harsh:
„Wytrwałość to zdolność do powrotu po porażce, zdolność do podniesienia się, poradzenia sobie i znalezienia nowej drogi do produktywności i spełnienia, pomimo nieumyślnego niepowodzenia… To przyczynia się do szybkiego podejmowania dobrych decyzji.”
Aby rozwijać wytrwałość, musisz pracować nad swoimi starymi nawykami: samokontrola i zmiana sposobu myślenia są kluczem. To trudne zdanie, zajmuje dużo czasu, ale jest tego warte.
5. MYŚL BINARYJNIE
…czyli jak?
Zauważ, kiedy piszesz kod, robisz założenia. To normalne podejście, ponieważ twój zdrowy rozsądek i myślenie abstrakcyjne pomagają jak gdyby automatycznie rozszerzyć funkcjonalność twojej przyszłej aplikacji czy programu, a w konsekwencji, poprawić jego ostateczną realizację.
Przykład: PM mówi, że klient ma mieć możliwość zakupienia produktu, pojawia się proces – obsługa koszyka, płatności, polecanie innych podobnych produktów.
Ale to, co musisz rozwijać, to zdolność do myślenia jak komputer, co nie oznacza fantazji, nieuzasadnionych założeń czy zarysu zależności.
Podczas programowania wprowadzasz tylko to, co zamierzasz wprowadzić. Komputer nie może dokonać zmian czy dostosowań, których mu nie nakazano. To wszystko musi przewidzieć Twój mózg, który z natury lubi przetwarzać wszystko na raz i umie działać w chaosie. Komputer potrzebuje myślenia złożonego z kroków, które Tobie podpowie myślenie binarne.
Pamiętaj! Nie lekceważ roli umiejętności nie-technicznych w twojej karierze zawodowej. Wiedza techniczna jest koniecznością i przyjdzie z doświadczeniem; ale połączona z empatią, cierpliwością, dbałością o szczegóły i niezależnością, przekształci cię w prawdziwego eksperta.