Ich bin Anfänger in Python und es gefällt mir bisher sehr gut. Eine Frage, die mir sehr oft einfällt, ist, ob ich die Interna einer Programmiersprache (wie in meinem Fall Python) verstehen und daher lernen muss. Wie Sie vielleicht wissen, ist Python selbst in C geschrieben.
Meine Frage lautet also: Wie tief muss man in eine Programmiersprache eintauchen, um diese Sprache zu beherrschen oder fließend zu beherrschen? Ich vergleiche diese Frage mit "natürlichen" Sprachen. Ich kenne nicht jedes Detail der Grammatik in meiner Muttersprache, aber ich kann mich ohne Probleme in dieser Sprache ausdrücken. In diesem Moment spreche ich fließend eine Sprache. Gilt das auch für Programmiersprachen?
programming-languages
python
knowledge
Flo Schönfeld
quelle
quelle
Antworten:
Sie müssen nichts über die Interna einer Programmiersprache wissen , um Programme in dieser Sprache zu schreiben. Je besser Sie jedoch die Sprache verstehen, desto besser werden Ihre Programme.
Die Kenntnis von Datenstrukturen und Algorithmen hilft Ihnen bei der Auswahl der Datenstrukturen, die für Ihre spezielle Aufgabe am besten geeignet sind. Einige Sprachen besitzen diese Datenstrukturen intern.
Wenn Sie die "Kultur" der Sprache verstehen, können Sie Programme schreiben, die "Best Practices" folgen, damit sie leichter zu verstehen, besser zu warten und leistungsfähiger sind.
Das Schreiben eines Compilers für diese Sprache (oder eines Compilers für eine andere Sprache in dieser Sprache) kann Ihnen ein tiefes Verständnis der Sprache vermitteln und Ihre Programme über den Durchschnitt hinaus verbessern.
Wenn Sie andere Sprachen beherrschen (insbesondere solche eines anderen Paradigmas), sind Sie ein besserer Programmierer in Ihrer Primärsprache, da Sie diese Fähigkeiten und Werkzeuge in Ihre Primärsprache einbringen können.
Als Konsequenz müssen Sie nichts über Ihren Computer wissen, um Programme darauf zu schreiben. Wenn Sie jedoch wissen, wie Ihr Computer funktioniert, können Sie besser Programme dafür schreiben.
quelle
Einfach gesagt, ja. Solange Sie sich gut ausdrücken (und andere verstehen) können, werden Sie als fließend in der Sprache angesehen.
Das heißt, für manche Jobs reicht es nicht aus, einfach fließend zu sein. Bestimmte Arten von Autoren, Jobs, die vorbildliche Redefähigkeiten erfordern, und einige Akademiker, die sich auf die Sprache konzentrieren, müssen sie "besser als fließend" kennen. Ebenso erfordern einige Programmierspezialitäten Kenntnisse der Sprachinterna, aber für die meisten Leute ist es ausreichend, die Programmiersprache zu kennen, die der Frage nach ihrer Nummer entspricht oder einen Cheeseburger bestellt.
quelle
Ich würde "kompetent" mit einer Sprache definieren als:
Beachten Sie, dass die Funktionsweise der Sprache nicht auf dieser Liste steht, aber es gibt viel "Lernfähigkeit". Zumindest ein flüchtiges Verständnis der Interna kann hilfreich sein, ist aber nicht erforderlich, um kompetent zu sein. Es ist jedoch eine sehr gute Idee, genug über sie zu wissen, damit Sie alle Referenzen in der Dokumentation, die Sie lesen, verstehen können.
Beispiel: Ich weiß, dass sowohl VB.NET als auch C # in IL (Intermediate Language) von .NET kompiliert werden, das dann für das Zielframework kompiliert wird. Ich weiß nicht viel über IL, aber ich weiß genug, um es zu erkennen, wenn ich es sehe, und im Allgemeinen zu verstehen, wie es mit bestimmten Dingen umgeht. Ich betrachte mich als kompetent in C #, aber nicht in VB.NET, obwohl die "Interna" gleich sind und ich sie nicht tief verstehe.
quelle