To magia!
Kiedy ludzie bez wiedzy technicznej pytają, co to znaczy pisać oprogramowanie / programy / zajmować się inżynierią oprogramowania, mówię im, czym tak naprawdę jest: magia. Magowie rzucają zaklęcia w ezoterycznym języku, aby wykonywać określone zadania, machają różdżkami i dzieje się coś magicznego. Wdaję pewne zaklęcia w ezoteryczny język, poruszam myszką i dzieje się coś magicznego (jeśli o to chodzi).
Jeśli nie są przekonani, poprosiłem ich, aby włączyli swój smartfon i powiedzieli mi, jak wszystko działa. Zwykle mówią: „Nie wiem, po prostu to robi. Naciskam przyciski i coś się dzieje”. Następnie mówię im: „Tak, dokładnie, ale wiem, co się naprawdę dzieje, i to w zasadzie to samo, co Harry Potter macha różdżką i mówi:„ Hocus pocus ”„ Dla wszystkich intencji i celów, dla laika, ja myślę, że jest to całkowicie uzasadnione wytłumaczenie.
Prawie wszyscy wiedzą, kim jest Harry Potter, co robi i co czyni go wyjątkowym (przynajmniej że jest magikiem i może robić potężne rzeczy za pomocą magii). Możesz po prostu wyjaśnić, że czasami magicy muszą pisać swoje zaklęcia w nowym języku, aby ich magia była jeszcze potężniejsza, co nie jest tak dalekie od prawdy. Możesz po prostu powiedzieć im, że studiujesz proces tworzenia potężniejszych ksiąg czarów, aby pomóc pokoleniu jeszcze potężniejszych czarodziejów, którzy mogą tworzyć jeszcze większą magię na swoich ulubionych urządzeniach konsumenckich. Wszyscy to doceniają.
Epicka porażka
Jeśli to się nie powiedzie, wracam do przykładu przepisu, ponieważ niejednorodność rozwiązań przynajmniej uczy ludzi, że istnieje więcej niż jeden sposób na skórowanie kota (lub upiec ciasto), a to jest część tego, co sprawia, że programowanie jest tak zdradliwy. Pomaga również postawić osobę w pozycji procesora i czasami postępować zgodnie z instrukcjami, których może nie rozumieć (większość ludzi prawdopodobnie nie zna różnicy między sodą do pieczenia a proszkiem do pieczenia i dlaczego przepis miałby taki czy inny).
Dead Ends
Nie lubię używać matematyki jako przykładu, ponieważ aby robić matematykę, musisz zrozumieć, po co są kroki. Nie możesz wiele zrobić z matematyki, postępując zgodnie z instrukcjami na ślepo (cóż, możesz, ale zwykle nie tak uczą się ludzie). Nie podoba mi się sortowanie jako przykład, ponieważ jest to zbyt techniczne dla laika. Jeśli rozmawiam z kimś, kto może docenić przykład sortowania, prawdopodobnie ma już pojęcie o programowaniu i prawdopodobnie sam go wypróbował.