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?
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?
Antworten:
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,
Außerdem erwarte ich von einem Senior Developer:
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.
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.
Ich suche nach den folgenden Eigenschaften, wenn ich Sr. Developers interviewt habe.
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.
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
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.
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.
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:
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.
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
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.
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.