In meinen wenigen Jahren als Programmierer habe ich mit allem gespielt, von Ruby bis C ++. Ich habe alles getan, angefangen beim Erlernen der grundlegenden Syntax (Ruby) bis hin zum Abschluss mehrerer wichtiger (für mich) Projekte, die meine Fähigkeiten in Bezug auf die Sprache erweitert haben. Wann kann ich angesichts dieser Vielfalt (und der Tatsache, dass das Lernen einer Sprache wirklich nie aufhört) sagen, dass ich eine Sprache kenne (oder gelernt habe)?
programming-languages
SomeKittens
quelle
quelle
Antworten:
Wann können Sie sagen, dass Sie eine Sprache wie Englisch oder Französisch "gelernt" haben? Ich denke, die meisten Leute würden akzeptieren, dass Sie eine Sprache gelernt haben, wenn Sie sie zur Kommunikation verwenden können. Sie müssen nicht jedes Wort kennen oder jedes Idiom verstehen, aber Sie sollten den größten Teil der (eher kleinen) Teilmenge der Sprache kennen, die die Leute im täglichen Gespräch verwenden. Wenn Sie eine Sprache in diesem Ausmaß "gelernt" haben, können Sie weiterhin mehr lernen, wenn Sie die Sprache täglich verwenden und sich immer mehr davon aussetzen. Wenn Sie sterben, werden Sie immer noch nicht alles wissen, was Sie über die Sprache wissen müssen, aber niemand wird sagen, dass Sie die Sprache nie "gelernt" haben.
So ist es, denke ich, mit Computersprachen. Sie können sagen, dass Sie eine Sprache wie C ++ oder Ruby "kennen", wenn Sie darin nützliche Programme schreiben können. Wenn Sie den Grad Ihrer Sprachkenntnisse quantifizieren müssen, verwenden Sie dieselben Begriffe wie für eine menschliche Sprache. Sagen Sie „Ich weiß ein wenig C ++“ oder „Ich weiß , Konversations C ++“ oder „Ich bin fließend in C ++“ bedeuten , dass Sie gerade genug kennen zu kratzen durch, genug, um nützliche Dinge zu erledigen, oder dass Sie ein Experte, beziehungsweise.
quelle
using
in C #. oderb, a = a, b
und Generatoren in Python. Andernfalls +1.Es kommt darauf an, wer fragt
Die Person, die mutmaßlich fragt, hat eine gewisse Vorstellung davon, welche Fähigkeiten von jemandem erwartet werden, der sagt, er habe "eine Sprache gelernt".
Grundsätzlich bin ich auf zwei archetypische Skalen gestoßen, nach denen die Leute die Antwort auf die Frage "Hast du X gelernt?"
Für die meisten Nerds ist es eine Trickfrage, Poser auszusortieren. Dies wird bereits durch die anderen Antworten auf Ihre Frage demonstriert;). Wenn Sie sagen, dass Sie es gelernt haben, können Sie den Umfang der Aufgabe, die implizit "Perfektion" ist, nicht erkennen. Schlimmer noch: Sie scheitern an Demut.
Für die meisten Bosse "haben Sie es gelernt", wenn Sie ihre Probleme lösen können , ein Kriterium, das häufig bereits erfüllt ist, wenn Ihr Code kompiliert wird. Die bescheidene Beantwortung seiner Frage führt dazu, dass er die Aufgabe einem Poser zuweist, der möglicherweise auch ein Verwandter ist.
Also, was ist dein Publikum?
quelle
Ich denke, die Leute konzentrieren sich auf die Endgültigkeit des Wortes "gelernt". Perfekt zu sein bedeutet, dass Sie mit dem Lernen fertig sind. Und wie jeder bemerkt hat, sind Programmiersprachen Lebewesen wie gesprochene Sprachen. Zum Beispiel würde sich jemand, der C # 2 vollständig beherrscht, C # 3 mit LINQ, Lambdas,
var
Schlüsselwörtern, Objekt- / Auflistungsinitialisierern und Erweiterungsmethoden ansehen und feststellen, dass sich viel von dem geändert hat, was er für die vorherige Version gelernt hat. Das gleiche geschieht mit C # 4 mitawait
,async
Schlüsselwort und anderen neuen Sprachkonstrukten.Und wir reden hier nur über Syntax. Wir vergessen, dass die meisten Sprachen mit einem Framework gepaart sind . C # hat das .NET Framework, Java hat sein eigenes Framework, ebenso wie Ruby, C ++, PHP und PERL. Stellen Sie sich den Rahmen für eine Sprache als das Vokabular vor und die Sprache selbst ist nur Syntax. Wenn Sie die Sprache kennen, wissen Sie, wie man einen Satz in der Sprache schreibt. Wenn Sie den Rahmen kennen, können Sie sich gut in der Sprache ausdrücken. Sobald Sie die Syntax und den Wortschatz kennen, müssen Sie die Redewendungen lernen, damit Sie als "Muttersprachler" Code schreiben können.
Ich würde sagen, es gibt verschiedene Lernstufen.
quelle
await
stammt aus C # 5, das wichtigste neue Ding in C # 4 wardynamic
.Man kann selten sagen, dass man eine Sprache gelernt hat. Das bedeutet, dass Sie damit fertig sind, was ... dumm ist.
Zu sagen, Sie wissen, dass eine Sprache in Ordnung ist, wenn Sie Code schreiben können, der nicht eklatant Redewendungen in der Sprache bricht (möglicherweise nach einer Woche des Entrostens des Wissens), ohne sich auf eine Syntaxreferenz zu beziehen.
quelle
Dies ist eher ein meinungsbasierter Faktor. In allen technischen Begriffen bedeutet "Gelernt", dass Sie über vollständige Kenntnisse der Sprache verfügen, wie Sie es von ALLEN anderen erwarten.
In der Welt des Programmierens geht es meiner Meinung nach mehr darum, ob Sie fließend in der Sprache programmieren können, um ein Ziel / eine Aufgabe zu erfüllen. Es bedeutet wahrscheinlich auch, dass Sie mit der Sprache vertraut sind. Sicher, Sie könnten nach Jahren des Studiums rausgehen und einen Abschluss machen, aber das ist nur zu bemerken? Sie definieren, wann Sie sagen können, dass Sie eine Sprache gelernt haben.
quelle
Wenn Sie anfangen, seine Mängel zu bemerken. Sobald Sie anfangen, eine Sprache zu lernen, sind Sie in der Regel noch damit beschäftigt, Dinge zu lernen oder sind viel damit beschäftigt, um zu bemerken, wo sie fehlschlägt (dies gilt natürlich nicht, wenn Sie es aus negativer Sicht lernen, nur um zu sehen, wie schlimmer es ist) ist im Vergleich zu Ihrer bisherigen Lieblingssprache). Ich würde sagen, dass Sie eine Sprache erst wirklich beherrschen, wenn Sie genau wissen, in welchen Bereichen sie versagt.
quelle
Meine persönliche Antwort darauf lautet:
Von da an würde ich es nicht als Lernen bezeichnen, sondern als Beherrschung.
quelle
Zu dem Zeitpunkt, an dem Ihre Anwendung oder Komponente E-Mails lesen kann, z. B. das Zawinski-Gesetz , in dem Folgendes festgelegt ist:
Dies wurde aktualisiert, als RSS zu "... kann RSS-Feeds lesen" wurde und in diesen Tagen möglicherweise zu "... kann Twitter-Feeds lesen" aktualisiert wurde. ;-)
quelle
Ich denke, Sie haben eine Sprache gelernt, wenn Sie sie nicht sehen. Sie sehen nicht die für Zyklen und Datenzugriffe, sondern den Workflow des Algorithmus.
Sie spielen keine Streiche mit Parameterübergabe und Array-Verarbeitung, magischen Makros. Sie verstehen Ihren Code nicht als Selbstmarketing-Material, das Sie Ihren Freunden und Lehrern zeigen, sondern als Ausdruck Ihres Verständnisses für ein Problem und Ihres Willens für den am besten lesbaren Weg zum Computer.
Sie haben Gewohnheiten, die Ihnen helfen, viele Fehler zu vermeiden, indem Sie sie einfach befolgen, wie: Verwenden Sie {} Codeblöcke und () in Ausdrücken, auch wenn Sie absolut sicher sind, dass "es nur eine Zeile sein wird" oder "Ich bin kein Narr und weiß Operator Rangfolge ".
Sie hören auf zu zählen, wie viele Klassen, Muster und Framework-APIs Sie kennen. Dafür gibt es Intellisense, die Referenzen und Tutorials sowie Google. Wenn Sie sich ein Problem ansehen, wissen Sie sofort, welche Teile es aufteilen kann und mit welchen Tools und Algorithmen Sie sie lösen.
Was Sie tun, funktioniert , ist elegant und klein . Sie genießen das Programmieren und finden Ihre Fehler leicht. Ja, Meister machen auch Fehler, weil sie Menschen sind - aber sie finden sie schnell, weil ihre Codestruktur sie an die richtige Stelle führt.
Und schließlich erkennen Sie: Sie haben gelernt, Probleme zu denken, zu analysieren und zu lösen; Im Vergleich dazu ist die eigentliche Sprache zweitrangig, lediglich die aktuelle Box mit Regeln und Tools.
quelle