Es ist Magie!
Wenn Leute ohne technischen Hintergrund fragen, was es bedeutet, Software / Programme / Software-Engineering zu schreiben, sage ich ihnen einfach, was es wirklich ist: Magie. Zauberkünstler zaubern Zauber in einer esoterischen Sprache, um bestimmte Aufgaben auszuführen. Sie schwenken ihre Zauberstäbe und etwas Magisches passiert. Ich beschwöre bestimmte Zaubersprüche in einer esoterischen Sprache, ich wackle mit der Maus und etwas Magisches passiert (soweit es sie betrifft).
Wenn sie nicht überzeugt sind, habe ich sie gebeten, ihr Smartphone einzuschalten und mir zu sagen, wie etwas wirklich funktioniert. Sie sagen normalerweise: "Ich weiß nicht, es tut es einfach. Ich drücke Knöpfe und es passiert etwas." Dann sage ich ihnen: "Ja, genau, aber ich weiß, was wirklich los ist, und es ist im Grunde dasselbe wie Harry Potter, der seinen Zauberstab schwenkt und sagt: 'Hokuspokus'." In jeder Hinsicht, dem Laien, ich Ich denke, das ist eine absolut legitime Erklärung.
Fast jeder weiß, wer Harry Potter ist, was er tut und was ihn besonders macht (zumindest, dass er ein Magier ist und mächtige Dinge mit Magie tun kann). Sie können einfach erklären, dass Magier manchmal ihre Zauber in einer neuen Sprache schreiben müssen, um ihre Magie noch mächtiger zu machen, was nicht wirklich so weit von der Wahrheit entfernt ist. Sie können ihnen nur sagen, dass Sie den Prozess des Erstellens leistungsfähigerer Zauberbücher studieren, um einer Generation noch leistungsfähigerer Zauberer zu helfen, die noch mehr Magie auf ihren bevorzugten Endgeräten erzeugen können. Jeder weiß das zu schätzen.
Epic Fail
Wenn dies fehlschlägt, greife ich auf das Rezeptbeispiel zurück, da die Uneinheitlichkeit der Lösungen den Menschen zumindest lehrt, dass es mehr als eine Möglichkeit gibt, eine Katze zu häuten (oder einen Kuchen zu backen), und dies ist ein Teil dessen, was das Programmieren so macht knifflig. Es hilft auch, die Person in die Lage zu versetzen, die CPU zu sein, und manchmal Anweisungen zu befolgen, die sie möglicherweise nicht verstehen (die meisten Leute kennen wahrscheinlich nicht den Unterschied zwischen Backpulver und Backpulver und wissen nicht, warum ein Rezept das eine oder das andere hat).
Sackgassen
Ich mag es nicht, Mathe als Beispiel zu verwenden, denn um Mathe zu machen, muss man verstehen, wofür die Schritte sind. Man kann nicht viel rechnen, indem man Anweisungen blind befolgt (na ja, das kann man, aber so lernen Menschen es normalerweise nicht). Ich mag das Sortieren nicht als Beispiel, weil es für den Laien zu technisch ist, um es zu würdigen. Wenn ich mit jemandem spreche, der das Sortierbeispiel zu schätzen weiß, hat er wahrscheinlich bereits eine Vorstellung davon, worum es beim Programmieren geht, und hat es wahrscheinlich selbst ausprobiert.