Wie teilt man sein Handwerk mit Nicht-Programmierern?


43

Manchmal fühle ich mich wie ein Musiker, der keine Live-Shows spielen kann. Programmieren ist eine ziemlich coole Fähigkeit und eine sehr weite Welt, aber vieles geschieht "außerhalb der Kamera" - in Ihrem Kopf, in Ihrem Büro, fern von Zuschauern.

Sie können natürlich mit anderen Programmierern über das Programmieren sprechen, und es gibt Peer-Programmierung, und Sie müssen etwas erstellen, das Sie den Leuten zeigen können, aber wenn es darum geht, Nicht-Programmierern zu erklären, was Sie tun oder wie es war Ihr Tag bei der Arbeit, es ist irgendwie schwierig.

Wie bringen Sie die Nicht-Programmierer in Ihrem Leben dazu, zu verstehen, was Sie tun?

ANMERKUNG: Dies ist keine Wiederholung davon, Nicht-Programmierer zum Verständnis des Entwicklungsprozesses zu bewegen , da es bei dieser Frage um das Verwalten der Kundenerwartungen ging.


Das ist die Natur des Berufs: Es gibt nur wenige konkrete Belohnungen für Ihre Bemühungen, weil Sie der einzige sind, der versteht, was Sie tun. Wissen und Geld lohnen sich jedoch für die meisten.
Niemand


12
Seien Sie froh, dass Sie aus Sicherheitsgründen nichts schreiben. Sicherheit ist noch weniger nachweisbar als alles andere. "Sehen Sie, es macht dasselbe wie zuvor, nur dass es jetzt sicher ist ..."
Shawn D.

2
Kann mir jemand erklären, in welche Kategorie diese Frage in der programmers.stackexchange.com/faq
Noname

1
@ Dave es passt zu der Kategorie von Fragen, die gepostet wurden, als die Site noch in der Beta war, wenn der Speicher mir recht gibt. Die Regeln waren damals noch nicht vollständig ausgefeilt.
EpsilonVector

Antworten:


31

Drei Wörter:

dumb it down

Die Programmierung ist komplex. Es erfordert viel Arbeit, um es zu verstehen. Und die Freude am Programmieren ist noch subtiler.

Damit ich meine Erfolge und solche anderen (dh meiner Familie) mitteilen kann, muss ich auf einer allgemeineren Ebene kommunizieren. Vergleichen Sie die Programmierung mit normalen realen Dingen.

(dh ein Objekt zu einem Auto mit einem Armaturenbrett und Sitzen und ....)

Es ist sogar besser, wenn Sie etwas über Ihr Publikum wissen, weil Sie Dinge verwenden können, die es versteht und die komplexer sind als normale alltägliche Konzepte.

Zum Beispiel war meine Frau Schullehrerin, daher kann ich einige meiner Softwareentwicklungsprozesse mit Lehrprozessen vergleichen, die sie anwenden musste. Es hilft immens.

Aber am Ende musst du noch etwas vereinfachen, vereinfachen und vereinfachen. Und selbst dann ist es schwer zu verstehen, wie cool eine gut gemachte Klasse mit guten Unit-Tests ist. :)


25
+1 für "Und selbst dann ist es schwierig, jemanden dazu zu bringen, zu verstehen, wie cool eine gut gestaltete Klasse mit einem guten Einheitentest ist." Es fällt mir schwer, einige Programmierer dazu zu bringen, das zu verstehen.
CaffGeek

3
Ich bin ein Fan von schlechten Analogien, um esoterische Konzepte zu erklären.
Malachi

49

Ich versuche es nicht einmal. Wenn sie nicht technikorientiert genug sind, um zumindest ein grundlegendes Verständnis der Programmierung zu haben, werde ich sie nur mit den Details langweilen. Normalerweise arbeite ich nur mit etwas sehr Hochwertigem wie "Ich erstelle Websites" oder "Ich schreibe Computerprogramme für X".


13
+1 - Ich benutze diese Methode die ganze Zeit. Wenn ich wirklich möchte, dass sie wissen, wie mein Tag verlaufen ist, werfe ich ein paar Begriffe auf sie und beobachte, wie dieser glasige Ausdruck ihre Augen übersteigt. Dann wechselt jemand das Thema.
Joel Etherton

7
Ich habe festgestellt, dass die Leute dazu neigen, das Thema zu wechseln, sobald ich Computer erwähne. Entweder das oder sie beschweren sich über ihren Computer und bitten um Rat. Ich denke, Ärzte haben das gleiche Problem.
Brian Ortiz

3
@ Brian außer die meisten Ärzte beheben Probleme, anstatt neue Systeme zu bauen;)
Armand

2
Ja. Die einfachste Antwort ist "Ich erstelle Sachen ... genauer gesagt erstelle ich ein Echtzeit-Clustersystem für ..." - und hier sind sie weg ...
Sorantis

Das ist was ich mache. Dann warte ich auf die 5 Sekunden des Schweigens und sage "Annnnnd, da ist der Gesprächskiller im Weg. Also, was machst du?"
pdr

12

Ich versuche es mit der Lösung eines Problems zu erklären. Ich benutze einfach ein Computerprogramm, um das Problem zu lösen. Auf diese Weise können Sie diskutieren, was Sie in Bezug auf das zu lösende Problem getan haben. Sobald sie das verstanden haben, ist der Sprung zur Lösung durch Programmierung nicht sehr weit und kann normalerweise von Nicht-Technikern gemacht werden.


12

Ich ließ mich von meinem Bruder Rob danach fragen. (Er ist ein Künstler und Illustrator, wie Kinderbücher, Museumsinterieurs, solche Sachen.)

Ich versuchte es zu erklären, indem ich ihm Harry Porters Relay Computer zeigte , weil ich denke, dass er die Essenz von Computern und Programmierung auf eine Art und Weise einfängt, die sich gut anfühlt.

Das war nicht das, was er wollte, und ich war ein bisschen verblüfft.

Erst später wurde mir klar, was das eigentliche Problem war. Ich wurde an dieses Oscar Wilde-Zitat erinnert:

Tatsache ist, dass die Zivilisation Sklaven braucht. Die Griechen waren genau dort. Wenn es keine Sklaven gibt, die die hässliche, schreckliche, uninteressante Arbeit verrichten können, werden Kultur und Kontemplation fast unmöglich. Die menschliche Sklaverei ist falsch, unsicher und demoralisierend. Von der mechanischen Sklaverei, von der Sklaverei der Maschine hängt die Zukunft der Welt ab.

Was mich als Ingenieur begeistert, ist, dass ich mechanische Sklaven baue. Als Kind wollte ich einen Damm in den Bach stecken und ein Wasserrad mit Strom versorgen, damit es etwas für mich tun konnte , während ich nur zusah. Im Motor eines Autos befindet sich eine Nockenwelle. Es ist eigentlich ein primitives Programm. Es öffnet und schließt die Ventile , wenn ich es will , damit ich es nicht tun müssen.

Die Welt eines Künstlers ist völlig anders. Wenn Sie mit geschlossenen Augen einer Wiedergabe von Beethovens 9. Symphonie zuhören, werden Sie transportiert. Sie müssen ihm Ihre volle Aufmerksamkeit schenken, und wenn es fertig ist, sehnen Sie sich danach. Wenn Sie das Meisterwerkhaus Falling Water von Frank LLoyd Wright besuchen, werden Sie transportiert. Ich weiß ehrlich gesagt nicht, wie jemand darin leben könnte. Wo können Sie ein Chaos machen? Es fängt dich vollständig ein. Es ist eine architektonische Symphonie.

Kunst tut nichts für dich, sie tut etwas für dich.

Ich habe versucht, die Kunst in dem zu finden, was ich tue. Wenn man hinschaut, ist es schön, aber man muss hinschauen. Das hätte uns verbunden.


3
Ich habe gelesen, dass als Harry Potters Relay Computer anfangs oft Magie verwendet wird, um zu beschreiben, was wir natürlich auch tun;)
jk.

@jk: Ich wette, dass allein Studenten in seine Klassen bringt :)
Mike Dunlavey

@jk. Meistens sehe ich schwarze Magie in unseren Werken.
Heishe

7

Eine Geschichte erzählen. Konzentrieren Sie sich nicht auf das, was Sie tun, sondern darauf, wie Sie sich dabei fühlen, wie leidenschaftlich oder gelangweilt Sie diesbezüglich sind, auf die Beziehungen zu Ihren Mitarbeitern.


1
+1 für die Konzentration auf die Beziehungen zu Mitarbeitern. Jeder kann sich auf so etwas beziehen. "Ich bin mit dem Chef zum Mittagessen gegangen und er hat gesagt ..." ist weitaus nachvollziehbarer als "Ich habe den halben Tag damit verbracht, die Rennbedingungen zu beseitigen"
Andy Hunt,

3

Meine zwei Analogien zu diesem Zweck sind: ein Rezept und eine massive Bürokratie. Das habe ich in dieser Qualitätssicherung erklärt: 30 Minuten, um einem 15-Jährigen die Programmierung zu erklären

Ich habe die Rezeptanalogie viele Male verwendet, um zu erklären, wie es beim Programmieren darum geht, strenge Anweisungen zu schreiben, die bei Befolgung ein greifbares und vorhersehbares Ergebnis haben.

Ich habe die Bürokratieanalogie tatsächlich nur ein paar Mal verwendet, weil die meisten Leute nicht wirklich über die Rezeptanalogie hinaus verstehen müssen, aber beide Male waren für die Person sehr aufschlussreich. Sie schienen zu glauben, Programmierung bedeute den vollständigen Abruf jeder Codezeile (z. B. "Aber wenn Sie so einen beschissenen Speicher haben, wie können Sie dann einen Computer programmieren?"), Aber es geht wirklich darum, viele in sich geschlossene Module zu erstellen, die zusammenarbeiten um das größere Ziel zu erreichen. Die Module eines Programms sind wie die Abteilungen in einem großen Unternehmen: eigenständige Einheiten, die sich hauptsächlich mit ihrem eigenen Teil des Ganzen befassen und über Memos mit anderen Abteilungen kommunizieren.


Jemand sagte, dass sie mechanische Sklaven bauten. Nach einem weiteren Kundenproblem habe ich das Gefühl, dass wir die Sklaven sind und dass wir mechanische Dystopien entwickeln, mit denen wir leben können.
gbjbaanb

2

Ich glaube, ich bekomme die meisten Antworten, wenn ich etwas mit der Idee hinter dem Code erkläre, anstatt mit dem Code selbst. Ich streife nur den gesamten Fachjargon heraus, vermeide es, programmbezogene Begriffe zu erwähnen, und spreche nur über die Idee und darüber, was tatsächlich getan wird .

Ich habe zum Beispiel kürzlich versucht zu erklären, wie ein Spamfilter funktioniert. Ich habe nur gesagt, dass es Aufzeichnungen der Wörter enthält, die normalerweise in Spam gefunden werden, und der Wörter, die nicht in Spam gefunden werden. Der Datensatz wird mit bekannten Spam- und Nicht-Spam-Mails erstellt. Wenn danach eine neue E-Mail eingeht, überprüfen wir nur, wie viele der Wörter dort spammig aussehen (dh in unserem Datensatz von spammigen Wörtern vorkommen) und wie viele nicht spammig aussehen. Wenn es zu viele Spam-Wörter gibt, handelt es sich wahrscheinlich um Spam, der in den Spam-Papierkorb verschoben wird. Die Nicht-Tech-Leute, mit denen ich gesprochen habe, folgten der Idee ziemlich gut.


1

Metaphern

Oft beschreibe ich es gar nicht als Programm, sondern versuche es als ein völlig anderes Konzept mit ähnlichen Zusammenhängen darzustellen.

Es macht die Visualisierung des Programms viel interessanter und manchmal hilft es mir, es in einem neuen Licht zu betrachten.

Sie beschreiben Elektrizität nicht jemandem, der noch nie damit gearbeitet hat, indem Sie über Strom und Spannungen sprechen, oder? Außerdem macht es Spaß, einige Konzepte so zu beschreiben, als ob ein ultrabewusster Computerprozess sie wie durch Zauberei geschehen lässt. Eine kleine Geschichte Phantasie verletzt sie nicht als die Realität, wie kalt und rational Computer wirklich sind.


1

Ich habe eine ähnliche Frage ausführlicher beantwortet , aber das Wesentliche ist: "Programmieren ist wie das Bauen einer Fabrik oder eines Fließbands."


1

Viele Leute, die nicht programmiert haben, scheinen zu glauben, dass ein Programmierer viel Zeit damit verbringt, mühsam nach Fehlern zu suchen und visuell Tausende von Codezeilen nach einem fehlerhaften Komma zu durchsuchen. Deshalb versichere ich ihnen zunächst, dass dies nicht der Fall ist, und wenn es so wäre, wäre ich völlig hoffnungslos.

Ich vergleiche Computerprogrammierung oft mit dem Schreiben eines Kochbuchs. Ein Kochbuch ist eine Reihe von Anweisungen für Personen, während ein Computerprogramm eine Reihe von Anweisungen für einen Computer ist. Einige Programme sind viel komplexer als Kochbücher, und Programme werden häufiger geändert, aber die Struktur weist einige Ähnlichkeiten auf. Wenn ein Kochbuch sieben Kopien der Anweisungen für die Zubereitung einer Sauce enthält und das Rezept geändert werden muss, muss jemand alle diese Kopien finden und sie alle reparieren.


Es wäre eine schmerzhafte Welt, in der Sie Ihren Computer nicht programmieren könnten, um die Programmierung zu vereinfachen ("visuelles Suchen ... nach einem fehlerhaften Komma").
Compman

1

Ich denke, eine gute Analogie ist der Bau einer Fabrik. Die meisten Leute haben so etwas wie "How it's Made" gesehen, bei dem ein Gegenstand durch verschiedene Förderbänder und Maschinen geschleust wird und am Ende hoffentlich ein fertiges Produkt herauskommt. Ich sage den Leuten, dass ich solche Dinge baue, aber anstatt physische Fabriken zu sein, die an physischen Gegenständen arbeiten, sind sie virtuell und arbeiten an Daten. Natürlich ist dies keine gute Analogie für jede Art von Programmierung, aber ich denke, wenn man einen guten Überblick über die Komplexität gibt und viele Arten von Anwendungen parallel ausführt.


0

Sie können Ihr Handwerk nicht wirklich teilen - nur Schlagzeilen über Ihren Job mit anderen

Was Sie jedoch tun können, anstatt Ihr Handwerk zu teilen, ist, Ihr Leben mit Menschen zu teilen, die sich in demselben Handwerk wie Sie befinden (:


0

Normalerweise spreche ich nicht darüber, wie es gemacht wird, sondern über die Besonderheiten der Arbeit .

Normalerweise betone ich, dass es unglaublich kompliziert ist, so kompliziert, dass niemand hoffen kann, genau zu verstehen, was gerade vor sich geht. Es würde wahrscheinlich 30 Jahre dauern, die verschiedenen interagierenden Teile (Elektronik durch Frameworks) zuzüglich einer Stunde pro aktiver Codezeile zu studieren, und zu diesem Zeitpunkt müssten Sie wieder studieren, da sich die Hardware so stark verändert hätte es sind weitere 10 Jahre vergangen, bis die neueste Version veröffentlicht wurde.

Der andere wichtige Aspekt ist, wie lohnend es sein kann, etwas so Flexibles zu schaffen, dass Tausende, vielleicht Millionen von Menschen damit ihr Leben bereichern können, etwas Einzigartiges (zumindest im Detail) und etwas, von dem Sie viel gelernt haben.

Wenn mir zu diesem Zeitpunkt noch niemand die Socken in den Mund gestopft hat, würde ich gerne eine Anwendung demonstrieren und ein wenig von der damit verbundenen Komplexität und Flexibilität zeigen.


0

Ich sage ihnen, dass neben dem Schreiben von Symphonien und mathematischen Thesen und Romanen die Programmierung die einzige Chance ist, sich mit Aufgaben / Strukturen dieser Komplexität und Komplexität auseinanderzusetzen. Das heißt natürlich nicht, dass eine anständige Web-App ein historisches Meisterstück ist, aber wenn die Leute einmal merken, dass Sie jeden Tag Ihren Verstand auf einer solchen Ebene einsetzen können, dann bekommen sie es. Viele Jobs sind würdig und hochbezahlt, lassen sich jedoch auf eine relativ einfache, prozessuale Aufgabe zurückführen, die immer wieder wiederholt wird.

Zumindest sehe ich das so. Ich könnte falsch liegen.


0

Anders als bei den anderen 15 Antworten ...

Anstatt die Details meiner Arbeit zu erklären (Programmierung), versuche ich mich auf die Lösungen zu konzentrieren , die die Arbeit löst, dh welche Probleme lösen die Systeme / Software, die ich erstelle, tatsächlich für den Benutzer. Dies ist normalerweise keine Programmierdomäne, es sei denn, Sie schreiben einen Compiler oder ähnliches. In diesem Fall müssen Sie erklären, warum dies nützlich ist.

Auf diese Weise können die Menschen leichter verstehen, dass es sich um eine komplexe Natur handelt und wie sie sich auf die "reale Welt" bezieht.

Als Analogie, als mittelalterlicher Schmied, würde ich (der Dame in der örtlichen Taverne) wahrscheinlich erklären, dass ich Schwerter mache, um den Feind in Stücke zu hacken, und nicht, wie ich Stahl mit einem bestimmten Winkel und einer bestimmten Kraft hämmere (es sei denn) Sie Fragen). Sie würde hoffentlich verstehen, dass das Zerhacken eines Feindes nützlich ist (...) und schwierig sein kann (Mangel an Stahl, gepanzerten Gegnern, rauchigen Arbeitsplätzen usw.), und Sie dadurch eine gewisse Wertschätzung für die Ausführung einer komplexen Aufgabe erhalten.

(Das Gießen von Ambossen ist also gleichbedeutend mit dem Erstellen von Compilern, und Sie müssen erklären, wofür sie verwendet werden ...)


0

Ich vergleiche es mit dem Hausbau, wenn wir in einem seltsamen Universum mit exotischen Teilchen und Anti-Zeit leben:

Sie haben eine Idee für ein wirklich cooles Haus, also erstellen Sie eine grobe Skizze, wie es aussehen wird, und Sie haben einen allgemeinen Plan, wie Sie vorgehen sollen. Du gehst zum Baumarkt und kaufst Holz, um die Wände zu bauen, aber sie fallen immer wieder um, weil der Boden uneben ist. Sie kaufen also Zement, um das Fundament zu legen, aber der Zement trocknet nicht und Sie können nicht herausfinden, warum. Du gehst zurück zum Baumarkt und fragst warum, aber der Angestellte wird katatonisch. Sie gehen zu 8 verschiedenen Baumärkten, bis einer Ihnen mitteilt, dass der von Ihnen verwendete Zement im Herbst 1989 entwickelt wurde, Sie Ihr Grundstück jedoch im Winter 1989 gekauft haben, damit sie nicht kompatibel sind, und er verkauft Ihnen den neuesten Zement 2013.1.1. Sie gehen zurück, um das Fundament zu legen, und sobald Sie dies tun, verschwindet der Zement. Dieses Mal gehen alle Mitarbeiter katatonisch, Sie googeln also in Ihr Haus und stellen fest, dass es einst ein Atomteststandort war. Dann googeln Sie die Auswirkungen von Atomtests auf den Boden und stellen fest, dass sie freie Radikale verursachen. Sie googeln das und fangen an, elektromagnetische Strahlung zu erforschen, dann Fermionen, dann Boson, dann Stringtheorie und etwas über eine Katze. Du willst nicht aufgeben, weil du so viel Zeit verschwendet hast, also triffst du hart auf die Flasche. Du kommst spät nach Hause und machst deiner Frau einen Strich durch die Rechnung und behauptest, sie sei der Grund, warum du das Haus nicht bauen kannst, weil sie und die Kinder deine ganze Zeit in Anspruch nehmen ... Ungefähr drei Monate später stellst du fest, dass du von hier weg bist und etwas über eine Katze. Du willst nicht aufgeben, weil du so viel Zeit verschwendet hast, also triffst du hart auf die Flasche. Du kommst spät nach Hause und machst deiner Frau einen Strich durch die Rechnung und behauptest, sie sei der Grund, warum du das Haus nicht bauen kannst, weil sie und die Kinder deine ganze Zeit in Anspruch nehmen ... Ungefähr drei Monate später stellst du fest, dass du von hier weg bist und etwas über eine Katze. Du willst nicht aufgeben, weil du so viel Zeit verschwendet hast, also triffst du hart auf die Flasche. Du kommst spät nach Hause und machst deiner Frau einen Strich durch die Rechnung und behauptest, sie sei der Grund, warum du das Haus nicht bauen kannst, weil sie und die Kinder deine ganze Zeit in Anspruch nehmen ... Ungefähr drei Monate später stellst du fest, dass du von hier weg bistbeinahe das Haus fertiggestellt, um nicht einmal zu wissen, warum Sie das Haus überhaupt bauen wollten.


-1

Ich sage ihnen nur, dass ich mir anschaue, was sie für ihre Arbeit tun, und Computersoftware erstelle, die ihre Arbeit erleichtert.


oder ersetzen Sie ihren Job, oh nein !!!
jhocking

-2

Wie einige von Ihnen sagten, verwenden Sie Analogien, die für sie sinnvoll sind. Ich versuche immer, Google irgendwie einzubinden, wenn mein Code etwas googleähnliches macht oder die finanziellen Vorteile zeigt oder wie dies den Leuten irgendwie hilft ...


-2

Ich gebe manchmal auf und sage nur, ich verbringe meinen Tag damit, Textdateien zu bearbeiten. Welches ist in der Regel wahr, wenn nicht die ganze Geschichte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.