Qualifiziert Sie ein Senior Developer, der eine Sprache verwendet, um ein Senior Developer zu sein, der eine andere Sprache verwendet? [geschlossen]

27

Wenn ich als Entwickler in einer Sprache (z. B. Java) arbeite und mich zum Senior Developer hocharbeite, würde mich das als Senior Developer für eine Stelle qualifizieren, die eine andere Sprache (z. B. Ruby) verwendet?

Philip
quelle
2
@Philip - diese Frage ist in vielerlei Hinsicht eine Grenzfrage. Es ist grenzwertig "zu lokalisiert", weil es wirklich nur für Sie von Wert ist und grenzwertig "nicht konstruktiv", da es die in unseren FAQ aufgeführten Richtlinien zum Stellen von Fragen nicht wirklich erfüllt. Wenn Sie diese Frage bearbeiten und die Richtlinien befolgen können, ist es möglicherweise sinnvoll, die Frage zu speichern.
Walter
8
@Walter - Ich muss Ihrem ersten Kommentar zur Lokalisierung widersprechen. Dies ist eine allgemein gültige Frage / Antwort dazu, ob Sie als Senior-Entwickler in einer Sprache eine Senior-Entwickler-Position in einer anderen Sprache erhalten.
Craige
1
@ Walter - die Lokalisierungsprobleme wurden entfernt, ich denke, es ist jetzt wahrscheinlich vernünftig.
Jon Hopkins
1
@ Walker - Sorry, die Frage ist so gemeint, wie Craige sagt. Ich habe es so geschrieben, weil ich annehme, dass die meisten Programmierer, die als Junior gelten, eines Tages Senior Developer werden wollen. Die Wahl der richtigen Junior-Position ist daher entscheidend (oder auch nicht)
Philip
11
Diese Frage scheint davon auszugehen, dass "Senior Developer" eine allgemein akzeptierte Bedeutung hat. Normalerweise ist es eine Berufsbezeichnung, und eine Berufsbezeichnung ist das, worauf Sie und Ihr Arbeitgeber sich einigen können.
David Thornley

Antworten:

33

Die beste Möglichkeit, dies zu beantworten, besteht darin, den Unterschied zwischen einem Entwickler und einem Senior-Entwickler zu untersuchen. Angenommen, es ist nicht nur eine Sache, die der Zeit dient, würde ich allgemein erwarten, dass sowohl Entwickler als auch Senior-Entwickler in der Lage sind,

  • Schreiben Sie Code kompetent in den von der Rolle benötigten Sprachen
  • Fehler diagnostizieren und beheben
  • Schreiben Sie Komponententests
  • Befolgen Sie die Standards und angemessenen Best Practices (Versionskontrolle, Dokumentation)
  • Haben Sie eine breite technische Grundkompetenz
  • Handeln Sie professionell

Außerdem erwarte ich von einem Senior Developer:

  • Betreuen Sie andere Mitarbeiter in bewährten Verfahren
  • Referenzpunkt für mindestens einige der vom Team verwendeten Sprachen sein und anerkennen
  • Aktive Erforschung und Förderung neuer Best Practice-Bereiche
  • Übernehmen Sie die technische Verantwortung für komplexere Probleme / Codebereiche und bieten Sie solide Lösungen

Die Frage ist also, ob Sie die erweiterten Kriterien für Ihre zweite (oder dritte oder vierte) Sprache erfüllen. Ich würde vorschlagen, dass, solange Sie technisch kompetent genug in der Sprache sind, in die Sie wechseln, ja, da die meisten Inhalte für Senior-Entwickler übertragbar sind.

Jon Hopkins
quelle
1
Das hängt wirklich von der Umgebung ab, besonders vom Chef. Einige "Sr" haben das Gefühl, dass sie ihr Wissen zu jedem Thema beweisen müssen, insbesondere wenn ein "jr" mehr Wissen und Erfahrung zu einem Thema hat. Es kann zu ernsthaften Spannungen kommen, wenn ein Sr. mit einem C ++ - Hintergrund in einem C # -Projekt arbeitet. Ein "jr" hat möglicherweise eine größere Wissensdatenbank für dieses spezielle Framework. Dies kann zu heftigen Kämpfen führen, insbesondere wenn der Boss zuhört.
P.Brian.Mackey
@ P.Brian.Mackey - Fairerweise gibt es einige ziemlich gravierende Unterschiede zwischen verschiedenen Jobs mit dem gleichen Titel. Ich habe mich für eine ziemlich allgemeine (und vernünftige) Definition entschieden, die jedoch zwischen "ist über 30 Jahre alt" und "weiß alles über alles" liegen kann.
Jon Hopkins
1
Viel Glück mit letzterem in jeder Sprache, die komplizierter ist als BF ... sogar C hat mehr dunkle Ecken als man erwarten würde!
SamB
"Einige" Sr "haben das Gefühl, dass sie ihr Wissen zu jedem Thema beweisen müssen". Diesen Leuten sollte gesagt werden, dass sie sich entspannen sollen. Sie können nichts lernen, wenn Sie nicht anerkennen, dass es Dinge gibt, die Sie nicht kennen. Die Fähigkeit, Unwissenheit über etwas freizugeben, ist ein Zeichen von Stärke, nicht von Schwäche.
PeterAllenWebb
1
+1 Um darauf hinzuweisen, dass einige, aber nicht alle Fähigkeiten übertragbar sind. Gute Möglichkeit, es auszudrücken.
Nicole
5

Sie können sich für jede Stelle bei jedem Unternehmen bewerben, unabhängig von Ihrem aktuellen Status.

Es liegt an Ihnen, in Ihrem Lebenslauf / Anschreiben / Interview nachzuweisen, dass Sie der Mann für den Job sind.

Lebkuchenjunge
quelle
5

Ich suche nach den folgenden Eigenschaften, wenn ich Sr. Developers interviewt habe.

  • Hat in mehreren Sprachen gearbeitet
  • Experte in mindestens einem, kompetent in mindestens einem anderen, vorzugsweise in einem anderen Paradigma
  • Kenntnis der aktuellen Technologien, des Standes der Technik usw. in dem ausgewählten Bereich
  • Gute CS-Basis (Algorithmen, algorithmische Kalkulation, Datenstrukturen usw.)
  • Die Fähigkeit, zwischen den Details eines bestimmten Problems und dem Gesamtbild zu wechseln
  • Drücken Sie aus, wenn sich die Dinge in die falsche Richtung bewegen und warum; und dann in der Lage sein, in die falsche Richtung (aka Professionalität) weiter
  • Fähigkeit zum Mentor
  • Fähigkeit, innerhalb und mit einem Team zu arbeiten

Es gibt eine Vielzahl anderer Dinge, nach denen ich suche, aber das sind die Hauptpunkte.

Ich habe zwar empfohlen, Sr. Entwickler einzustellen, die keine Experten für die bei der Arbeit verwendete Sprache waren, aber Experten für ähnliche Sprachen.

dietbuddha
quelle
3

Sie könnten sich bewerben, aber zumindest, wenn ich die Einstellung mache, könnte ich Sie einstellen oder nicht.

Das Dienstalter bezieht sich auf (mindestens) zwei Bereiche. Allgemeine Entwicklungskompetenz und Sprach- / Rahmenkompetenz. (Ich lasse Business-Space-Kenntnisse absichtlich weg). Ein leitender Entwickler in meinen Büchern zu sein, würde auch ein Niveau an Design- / Architekturkenntnissen beinhalten. Wie man ein gutes / testbares System baut, etc.

Das Erreichen dieses Niveaus in Java sollte für andere (ähnliche / prozedurale) Sprachen von Vorteil sein.

In dieser Zeit der erwarteten sofortigen Produktivität werden Sie jedoch wahrscheinlich nicht so viel über Ruby wissen wie über Java. Wie Sie Ihr System in Ruby-freundliche Konstrukte anstatt in Java-freundliche Konstrukte aufteilen. Sie kennen wahrscheinlich einige Java-Frameworks und nicht Rails oder andere Ruby-spezifische Dinge.

Wenn ich Sie während des Interviews bitten würde, Whiteboard-Codierung in Ruby durchzuführen, könnten Sie das dann tun?

All dies würde in meine Entscheidung einfließen, Sie auf jeder Ebene einzustellen oder nicht; aber insbesondere für eine leitende Rolle.

Viel Glück

sdg
quelle
Vielen Dank für Ihre Antwort, ja, ich könnte Whiteboard-Codierung in Ruby durchführen (dasselbe gilt für C ++, Java). Eigentlich halte ich mich momentan für noch besser in Ruby als in Java, weil ich seit einem Jahr an einem privaten Projekt arbeite, das auf Ruby aufbaut.
Philip
3

Nee.

Das ist einer der großen Unterschiede zwischen unserem Beruf und anderen eher formalen Berufen. Wenn Sie als Anwalt Testamente und Stände seit 20 Jahren gearbeitet habe zu tun, dann werden Sie eine hohe Rate befehlen , weil Sie 20 Jahre Wissen aufgebaut in dieser Domäne .

Wenn Sie seit 15 Jahren mit C ++ / Win32 / MFC arbeiten, qualifizieren Sie sich nicht wirklich für eine Führungsposition als Rails-Entwickler, auch wenn Sie immer noch dieselben Probleme in derselben Domäne lösen ... sagen wir mal medizinisch Abrechnung zum Beispiel.

Schlimmer noch, die meisten Unternehmen werden Sie nicht einmal für eine Position in Betracht ziehen, die in etwa ähnlich ist ... Wenn Sie beispielsweise 5-7 Jahre lang C ++ / MFC betrieben haben, sollten Sie in der Lage sein, C # auf den neuesten Stand zu bringen. /.NET sehr schnell, zumindest für den Desktop. Leider sehen es die meisten Unternehmen nicht so.

roter Schmutz
quelle
4
Ich weiß nicht, dass "die meisten" Unternehmen das so sehen. Das Problem im Moment ist, dass es in einer schwachen Wirtschaft so viel mehr Leute gibt, die C # bereits kennen (aus Ihrem Beispiel), so dass sie Sie möglicherweise aus einer Suche heraus einschränken, die nur auf Zahlen basiert.
Wonko the Sane 20.01.11
Ich denke, die meisten Fähigkeiten und Erfahrungen sind übertragbar. Das Erlernen einer neuen Syntax ist einfach. Leider haben Sie recht: Es ist nicht das, was Sie denken, sondern was die Person, die Sie einstellen, denkt.
Niemand
3

Es hängt davon ab, ob

Nehmen Sie die "Programmierung" heraus. Tun Sie stattdessen so, als wären Sie ein professioneller Übersetzer.

Angenommen, Englisch ist Ihre Muttersprache und Sie beherrschen auch Französisch. Sie werden wahrscheinlich ziemlich leicht Spanisch lernen.

Es ist jedoch weniger wahrscheinlich, dass Sie die vielen Dialekte des Chinesischen schnell beherrschen. Während Ihre Erfahrung als Linguist Ihnen hilft, die Sprache (n) zu lernen und Ihnen einen Vorteil gegenüber jemandem zu verschaffen, der noch nie eine Fremdsprache gelernt hat, wird es noch viel länger dauern, bis Sie ein "Experte" (dh "Senior") werden. ) Übersetzer in dieser Sprache.

Wonko der Vernünftige
quelle
2

Ja und nein.

Wenn die Sprachen ähnlich sind , sagen Sie C ++, Java oder Ruby. Je nachdem, wie flexibel die Leute in diesen Büros sind, haben Sie eine Kampfchance.

Wenn die Sprachen jedoch sehr unterschiedlich sind und Sie ein COBOL-Typ sind, der sich über Haskell lustig gemacht hat, ist die Wahrscheinlichkeit groß, dass Sie trotz Ihrer über 10-jährigen COBOL-Erfahrung nicht einmal so viel wie ein sicheres Interview erreichen können.

PAARE VON DINGEN, DIE IN SOLCHEN SITUATIONEN ZU IHREN FAVORITEN GEHEN WERDEN:

  1. Wenn Sie bereits mehrere Sprachen beherrschen und über die gleichen Erfahrungen verfügen. Angenommen, Sie beherrschen C ++ gut, kennen sich aber auch mit Perl, Tcl und Ruby aus. Ich würde Sie gerne für Java in Betracht ziehen. Tatsächlich kenne ich Leute, die Java-Jobs mit C ++ in ihrem Lebenslauf haben.
  2. Wenn Ihre Erfahrung in einem verwandten Bereich liegt, haben Sie gute Chancen, es zu schaffen. Zum Beispiel, wenn Sie ein C ++ - Spielprogrammierer sind, sehe ich keinen Grund, warum Sie nicht für einen C # -Job eingestellt werden können, der einiges an Multithreading erfordert.
Fanatic23
quelle
1
Okay, ich muss fragen - wie ist Ruby wie C ++ oder Java? C ++ und Java sind beide Sprachen im C-Stil, während Ruby von Perl, Python und Smalltalk abgeleitet ist.
Craige
Ich bezog mich auf OOP als Leitmotiv.
Fanatic23 20.01.11
2

Ich habe selten einen "älteren" Titel gesehen, der auf der Sprache basiert. Ich kenne ein paar älteren Systeme Programmierer, ein paar älteren Web - Programmierer und einen Senioren COBOL - Programmierer.

Das Programmieren ist vielfältig und hat einige Disziplinen zu bieten. Ich würde erwarten, dass ein erfahrener Webentwickler (bei Titeln scheinen Programmierer und Entwickler austauschbar zu sein) mehrere gängige Sprachen beherrscht, die bei der Webentwicklung verwendet werden. Macht das einen Python- und PHP-Guru zu einem sofortigen Experten für C #? Nein. Andererseits beherrschen nicht alle C # -Gurus die hohe Kunst des Projektmanagements und der Projektleitung.

Ich habe die Rolle des CTO in einem Unternehmen übernommen und war außerdem der leitende Systemprogrammierer. Ich würde mich jedoch gerne an einen Plan- oder LISP-Experten wenden, wenn wir auf ein Projekt stoßen würden, das dies erfordert. Ein Teil der ein guter Führer zu sein , ist Ihre eigenen Grenzen und Schwächen zu verstehen , zuerst .

Ich bin mir nicht sicher, ob ich in einem Unternehmen oder einer Abteilung arbeiten möchte, die sich nur auf eine Sprache konzentriert. Das hört sich so an, als würde es das tun, was sie immer gesagt haben, wenn Sie Zigaretten rauchen: Ihr Wachstum bremsen, wenn die Realität weitaus schlimmer ist.

Jagen Sie nicht nach Titeln, sondern nach Wissen. Um fair zu sein, würde Ihre Rolle in einer früheren Führungsposition Ihnen wahrscheinlich einen zusätzlichen Vorteil verschaffen, vorausgesetzt, Sie haben Ihre Kompetenz in der jeweiligen Sprache unter Beweis gestellt.

Tim Post
quelle
0

Ich denke, es hängt davon ab, was Sie als Senior-Entwickler wahrnehmen. Wenn es sich eher um eine Architektenrolle handelt, stehen Ihnen aufgrund Ihrer Erfahrung als Entwickler unabhängig von der Sprache viele der Entwurfsprinzipien und Entwurfsmuster zur Verfügung. Das ist also ein Pluspunkt ;-)

Wenn Sie jedoch versuchen, eine Anwendung oder einen Code so produktiv und wartbar wie möglich zu erstellen (das Aufrollen Ihres Sleaves-Bits), können Sie beim Wechseln der Sprache, der IDE und / oder des Frameworks möglicherweise nicht dieselbe Erfahrungsebene verwenden.

Aber wie Runrun schon sagte, hält dich das nicht davon ab, dich für irgendetwas zu bewerben

Syg
quelle
0

Dies hängt in hohem Maße von dem Unternehmen ab, in dem Sie ein Vorstellungsgespräch führen, da in der Regel die internen Personalverfahren die Einstellung neuer Mitarbeiter bestimmen. Größere Unternehmen neigen dazu, sehr starr zu sein, und wenn sie behaupten, Sie müssten über n Jahre Erfahrung in einer bestimmten Sprache verfügen , um als Senior-Entwickler eingestuft zu werden, werden Sie möglicherweise nur einen mittelständischen Entwickler finden.

Dies sollte Sie jedoch nicht daran hindern, sich für eine Stelle zu bewerben, und wenn Sie zu einem Vorstellungsgespräch eingeladen werden, sollten Sie dies besprechen.

rjzii
quelle
0

Ich würde sagen, je niedriger oder maschinenfreundlicher die Sprache ist, desto erfahrener sind Sie.

Java / C # -Kenntnisse werden weniger bezahlt als ASM / C / C ++ - Kenntnisse.

Diese letztgenannten Sprachen erledigen die Speicherverwaltung und andere Dinge, die beim Programmieren tatsächlich von Bedeutung sind.

Aber für andere "einfache" Sprachen müssten Sie einen schnellen Vergleich über die Funktionen anstellen, die sie "einfacher" machen, aber ich finde es nutzlos. Erfahrungen mit einfachen Sprachen lassen sich besser mit CMS oder anderem Code messen, den Sie für Ihre Arbeit verwendet haben, z. B. Code Igniter oder Django oder Apache oder RoR.

Senior-Entwickler sind für mich Menschen, die Kernel, Systeme, Embedded-Hardware usw. programmieren. Programmierer, die Sprachen verwenden, die nicht maschinenfreundlich sind, sind für mich keine Senioren. Sie machen einfach die Arbeit, aber das ist alles.

jokoon
quelle
Interessante Meinung. Ich stimme zu, C ++ ist viel schmerzhafter. Auf der anderen Seite ist eine Menge Schmerz in C ++ zu spüren, weil Teile der (aktuellen) Sprache irgendwie veraltet sind. Neuere Sprachen haben viel mehr Bibliotheksfunktionen, Lambdas, For-Each-Loops und eine weniger kryptische Syntax für viele Dinge. Diese Probleme können einen davon abhalten, sich auf die eigentlichen Dinge auf niedriger Ebene zu konzentrieren.
Philip
Das ist eine interessante Meinung. Meiner Erfahrung nach beschäftigt sich ein leitender Angestellter mehr mit Management, nicht unbedingt, weil er nicht codiert, sondern weil er mehr Erfahrung darin hat, das Niedrigstufige in Nicht-Techies zu übersetzen. Sie können diese Fähigkeit mit Sicherheit respektieren oder nicht. Ihr Standpunkt wirft eine Frage auf. In einem Team von 30 Webentwicklern ist keiner von ihnen älter, weil sie keinen Kernel schreiben können. Es macht für dich keinen Unterschied, ob sie an Mosaic gearbeitet haben oder gerade die High School beendet haben?
Steve Jackson
30 Webentwickler? ENTWICKLER? "Senior" bedeutet für mich, dass die Person schon lange programmiert hat oder älter ist. Aber wenn ich in Bezug auf Erfahrung und Wissen, das wichtig ist, für "Senior" halte, kann man es meiner Meinung nach nicht als Programmiererfahrung bezeichnen, wenn man eine Sprache verwendet, die mit Müll zusammengetragen wurde.
jokoon