Was ist der Unterschied in der jahrelangen Erfahrung eines Entwicklers mit einer Sprache? [geschlossen]

9

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?

rjzii
quelle

Antworten:

26

"es hängt davon ab, ob"

Erleben Sie <> Wissen oder Verständnis.

Programmierer 1 könnte sehr gut sein, sogar ein Guru, oder sie könnten jemand sein, der in den letzten 5 Jahren mit der Sprache herumfummelt.

Programmierer 2 könnte jemand sein, der Konzepte unabhängig von der verwendeten Sprache versteht. Oder jemand, der Sprache B zu schwierig fand und hofft, dass A einfacher ist.

Es lohnt sich, Horrors "Mythos der Jahre der Erfahrung" zu codieren

gbn
quelle
6
Wie sie sagen, hat Ihr Entwickler möglicherweise fünf Jahre Erfahrung mit Sprache A - oder er verfügt über ein Jahr Erfahrung, die fünfmal wiederholt wird.
Carson63000
1
+1 für die Wahrheit - Ich habe mit Neueinstellungen mit mehr als 8 Jahren Erfahrung gearbeitet, die sich bestenfalls als durchschnittlich herausstellten. Umgekehrt haben wir gerade einen Mann eingestellt, der 1 Jahr von der Universität entfernt war und der alle Erwartungen übertroffen hat.
Damovisa
4

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:

Programmierer fühlen sich ihren Lieblingssprachen sehr verbunden, und ich möchte niemanden verletzen. Um diesen Punkt zu erklären, werde ich eine hypothetische Sprache namens Blub verwenden. Blub fällt genau in die Mitte des Abstraktheitskontinuums. Es ist nicht die mächtigste Sprache, aber es ist mächtiger als Cobol oder Maschinensprache.

Tatsächlich würde unser hypothetischer Blub-Programmierer keinen von beiden verwenden. Natürlich würde er nicht in Maschinensprache programmieren. Dafür sind Compiler da. Und Cobol weiß nicht, wie jemand etwas damit anfangen kann. Es hat nicht einmal x (Blub-Funktion Ihrer Wahl).

Solange unser hypothetischer Blub-Programmierer auf das Leistungskontinuum schaut, weiß er, dass er nach unten schaut. Sprachen, die weniger mächtig sind als Blub, sind offensichtlich weniger mächtig, weil ihnen einige Funktionen fehlen, die er gewohnt ist. Aber wenn unser hypothetischer Blub-Programmierer in die andere Richtung schaut, das Leistungskontinuum hinauf, merkt er nicht, dass er nach oben schaut. Was er sieht, sind nur seltsame Sprachen. Er hält sie wahrscheinlich für ungefähr gleichwertig mit Blub, aber mit all dem anderen haarigen Zeug, das auch hineingeworfen wird. Blub ist gut genug für ihn, weil er in Blub denkt.

Wenn wir jedoch zum Standpunkt eines Programmierers wechseln, der eine der Sprachen verwendet, die höher im Leistungskontinuum liegen, stellen wir jedoch fest, dass er wiederum auf Blub herabblickt. Wie kann man in Blub etwas erledigen? Es hat nicht einmal y.

Im Allgemeinen ist mein Rat, mehr als eine Sprache zu lernen und die Stärken und Schwächen der Sprachen zu lernen.

Tangurena
quelle
Ich stimme zu, dass es wichtig ist, mehrere Sprachen zu beherrschen. Sprachen sind Werkzeuge in unserer Toolbox und es ist wichtig zu wissen, wo ihre Stärken und Schwächen liegen, um einen Job zu erledigen. Sie können einen Nagel mit einem Schraubendreher oder einem Hammer oder einer Zange einschlagen, aber einer funktioniert viel besser als die anderen. Natürlich ist ein Hammer mies, um eine Schraube zu entfernen oder eine Mutter an einer Schraube festzuziehen oder zu lösen.
der Blechmann
2

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.

Watson
quelle
5
Vorausgesetzt, der Entwickler ist kompetent.
Gbn
2
@gbn: Ich kann Ihnen absolut versichern, dass Sie in meinem Fall diese Annahme nicht treffen können :)
Watson
2

Folgendes würde ich erwarten / hoffen:

  1. Fließend - Sie sollten in der Lage sein, mehr Code über den Kopf zu schreiben und weniger Zeit für die Suche nach Syntax zu haben.
  2. Kennen Sie den Unterschied zwischen früheren und aktuellen Versionen und wie Sie Code von einer zur anderen migrieren.
  3. Verstehen Sie das Kompilieren, Verteilen, Testen und Erstellen von Upgrades und Patches besser.
  4. Erstellen / Einfügen von Add-Ons zur IDE und Steigerung der Effizienz.
JeffO
quelle
2

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.

Jeremy
quelle
Sie können schnell eine ganze Sprache lernen, aber wenn es Konzepte gibt, die Sie nicht kennen, wird das einige Zeit dauern. Nicht alle Sprachen haben die gleichen Konzepte.
David Thornley
2

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).

Tim Williscroft
quelle
1

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.

David Thornley
quelle
1

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

Tal Cameron McMahon
quelle
1

"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.

Bobby Tische
quelle
-1

Ja, Programmierer 1 hat keine Syntaxkenntnisse in Sprache B.

Programmierkonzepte sind Programmierkonzepte. Die Sprache ist lediglich Syntax.

Michael Riley - AKA Gunny
quelle
5
Oh, so falsch ...
Javier
Javier hat recht, die Sprache ist viel mehr als Syntax ... es gibt Konventionen, Bibliotheken von Drittanbietern, APIs, die Sie mit Erfahrung lernen.
Daniel S