Wie halten Sie all diese Sprachen gerade im Kopf?


10

Ich kenne Java, C #, C ++. Ich habe Perl verwendet und nehme Python und Actionscript 3 auf.

Dies ist sicherlich ein Weg, den andere beschritten haben, also frage ich mich, wie Sie all diese Sprachen im Kopf behalten können.


14
Ich nicht. Ich benutze einen Debugger ;-)
PengOne

1
Übung macht den Meister. Sprachen verwenden im Allgemeinen die gleichen Informatikkonstrukte, sodass Sie sich einfach an syntaktische Unterschiede und Funktionsangebote erinnern müssen.

17
Editor mit Syntaxhervorhebung. weiter bearbeiten, bis sich die Farbe ändert ...
Thorsten Müller

2
Ich nicht. Ich benutze Google.
Job

1
@ John, geben Sie uns einige Beispiele für Dinge, die Sie sprachübergreifend verwirren oder vergessen (eingebaute Methodennamen? Operatorpriorität? Bibliotheken? Redewendungen?). Wie häufig wechseln Sie zwischen Sprachen (monatlich? Stündlich?)
smci

Antworten:


15

Ihr Gehirn erinnert sich nur an das, was es für wichtig hält, mit starker Neigung zur jüngsten Zeit. Also, drehen Sie einfach Haustierprojekte in diesen Sprachen und Sie werden in Ordnung sein. Genau wie bei gesprochenen Sprachen tun Sie es besser, wenn Sie: früh beginnen und Ihre Verwendung aktiv halten.


8

Früher habe ich ein 1-Blatt-Syntaxdiagramm im Eisenbahnstil sowie eine Kurzreferenz für jede Sprache an der Wand veröffentlicht, bis mein Gedächtnis ausreichend angekommen ist.

Ich muss das immer noch für alle Programmiersprachen tun, die ich seit vielen Monaten nicht mehr benutzt habe.


3
+1 für nicht alle, "Nun, wenn Sie ein echter Programmierer sind, werden Sie keine Probleme haben." Wenn Sie in genügend verschiedenen Sprachen programmieren, sind Syntaxreferenzen ein Muss.
Satanicpuppy

4
Könnten Sie bitte das "1-Blatt-Syntaxdiagramm im Eisenbahnstil plus Kurzreferenz" für C ++ veröffentlichen? Ich würde wirklich gerne so ein Biest sehen.
sbi

Oder eine für Perl. Das wäre ein Anblick.
Zhehao Mao

Wenn Sie mehr benötigen, als Sie auf eine Seite passen, sollten Sie diese Sprachfunktionen wahrscheinlich noch nicht verwenden, bis Sie sich besser an die Sprache erinnern.
hotpaw2

5

Haben Sie sich Spickzettel für die Sprachen und Bibliotheken angesehen, die Sie regelmäßig verwenden? Ich habe hier ein paar an meiner Wand, eines für VIM und eines für PL / SQL. Diese Website: http://devcheatsheet.com/ scheint viele Cheatsheets zu haben.

Ich schlage Spickzettel vor, weil es nur so viel gibt, an das sich das Gehirn leicht erinnern kann. Eine Sprache, die Sie täglich verwenden, wird sehr leicht zu merken sein. Syntax und später bestimmte Bibliotheken sowie Funktionen und Frameworks, wenn Sie sie häufig genug verwenden und in keinem Referenzmaterial nachschlagen müssen. Je weniger Sie etwas verwenden, desto schwieriger ist es, sich daran zu erinnern, obwohl Sie normalerweise in der Lage sind, Ihre früheren Fähigkeiten mit ein wenig Übung wiederzugewinnen. Deshalb habe ich ein paar Spickzettel an der Wand: Für die Funktionen / Features benutze ich nicht oft genug, um mich schnell zu erinnern.


3

Das menschliche Gehirn ist eine erstaunliche Sache. Wenn Sie jedes gut genug lernen, sollten Sie in der Lage sein, Code zu betrachten, die Sprache zu erkennen und ziemlich schnell wieder auf Hochtouren zu kommen. Es war noch nie ein Problem für mich ... aber es braucht Zeit, um wieder auf Touren zu kommen.


3

Ich habe kaum Probleme, Sprachen in meinem Kopf zu trennen, abgesehen von einigen Tippautomaten (z. B. das Unterdrücken des Zeilenende-Semikolons in Python oder VB).

Ich denke, das, was mir am meisten hilft, ist, dass ich jedes Mal, wenn ich eine Sprache lerne (Programmieren oder Mensch), versuche, die Kultur und das Ökosystem, in die sie eingebettet ist, aufzunehmen und anzunehmen. Ich wechsle nicht nur die Sprache, sondern auch die Denkweise (etwas in Anlehnung an die beliebte Metapher „Tragen des X-Hutes“).


+1 für folgende Konventionen für eine Sprache. Es kann verlockend sein, einfach jede Sprache mit demselben Stil zu codieren, aber das lässt sie für "Eingeborene" sehr "fremd" aussehen. Eines Tages wird ein "nativer" Programmierer unseren Code pflegen. Also müssen wir es so schreiben, dass es sich für sie natürlich anfühlt.
gMale

1
@gMale: Es geht nicht nur darum, nett zu anderen zu sein. Das Umarmen der Kultur einer Sprache ist auch notwendig, um ihr volles Potenzial auszuschöpfen. Eine Kultur wächst um eine Sprache herum, weil bestimmte Wege besser funktionieren als andere und sich in der Kultur verfestigen. Wenn Sie diese lernen, können Sie von den Fehlern anderer profitieren.
tdammers

1

Es hilft, dass alle Sprachen, die Sie erwähnen, relativ ähnlich sind (dh zwingend erforderlich sind).

Wenn Sie gerade lernen, diese Sprachen zu verwenden, sind sie sich alle sehr ähnlich. Sie haben im Grunde alle die gleichen Funktionen und alles, was Sie lernen, ist eine etwas andere Syntax.

Wenn Sie nun die Verwendung (nicht nur die Syntax) lernen, wird es viel schwieriger. Das Erlernen der Verwendung von Java wie einem Java-Programmierer ist für einen C ++ - Programmierer nicht so einfach (die Syntax ist einfach, die Verwendungssprachen sind schwierig).

Wenn Sie nun verschiedene Sprachstile aufgelistet hätten (deklarativ / funktional / logisch), wäre ich sympathischer. Da sich der Paradigmenwechsel zwischen den Sprachen vollständig ändert, wird es viel schwieriger.

Die Verwendung einer Sprache ist jedoch der Schlüssel. Wenn Sie jeden Tag eine Sprache verwenden, haben Sie kein Problem. Stoppen Sie die Verwendung einer Sprache und sie wird verblassen (zunächst nicht schnell). Aber je weiter die Sprache von der Sprache entfernt ist, die Sie täglich verwenden, desto schneller wird sie verblassen. Das Geheimnis besteht darin, weiterhin die Sprachen zu üben, die Sie mögen (hören Sie auf, diejenigen zu verwenden, die Sie nicht mögen. Ihr Gehirn schafft Platz für andere Dinge).


1

Dort kamen die IDEs zur Rettung ;-) In all diesen Sprachen ändert sich nur, dass es entweder ein "Wenn-Dann-Sonst" oder ein "Wenn-Sonst" gibt. Einige werden '(' haben und andere nicht. Es ist so einfach :)

Wir kümmern uns nur um die Logik und die am einfachsten lesbare Implementierung.


1

Ich nicht. Ich verwirre sie die ganze Zeit, deshalb habe ich eine Reihe von kompensierenden Verhaltensweisen und Werkzeugen ausgearbeitet.

  • Ich arbeite in den Codebasen großer Projekte, daher werde ich den Code um mich herum überprüfen.
  • Ich verwende einen Syntaxhervorhebungseditor (schnell, verwendet Perl elsif, elif oder sonst wenn? Ich erinnere mich nicht, aber der Editor wird mich auf dem Laufenden halten.)
  • Ich verwende die Sprachsprachen - wenn ich in C # codiere, verwende ich Lambdas, Linq und Var. Dadurch sieht es weniger nach Java aus als wenn ich nur Objekte und Klassen verwenden würde.
  • Ich verwende für jede Sprache eine andere Umgebung: C # -> Visual Studio, Java -> Eclipse, Perl -> Vim. Die verschiedenen visuellen Stile halten mich auf dem Laufenden.

0

Eine Möglichkeit wäre, für jede Sprache, in der Sie schreiben, einen eigenen Stil zu verwenden. In loser Analogie könnte man beim Sprechen von Spanisch oder Französisch versuchen, die Beugung eines Muttersprachlers nachzuahmen.

Ich habe Leute gesehen, die für jede Sprache eine eigene Klammer, Einrückung usw. beibehalten, damit ihr Gehirn beim Umschalten zwischen ihnen richtig "schalten" kann


0

Betrachten Sie es als Musik. Die Sprachen, die Sie lernen, sind nur verschiedene Instrumente in einem Orchester, die letztendlich die gleichen Noten produzieren. Sich daran zu erinnern, wie man die Instrumente spielt, erfordert Übung, aber irgendwann können Sie eines aufnehmen, das Sie seit einiger Zeit nicht mehr gespielt haben, und wie durch Zauberei fallen die Noten einfach zusammen. Wenn Sie Ihr Wissen über Musik (Programmierung) weiter erweitern, wird es jedes Mal einfacher, ein neues Instrument aufzunehmen und das Spielen zu lernen.

Käsige Analogie, aber am Ende des Tages macht Übung den Meister. Verbringen Sie ab und zu etwas Zeit mit jedem Instrument in diesem Orchester, damit Ihre Fähigkeit, die Noten zu spielen, nicht nachlässt.


0

Ich bin hauptsächlich ein PHP-Entwickler. Also vergib mir meine voreingenommene Meinung.

Ich habe kürzlich herausgefunden, wie ähnlich C-Code PHP ist (oder umgekehrt, je nachdem, wie Sie sich fühlen;))

Mein Vorschlag wäre, vielleicht bei einer Familie von Sprachen zu bleiben (wenn sie für Ihre Arbeit oder Projekte gelten) und wenn Sie Ihre Fähigkeiten weiterentwickeln, dann verzweigen Sie sich und lernen neue Dinge.


0

Ich benutze Javascript und HTML / CSS, hauptsächlich liebe ich C ++, wenn ich ein kleines Hilfstool für die Verwendung von QT brauche und ich VB und F # benutze. Manchmal weiß ich, dass es ein bisschen verrückt ist, aber wenn ich das Gefühl habe, dass ich eine Sprache von verliere Diese, besonders wenn sie eine andere Syntax haben (VB und F # und c ++ / Javascript), also bekomme ich meinen Bruder und sagte ihm, dass ich ihn unterrichten werde, dann fange ich einfach an, Beispiele von Grund auf neu zu machen, und wenn ich finde, dass ich mich nicht daran erinnere, wie ich genau vorgehen soll etwas (sobald ich vergessen habe, wie man es sonst in VB macht), google ich es einfach;


0

In letzter Zeit habe ich viel mit Google Codesearch gearbeitet . Ich gehe dorthin und tippe einen regulären Ausdruck ein, der lose beschreibt, was ich versuche, und finde Dutzende Beispiele für Produktionscode. Wenn ich die Syntax einer Sprache vergesse, ist dies der schnellste Weg für mich, Antworten zu erhalten.

Dieser Ansatz wird noch leistungsfähiger, wenn Sie mit regulären Ausdrücken gut umgehen können. Hinweis: Dies ist eine großartige Ressource, um Regex-Fähigkeiten aufzufrischen .


0

Eigentlich: Ich mache mir keine großen Sorgen darüber, explizit zu versuchen, irgendeine Struktur in meinem Kopf aufzubauen.

Dies unterscheidet sich nicht wesentlich von anderen Szenarien im täglichen Leben. Ich muss mich daran erinnern, wie man ein Auto fährt, wie man ein Buch liest, wie man Tennis spielt und so weiter. Vertraue einfach deinem Gehirn und denke nicht viel auf der Metalebene nach.

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.