Es scheint, dass man sich alle Arten von Syntax merken muss, um programmieren zu können. Wenn man kein gutes Gedächtnis hat, um sich Namen zu merken, wird es schwieriger, das Programmieren zu lernen?
Es scheint, dass man sich alle Arten von Syntax merken muss, um programmieren zu können. Wenn man kein gutes Gedächtnis hat, um sich Namen zu merken, wird es schwieriger, das Programmieren zu lernen?
Antworten:
Die Syntax einer Sprache ist nicht so schwer, wie Sie sich denken, wenn Sie sie täglich verwenden. Irgendwann wird es sehr einfach. Sich an all die verschiedenen Bibliotheksfunktionen zu erinnern, könnte sehr viel schwieriger sein und ich glaube nicht, dass sich die meisten Menschen mehr als die gebräuchlichsten merken können, aber das ist in Ordnung, wenn Sie Zugang zum Web haben, zu einem Buch oder zu etwas anderem, das " merkt sich "alle anderen Details für Sie.
Es scheint, dass man sich alle Arten von Syntax merken muss, um eine natürliche Sprache
programmierenzu können .Wenn man kein gutes Gedächtnis hat, um sich
Namenzu merken , wird es schwieriger sein, dasProgrammieren desSprechens zu lernen ?
Es kann doch nicht wahr sein, dass die Menschen eine "natürliche" Einrichtung mit Sprachen haben, oder?
Es kann unmöglich wahr sein, dass wir eine niedrige neuronale Hardware haben, nur um Sprachen zu erlernen, oder?
Die Programmierung verwendet künstliche Sprachen, die vielen Regeln der natürlichen Sprachen folgen.
Natürliche Sprachen sind etwas flexibler als Programmiersprachen.
Grammatik immer noch streng. regeln gibt es sehr welche aber
Wenn Sie sprechen können, können Sie das Programmieren lernen, ohne mehr zu merken, als Sie beim Sprechen gelernt haben.
Wenn Sie über Kurzzeitgedächtnis sprechen, dann ja . Ein Programmierer muss in der Lage sein, beim Programmieren / Lösen von Problemen mehrere Informationsbits gleichzeitig unter einen Hut zu bringen.
Wenn Sie über Langzeitgedächtnis sprechen, dann nicht wirklich. Es gibt viele Handbücher und Referenzen + Tools, die beim Abrufen von Informationen erheblich helfen können. Wenn Sie sich diese langfristigen Informationen merken, werden Sie (insgesamt) schneller zum Entwickler, dies ist jedoch keine Voraussetzung.
Ein gutes Gedächtnis ist absolut notwendig, aber nicht aus den offensichtlichen Gründen.
Das Merken von Details zu bestimmten Algorithmen, Bibliotheken, Variablennamen usw. ist sehr praktisch, aber nicht besonders wichtig. Sie verfügen über Google, DuckDuckGo, Manpages, sprachspezifische Dokumentationen und intelligente Editoren, die Sie bei all diesen Aufgaben unterstützen. Es hilft, wenn Sie sich nicht auf diese Krücken verlassen müssen, aber Sie kommen gut zurecht, wenn Sie sie von Zeit zu Zeit brauchen.
Wenn das Gedächtnis wichtig ist, müssen die Details Ihrer Arbeit im aktiven Kurzzeitgedächtnis aufbewahrt werden. Die Fähigkeit, das Design, den Datenfluss, die Algorithmen, die Datenstrukturen und deren Interaktion zu visualisieren, um das zu tun, was auch immer Ihr Produkt tut, unterscheidet den OK-Programmierer vom großartigen Programmierer. Wenn du es aktiv machst, hast du das Gefühl, dass du eine gigantische Anzahl von Bällen erfolgreich jonglierst, während du auf einem Einrad fährst.
Dies wird häufig als in der Zone befindlich bezeichnet . Unterbrechungen, dumme Fragen, Chefs, die TPS-Meldungen benötigen, bringen Sie aus dieser Zone.
Je besser Ihr Gedächtnis ist, desto einfacher ist es, in die Zone zu gelangen, desto einfacher ist es, dort zu bleiben und umso einfacher ist es, nach einer Unterbrechung wieder in die Zone zurückzukehren.
Wenn Sie Probleme mit dieser Art von Gedächtnis haben, empfehle ich Ihnen, Meditationstechniken und Gedächtnistricks zu lernen. Je einfacher Ihr Gedächtnis wird, desto größer ist der Erfolg, den Sie als Programmierer haben.
Ich gehe gegen den Strom und sage ja . Ein gutes Gedächtnis ist als Programmierer eine großartige Bereicherung. Mein Gedächtnis habe ich immer als Programmierhindernis gesehen, deshalb habe ich einige Tricks aufgegriffen, um mein Handicap zu kompensieren:
Sie sollten sich merken können, wie diese Variable (die Sie zuvor 3 Zeilen verwendet haben) geschrieben wurde. Wenn Sie nicht lernen können, Intellisense zu verwenden (oder was auch immer Ihre Form der automatischen Vervollständigung in Ihrem Editor oder Ihrer IDE ist).
Sie sollten sich schnell merken können, was Sie zuletzt an diesem Projekt getan haben. Dies könnte Tage her sein, es könnte kurz vor dem Mittagessen gewesen sein. Wenn Sie nicht können, lernen Sie, Dinge aufzuschreiben . Halten Sie ein Notizbuch an Ihrer Seite und schreiben Sie, was Sie getan haben (oder tun), Aufgaben und Dinge, an die Sie sich erinnern müssen, wie der aktuelle Code, an dem Sie arbeiten, zusammenpasst.
Debugging und Qualitätssicherung sind schwierig. Im Idealfall sollten Sie ein sehr detailliertes Notizbuch über die Schritte führen, die Sie beim Versuch unternommen haben, einen Fehler zu reproduzieren oder einen Fehler zu beheben. Dies ist etwas, von dem ich weiß, dass ich es tun sollte, aber immer noch damit zu kämpfen habe.
Hoffe das hilft!
Der Guerilla-Leitfaden zum Interviewen (Version 3.0) ist eine verbreitete Referenz, in der festgehalten wird, dass es bei der Programmierung darauf ankommt, schlau zu sein und Dinge zu erledigen. Smart beinhaltet einige Gedächtnisfähigkeiten, aber nicht unbedingt so viel, wie Sie vielleicht denken.
Intellisense kann bei der Syntax sehr hilfreich sein, wenn Sie auf dieser Seite Hilfe benötigen. Es ist wichtiger zu wissen, wie Sie lernen, damit Sie das Gelernte schnell und sinnvoll anwenden können, als in der Lage zu sein, triviale Fragen zu beantworten.
Ich glaube, das Erinnern von Namen ist eine andere kognitive Funktion als das Erinnern von Prozessen, die sich vom Erinnern von Vokabularen unterscheidet. Es gab Fälle von Menschen, die Hirnverletzungen erlitten haben, bei denen die Fähigkeit, sich Namen zu merken und ansonsten einwandfrei funktionieren zu können, vollständig beseitigt war.
Also würde ich sagen, dass die Fähigkeit, sich Namen zu merken, nichts mit dem Erlernen von Programmiersprachen zu tun hat.
Es wäre jedoch hilfreich, sich an logische Muster, Regeln und Vokabeln zu erinnern.
Nein. Die Speichertiefe von Tools (Intellisense, Google, Compiler, Codegeneratoren) ist im Vergleich zum menschlichen Gedächtnis unendlich. Ein Programmierer mit gutem Gedächtnis ist also nicht viel besser als einer mit einem Loch im Kopf.
Was Programmierer tatsächlich brauchen, ist die "Spitzengeschwindigkeit des Fokusgewinns", wenn sie zwischen Abstraktionsebenen wechseln. Je schneller Sie können, desto besser sind Sie als Programmierer. Einige haben eine Herzschlaggeschwindigkeit von 500 ms, mit dem Eintreffen der ersten Blutwelle zum Gehirn sind Sie fokussiert. Einige haben Fokussieruhr auf Räucherzyklus gerundet, ca. 2 Stunden. Einige brauchen Morgendusche, also ca. 24 Stunden. etc. Der Unterschied zwischen guten und schlechten Programmierern wurde vor 1: 80-fachen Jahren einmal deklariert, und die Lücke wächst nur.
Nein, Sie müssen nur verstehen, wie Google funktioniert, um das zu bekommen, was Sie wollen
Ich habe eine schreckliche Erinnerung, aber meine Googeln-Fähigkeiten sind fantastisch ^ _ ^
Im Ernst, solange Sie wissen, wo Sie die Syntax finden, müssen Sie sich nicht daran erinnern. Dafür gibt es Intellisense, Hilfedateien, Referenzhandbücher, das Internet usw.
Das Programmieren zu lernen ist für jeden schwierig. Ein gutes Gedächtnis zu haben hilft mir sicher. Engagement und die Liebe zum lebenslangen Lernen sind jedoch wertvoller. Das Erlernen der Syntax ist wie alles andere die Wiederholung.
Es gibt nichts Magisches oder Übermenschliches an der Fähigkeit zu programmieren. Verbringen Sie nur ungefähr 10.000 Stunden damit ... und Sie werden ein Meister wie jede andere Fähigkeit sein. Das sind natürlich 10.000 Stunden Training, nicht blind und geistesgestört, wenn man vergangene Fehler wiederholt.
Sie haben diesen Beitrag in englischer Sprache mit der richtigen Syntax verfasst. Sie können sich eindeutig daran erinnern, wie eine Sprache verwendet wird. Sie müssen lediglich eine neue Sprache lernen und diese so oft verwenden, dass Sie sie immer richtig verstehen. Im Gegensatz zu am Menschen orientierten Sprachen werden Sie bei Computerprogrammiersprachen immer informiert, wenn Sie eine falsche Syntax verwendet haben, sodass dies tatsächlich einfacher ist. :-)
Ich bin damit einverstanden, dass es eine Vielzahl von Dingen gibt, die ein durchschnittlicher Programmierer zur Erfüllung seiner Aufgaben wissen kann. Denken Sie nur an alle Wörter, Syntaxen und Techniken, die Sie zur Erstellung einer einfachen Website beherrschen sollten (am Frontend: html, css, Javascript (Sie können auch einige Js-Frameworks als jquery zählen), ajax, im Backend: Php oder ASP oder ASP.Net, und vergessen Sie nicht Datenbanken, mySql oder SqlServer oder Oracle oder MongoDB usw.). Es gibt eine riesige Liste von Sprachen, Paradigmen, Sintaxien, Mustern usw., es ist unmöglich, sich an alles von ihnen zu erinnern.
Was einen guten Programmierer ausmacht, ist das Üben, das Üben mit Algorithmen und nicht mit Sprachen, und mit der Zeit werden Sie sich an die Dinge erinnern, die Sie am häufigsten verwenden. Im übrigen gibt es immer google = P
Eine großartige Erinnerung kann in beide Richtungen führen.
Wenn Sie Dutzende von Informationen gleichzeitig in Ihrem Kopf unter einen Hut bringen können, fällt es Ihnen viel leichter, diesen schrecklichen Teil des Legacy-Codes zu verstehen (und hoffentlich neu zu schreiben), der für das Projekt kritisch, aber so kompliziert ist, dass alle anderen Angst haben es zu berühren.
Andererseits wurde dieser schreckliche Code, der für das Projekt kritisch, aber so kompliziert ist, dass alle anderen Angst haben, ihn zu berühren, wahrscheinlich von jemandem geschrieben, der die unglaubliche Fähigkeit besitzt, Dutzende von Informationen zu jonglieren. Wenn Sie ein großartiges Gedächtnis haben, arbeiten Sie besonders hart, um die Wertschätzung für die Eleganz der Einfachheit zu fördern.
Das Erlernen der Syntax einer Programmiersprache erfordert kein großes Gedächtnis. Wie andere gesagt haben, wird die Syntax in Ihrem Gedächtnis so sehr verstärkt, dass sie schnell zur zweiten Natur wird. Hast du jemals vergessen, auf welcher Straßenseite du fahren sollst? Welche arithmetischen Symbole stehen für Addition und Subtraktion? Wenn nicht, werden Sie die gebräuchlichsten Teile der Syntax Ihrer gewählten Sprache problemlos beherrschen und Sie können die weniger gebräuchlichen Bits nachschlagen, wenn sie angezeigt werden.
Einige Bibliotheken verfügen über Hunderte oder Tausende von Funktionen, Klassen und / oder Methoden. Es scheint für einen Außenstehenden eine unmögliche Aufgabe zu sein, den Umgang mit all diesen Funktionen zu erlernen. Aber der Bibliothek liegt fast immer eine gewisse Struktur zugrunde. Anstatt sich all diese Funktionen zu merken, versucht ein intelligenter Programmierer zu verstehen, wie die Bibliothek organisiert ist und was sie kann. Wenn dies erledigt ist, ist es normalerweise ziemlich einfach, die gewünschte Funktion zu finden, wenn Sie sie benötigen.
Kurz gesagt, das Gedächtnis ist weit weniger wichtig als das Verstehen.
Es hängt davon ab, ob. Innerhalb von Java und .NET befinden sich die Standardbibliotheken in einer Art Hierarchie und sind gut dokumentiert. Wenn Sie also wissen, dass Sie mit Netzwerken zu tun haben, gehen Sie in C # zu system.net und können von dort aus einen Drilldown zu den spezifischen Objekten / Aufrufen durchführen, die Sie benötigen. Aus diesem Grund müssen Sie sich die Details nicht merken.
In Ihrem eigenen Programm dreht sich alles darum, wie Sie Dinge organisieren / benennen. Wenn Sie Namen wie a $, b $, c $ ... oder g $ aus früheren Basic-Versionen verwenden, dann viel Glück. Wenn Sie Dinge so benennen, wie Sie es sich vorstellen, wie Vorname, Nachname, ist es viel einfacher. Viele Sprachen haben Namensstandards, die ebenfalls hilfreich sind. In Java gibt es beispielsweise eine Konvention von setX, getX zum Abrufen / Festlegen bestimmter Attribute einer Klasse sowie Großschreibungskonventionen. Wenn Sie also wissen, dass eine Person einen Vornamen hat, heißt dieser wahrscheinlich firstName und der Getter / Setter sind wahrscheinlich getFirstName und setFirstName ..... Diese Konventionen helfen also sehr ...
Auch kürzere Methoden / Funktionen helfen Ihnen dabei, weniger auf einmal im Kopf zu behalten. Die Verwendung von Eigennamen hilft Ihnen dabei, nicht nachsehen zu müssen. Wenn Sie beispielsweise die Aufgaben benennen, die sie ausführen, müssen Sie beim Lesen einer Prozedur, die getMaximumValue aufruft, getMaximumValue wahrscheinlich nicht lesen, um herauszufinden, was sie ausführen ... Da Funktionen / Methoden jedoch länger und verschachtelter werden, wird der Speicher besser Hilft auf jeden Fall.
Das Gedächtnis ist nicht so wichtig. Wenn Sie sich darüber Sorgen machen, vergesse ich morgens regelmäßig meine Brieftasche oder meine Schlüssel in meinem Haus. Ich rufe jeden mindestens einmal beim falschen Namen an (einschließlich meiner Familie und meiner Freundin). Ich vergesse einfach, die ganze Zeit Dinge im Haus zu tun.
Am Ende des Tages werden die Grundsätze der Programmierung immer noch in deinem Kopf sein, genauso wie "du vergisst nie, wie man Fahrrad fährt". Spezifische Details und Implementierungsdetails sind nicht so wichtig. Sie können diese immer googeln.
Von Joel On Software über die Produktivität eines Programmierers
Die Produktivität hängt davon ab, dass viele kleine Details berücksichtigt werden Kurzzeitgedächtnis unter einen Hut zu bringen.
Daher ist das Kurzzeitgedächtnis für einen Programmierer mit einer kritischen Aufgabe sehr wichtig.
Aber ich denke nicht, dass das Langzeitgedächtnis so wichtig ist.
Nach einem kurzen Durchlesen habe ich nicht gesehen, dass irgendjemand über das Gedächtnis im allgemeinen Sinne des Programmierens gesprochen hat, und nicht über eine einzelne Aufgabe, ein Programm zu schreiben.
Der Speicher ist für zwei Dinge nützlich:
Erinnerung an die grundlegende Semantik / Bibliotheken:
Dies wird leicht durch Wiederholung und Google ersetzt. IOW, die Menge an Speicher, mit der Sie geboren werden, muss lächerlich niedrig sein, um dieses Problem nicht bewältigen zu können.
Kontext in großen Programmen merken:
Hier liegt der Trick. Wenn die Programme größer werden (und Sie älter werden), hängen die Entscheidungen, die Sie treffen, vollständig von Ihrem Systemwissen und der Fähigkeit ab, es innerhalb von Millisekunden abzurufen, wenn es für Projektdiskussionen, Debugging, Reagieren auf betriebliche Notfälle usw. Wenn der Push kommt, wird Ihnen keine Menge an Dokumentation / Wiki-Einträgen helfen - Ihr Team- "Assistent" wird Ihre einzige Option sein. Dies ist einer der Gründe, warum Hauptingenieure so sehr geschätzt / bezahlt werden. Die meisten von ihnen verbringen möglicherweise nicht die ganze Zeit damit, tatsächlich zu diesem Zeitpunkt zu programmieren. Sie verbringen mehr Zeit damit, das gesamte Bild auf dem neuesten Stand zu halten und es auf Probleme / Verbesserungen anzuwenden. Die Guten bleiben einfach in Kontakt, indem sie hier und da eine Menge von CRs und Codierungsänderungen vornehmen / neuere Revisionen prototypisieren.
IOW, Sie können ein vernünftiger Programmierer mit der Nummer 1 alleine sein, aber wenn Sie jemals der nächste Linus sein werden, sollten Sie viel Gedächtnis haben, zumindest genug, um das zu lösende Problem zu erfassen.
Aus meinen Beobachtungen könnte ich sogar sagen, dass das Arbeitsgedächtnis fast direkt proportional zum Wert der Person ist.
Ein kleiner Disclaimer zum Abschluss: Wenn Sie über ein Eidetic-Gedächtnis verfügen, jedoch keine oder nur eine geringe intellektuelle Leistung in der Anwendung dieser Logik besitzen, sind Sie für ein Projekt nicht gut genug als für eine Kamera.
Wenn Sie Schwierigkeiten haben, sich an die Namen der Personen zu erinnern, denen Sie begegnen, können Sie dennoch ein großartiger Programmierer werden.
Ich vergesse ständig die Namen der Leute. Ich bin ein leitender Programmierer mit fast einem Jahrzehnt Erfahrung. In meinem Fall wird mein schreckliches auditives Gedächtnis durch ein großartiges visuelles Gedächtnis kompensiert.
Die Grundvoraussetzung für einen guten Programmierer ist jedoch die Fähigkeit zu abstrahieren. Egal, wie viel oder wie wenig Sie sich erinnern können, wenn Sie das Konzept einer Variablen nicht verstehen und wie Sie es in einem Programm verwenden können, werden Sie kein guter Programmierer.
Mein Vorschlag ist, dass Sie einen kurzen Kurs in Programmierung versuchen oder das Python-Tutorial abschließen, um zu sehen, wie es Ihnen gefällt.
Das sollte Ihnen eine gute Vorstellung davon geben, ob das Programmieren eine Karriere ist, an der Sie interessiert sein könnten.
Ich sage nachdrücklich JA!
Zur Zeit lerne ich JAVA & C #. Alle Tests sind geschlossene Bücher, für JAVA also 100% aus dem Speicher, der alle Anwendungen in Prüfungen codiert.
Außerdem wird es immer schwieriger. Ich bin an dem Punkt angelangt, an dem ich anfangen muss, Gedächtnistricks wie Mnemonics usw. zu verwenden.
Ich würde sagen, hoher IQ, gute Allgemeinkenntnisse, guter Wortschatz, Polymathismus, höhere Mathematikkenntnisse, Tippen und gutes Gedächtnis sind alles Vorteile für einen Programmierer.
Ich kenne sehr clevere Programmierer, die nicht mit der Schrift umgehen können oder höhere Mathematik usw. können. Sie haben es getan, sie könnten viel besser sein.