Was ist, wie aus dem Titel hervorgeht, der Unterschied in der jahrelangen Erfahrung in einer bestimmten Sprache in Bezug auf Entwickler? Wenn beispielsweise ein Entwickler fünf Jahre mit Sprache A und der andere Entwickler zwei Jahre mit Sprache B gearbeitet hat, gefolgt von drei Jahren mit Sprache A, gibt es dann einen erkennbaren Unterschied zwischen ihnen?
9
Es hängt davon ab, ob.
Ich habe einen Freund, der dazu neigt, sich an eine Sprache zu halten. Wenn Sie ihn also als "Programmierer A" betrachten, hat er fünfmal 1 Jahr Erfahrung mit dieser Sprache.
Mit verschiedenen Sprachen können Sie verschiedene Dinge tun. Ein Aufsatz, den ich besonders mag, heißt " Beating the Averages " von Paul Graham. Darin versucht er, die Leute davon zu überzeugen, Lisp zu lernen, aber er macht auch einige sehr nützliche Punkte:
Im Allgemeinen ist mein Rat, mehr als eine Sprache zu lernen und die Stärken und Schwächen der Sprachen zu lernen.
quelle
Natürlich hat der Entwickler, der über mehrjährige Erfahrung in einer Sprache verfügt, ein besseres Verständnis für die Kernbibliotheken und Besonderheiten dieser Sprache. Wenn die Sprachen dasselbe Paradigma annehmen (Imperativ vs. Funktional), sollten sie keine größeren Probleme haben, diese Sprache zu lernen, als diese zu lernen.
Meine größte Schwierigkeit beim Erlernen einer neuen Sprache bestand darin, von C # zu Erlang zu wechseln, da dies nicht nur eine neue Syntax darstellte, sondern auch eine neue Art, über das Programmieren nachzudenken.
quelle
Folgendes würde ich erwarten / hoffen:
quelle
Sprachen sind nicht das Problem. Sie können in ein paar Tagen eine ganze Sprache lernen. Was länger dauert, sind die Konventionen, APIs und verschiedene Frameworks von Drittanbietern. Wenn Leute nach fünf Jahren X fragen, interessiert sie die Sprache nicht, sie wollen jemanden, der viel Erfahrung darin hat, Probleme in und mit dieser Sprache zu lösen, damit sie für keine der Lernkurven bezahlen müssen.
quelle
Fachwissen und bewusste Praxis.
Wenn Sie nicht absichtlich üben, werden Sie kein Fachwissen erwerben. (Sie müssen Ihre Fehler untersuchen und korrigieren, üben, worin Sie schwach sind, und ein Experte, der Ihnen sagt, was Sie falsch machen, hilft auch.)
Wenn Sie nicht versuchen, sich zu verbessern, können Sie für immer ein Neuling sein!
Nach zehntausend Stunden bewusster Übung erreichen Sie Fachwissen. (Diese Erkenntnis aus der allgemeinen und beruflichen Bildung ist im ganzen Netz verbreitet.)
Wenn Ihr Programmierer A nicht absichtlich geübt hat, werden sie nie besser.
Wenn Ihr Programmierer B nicht absichtlich geübt hat, werden sie nie besser.
Eine andere Erkenntnis aus derselben Forschung: Wenn ich 15000 Stunden habe und du 10000 hast und ich weiter übe und du auch, wirst du niemals besser sein als ich.
Wenn Sie zwei Sprachen kennen, wird B wahrscheinlich ein besserer Programmierer (vorbehaltlich der Übungsregeln).
quelle
Und Sie verwenden sie für Sprache A, nehme ich an? (Natürlich würde es einen Unterschied in Sprache B geben.)
Dies hängt teilweise von den Unterschieden zwischen A und B ab (insbesondere wenn wir die Erfahrung des zweiten Entwicklers mit A verkürzen). Wenn sie sich ziemlich ähnlich sind, gibt es im Wesentlichen keinen Unterschied in der Erfahrung. Wenn A erheblich unterschiedliche Konzepte hat, reichen drei Jahre wahrscheinlich noch aus, um sie zu lernen. Bei einer sehr großen Bibliothek und komplizierten Tools kann es einen Unterschied zwischen drei und fünf Jahren geben.
Am wichtigsten ist hier natürlich der Einzelne. Ein guter Entwickler kann in drei Jahren eine neue Plattform gründlich erlernen, daher sollte dies kein Problem sein.
quelle
Ich würde zustimmen, dass Sprache Sprache ist und Konzepte Konzepte sind.
Mein Problem ist, dass es heutzutage eine große Anzahl von Programmierern gibt, die ohne eine ausgefeilte IDE überhaupt nicht programmieren könnten. Sie sind wirklich keine Programmierer, sondern eher Designer.
Ich weiß aus eigener Erfahrung, dass es viele Menschen gibt, die von der schleppenden Microsoft-Entwicklungsumgebung verführt wurden. Es ist nicht falsch, dass sie ein Textfeld auf dem Bildschirm ablegen, dann die Eigenschaften mit dem Assistenten festlegen und die Daten aus einem Bild der Datenbank ziehen. Sind sie jedoch wirklich Codierer in einer beliebigen Sprache, wenn sie lediglich grundlegende Gleichheitstests einrichten?
Diese Leute werden niemals in der Lage sein, die Konzepte, die sie gelernt haben, auf eine andere Sprache anzuwenden.
Wenn ich Leute interviewe, interessiert mich mehr, wie sie sich entwickelt haben und welche Frameworks sie verwendet haben. Ich stelle gerne Fragen wie "Wie schreibe ich einen Ereignishandler?", "Wie genau fügen Sie die Daten in die Datenbank ein?" Oder sogar "Wie kann ich diese bestimmte Schaltfläche lila machen, wenn ich darauf klicke?" Dies wird die Designer schnell aussortieren und die Programmierer verlassen. Ich habe festgestellt, dass 3 oder 4 Jahre Programmieren mit einem Jahr in der Sprache meiner Wahl für das, was ich brauche, ausreichen.
Nur eine andere Meinung,
Tal
quelle
"Jahrelange Erfahrung in X-Sprache / Plattform" ist größtenteils eine Rekrutierungspathologie ...
Es ist offen für Interpretationen und bei weitem nicht so nützlich, wie es auf den ersten Blick aussieht. Wie gesagt, der Mythos der Jahre der Erfahrung ist eine gute Lektüre.
Entscheidend ist auch, dass die Messung der "jahrelangen Erfahrung" selbst sehr ungenau sein kann. Hier ist ein Beispiel von meinem aktuellen Auftritt: Meine Hauptaufgabe ist die Entwicklung und Pflege einer Java-Web-App. Dies läuft jedoch über ein Back-End, das MFC / C ++ / SQL Server ist. Folglich beschäftige ich mich auch praktisch täglich mit C ++ - Code. ABER - diese C ++ - Erfahrung ist relativ oberflächlich und wartungsorientiert, und ich schreibe in MFC / C ++ nicht mehr wirklich ganze große Komponenten oder Programme von Grund auf neu (wie ich es in früheren Rollen getan habe).
Kann ich diese letzten 5 Jahre immer noch als "5 Jahre C ++ - Erfahrung" zählen? Vielleicht. Vielleicht nicht. Abhängig davon, wie ich es verkaufen möchte, um eine bestimmte Rolle zu sichern, kann ich es leicht überspielen, ohne direkt zu lügen, oder ich kann zugeben, dass es nicht wirklich 5 solide "Jahre C ++ - Erfahrung" waren. :) Ich bin sicher, dass viele Fälle da draußen ähnlich offen für diese Art von "Ungenauigkeit der Messung" -Problem sind. Die Tiefe der Erfahrung kann die Qualität der Erfahrung stark trüben. Eine "X-Zeit, die mit C ++ verbracht wird" bedeutet an sich nicht viel.
quelle
Ja, Programmierer 1 hat keine Syntaxkenntnisse in Sprache B.
Programmierkonzepte sind Programmierkonzepte. Die Sprache ist lediglich Syntax.
quelle