#Jak rozmawiać o pracy poza pracą

Praca w branży IT jest przykładem wysokiej specjalizacji. Rozwój oznacza
zdobywanie coraz większej ilości wiedzy na coraz węższy zakres tematów.
Tematów, które większości ludzi nie związanych z branżą, są nie tylko zupełnie obce,
lecz stanowią wręcz archetyp nieprzyjaźnie skomplikowanej i nudnej dziedziny.
Sprawia to, że komunikacja pomiędzy informatykiem a osobą informatycznie-agnostyczną
nie jest prosta.

Nie mam tu na myśli kwestii biznesowych: rozmów na tle wykonawca – klient, specyfikacji
wymagań, czy tym podobnych, zbyt pożytecznych aby kusiło mnie o nich pisać, rzeczy.
Na te tematy powstało już mnóstwo książek i opracowań. Stworzono nawet specjalne
języki, do porozumiewania się zwykłych ludzi z programistami (UML, OCL).

Mam na myśli sytuację, kiedy na gruncie towarzyskim, jesteśmy postawieni przed koniecznością
opowiedzenia o zadaniach i problemach ze swojej pracy. Na przykład kiedy u cioci na imieninach,
kuzyn który widzi cię pierwszy raz w życiu, z uprzejmości pyta o twoją pracę. Albo gdy
na domówce, kolega ze studiów przedstawia cię swojej koleżance, o figlarnych oczach i
nerwowym uśmiechu, która chce wiedzieć czym zajmujesz się na co dzień.

Jak wytłumaczyć techniczne problemy w zrozumiały sposób? Jak nie zanudzić przy tym
rozmówcy na śmierć, a wręcz przeciwnie zyskać jego zainteresowanie i szacunek?
Czy jesteśmy w stanie przełamać stereotyp, że wszystko związane z informatyką jest
nudne i niezrozumiałe?

Ponieważ pytania te są mi bliskie, przygotowałem tę oto listę znanych mi
strategii na rozmawianie o pracy (w IT) poza pracą. Niektóre z nich praktykowałem
osobiście, innych byłem świadkiem. Wybór optymalnej strategii pozostawiam czytelnikowi.

Jak rozmawiać o programowaniu w towarzystwie…

Z pasją

Jest to prawdopodobnie najbardziej intuicyjna, żeby nie powiedzieć naiwna, metoda zwłaszcza
wśród studentów i świeżych, nie wypalonych absolwentów. Polega na próbie zarażenia odbiorcy własnym
entuzjazmem na temat komputerów i programowania.

jobs
Wszyscy nie-programiści kochają Steve Jobsa

Z pełną energią opowiadasz o ekscytujących problemach, którymi się zajmujesz, licząc
że to co ciekawi ciebie, będzie równie ciekawe dla innych. Opowiadasz o pięciogodzinnej sesji
z debuggerem niczym Bogusław Wołoszański o ofensywie w Ardenach. Aby podtrzymać napięcie,
wymieniasz wszystkie rejestry procesora których zawartość sprawdziłeś oraz numery linii
w których postawiłeś breakpointy. Po czym kwitujesz opowieść zaskakującym zakończeniem:
plik nagłówkowy załączony przez automatyczny generator w najnowszej rewizji z trunku biblioteki
warstwy abstrakcji sprzętu ma zły define! Nie dość, że ignorowany jest wariant standardu
opcji kompilatora to jeszcze rzutowanie inta na wskaźnik do struktur unii zupełnie ignoruje
kwestie wyrównania pamięci!

Niestety, atrakcyjność naszej mrożącej krew w żyłach historii może zostać zgubiona poprzez
nieznajomość terminologii oraz rozkojarzenie naszego odbiorcy. Jeśli po około 40 minutach
od rozpoczęcia opowieści nasz słuchacz zacznie okazywać symptomy takie jak: odruchy sieroce,
halucynacje, utrata przytomności lub śmierć, może to oznaczać że próba nawiązania kontaktu
jest nieudana.

Czy nam się to podoba czy nie, dla większości z nas faktem jest, że nasze codzienne wyzwania i problemy
nie mają specjalnie dużego znaczenia dla przypadkowego człowieka z ulicy i jako takie są „ciężkie do sprzedania”.
Nie znaczy to jednak, że nasze wykształcenie i doświadczenie zawodowe nie dały nam niczego, co nadało by się
do zagajenia rozmowy na imprezie. Tak jak fizyk może oczarować swoich słuchaczy dykteryjką o kocie,
który jest jednocześnie żywy i martwy, a biolog opowiedzieć o makabrycznych zwyczajach tropikalnych pasożytów, tak
i absolwent informatyki może zarazić swoje ofiary znajomych swoją pasją poprzez zaprezentowanie
geniuszu ukrytego w otaczających nas urządzeniach i programach.

Na przykład narysować drzewo Huffmana na serwetce aby zaprezentować metodę bezstratnej kompresji,
użyć prawdziwych mrówek aby pokazać działanie optymalizacji metodą kolonii mrówek,
albo pójść o krok dalej i spróbować wytłumaczyć jak działa komputer
zaczynając od wzoru na prąd złącza P-N.

Protekcjonalnie

Metoda ta, przynajmniej według jej zwolenników, szanuje ograniczenia w wiedzy i
zaangażowaniu odbiorcy i stara się ochronić go przed nadmierną ilością ciężko
przyswajalnych i niepotrzebnych mu informacji. Często jest to podejście,
które jest efektem rozczarowania poprzednią metodą. Niektórzy z nas mają jednak
naturalny talent do stosowania tej strategii.

computer
https://xkcd.com/722/

Generalnie, w metodzie tej poświęcamy nieco prawdziwość przekazywanych przez nas informacji,
na ołtarzu skuteczności przekazu. Innymi słowy chcemy, żeby słuchacz wyciągnął odpowiednie
wnioski i nie kłopotał się szczegółami, na których nam nie zależy i których zapewne nie będzie
umiał zrozumieć. Zamiast skomplikowanego żargonu używamy prostszych do
zrozumienia słów o niewielkiej ilości sylab. Opis techniczne zastępujemy łatwiejszymi
do zrozumienia analogiami. Przykłady:

Uważam, że procesory Intel są lepsze od AMD pod względem binarnym: za tą samą cenę dostajemy dużo więcej jedynek i mniej zer.

Dzisiaj w pracy rozwiązywaliśmy problemy z wątkami. Pewien proces był bardzo stary i często urywał mu się wątek.

W tym programie zastosowaliśmy techniki obiektowe. Według filozofii programowania obiektowego wszytko jest obiektem. Duże i ciężkie obiekty umieszczamy na dole a mniejsze i lżejsze na górze dzięki czemu uzyskujemy doskonałą równowagę w naszym systemie.

Hakerzy potrafią przeanalizować kod assemblera, odgadnąć szczegóły jego działania oraz wywnioskować sposób na obejście zabezpieczeń. Dlatego
dla większego bezpieczeństwa naszego kodu nie piszemy w assemblerze tylko w Javie.

W wypadku, gdyby rozmówca robił się zbyt dociekliwy, lub wykazywał oznaki powątpiewania
w nasze kompetencje, możemy strategicznie rzucić wiązankę technicznych słów
(zgodność z kontekstem jest tu bez znaczenia) aby uciąć rozmowę wychodzącą spoza wyznaczonych przez nas torów.

A: Do tego projektu użyliśmy języka C, który jest bardziej wydajny ponieważ używa większych bajtów.

B: Kolega szwagra też jest programistą i mówi że przyszłość to C#

A: Ten kolega ma pewnie na myśli złożoność logarytmiczną,
ale priorytety przerwań w blokujących mutexach
są stanowczo zbyt niedeterministyczne dla naszych potrzeb.

Narcystycznie

Metoda ta łączy cechy dwóch metod opisanych powyżej. Mianowicie ekscytację na temat własnej
pracy i osiągnięć oraz pobłażliwe traktowanie odbiorcy. Jest to na swój sposób
naturalne rozwinięcie argumentów przemawiających za metodą nr.2: skoro już darujemy
sobie szczegółowość i prawdziwość aby szybciej przekazać słuchaczowi sedno naszej
historii, to dlaczego nie podkreślić przy okazji naszej własnej roli?


By Christoph Scholz [license CC 2.0] (https://creativecommons.org/licenses/by-sa/2.0/)

„Programista” czy „specjalista IT” brzmią zbyt nieciekawie? Zamiast tego nazwij się
„twórcą wirtualnych światów”. Pochwal się też, że jesteś poliglotą, wszak
znasz kilka języków programowania. Nie omieszkaj powiedzieć, że praca programisty
nie polega na pisaniu kodu tylko na „rozwiązywaniu problemów”. Wytłumacz, że
najbardziej skomplikowane przedsięwzięcie jakim para się ludzkość to właśnie
oprogramowanie i jak sztuka abstrakcyjnego myślenia, obca dla zwykłych zjadaczy chleba,
pozwala ci je okiełznać.

Jeżeli zamiast „niezrozumianego geniusza” wolisz wizerunek błyskotliwego bandyty,
możesz podkreślić swoje crackerskie zdolności. Opowiedz jak zrobiłeś durnia
z nauczyciela informatyki w szkole albo jak ośmieszyłeś koleżankę na studiach, która
miała łatwe do odgadnięcia hasło na pracowni komputerowej. Wspomnij mimochodem o tym z jaką
łatwością mógłbyś zyskać kontrolę nad komputerami n00bów, którzy nie mają pojęcia
co robią. Pewnie, gdyby ci się tylko chciało, mógłbyś zyskać w ten sposób całkiem
niezły bot-net i używać go do swoich niecnych celów. Na szczęście dla zatopionego
w swej ignorancji społeczeństwa masz lepsze rzeczy do roboty.

Przepraszająco

Całkowite przeciwieństwo poprzedniej metody. Charakteryzuje się całkowitą akceptacją
faktu, że nasza pozycja jest niezrozumiała dla tak zwanych normalnych ludzi.

Na każdym kroku przepraszasz swojego odbiorcę, że wszystko co masz do powiedzenia
musi być dla niego strasznie nudne. Przyznajesz się, że jako informatyk jesteś
statystycznie osobą o beznadziejnych zdolnościach społecznych, co demonstrujesz
wchodząc pod stół i przyjmując pozycję płodową.

W sprzyjających warunkach twoje otoczenie powinno zareagować z pozytywnym zrozumieniem.
Ach tak – powie ktoś – koleżanka sąsiada pracuje z informatykami i oni wszyscy są tacy.
Kilka innych osób zacznie przytakiwać i przypominać sobie własne doświadczenia z
osobliwym stworzeniem jakim jest informatyk. Przez krótką chwilę,
niczym człowiek-słoń, jesteś w centrum uwagi wzbudzając jednocześnie współczucie i obrzydzenie.
Czy to prawda, że wy siedzicie przy komputerach przez 8 godzin i nic do siebie nie mówicie? – spyta
dziewczyna w koszulce Iron Maiden. Czy potrafisz zapamiętywać sekwencję liczb tak jak ‚Rain Man’? – spyta
ktoś inny.

Cierpliwie odpowiadasz na pytania, nie przestając przy tym przepraszać,
że twoja słowa są z pewnością męczące i nieciekawe. Na pytanie czym konkretnie zajmujesz się
na co dzień, rozkładasz bezradnie ręce wydając z siebie przenikliwy pisk: To naprawdę nic ciekawego. – powtarzasz jak mantrę – Długo by tłumaczyć.

Wcale

Nikt tak naprawdę nie chce słuchać co masz do powiedzenia o sobie i o twojej pracy. Pytanie o nią było jedynie
wymuszoną uprzejmością, szczątkowym instynktem społecznym którego przeznaczenia nikt już nie pamięta
i nie potrzebuje. Uświadomienie sobie tego faktu pozwala ci wejść na wyższy stopień zrozumienia.

Zamiast strzępić język opowiadając o swoim nieistotnym życiu, zmieniasz temat na coś o większym znaczeniu
dla wszystkich obecnych, np. że pod osiedlem nie ma gdzie parkować, pogoda jest do kitu,
ludzie to gnoje, a zwierząt jest za dużo i okropnie paskudzą.