Wie kann man Nicht-Programmierern erklären, dass das Programmieren keine sich wiederholende Aufgabe ist? [geschlossen]

11

Einige Leute sind der Ansicht, dass es sich bei der Programmierung nur um wiederholtes Tippen auf einer Tastatur handelt. Nichts davon ist wahr. Zuallererst müssen Sie so viel mehr tun, als den Code tatsächlich einzugeben, z. B. die Designarchitektur und so weiter. Zweitens könnte es sich um eine sehr unterschiedliche, sich nicht wiederholende Aufgabe handeln, bei der ständig neue Herausforderungen auftauchen.

Wie sollten Sie erklären, dass das Programmieren für Nicht-Programmierer keine sich wiederholende Aufgabe ist ?

Anto
quelle
5
Fragen Sie, ist ihre Arbeit eine sich wiederholende Aufgabe? Wenn es ihnen schadet, kennen sie wahrscheinlich nicht die Freuden eines kreativen und abwechslungsreichen Berufs. Wenn nicht, sagen Sie, dass es genau das gleiche ist.
Mark Canlas
4
@ Mark Canlas: Guter Punkt. Welche Jobs haben diese Leute (im Hinblick auf das Programmieren als repetitive Eingabe)? Es besteht die Möglichkeit, dass Sie bei ihren täglichen Aufgaben auf oberflächliche Wiederholungen hinweisen und ihre Arbeit auf "sich wiederholende Dinge" reduzieren und sie dann bitten, zu erklären, wie dies nicht der Fall ist .
FrustratedWithFormsDesigner
14
Wenn es sich wiederholt, machst du es falsch.
1
Diese Aussage war allgemein gemeint. Viele Aufgaben werden falsch ausgeführt, wenn Sie immer wieder dasselbe tun. Nur Autoteile zusammenkleben? Entwerfen Sie einen Roboter, um dies zu tun (vorausgesetzt, Sie können es natürlich - wenn nicht, tut mir leid, dass Sie Ihren Job verlieren werden). Nur Roboterteile zusammenkleben? Baue einen Roboter, um die Roboter zu bauen;) Das ist im Grunde genommen Programmierung . Fügen Sie weitere Ebenen hinzu, um eine unendliche Wiederholbarkeit zu erzielen.
2
Angenommen, Fußball ist eine sich wiederholende Sportart (alle machen das Gleiche und treten den Ball).
Apoorv020

Antworten:

31

Geben Sie ihnen Beispiele, auf die sie sich beziehen können.

Tennis wiederholt sich. Sie schlagen den Ball einfach die ganze Zeit auf die andere Seite des Netzes.

Fußball wiederholt sich. Sie treten einfach jedes Mal den Ball, bis Sie einen Torpfosten finden.

Das Klavierspielen wiederholt sich. Sie bewegen Ihre Finger weiter auf dem Brett.

Verdammt, alles so langweilig !!!

Gofeddy
quelle
3
Tennis, Fußball und Klavierspielen sind langweilig, so wie es das Programmieren nicht ist. Bei all diesen Bestrebungen ist man wiederholt mit der gleichen Situation konfrontiert und muss das Gleiche tun. Wie andere Antworten bereits gezeigt haben, machen Sie es beim Programmieren falsch, wenn Sie zweimal in die gleiche Situation geraten.
Avi
1
@Avi in ​​der gleichen Richtung Programmierung ist in einer Weise langweilig, wie Tennis oder Klavier nicht, also ist es wirklich ein strittiges Argument.
Maurycy
18

Man kann immer sagen, dass das Programmieren sich wiederholendes Tippen ist, genauso wie das Schreiben von Prosa das wiederholte Tippen ist. Wird man einen großartigen (oder sogar mittelmäßigen) Roman schreiben, indem man sitzt und sorgfältig Briefe zusammensetzt?

scharfer Zahn
quelle
18

Nun, es ist in gewisser Weise. Sie geben immer wieder dieselben Buchstaben (AZ, az, 0-9) ein. Nur in verschiedenen Kombinationen.

Normalerweise versuche ich, solche Diskussionen mit solchen Menschen zu vermeiden.

Turm
quelle
1
@Rook - Guter Rat.
John Shaft
4
+1. Ich denke an einen schönen Vergleich zwischen Büchern und dem Alphabet . (Lose übersetzt in: Das Alphabet ist eine Sammlung von Buchstaben, die Bücher in Struktur und Inhalt übertrifft. Während in Büchern alle Buchstaben
verwechselt
1
Ich hoffe, dass Sie nicht allen Menschen aus dem Weg gehen, die Interesse an Ihnen haben.
3
@Rook: Es ist ein Segen, wenn jemand Fragen zur Programmierwelt stellt. Vermeiden Sie sie nicht. Sprich mit ihnen. So viel wie du kannst.
4
Ich versuche, Dinge durch Interpunktion zu verwechseln. AZ ist für mich nicht interessant genug.
MJB
13

Das Programmieren ähnelt der Musikkomposition . Das ist alles andere als ein sich wiederholender Prozess.

  • Sie beginnen über die Gesamtansicht dessen nachzudenken, was Sie erreichen müssen
  • Sie denken an einen kleinen Teil Ihrer Komposition und schreiben ihn
  • Sobald es fertig ist, spielen Sie es ab (F5 in Visual Studio)
  • Sie wiederholen den Vorgang nach Bedarf
  • Manchmal leihen Sie sich Ideen aus oder lassen sich von anderen Komponisten inspirieren
  • Manchmal überarbeiten Sie Ihren Song, indem Sie Teile verschieben oder überarbeiten

Manchmal weiß man nicht, was man will, und spielt herum. Wahrscheinlich der beste Weg, um die interessantesten Kompositionen zu erhalten ...


quelle
1
Haha ... +1 zum Spielen (F5 in Visual Studio). Wenn ich meiner Gitarre nur eine F5-Taste hinzufügen könnte ...
JasCav
3
-1 für Visual Studio;)
Jordanien
Pierre, obwohl ich Ihrer allgemeinen Reaktion auf das OP nicht widerspreche, stimme ich nicht zu, dass die Musikkomposition der Programmierung ähnlich ist. Die Komposition ist schwieriger - ich denke, ich habe es in diesem Beitrag ziemlich gut ausgedrückt: linkedin.com/…
azheglov
1
@azheglov: schwerer basierend auf was? Jeder kann komponieren. Jetzt werden nur sehr wenige auf MTV sein, wie nur sehr wenige von uns von CNN interviewt werden
Selbst wenn beispielsweise das Komponieren von Musik "schwieriger" ist, lassen sich die Probleme in der CS-Skala kompensieren: Jede Codezeile ist möglicherweise einfacher zu schreiben als eine einzelne Notiz. Daher haben wir Projekte mit buchstäblich Millionen (wenn nicht mehr) Codezeilen. Selbst wenn jede atomare Aktion einfacher ist, wird von den besten Programmierern einfach erwartet, dass sie schwierigere Probleme lösen.
Tikhon Jelvis
4

Normalerweise erkläre ich, dass Programmieren eine kreative Problemlösung ist. Sie haben ein Problem - Sie möchten eine Funktion in einem Produkt (und ich wähle normalerweise ein bekanntes Produkt aus, Amazon.com, MS Word usw.), und es ist nicht vorhanden. Es wurde noch nie zuvor gemacht und du bist der Erste. Das ist also wie bei jedem Kunstprojekt - du hast eine Vision, aber du musst einen Weg finden.

Ich konzentriere mich auch auf die Tatsache, dass es mehr als einen Weg gibt, das Problem zu lösen, eine Reihe wirklich schlechter Wege und wahrscheinlich mehr als einen guten Weg. Auf lange Sicht mag es einen besten Weg geben, aber dieser beste Weg wird für lange Zeit nicht offensichtlich sein (Erweiterbarkeit, Wiederverwendbarkeit usw.), so dass es zum Zeitpunkt der Entwicklung viele wichtige Entscheidungen gibt.

Schließlich kann das Endprodukt vom Empfänger geliebt oder gehasst werden. So wie manche Leute Picasso lieben und manche keine Köpfe oder Schwänze aus moderner Kunst machen können - manche mögen ein Feature lieben und manche hassen es vielleicht. Sie tun für die meisten Menschen das Beste, was Sie können, und denken, Sie können nicht allen gefallen.

Konzentrieren auf:

  • Neuland
  • niemand antwortet
  • vorbehaltlich der Auslegung

Zeigt, dass diese Arbeit viel mehr wie Kunst ist und viel weniger wie sich wiederholende langweilige Arbeit.

Ich spreche ziemlich oft mit Künstlern darüber (und sie scheinen instinktiv zu glauben, dass Computerarbeit unkreativ ist. Normalerweise kann ich es auch schaffen, sie mit der Lieblingskunstform des Künstlers in Verbindung zu bringen. Auf einer bestimmten Ebene sind die meisten Künstler auch Techniker - Malerei , tanzen, musizieren und wahrscheinlich jede andere Kunst - alle beinhalten eine Reihe sich wiederholender Aktivitäten, die Sie an den Punkt bringen, an dem etwas Neues, Anderes und Kreatives ausgeführt wird. Auf diese Weise haben die Künstler im Allgemeinen Probleme zu leugnen, dass scheinbar sich wiederholende Aktivitäten führen können zu Werken der Inspiration und Schönheit.

An diesem Punkt sind sie normalerweise bereit zuzugeben, dass nur weil meine "Kunst" eine Reihe bizarr aussehender Syntaxanweisungen und langweilig aussehender UML-Diagramme beinhaltet, dies nicht bedeutet, dass es in diesen Codezeilen und nicht kreativ ist Modelle des Systems machen schließlich etwas ganz anderes als die Summe seiner Teile.

bethlakshmi
quelle
2
Da ich selbst Künstler bin, mag ich diesen Vergleich. Es wird für die meisten Künstler aller Art und für diejenigen, die sich auf künstlerische Aktivitäten beziehen können, Sinn machen. (Ich bin nicht sicher über Nicht-Künstler.)
DarenW
3

Beim Programmieren geht es um Abstraktionen. Je mehr Sie schreiben, desto mehr Ähnlichkeiten können Sie sehen. Aber dann ist es Zeit zu abstrahieren. Durch das Refactoring entsteht ein Framework, das Doppelarbeit beseitigt. Dies reduziert die Komplexität des Problemdomänencodes.

Wiederholte Programmierung ist möglich. Aber es ist ineffizient.

Witek
quelle
+1 Wenn sich das Codieren sehr wiederholt, ist dies ein Zeichen dafür, dass Sie vielleicht "es falsch machen!"
FrustratedWithFormsDesigner
3

Wenn es wirklich so wäre, würden wir einfach Kopieren und Einfügen verwenden: D.

Eine der wichtigsten Herausforderungen bei der Programmierung besteht darin, Bausteine ​​von hoher Qualität so zu gestalten, dass Sie

  • Sie können sie verwenden, um Ihr Gebäude (dh die Software, die Sie erstellen) aus festen Komponenten aufzubauen und so die Stabilität zu erhöhen
  • Sie können sie mehrmals im selben Gebäude oder sogar in verschiedenen Gebäuden wiederverwenden (um Wiederholungen zu reduzieren) und so Ihre Produktivität steigern
  • Sie können einen Block ändern, ohne dass Ihr gesamtes Gebäude einstürzt, wodurch die lokale Flexibilität erhöht wird
  • wird in der Lage sein, alle Instanzen eines Blocks gleichzeitig zu ändern, wodurch die globale Flexibilität erhöht wird

Diese Herausforderung verlangt von Natur aus, dass Sie sich nicht wiederholen .

Als Konsequenz: Wenn Sie sich als Programmierer wiederholen, verschwenden Sie Zeit mit dem Erstellen von Software, die weder stabil noch flexibel ist.

back2dos
quelle
1

Abgesehen von den anderen Antworten, die darauf hinweisen, wie oberflächlich das Wiederholen oder Tippen / Klicken ist, können Sie auch darauf hinweisen, dass es beim Programmieren normalerweise viel mehr um Problemlösung als um Tippen geht (und ich denke, es war Djikstra, der sagte, Informatik sei so Vieles über Computer als Astronomie dreht sich um Teleskope - oder ähnliches ).

Das Tippen ist nur eine Möglichkeit, die Lösung zu implementieren (und derzeit die beliebteste). Es gibt jedoch auch andere Möglichkeiten, z.

  • Pseudocode auf einer weißen Tafel (die die Lösung veranschaulicht, aber leider nicht ausgeführt oder ausgeführt wird)
  • Lochkarten (jetzt als veraltet angesehen)
  • Vielleicht programmierbare Logik-Arrays oder wenn Sie möchten, dass Ihre Lösung direkt in Hardware implementiert wird (obwohl es höchstwahrscheinlich einige Eingaben geben wird, um die Lösung von Ihrem Gehirn zur PLA zu bringen, weiß ich nicht, wie häufig es ist, diese zu "codieren" Dinge direkt - ich arbeite nicht wirklich mit ihnen, kenne sie nur von anderen, die es tun).
  • Leute (Ich habe kürzlich von einer Gruppe gehört, die Sortieralgorithmen als Tanz implementiert hat)
  • Felsen in einer Wüste . ;)
FrustratedWithFormsDesigner
quelle
0

Ein Großteil des Programmiervorgangs ist das Tippen. Beim Malen wird mit einem Pinsel gestreichelt, aber das Aufrufen von Wiederholungen ist ziemlich oberflächlich.

Würden sie diese Logik anwenden auf: - Verkäufer sprechen viel am Telefon. - Manager gehen zu vielen Besprechungen. - Sänger singen einfach. - Schauspieler wiederholen Skripte.

Wenn ja, sind sie deshalb kein Programmierer.

JeffO
quelle
-2

Wenn Sie gut programmieren möchten, wiederholt sich dies, aber das Gleiche gilt für alles. Wiederholung ist das Herzstück der Beherrschung jeder Fähigkeit.

John Shaft
quelle
-2

Nun, Programmierung kann wirklich eine sich ziemlich wiederholende Aufgabe sein. Insbesondere wenn die Infrastruktur aufgebaut wurde, beginnt der langweilige Prozess, immer wieder dieselbe Dialog- / Geschäftssoftware (nur geringfügig unterschiedlich) zu erstellen. Sie haben Glück, wenn Sie nicht teilnehmen müssen, um die Fristen einzuhalten, oder wenn Sie genug Junioren haben, um diese Art von Arbeit zu erledigen.

Falke
quelle
1
Kommt darauf an, welche Art von Arbeit du machst, denke ich
Anto