Jak rozmawiać z nieinformatykami o programowaniu?

0

Czy wy też macie z tym problem? Chętnie poczytałbym jakieś publikacje na ten temat. Często mam problem z przejściem na taki stopień abstrakcji, aby mój rozmówca zrozumiał o co mi chodzi. Nie tylko nawet w rozmowie o programowaniu, ale generalnie o informatyce.

Często próbując opisać komuś (nie związanemu z tą branżą) moją pracę lub projekt w jakim aktualnie pracuję gubię się w tym opisie, nie potrafiąc dobrać odpowiednich słów lub używając nomenkaltury niezrozumiałej dla mojego rozmówcy, a dla mnie naturalnej.

Pozdrawiam

// przez przypadek zamieściłem w dziale Flame - proszę moderatorów o przeniesienie do Off-topic :)

0

Ja zawsze nawiązuję do tematyki którą interesuje się rozmówca. Przykładowo mój tata to kierowca samochodowy w pogotowiu. Kiedyś pytał mnie o co chodzi z Antywirusem tzn twierdził, że on na swoim komputerze nie ma na pewno żadnego szkodliwego oprogramowania. Jak tu takiemu wyjaśnić jak bardzo się myli?
Zrobiłem to prosto: "Antywirus to tak jak ABS w samochodzie. Jak kierowca słaby to nawet to mu nie pomoże". I zrozumiał z miejsca o co chodzi.

To samo można nawiązać do każdej tematyki. Piszesz cokolwiek i jak ktoś pyta o co chodzi w tym kawałku to łatwo można to wyjaśnić na podstawie życiowych przykładów. Najlepiej jak wiesz czym rozmówca się interesuje. Jeśli zapyta ktoś co to jest defragmentacja dysku to rozrzuć klocki po pokoju i powiedz, że np: "Żółte klocki to części składowe jednego programu. Są porozrzucane po pokoju, defragmentacja je poukłada". Mniej-więcej na tych zasadach ludziom można tłumaczyć różne aspekty.

Ktoś zapyta co to jest funkcja bądź procedura? Przyrównaj to do funkcji których uczono na matematyce. Przecież Sinx jest niczym jak innym jak funkcją "sin(x)". Jeśli tego nie zrozumie to wyjaśnij mu, że wkładasz coś do maszynki a drugą stroną wychodzi coś innego.

Na wszystko znajdzie się życiowy przykład :)

0

Raz tzw. "żółta kaczuszka", czyli metoda maksymalnego upraszczania. 99% projektów można opisać za pomocą bardzo prostych porównań czy ciągów logicznych.

Dwa, szczególnie dla klientów, metoda "jak sądzisz jak to jest". Rozmówca stara dojść się "na chłopski rozum" o co chodzi. W przypadku informatyki i tematyki okołokomputerowej jest to dobra metoda, bo komputery na tym poziomie są do ogarnięcia. Jeżeli jednak zeszli byśmy na tematykę bardziej matematyczną czy elektroniczną to mogą być problemy. Dlatego...

Trzy, język małych dzieci. Jak działa karta muzyczna (w sensie jak zamienia bity na dźwięk)? Odpowiedź prawidłowa w środku jest takie elektroniczne pikadełko, które traktuje plik jak zapis nutowy i sobie pika.

0
Koziołek napisał(a)

Trzy, język małych dzieci. Jak działa karta muzyczna (w sensie jak zamienia bity na dźwięk)? Odpowiedź prawidłowa w środku jest takie elektroniczne pikadełko, które traktuje plik jak zapis nutowy i sobie pika.

Tak to się gada z handlowcami w firmie. ;)

0

możesz poćwiczyć na mnie : D
gwarantuję wysoką niekumatość pojęć informatycznych jak i zaawansowany stopień intelektualnego nieogarnięcia

szczerze, nigdy mi nic nie pomagały objaśnienia matematyki czy programowania na zasadzie przyrównywania ich pojęć do np. jabłek na drzewie czy innych koszyczków; ale może to tylko ja tak mam : ]

0

Jesteś naszym odmiennym cukiereczkiem ale i tak Cię kochamy :*

0

jeszcze tak właściwie to muszę powiedzieć, że takie uparte tłumaczenie mi zawiłości informatyczno-matematycznych w sposób ułatwiony i obrazkowy zawsze wywoływało u mnie pewne niezadowolenie; dopóki jest to rozmowa na poziomie nauczyciel-uczeń czy wykładowca-studentka to mało istotne, ale będąc już klientką takiego informatyka mogłabym w pewnym momencie zrezygnować; chyba nikt nie lubi, kiedy styl wypowiedzi interlokutora ewidentnie pokazuje iż jest się ciemną, niedouczoną masą; to już zdecydowanie bardziej wolę zrozumieć(mimo, że to trwa dłużej) bez udzialu jabłek, kominiarzy i innych takich ABS-ów

0

Jeśli ktos naprawdę nie kuma pewnych spraw w programowaniu i jest tylko klientem, który nie wie co to rekurencja, klasa, polimorfizm, hermetyzacja danych etc to nie zrozumie tego.
Ja klientowi nie mam wykładać co to jest programowanie i go nauczać teorii. Nie takie jest moje zadanie.
Ja mu mogę oczywiście powiedzieć, że tutaj zastosujemy polimorfizm w celu wyabstrahowienia metody odpowiedzialnej za wyświetlanie danych. Następnie przechodząc dalej musimy stworzyć klasę abstrakcyjną a w niej stworzyć metodę płacenia za różne usługi, oznacza to, więc, że tworzymy kolejne klasy potomne od wspomnianej wcześniej i przykrywamy metodę abstrakcyjną.

Powiedz mi jaki klient zrozumie takie gadanie?
Brak wiedzy zawsze wyjdzie na jaw, a udawanie, że się rozumie i mądrze kiwa głową tylko klientowi wyjdzie na szkodę bo wyjdzie ode mnie nie wiedząc NIC więcej niż wcześniej co oznacza, że:

  • Kompletnie nie ma pojęcia co będzie się działo z jego produktem
  • Niczego nowego się nie nauczył.
  • Stracił kupę czasu na wysłuchanie mojego wywodu, gdzie on żadnego słowa nie zrozumiał.
  • W najgorszym razie wydaje mu się, że rozumie, a jak przyjdzie co do czego to okazuje się, że "on to sobie inaczej wyobrażał".

Lepiej przyznać się do swojej niewiedzy, niż być melepetą udającą, że coś się wie.
Klient, który przyzna się i powie "nie rozumiem tego" zdecydowanie lepiej wyjdzie na swoim bo zrozumie o co chodzi. Zajmie to zazwyczaj ciut dłużej niż takiemu "udawaczowi", ale rezultaty widać od razu. Od razu człowiek się ożywia i widać , że próbuje sobie to w głowie jakoś poukładać na swój sposób.

Sehanine lubisz kurczaczki... jakbyś nie wiedziała co to dziedziczenie to bym Ci wyjaśnił to np na zasadzie:
małe kaczątko rodzi się. Po swojej mamie dziedziczy futerko, dziubek i to, że umie piskliwie krzyczeć. Żadne inne stworzenie nie wygląda tak jak kurczak.
Mały kurczaczek, więc dziedziczy po swojej mamie pewne elementy. Niekoniecznie jednak wszystkie, np nie musi odziedziczyć płci.

No mniej, więcej na tej zasadzie bym to tłumaczył, zresztą wyjaśnienie dziedziczenia na podstawie zwierząt jest jednym ze sztandarowych przykładów.

0

@polaczek17 nie mogę się do końca zgodzić. Klient przychodzi z pomysłem i każe go zaprogramować (w dużym uproszczeniu). Przeniesienie pierwotnego pomysłu na kod może być trudne - pomysł sprzeczny, lub niebezpieczne - pomysł nie uwzględnia pewnych aspektów praktycznych. W takim momencie trzeba może nie tyle co wytłumaczyć, co wykazać potencjalne problemy. Niech decyzję podejmuje samodzielnie, ale ze świadomością iż istnieją problemy. Tu nie ma co się wgłębiać w rekurencje czy polimorfizm, bo to sensu nie ma, ale trzeba omówić problemy około informatyczne.

0
polaczek17 napisał(a)

Brak wiedzy zawsze wyjdzie na jaw
...
Sehanine lubisz kurczaczki... jakbyś nie wiedziała co to dziedziczenie to bym Ci wyjaśnił to np na zasadzie:
małe kaczątko rodzi się. Po swojej mamie dziedziczy futerko, dziubek i to, że umie piskliwie krzyczeć. Żadne inne stworzenie nie wygląda tak jak kurczak.

Kaczątko się nie rodzi, nie jest kurczakiem, nie ma futerka i nie krzyczy (no chyba, że miałeś na myśli potomstwo Jarka i Alika). Przynajmniej niedługo po wykluciu różne gatunki mogą wyglądać podobnie. Dziedziny i przykłady dobieraj rozsądnie, Ty też musisz mieć jakieś minimalne pojęcie o danej dziedzinie.

0

Ale to nie forum przyrodnicze i nie muszę wszystkiego dokładnie mówić zgodnie z prawdą. Tu nie o to chodzi. Chodzi o fakt wyjaśnienia dziedziczenia przy zastosowaniu ułatwień i uproszczeń życiowych. To chyba jest dość oczywiste prawda?
Inaczej każdy by mógł się doczepić tego, że w takim wyjaśnieniu brak chociażby pojęcia interfejsu, albo, że nie wiadomo co jest w sekcji publicznej prywatnej i chronionej.
Trzeba ruszyć najpierw głową spojrzeć na napis "4programmers" przetłumaczyć go jako "dla programistów" i zauważyć różnicę pomiędzy programistą i przyrodnikiem.

0

Jak dla mnie dziedziczenie kaczątka z kaczki to zły pomysł. Lepiej byłoby napisać strategie SmakujeJak i OkrycieSkóry i przekazać kaczątku klasy je implementujące czyli SmakujeJakKurczak i Pióra. Dzięki temu uniknie się powtarzania kodu przy np. implementacji klas Pies (SmakujeJakKurczak, Futro), Struś (SmakujeJakKoń, Pióra) czy Yeti (SmakujeJakKoń, Futro).

Peace.

0

Dyskusja poszła w trochę innym kierunku, ale odnosząc się do pierwszego pytania polecam lekturę tego wpisu: http://webhosting.pl/Nie.budz.programisty

0

Tja, ja miałam problem, gdy rodzice mnie spytali o tytuł mojej pracy inżynierskiej... Dosyć długi był, widziałam, że gubię ich po czwartym-piątym słowie... Postanowiłam się nie przejmować. Ktokolwiek nie pyta, odpowiadam po prostu. Nie rozumiesz - twój problem. Po ki grzyb się pytasz, jak nie wiesz nawet co to właściwie Ethernet? :/
Inna sprawa, że irytujące jest gdy ludzie do mnie mówią jak do debila (z tym całym upraszczaniem i niemowlęcymi porównaniami). Może mam na twarzy napisane, że głupia jestem, a może po prostu mam cycki. Przykładowy dialog z moim mężczyzną, z czasów początków naszej znajomości:

on: Muszę komputer naprawić, zepsuł się.
ja: A co się zepsuło?
on: Komputer.
ja: No tak, ale co konkretnie?
on: Jednostka centralna.

0

Najlepiej nie rozmawiać na tematy informatyczne ; )
Podzielam zdanie aurela, jak drążą to nie bawić się w tłumaczenie tylko walić jak jest bez kolorowania, no chyba że akurat trzeba komuś wytłumaczyć - wtedy najlepiej analogiami, zresztą jak wszędzie.

0

Jestem głęboko przekonany, że praktycznie nigdy nie zachodzi potrzeba aby laika uczyć inżynierii oprogramowania i tłumaczyć co to jest klasa, interfejs, dziedziczenie, polimorfizm czy co tam jeszcze. Rozmawiając z klientem skupiamy się na funkcjonalnościach potrzebnych do realizacji, jak będą działać, jak wyglądać oraz postępie ich realizacji, oraz - to już reguła - wskazywanie że ten czy tamten pomysł klienta jest dość głupi i należy zmienić to i tamto, ponieważ zagrożenie jest takie a takie.

Absolutnie dla takiej osoby nie jest potrzebna wiedza stricte programistyczna - nie ma potrzeby ani możliwości wyjaśnienia tego. Tak samo lekarz wypisując wam lek, mówi tylko jakie jest jego działanie w sensie zwalczania objawów choroby oraz możliwe skutki uboczne, ale nie robi wykładu z farmakologii, aby opisać jak organizm reaguje na lek.

0
polaczek17 napisał(a)

małe kaczątko rodzi się. Po swojej mamie dziedziczy futerko

To, że Ty masz futrzastego ptaka, nie znaczy jeszcze, że wszystkie takie są.

0
polaczek17 napisał(a)

małe kaczątko rodzi się. Po swojej mamie dziedziczy futerko...

polaczek! byles kiedy na wsi? kaczke widziales? jakie elementy kaczki najbardziej rzucily ci sie w oczy? FUTRO?!

0

zostawcie polaczka hakiera, on potrafi takie kaczki stworzyć!

za pomocą LSD-25 ; ]

0

Tłumaczenie czegokolwiek osobie spoza środowiska to strata czasu - jeśli nie ma takiej konieczności, to zgodnie z moim doświadczeniem nie warto. Tłumaczenie = ostateczność. Kiedyś jak byłem jeszcze pełen zapału i ideałów to próbowałem, ale to się kończy zwykle tak:

Natręt: może zrobiłbyś to tak: blebleble (długi, głupi i bezsensowny pomysł)
Ja: Blablablabla (długie, równie głupie tłumaczenie na poziomie przedszkola, że nie)
Natręt: czyli jak, zrobisz?

Teraz, jeśli coś po prostu poprawek nie wymaga, a jest fanaberią, stosuję SOA:
SOA #1: U mnie działa (i oznacza to, że nie zamierzam nic z niczym robić, bo działa)
SOA #2: U mnie też nie działa (i oznacza to, że nie zamierzam nic z tym, zrobić, bo jakby to wkurzało, to bym zrobił - nie wkurza, czyli priorytet: niższy niż bardzo niski, wyżej w priorytetach mam nawet dokarmianie kurczaków w FarmVille na Facebooku)
SOA #3: Nie da się (co jest skrótem na: "da się, ale mi się nie chce", tylko zwykle jest to za wysoki poziom abstrakcji, więc lepiej skwitować czymś prostszym, zwykle lądują z tą adnotacją wszelkie idiotyczne koncepcje jak zmiany ikonek, położeń przycisków itp. Przychodzą z księgowości i się pytają jaki związek ma ikona stolca z fakturami i chcą zmiany, a ja powiadam - z fakturami może żaden ale z ogólnym zarysem całego projektu Waszego działu - OGROMNY, a powyższym pytaniem mnie utwierdzają w tym przekonaniu, więc niech się zaczną przyzwyczajać do klikania w stolec na pulpicie :D jak wymyślą coś lepszego to na następny raz dam im ikonkę papieru toaletowego na pocieszenie :D )

Nie ma też sensu opowiadać nikomu co robię - strata czasu. Gada się tak:

Ktoś: słyszałem, że jesteś informatykiem
Ja: Noooo
Ktoś: i co robisz?
Ja: naprawiam komputery (wcale nie naprawiam, znaczy może bym mógł, ale rzadko się psują, a jak powiem, że jestem programistą, to posypie się cały ciąg pytań - po co mi to?)
Ktoś: ahaaa
Ja: (zmiana tematu)

Nie chwalę się też projektami, bo objaśnianie po co to jest doprowadza mnie do szału (nawet współpracownikom, jeśli nie rozumieją i nie są częścią projektu, a chcą zagaić, to niech startują od pogody, bo założeń projektowych nie będę tłumaczyć, jest dokumentacja, jak komuś się nudzi, to niech poćwiczy trudną sztukę czytania ze zrozumieniem). Tłumaczenie rzeczy (dla mnie) tak oczywistej jak krowi placek na łące urąga mojemu IQ :> Jak ktoś nie rozumie, to niech idzie nie rozumieć dalej gdzie indziej :] Czyjeś nierozumienie nie jest moim problemem - popieram aurel. W ostateczności jeśli zostaję podstawiony pod ścianą - albo tłumaczę prosto, ale bez świrowania z jakimiś kaczuszkami - nie będę przecież tłumaczyć że jak mam dwie kaczuszki (rekordy), jedną z piórkami, a drugą bez (różne typy danych) i obie wrzucę do młynka do mięcha (do jednej kolumny bazy), to mi wyjdzie pasztet z zawartością piór (czyli syf w bazie), albo ściemniam, byleby zbyć osobnika (ale jednocześnie nie skompromitować się, jeśli gość okaże się kumaty - trzeba to umieć).

Wszystko to oczywiście jeśli dany temat jest po prostu pozbawiony sensu, bo jeśli oczywiście ktoś mi przychodzi i zgłasza faktycznie realny problem albo rzuca mądry pomysł, to realizuję. Po prostu to ja ustalam kryterium mądrości, bo to ja mam jakąś tam wiedzę - chyba logiczne. Nie będzie mi jakiś cieć, co ledwo co umie uruchomić komputer mówić co i jak ja mam programować (choć sam też nie jestem jakiś szczególnie mocny, po prostu pewne rzeczy umiem, a czego nie umiem - wygoogluję, taki średniaczek). Nie to, żebym był jakiś szczególnie niemiły, ale nie można sobie dać wejść na głowę. Taki Dr House programowania - złośliwy, ale skuteczny.

Dodatkowo mam o tyle dobrze, że u mnie projekty są zwykle drobne - nie jakieś ogromne systemy, firma nie jest o profilu bezpośrednio programistycznym, pracujemy generalnie niezależnie, albo w malutkich teamach, gdzie sam sobie dobieram z kim robię, a wtedy dobieram kogoś, kto wiem, że ma realną wiedzę na dany temat i nie będę mu musiał wszystkiego objaśniać (albo przynajmniej lubi piwo i za każdą stratę czasu na objaśnienia postawi mi przynajmniej Kasztelana). Jakbym był freelancerem, to bym z takim podejściem chyba zdechł z głodu ;)

0

Jak rozmawiać z nieinformatykami o programowaniu?

wcale.

0

Chyba jedyna opcja to dawać analogię to świata rzeczywistego, tak jak to Koziołek opisał. Mi się ta opcja jednak nie podoba gdyż tak na prawdę takie analogie mają mało wspólnego z faktami.

0

Miałam jedną taką współlokatorkę. Zwała się Milena i była absolutnie nieinformatyczna. Co więcej, była osobą nie tylko starającą się być bardzo kobiecą i kokieteryjną, na domiar złego miała jakąś taką potrzebę "przylepiania się" do ludzi. Przesiadywała w moim pokoju non stop, niby że nie będzie przeszkadzać, a zagadując co chwilę, co ja tam właściwie robię. Widać jak ktoś siedzi przy kompie, to znaczy, że można do niego gadać i mu się tym nie przeszkadza. No więc pytała. Ja grzecznie odpowiadałam, po prostu, nie wdając się w szczegóły i zazwyczaj starając się to zwięźle przekazać, gdyż wbrew pozorom byłam zajęta.

To właśnie ona przekonała mnie, że z nie-informatykami lepiej nie gadać o informatyce. Przegięcie pały, kropla, która przelała czarę i spowodowała wybuch było pięciotryliobiliardonowe pytanie:
"A co to jest kompilacja...?"
Nie zdenerwowało mnie to pytanie za pierwszym razem. Ani nawet za drugim, czy dziesiątym. Milion razy tłumaczyłam. Mówiłam coś w stylu "przetłumaczenie języka programowania zrozumiałego dla człowieka, na taki język, żeby komputer rozumiał". No przyznacie, że nie jest to skomplikowana definicja...

A tymczasem, na imprezie gdzie wpadli do mnie koledzy informatycy/elektronicy i jeden prawnik (ale sercem na politechnice) i rozmawiamy o czym tam się rozmawia jak w towarzystwie same nerdy. I oczywiście Milena, która nic nie rozumie z naszych rozmów, pragnąc nawiązać kontakt bliższy z jakimkolwiek samcem, oczka przymruża, buzia w ciup i zapytuje:
"A co to jest kompilacja...?"

W odpowiedzi tym razem usłyszała: "A na c**** się pytasz?"

1 użytkowników online, w tym zalogowanych: 0, gości: 1