Hat intelligentere Compiler, Sprachen und Frameworks macht stumme Programmierer? [geschlossen]

StackOverflow https://stackoverflow.com/questions/428571

  •  06-07-2019
  •  | 
  •  

Frage

Die mehr und mehr erweitert Compiler, Sprachen und Frameworks, dass wir entweder Aufgaben automatisieren, oder ausblenden bestimmte Feinheiten von uns, machen sie uns schließlich stumme Programmierer?

Jim C gibt die folgende Analogie eines Rechners:

  

Jede Quadratwurzel extrahiert in letzter Zeit,   von Papier und Bleistift? Wir benutzen ein   Rechner oder einfachen Aufruf einer Funktion   in unseren Lieblings-Programmiersprache.   Wie viele von uns wissen, was die   Rechner hat oder sogar die Funktion?

Also, warum wir nicht alle nur unsere Kinder sagen Lernen Mathematik zu vergessen, dass das, was wir haben Rechner für? Wäre das nicht von Natur aus unseren Kindern dümmer machen?

War es hilfreich?

Lösung

Sie machen keinen guten Programmierer dümmer, sie sie produktiver zu machen; aber sie machen dümmer Menschen in der Lage sein, zu programmieren und zu denken, sie sind große Programmierer.

Zur Verdeutlichung: Ich habe keine genaue Definition haben für dumm zu sein. Von stumm meine ich eine allgemeine Sache, die nicht wirklich Menschen, die Programmierer sein sollte oder versuchen, wichtige Dinge zu lernen. Ich habe viele Leute gesehen, die kann nicht wirklich Code und Sachen einfach kopieren von hier und dort. Software Qualitätsbeurteilung ist keine einfache Sache. Sie bauen schließlich eine crappy Software, die irgendwie funktioniert (wegen Existenz von guten Tools), so dass sie nicht verlieren ihre Arbeitsplätze und sie denken, dass sie gute Programmierer sind und daher sollte nie versuchen, etwas zu lernen. Glauben Sie mir, es ist eine Sache, die ich in jedem guten Entwickler gesehen habe: „Sie hören nie auf zu lernen, und sie gehen nicht nur das Stück Code zu lernen, die sie benötigen, um ihre Arbeit zu vervollständigen.“ Jene Leute, die ich darüber gesprochen, nie versuchen, etwas darüber hinaus zu erfahren, was sie brauchen und große Werkzeuge reduzieren dieses „Notwendigkeit“.

Das bedeutet nicht, IDEs schlecht sind. Ich liebe sie und denke, sie sollten so viel wie möglich entwickelt werden.

Andere Tipps

Ich denke, sie dümmer Programmierer erlauben, sie nicht dümmer Programmierer machen.

Sind die Landwirte dümmer, weil sie automatisierte Maschinen verwenden zu pflanzen, ernten und pflegen Kulturen?

Gute der Automatisierung von Aufgaben einfach macht Programmierer effektiver, nicht dümmer.

  

Also, warum wir nicht alle nur unsere Kinder sagen Lernen Mathematik zu vergessen, dass das, was wir haben Rechner für? Wäre das nicht von Natur aus unseren Kindern dümmer machen?

Ein Rechner ist ein Werkzeug, das Sie bestimmte Aufgaben ausführen kann. Sicher, dass Sie komplexe mathematische und mit mehrere Variablen Integration zu tun, aber ohne Mathematik zu lernen, wie würden Sie wissen, was Sie brauchen, diese Aufgabe zu einem bestimmten Zeitpunkt durchführen?

Das Gleiche gilt für die Programmierung und SDKs, können Sie in einem viel Schnickschnack mit vordefinierten Code werfen, aber wenn die Zeit kommt, dass Sie etwas schreiben müssen, ein Problem zu lösen, alle Werkzeuge und Automatisierung in der Welt gewonnen‘ t Hilfe, die Sie dort (AI ist nicht so fortgeschritten noch sowieso;)

.

Ein Durchschnitt , ja. :)

Sie machen keine wir stumme Programmierer. Was sie tun, ist es erlaubt, mehr stumm Programmierer zu sein (was ich nehme bedeutet, dass im Durchschnitt, sind wir dümmer.) Mit besseren Werkzeugen bedeutet, dass jemand mit wenig Erfahrung und ein schattigen Verständnis der Konzepte von CS noch Code Kurbel kann, dass schließlich arbeitet und tut etwas nützliches. Das ist nicht möglich, wenn bei der Montage zu schreiben, aber es ist, wenn das Schreiben in, sagen wir, VB. (Natürlich gibt es eine größere Chance, eventueller WTF-Stil Katastrophen, wenn eine weniger erfahrene Person große Anwendungen ist das Schreiben, die schließlich unter dem Gewicht ihrer schlechten Architektur kollabieren.)

Zugegeben, „dumme“ ist ein entzündliche Wort, das hier zu verwenden. Nur weil jemand kennt weniger macht sie nicht dumm, es bedeutet nur, sie sind weniger erfahren. Aber der Punkt verstanden wird.

Ich denke schnellere Maschinen machen Programmierer schlimmer .... in diesen Tagen die meisten Programmierer verbringen sehr wenig Zeit optimal Code zu schreiben. Compiler kann nicht schlecht Code in guten Code optimieren.

Fast Maschinen bedeuten, dass schlechte Programmierer mit schlechten Code wegkommen kann, weil niemand seine schlechten kennt. In den alten Tagen hatte Code an und raffiniert gearbeitet werden, damit es schnell genug tatsächlich in einer akzeptablen Art und Weise laufen würde zu arbeiten.

Tony

Nein,

Smart Compiler die Smart-Programmierer lassen auf die Dinge konzentrieren, die wirklich mater, wie gute Software zu entwerfen.

s/make/allow/

Als etwas weniger glib: Sie sind Werkzeuge. Extras nichts machen, und sie nicht Handwerker besser oder schlechter. Leistungsstarke Werkzeuge auch nicht -. Sie lediglich als Hebel wirken, eine besondere handwerkliche Kompetenz zu verstärken (oder deren Fehlen)

Einige Programmier-Tools haben die Wirkung der Senkung Eintrittsbarrieren, wenn nicht auf den Software-Engineering Beruf, dann zumindest zu bekommen eine App laufen haben. Verkürzen die Menge des Denkens, die in der Produktion ein Arbeits gehen (oder „Arbeiten“) App schneidet in beiden Richtungen: Kompetenter Fachleute aus scut Arbeit befreit wird und kann große Dinge tun, aber tasten Novizen werden manchmal schlechten Code in der Produktion, die sie bekommen nie wäre ohne die „intelligente“ Werkzeuge arbeiten bekommen haben. Der letztgenannte Effekt hatte wahrscheinlich einen größeren Einfluss als die ersteren bei der Gestaltung den Rufes von BASIC, VB, PHP, und der jüngsten Häufung von MVC Rapid-Entwicklungs-Frameworks für die Web - und zwar auf der Vorstellung solcher Werkzeuge im Allgemeinen

Mit dem smarter Sie bedeuten automatische . nicht jemand schlauer machen eine sich wiederholende Arbeit zu tun, so ist die Antwort nicht .

Lassen Sie mich mit dem Rechner Beispiel erweitern. Die Technik für eine Quadratwurzel mit Stift und Papier Berechnung ist lediglich ein Verfahren, das gelernt werden kann. Es macht dich nicht smarter um diesen Prozess zu wissen, ermöglicht es Ihnen nur Quadratwurzeln in Abwesenheit eines Rechners zu berechnen.

Wenn Sie nun entdeckt ein Algorithmus Quadratwurzeln zu berechnen, jetzt , die macht klug.

Das Gleiche gilt für unsere Programmiertools. Eine Sprache, die Speicherverwaltung für Sie tut nicht Sie dumm machen, noch die Speicherverwaltung zu tun in der Lage selbst macht Sie schlauer.

Es macht es einfacher für weniger erfahrene Programmierer das Feld eingeben, das ist alles. Es ist nicht ein guter Programmierer dümmer machen. Sie würden verstummen, wenn sie ignoriert Werkzeuge, die möglicherweise ihre Effizienz erhöhen könnte.

Computer verstärken Geräte. So stumm geworden stummer und intelligent schlauer geworden.

Nur wenn Sie erlauben, sie zu.

Wenn Sie gelernt, dich auf etwas Hartem und pingelig (wie mein Tandy 102 Laptop), denkt man noch in diesem Modus auch mit intelligenten Tool.

Sicher ist es einfach auf den Werkzeugen angewiesen Ihre Arbeit zu tun, und für viele, dass, ich bin dankbar.

Zum Beispiel, Sie lehren nicht die Menschen, wie mit Tischsägen und Bohrmaschinen tun Holzbearbeitung - Sie beginnen mit Handsägen und Erdbohrer oder kleine Handbohrmaschinen. Auf diese Weise, wenn Sie Elektrowerkzeuge bewegen, müssen Sie etwas tun, nicht dumm (tm).

auf dem Werkzeug Unter Berufung ist groß - aber zu wissen, wie es ohne das Werkzeug zu tun, ist wichtig, zu

.

Nein, aber es ist für eine bessere Programme und Code machen.

Ich würde sagen, die Fähigkeiten in höheren Sprachen unterschiedlich sind, müssen Sie viel mehr über Abstraktionen denken, gibt es eine Menge mehr APIs zu kümmern und die Menschen ein höheres Maß an Qualität in ihrer Software erwarten. Als Ergebnis der oben Programmierern stehen verschiedene Herausforderungen, und die Werkzeuge mit diesen Herausforderungen Schritt zu halten.

Sie müssen nicht dümmer Programmierer machen, aber sie können Programmierer faul machen. Ich habe mich dieses rauschen durch einige Code manchmal nur tun, gefunden und unter Berufung auf den Compiler, mir zu helfen, alle meine Fehler zu finden, anstatt sie direkt in erster Linie zu tun.

Übrigens ist dies nicht der empfohlene Weg, Dinge zu tun. Es dauert in der Regel viel länger.

Ok, die ersten beiden Computern ich besaß, baute ich mir. Das war klug dann, ich bin nicht so sicher, es wäre jetzt eine gute Nutzung meiner Zeit. Ich programmierte in einer Mischung aus Assembler und BASIC in den frühen 80er Jahren, wieder klug dann nicht so smart jetzt.

Was ich an hier bekommen, ist, dass der Kontext geändert hat, und in der Computerbranche haben wir hatten Tiefe knowldge für Breite knowldge auszutauschen, mit der notwendigen ‚Verdummung‘, die das mit sich bringt. Um die massive Komplexität und Breite der Anwendungen von ‚heutigen Computing‘ sind wir auch gezwungen, arbeiten bei vielen höheren Abstraktionsebene abgedeckt zu unterstützen. Auf der einen Seite sehen wir Domain-Anwendungsspezialisten stark abstrahierte Tools sehr gute Lösungen anbieten zu können, und auf der anderen Seite sehen wir Computertechnologie / Programmierung Experten hervorragende Code produzieren, die die Fähigkeit, die gesamte IT-Industrie nach vorne zu bringen hat. Der Aufruf jede Seite stumm ist entzündungshemmend, und wahrscheinlich das einzige stumm Bit in der Debatte.

In diesem Zusammenhang Verdummung nur ist damit ein größeres Publikum Verwendung der effektiven Tool macht die modernen Computer sind. Dies ist eine gute Sache, und harter Kern Programmierer nicht von ihm bedroht fühlen sollen, ist es doch ihr Baby.

Im Durchschnitt ja sie machen Programmierer dümmer. Aber das ist nur, weil sie die Programmierung mehr ansprechbar, um die Menschen, die nicht so schlau wie wir sind, was den Durchschnitt „smartness“ senkt.

: -)

Ein intelligenter Programmierer, die den Komfort der moderner Entwicklungsumgebungen prangert ist wahrscheinlich nicht wirklich alles, was smart.

Dümmer? Nicht unbedingt. Wie bereits gesagt wurde, intelligenter Werkzeuge, die ermöglicht dem Entwickler, sich auf wichtigere Dinge zu konzentrieren, wie die Herstellung, die Anwendung ordnungsgemäß funktionieren. Eine relevante Anekdote aus meiner eigenen Karriere:

Ich bin kein gelernter Mathematiker. Ich flunked aus pre-Kalkül (ok, zugegeben, es war, weil ich nie meine Hausaufgaben gemacht) und bin sogar ein wenig rostig auf einigen wirklich grundlegenden Formeln der Physik (Berechnung Reibung, zum Beispiel). Das ist, weil ich disparat aus der Übung bin, was einfach ist, weil ich es nie verwenden.

Nehmen wir zum Beispiel die Ableitung. Wenn Sie mich fragen die Ableitung einer Funktion zu finden, würde ich für meine TI-89 erreichen, weil ich nicht die fuzziest Ahnung, wie das zu tun. Aber - und ich behaupte, dass dies wichtiger ist - ich weiß, wie es zu benutzen. Ich weiß, wo es sinnvoll ist, warum es verwendet werden soll, usw. Das Punktprodukt ist ein weiteres Beispiel. Ich weiß, wie es verwenden, um die spiegelnde einer Oberfläche im 3D-Raum zu berechnen, aber ich weiß nicht, wie von Hand es zu berechnen, weil ich nie zu müssen.

Ich würde bezeichne mich nicht dümmer dafür. Aus der Praxis vielleicht, aber genauso in der Lage.

Nein, es ist etwas ähnlich wie Steroide (und andere leistungssteigernde Drogen) - sie einen großen Sportler noch besser zu machen, aber sie können nicht jemanden wie mich machen 100m unter 10s laufen, auch wenn ich eine ganze Apotheke von Drogen aßen. Also, Gott IDE, Sprache oder Rahmen können Sie einen besseren Programmierer machen, aber wenn Sie nur auf sie verlassen, um die Arbeit zu tun, sind Sie in Schwierigkeiten.

Ich glaube nicht, aber es gibt viele Menschen (sehr Weisen), die unterschiedliche denkt

Ich empfehle diesen Vortrag wirklich, es ist eine sehr interessante Meinung und sehr gut Essay

Das glaube ich nicht so. Ausgefeiltere Werkzeuge nur befreit unseren Geist auf interessantere Probleme konzentrieren.

Für diejenigen von uns, die gelernt haben, sagte Aufgaben zu tun oder erlernten um die Feinheiten in der Vergangenheit, ich glaube, es macht uns effizienter zu gestalten. Wir sind freier über andere / wichtigere Dinge zu kümmern. Wir können entweder neigen dazu zu vergessen, „wie schwer es war, damals“ oder beschweren sich, wie viel Glück neue Programmierer heute sind.

Für diejenigen von uns, die gerade erst anfangen, und nicht solche Details gelernt, ich glaube, es macht uns einfach eine andere Rasse. Nicht dümmer, nur, dass wir bei verschiedenen Problemen in anderem Licht sehen.

Es ist, senkt jedoch den Eintrag Hürde, und leisten damit besser zugänglich für die Massen zu programmieren. Ob das eine gute oder schlechte Sache ist fraglich.

Ja, aber es spielt keine Rolle. Jeder Extrakt eine Quadratwurzel in letzter Zeit durch die Verwendung von Papier und Bleistift? Wir verwenden einen Rechner oder einfachen Aufruf einer Funktion in unserer Lieblings-Programmiersprache. Wie viele von uns wissen, was der Rechner tut oder sogar die Funktion?

Sie sollten wissen, wie die Dinge funktionieren, desto besser Programmierer, oder irgendetwas anderes, Sie sein wollen, desto mehr sollten Sie wissen. Aber es gibt nur so viele Stunden am Tag.

Bessere Tools machen uns besser. Der Handel ausgeschaltet ist, verlieren wir wenig Kontrolle über den Prozess.

In einer Art und Weise

Zum Beispiel, ich weiß nicht, oder kümmern uns um, wie Betreiber Überlastungen zu schreiben, weil ich Werkzeuge, die sie für mich zu machen. Ich habe nicht einmal daran erinnern, wie P / aufrufe funktionieren, weil ein Werkzeug, das ich hätte ein C ++ DLL-Projekt automatisch erstellen, und ein [DllImport] in meiner C # -Projekt. Ich habe nicht einen Auto-Updater für mein Projekt zu schreiben, weil es ziemlich viel Clickonce ist. (Und ich habe keine Ahnung, wie es funktioniert ‚unter der Haube‘.)

Also ja, ich bin weniger klüger, weil ich keine Ahnung über eine Menge von Low-Level-Zeug haben, die C ++ Programmierer wissen. Aber immer noch glaube, ich mich auf der Seite der Sieger bin, weil ich mehr getan. Ich kann mehr Zeit auf Präsentation, Qualitätskontrolle, und diese Funktionen verbringen, die Kunden wirklich haben wollen. Auch graben tief in dem .NET-Framework ist etwas Lernen erfordert, so ist es ein bisschen ein Kompromiss.

Ich würde nicht sagen, dass sie Programmierer stummer unbedingt machen, aber was ich würde sagen, das ist. Für Menschen in der Entwicklung in der heutigen Tag und Alter ausgehend, haben keine volle Anerkennung für wie viel Zeug hinter den Kulissen vor sich geht, die für uns getan wird. Es gibt so viele Bibliotheken in diesen Tagen in den Plattformen gebaut, dass die Menschen heute haben kein Konzept ausgehend, wie das alles mit der Hand an einem Punkt oder einem anderen getan werden musste.

werde ich aber sagen, ich kann nie eine einzige Zeile Code ohne Intellisense zum Schreiben zurück:)

Ich denke, es ist notwendig, intelligente Werkzeuge zu haben, so dass wir Abstraktionsschichten von der Komplexität haben. Aber ich denke, dass wir in der Lage sein muss, den Zugang zu ändern müssen diese Schichten von Abstraktionen. Ich denke, dass die Programmierer produktiver sein wird, aber leicht die Vorstellung vieler Grundbegriffe verlieren. Es ist ein Trade-off ... Die guten Programmierer werden diejenigen sein, die die Grundlagen der Programmierung zu verstehen, fortzusetzen. Die anderen werden "copy-and-paste" 's und Lego-Player sein.

Im Gegenteil, intelligentere Compiler meinen Sie mit dem Computer weniger kämpfen und bekommen mehr Gedanken darüber zu geben, wie Sie versuchen, etwas zu tun.

Wenn Sie mit Assembler zu kämpfen haben werden Sie fast nie mit anonymen Methoden stören.

Ich würde sagen, nein.

Smarter programing Systeme (ich denke höhere Abstraktionsebene nicht Dinge wie Werkzeuge, die automatisch der Code beheben würden) IMNSHO sind tatsächlich schwieriger zu bedienen. Die Analogie, die ich mit gekommen sind, ist, dass sie als lange Hebel wirken; Sie drücken wirklich hart am kurzen Ende, es eine winzige Menge bewegen und große Veränderungen stattfinden.

Es ist schwieriger, herauszufinden, was getan werden muss, aber es ist auch viel schwieriger, es zu vermasseln, wenn man endlich das tun.

Smarter Sprachen, Compiler und Frameworks machen Programmierung möglich. Ich meine, könnte man den Zustand der Programmierung vorstellen, wenn wir noch mit Assemblersprache beschränkt waren? Heck, kratzen die. Könnten Sie den Zustand der Programmierung vorstellen, wenn wir auf C oder C ++ beschränkt waren?

Verbesserungen in Compiler, Sprachen und Frameworks machen Programmierer effektiver, vorausgesetzt, sie eine solide akademische Ausbildung oder gutes semantisches Verständnis haben.

Ich weiß, dass dies ein alter Thread ist aber nach wie vor möchte meine Meinung hier werfen ...

Sie machen uns dümmer, die meisten von Ihnen hier Menschen, die bereits reagieren wissen, wie in einer guten Art und Weise zu programmieren. Und warum? Ursache Sie kommen aus einer Zeit, die Gerüste wurden kaum genutzt.

Im Bildungssystem mehr und mehr Gerüste werden in Klassen verwendet, ... und in Klassen, in denen kein Rahmen verwendet wird, seine nicht-Programmierung starten ermutigend. Lernen Sie diesen Code ALL, während im Hinterkopf Sie wissen, dass es ein Werkzeug, das alles für Sie tut. Sie wissen, dass auf dem Gebiet / Workfloor Sie haben Frameworks zu verwenden, schnell zu gehen. Also, warum verbringen die ganze Zeit den Code zu lernen.

SO: Auf kurze Sicht, für alle bereits Sie Menschen die Sprachen zu wissen, nein ... es macht dich nicht dümmer

Auf lange Sicht .... finden Sie die Low-LVLD Programmierer besser geworden sehen und die guten Programmierer in lvl schlechter geworden.

an meine Worte!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top