Welche Schritte kann ich unternehmen, um meine Fähigkeiten als Programmierer zu verbessern und mich marktfähiger zu machen?

Ich habe 2005 mein Informatikstudium abgeschlossen und arbeite seit sieben Jahren in derselben Firma als Programmierer. Ich habe während dieser Zeit ein immer besseres Gehalt verdient und mich einer recht komfortablen Arbeitsplatzsicherheit erfreut.

Allerdings befürchte ich, dass meine Programmierkenntnisse nicht mehr marktfähig sind. Ich habe den größten Teil der letzten sieben Jahre damit verbracht, Intranet-Schnittstellen für Datenbanken oder Online-Berichte zu erstellen. Die meisten meiner Erfahrungen habe ich also in SQL, mit etwas ASP Classic. Ich habe meinen Abschluss mit etwas Erfahrung in C# und VB gemacht, aber mein Vorgesetzter ist sehr gegen Visual Studio, also habe ich diese Fähigkeiten seit Jahren nicht mehr genutzt. In letzter Zeit wurden mir Projekte mit mySQL und PHP vorgestellt. Aber auch nach sieben Jahren in dieser Position bin ich kein wirklicher Experte auf einem bestimmten Gebiet.

Ich habe viele Stellenausschreibungen überprüft, die nach einer Vielzahl von Fähigkeiten und Technologien fragen, für die ich nicht qualifiziert bin. Es scheint, als hätte mich dieser Job beruflich in die Enge getrieben. Was soll ich tun, um aus dieser Sackgasse herauszukommen?

Was auch immer Sie tun, machen Sie denselben Fehler nicht noch einmal. Fragen Sie immer: "Was habe ich von diesem Job, außer Geld?"

Antworten (6)

Ich werde eine abweichende Meinung von @kolossus äußern . Wenn Sie erst 7 Jahre in Ihrer Karriere sind, erreichen Sie immer noch Ihr Potenzial als Technologe. Sie müssen noch viel mehr lernen, und wenn Sie in Zukunft führen wollen, sollten Sie mehr Erfahrung weitergeben können – mehr Erfolge und Misserfolge zu sehen, die Sie zu einer besseren Führungskraft machen. Zu denken, dass Sie nur aufgrund Ihrer Erfahrung ein Manager oder Lead sein sollten, ist ein Fehler, da die besten Programmierer nicht immer erfolgreiche Manager oder Leads abgeben.

Zertifizierungen sind zumindest in den USA im Allgemeinen von geringem Wert. Der Wert, den sie in meinen Augen bieten, besteht darin, jemandem ein Feuer zu entfachen, damit er ein Thema in- und auswendig lernen kann. Das Beste daran, ein Zertifikat zu erhalten, ist das Lernen, das Ihnen mit einer Frist (dem Test) aufgezwungen wird, und das Nichtbestehen der Testergebnisse bedeutet Zeit- und Geldverschwendung. Ich veranlasse Sie, hart zu lernen, und das Wissen ist viel mehr wert als das Zertifikat.

Bleiben Sie beim Programmieren und erwerben Sie einige marktfähigere Fähigkeiten. Sie müssen dies wahrscheinlich in Ihrer Freizeit tun. Datenbankfähigkeiten werden auf jedes RDBMS übertragen, also scheinen Sie das für sich zu haben. Selbst das Erlangen tieferer PHP-Kenntnisse mit Ihrer SQL-Erfahrung sollte zu potenziellen Chancen führen. Schauen Sie sich Sprachen wie Ruby an, die beliebt sind und allgemein als leichter zu erlernen gelten. Die Abkehr von Microsoft-Technologien und mehr hin zu Open Source sollte auch zu mehr Möglichkeiten auf der ganzen Linie führen. Unternehmen, die mit Microsoft verbunden sind, können Ihre Auswahl einschränken, wenn Unix/Linux-Shops mehrere Sprachen verwenden können.

Und Sie können diesen Blogbeitrag lesen, den ich darüber geschrieben habe, wie Sie bei der Arbeit in einem eingeschränkten technischen Umfeld den Überblick über die technischen Fähigkeiten behalten. fecak.com/…
Programmierer sagen, dass eine Zertifizierung keinen Wert hat, aber sie sind normalerweise nicht diejenigen, die die Einstellung vornehmen.
Ich sprach als Anwerber von Software-Ingenieuren, nicht als Programmierer (ich bin kein Programmierer). Meine Kunden haben Zertifizierungen im Allgemeinen keinen Wert beigemessen, und einige waren sogar ziemlich misstrauisch gegenüber Kandidaten, die einfach versuchen, mehrere Zertifikate zu erhalten, ohne über praktische Erfahrung zu verfügen. Das kann meiner Meinung nach tatsächlich gegen Sie arbeiten - das Laden von Zertifikaten oder Brainbench-Tests, um zu versuchen, Ihre Fähigkeiten zu beweisen, kann den Anschein erwecken, als würde jemand versuchen, das System zu spielen, und es wäre besser, Zeit mit Open-Source-Projekten oder persönlichen Projekten zu verbringen, wo Code kann angezeigt werden.

Sie sehen sich vielleicht nicht wirklich als Experten in einer Sache, aber ist das richtig? Möglicherweise vergleichen Sie sich zu Unrecht mit den Leuten, die beim Bloggen und Twitter aktiv sind. Die überwiegende Mehrheit der Leute, mit denen Sie interviewen oder neben denen Sie sitzen würden, spielen nicht nur nicht in dieser Liga, und sowohl Sie als auch sie würden sich äußerst unwohl fühlen, wenn Sie es wären .

Schauen Sie sich also genau an, was Sie bei der Arbeit erreicht haben. Diese sprechen viel mehr als die einzelnen Technologien in Ihrem Lebenslauf, insbesondere wenn Sie einen Weg finden, Personalvermittler und Unternehmen auf Sie zukommen zu lassen, und nicht umgekehrt. Eine Möglichkeit, dies zu tun, besteht darin, Ihr Profil auf Dice.com oder LinkedIn.com mit Ihrem neuen, selbstbewussten Lebenslauf zu aktualisieren.

Nehmen Sie sich ein paar Wochenenden Zeit, um mit Sprachen zu experimentieren, in denen Sie sich nicht wohl fühlen. Das Erlernen neuer Sprachen ist an sich schon eine Fähigkeit, also wird Ihnen das zugute kommen. Außerdem wären Sie überrascht, wie viele Konzepte Sie bei einem Wochenendprojekt aufgreifen können. Bloggen Sie über Ihre Ergebnisse, die es potenziellen Arbeitgebern ermöglichen, Ihre technischen und kommunikativen Fähigkeiten sowie Ihre Einstellung und Herangehensweise einzuschätzen.

Beantworten Sie Fragen auf Websites wie dieser. Dadurch erhalten Sie eine breitere Erfahrung, als Sie bei der Arbeit sammeln könnten, wenn Sie nach Antworten auf die Fragen anderer suchen.

Lernen Sie Ihre Designmuster kennen. Es ist oft wahr, dass Unternehmen, die nach Designmustern fragen, am schlimmsten sind, wenn sie diese nicht verwenden, sodass dies zu Frustration für Sie führen kann. Allerdings muss man das Vorstellungsgespräch überstehen, um in der Lage zu sein, sein hart erarbeitetes Wissen nicht einzusetzen und frustriert zu werden :).

Machen Sie sich bewusst, dass Sie noch viele Dinge tun können, um Ihre Produktivität zu steigern, abgesehen davon, welche Technologien Sie kennen und wie Sie codieren. Je mehr Tastaturkürzel Sie beispielsweise kennen, desto mehr Zeit können Sie damit verbringen, über Programmierprobleme nachzudenken (weil Sie nicht jedes Mal ein paar Sekunden verschwenden, wenn Sie keine Maus in die Hand nehmen).

Investieren Sie schließlich Zeit und Aufmerksamkeit in Ihre sozialen Fähigkeiten – einschließlich der Eigenwerbung. Sie müssen einen Weg finden, den Wert Ihrer Arbeit in den letzten sieben Jahren zu sehen und dies potenziellen Arbeitgebern zu vermitteln. Außerdem können Sie viel mehr erreichen, wenn Sie in der Lage sind, Unterstützung und Zustimmung von anderen zu erhalten, deren Arbeit Sie benötigen (z. B. diejenigen, die Sie mit Designs, Daten oder anderen Ressourcen versorgen), als durch reine technische Brillanz. Dies kann eine schwierige Lektion sein, aber es ist besser, sie früh in Ihrer Karriere zu lernen als spät.

Ich würde auch vorschlagen, sich nicht mehr als strengen Programmierer zu betrachten. Es gibt viele Titel in der Computer- und Softwareentwicklung, und Sie könnten an diesem Punkt mit der Breite Ihrer Erfahrung nur einer dieser anderen Titel sein.

Ihre Fähigkeiten klingen für mich marktfähig . Ich würde also gerne fragen, ob Sie mit "Programmierkenntnissen" etwas Spezifischeres gemeint haben, wie z. B. Programmierkenntnisse für Desktop-Anwendungen oder Fähigkeiten zum Schreiben von Algorithmen? Als ich das letzte Mal überprüft habe, dass übermäßig viele Websites SQL (normalerweise, aber nicht immer MySQL) und entweder ASP oder PHP verwenden, würde es mir schwerfallen zu glauben, dass Webprogrammierkenntnisse nicht marktfähig oder gefragt sind oder dass Sie dies nicht getan haben aus Ihrer langjährigen Erfahrung ein beachtliches Domänenwissen erworben.

Betrachten Sie Gelegenheiten, wo Sie sind . Sie könnten sicherlich ein Gespräch mit Ihrem Vorgesetzten führen und Ihre Wünsche mitteilen und ihn oder sie wissen lassen, wie er/sie Ihnen helfen kann, einige Ihrer Ziele in Bezug auf Fachkenntnisse zu erreichen. Zugegeben, geschäftliche Bedenken stehen möglicherweise an erster Stelle, und Sie können möglicherweise nicht zu 100 % nur an Ihrem Lieblingsteil des Jobs arbeiten, aber wenn Ihr Chef versucht zu entscheiden, ob Sie X und Joe machen sollen, sollte Ihr Kollege Y machen, oder Umgekehrt kann es hilfreich sein, den Entscheidungsprozess zu beeinflussen, wenn er/sie weiß, was Sie gerne tun würden, um Ihre Aufgaben an Ihren Interessen auszurichten.

Entscheiden Sie, worauf Sie sich spezialisieren möchten . Wenn Sie das Gefühl haben, dass Ihre aktuelle Position Sie in eine Spezialität einordnet, an der Sie nicht länger interessiert sind, beginnen Sie damit, zu bewerten, welche andere Spezialisierung Sie lieber ausüben würden. Wenn Sie überlegen, welche Sprachen in Ihrer Gegend beliebt sind oder welche Sprachen und Fähigkeiten in Stellenangeboten gefragt sind , können Sie die Liste der Auswahlmöglichkeiten eingrenzen. Möchten Sie lieber ein C#-Programmierer sein? Ein PHP-Programmierer? Java oder C++ lernen? Datenbank-Guru werden? Usw.

Bauen Sie Fähigkeiten in Ihrem gewünschten Spezialgebiet auf . Sobald Sie sich für einen Bereich entschieden haben, auf den Sie sich konzentrieren möchten, sollten Sie einen Weg finden, diese Fähigkeiten aufzubauen. Wenn Ihr Chef nicht daran interessiert ist, diese Sprachen intern zu verwenden, sollten Sie vielleicht ein Projekt außerhalb der Arbeit in Betracht ziehen. Es muss kein anspruchsvolles Projekt sein, aber etwas, um diese andere Sprache wieder frisch in Ihr Gedächtnis zu bekommen. Vielleicht könnten Sie sich einem Open-Source-Projekt anschließen und dazu beitragen . Das ist eine großartige Möglichkeit, einen Fuß in die Tür zu bekommen, um mit einer neuen oder anderen Technologie zu arbeiten, mit dem zusätzlichen Vorteil, dass Ihr Quellcode dort nicht proprietär ist, sodass Sie ihn in einem Portfolio für zukünftige Arbeitgeber verwenden können. Sie können auch erwägen, einer professionellen Entwicklungsgruppe beizutretenfür Leute, die sich für die Technologie interessieren, an der Sie interessiert sind, falls es eine in Ihrer Nähe gibt. Oder fangen Sie einfach an, ein paar Bücher darüber zu lesen, oder suchen Sie nach Universitätserweiterungskursen für Fachleute, wo sie diese Sprache unterrichten, um sie aufzufrischen.

Verkaufen Sie Ihre Erfahrung für ihren ganzen Wert . Am Ende möchten Sie zeigen, dass Sie, obwohl Sie beispielsweise keine 3 Jahre Erfahrung in der Programmierung von C#, Ihrer neuen angestrebten Karriererichtung, haben, sieben Jahre Erfahrung in der Programmierung in anderen Sprachen haben, in denen Sie alle Arten von übertragbaren Fähigkeiten erlernt haben (Probleme abstrahieren und aufschlüsseln, bestehenden Code pflegen, mit Teams arbeiten, neue/verschiedene Technologien lernen usw. usw.), und Sie haben sich kürzlich damit befasst, diese großartige neue Fähigkeit zu lernen, die sie sind suchen, was Sie insgesamt zu einem viel großartigeren Kandidaten macht.

Oder vielleicht reicht es aus, nur ein Ventil für Fähigkeiten zu finden, die Sie bei der Arbeit nicht nutzen, um sich erfüllt zu fühlen. Das ist Ihr Anruf.

Ich werde das Buch Passionate Programmer empfehlen . Die erste Ausgabe des Buches hieß „My Job Went to India“. Ein Großteil des Buches handelt davon, wie Sie Ihre Fähigkeiten auf dem neuesten Stand halten, indem Sie erkennen, wo Sie schwach sind, und wie Sie sich sowohl technisch als auch geschäftlich verbessern können. In einem anderen Thread habe ich eine Reihe von Büchern gepostet, die ich Leuten empfehle, die das Entwicklungs-„Ding“ im Griff haben, aber nicht die Fähigkeiten haben, mit Büros und Büropolitik umzugehen.

Im Gegensatz zu den anderen Antworten empfehle ich, ein paar Zertifizierungen zu erhalten (wählen Sie etwas aus, das Sie wissen), und dass Sie die Zertifikate alle paar Jahre aktualisieren. Als einmaliges Abenteuer sind Zertifikate nicht so toll – sie stellen eine Momentaufnahme dar, dass Sie Technologie X am Datum Y kannten. Als fortlaufendes Unterfangen zeigen sie potenziellen Arbeitgebern, dass Sie mit neuerer Technologie Schritt halten und sich nicht auf was ausruhen Du hast es vor Jahrzehnten getan. Ich bin auch Entwickler und mein Fokus liegt auf .NET. Infolgedessen habe ich seit 1998 Microsoft-Zertifikate und alle paar Jahre erhalte ich ein neueres 4-Buchstaben-Zertifikat. Ich kann diese Entwicklung also als Beweis dafür anführen, dass ich nicht nachlasse, wenn es darum geht, mit der Technologie Schritt zu halten.

Ich habe den größten Teil der letzten sieben Jahre damit verbracht, Intranet-Schnittstellen für Datenbanken oder Online-Berichte zu erstellen

Der Schlagwortname dafür lautet „Business Intelligence“. Ein guter Umgang mit Crystal Reports oder Pentaho (es gibt eine Open-Source-Version) oder SSIS könnte eine neue Richtung für Ihre Karriere sein.

Erwägen Sie, sich die Positionen von Datenanalysten anzusehen. Es gibt viele gut bezahlte Positionen, in denen Datenbankkenntnisse von entscheidender Bedeutung sind. Berichterstatter sind sehr gefragt. BI-Spezialisten sind sehr gefragt.

Dies ist Ihr Stichwort, um den Übergang in die Management-/Teamleitungsrolle zu beginnen. Starten Sie den Übergang. Dieses Geschäft ist nicht freundlich zu alternden/gealterten Entwicklern, die nicht auf dem neusten Stand der Technik sind. Nach sieben Jahren in freier Wildbahn mit (vermutlich) reicher Erfahrung in Breite und Tiefe sind Sie reif und gerüstet, um ein Team zu führen oder Projekte zu leiten. Berücksichtigen Sie Folgendes für Ihren Übergang

  1. Ich möchte glauben, dass Sie in diesen sieben Jahren einige sehr branchenspezifische Kenntnisse erworben haben (als Finanzentwickler habe ich , ISO 8583Beilegung, Versöhnung und Streitschlichtung gemeistert). Sie müssen also in der Lage sein, einige Kenntnisse/Erfahrungen als branchenspezifisch einzustufen. Fachliche Expertise ist beim Aufstieg in höhere Positionen von unschätzbarem Wert.

  2. Holen Sie sich eine herstellerneutrale Zertifizierung . Etwas, das absolut nichts mit Kernprogrammierung zu tun hat. Schauen Sie auf diese drei PMP, ITIL V3 (Foundation is adequate), CISMund/oder CISA. Diese Zertifizierungen sind in der Reihenfolge der Verantwortung gegenüber der Zertifizierungsstelle. Mit PMP oder ITIL können Sie einfach die Zertifizierung erhalten und sofort mit dem Üben beginnen und beginnen, Renditen für Ihre Investition zu erzielen, ohne eine Wartungsgebühr oder jährliche Rezertifizierungsgutschriften usw. zahlen zu müssen. BEARBEITEN (Klarstellung) Das Erhalten des Zertifikats versetzt Sie in den richtigen Rahmen Verstand und gibt Ihnen die nötige Ausbildung, um mehr Verantwortung und eine andere Sichtweise im Unternehmen zu übernehmen.

  3. Wählen Sie zwei oder drei der Technologien aus, die Sie zuvor verwendet haben, und widmen Sie zusätzliche Teile Ihrer Freizeit, um sich in ihnen weiterzuentwickeln . Niemand mag einen Tausendsassa, Meister von nichts . Als technischer Leiter/Manager ist es sehr ratsam, dass Sie ein Fachexperte oder ein Experte in einer bestimmten Technologie sind. Ein General kann seine Truppen nicht führen, ohne jemals selbst in der Schusslinie gewesen zu sein.

  4. Verinnerlichen Sie sich, dass Sie bei Ihrer Jobsuche nicht mehr nach einem Programmierjob suchen . Sie suchen nach Projektmanagement-, Team-/Tech-Lead- oder Senior Developer- Rollen. Die Jobsuche ist genauso wichtig wie das, was auf dem Markt ist, wie das, wofür Sie auf dem Markt sind. Verkaufen Sie sich nicht unter Wert oder über das hinaus, wofür Sie sich positionieren

7 Jahre sind kaum viel Erfahrung und OP scheint sich seiner Fähigkeiten nicht sicher zu sein. Jetzt ist für ihn nicht die Zeit für Management. Braucht mehr Zeit zum Wachsen, mehr zum Lernen, bevor er damit rechnen kann, Wissen an andere weiterzugeben.
@fecak Ich bin fest davon überzeugt, dass 7 Jahre Zeit genug für eine Teamleiterrolle sind, wenn er die Erfahrung als Teamleiter hat. Der Erfahrungsschatz, nicht nur das Können oder die Anzahl der Jahre, trägt zur Gesamtsumme eines Profis bei. Ich habe Menschen getroffen, die in 5 Jahren technischer Arbeit mehr gesehen, getan und erlebt haben, als viele Menschen in 10 Jahren erleben können. Wenn er in seinen 7 Jahren ausreichend Verantwortung übernommen hat, warum kann er dann nicht auf eine Teamleiterrolle drängen? auf das Mindeste?
Er sagt, er sei "kein wirklicher Experte auf einem bestimmten Gebiet". In Ihrer Antwort, Nr. 3, heißt es: „Niemand mag einen Alleskönner …“ Wollen Sie damit sagen, dass diejenigen führen sollten, die keine Fachkenntnisse haben? Ich meine keine Respektlosigkeit Ihnen gegenüber, aber OP sollte wirklich versuchen, seine Fähigkeiten zu entwickeln und nicht einmal an Führung denken, es sei denn, er hat eine angeborene Fähigkeit zu führen. Seine Frage war, seine Programmierkenntnisse zu verbessern und marktfähig zu sein. Er ist als Manager nicht marktfähig (keine Erfahrung im Management, wie es scheint). Er ist als Programmierer einigermaßen marktfähig, insbesondere wenn er marktfähigere Programmierfähigkeiten erlernt.
Wo erwähnt OP seine Erfahrung als Teamleiter? Ich beziehe mich auf Ihren ersten Satz "wenn er die Erfahrung als Teamleiter hat". Was lässt Sie diese Erfahrung annehmen?
@fecak, keine Sorge. Was ich in Nummer 3 gesagt habe, passt meiner Meinung nach zu dem, was Sie gesagt haben. "Als technischer Leiter/Manager ist es dringend ratsam, dass Sie ein Fachexperte oder ein Experte in einer bestimmten Technologie sind", vervollständigte ich die von Ihnen zitierte Aussage. Natürlich muss er über fundierte Fachkenntnisse in bestimmten Bereichen verfügen. Es ist ein Übergang, kein Job-heute-kündigen-und-sich-auf-den-nächsten-nachmittags-Job-bewerben. Übergang. Er sollte jetzt anfangen und wahrscheinlich in 2-4 Jahren bezugsfertig sein.
Danke fürs klarstellen. Ich widerspreche respektvoll und sage, dass er noch mehr Technik lernen muss, bevor er das nächste Level in Betracht zieht. Schön, dass er unterschiedliche Meinungen sieht.
@fecak Lol. Keine Sorge Chef. Deshalb sind wir alle hier.
Ich möchte nur darauf hinweisen, dass man ein gewisses Maß an Erfahrung mitbringen muss, um sich für die Zertifizierung zum PMP (Project Management Professional) zu bewerben . Dazu gehören 3 Jahre Erfahrung im Management von Projekten sowie ein 4-jähriges Studium oder eine Projektmanagement-Ausbildung.