Ich habe als einziger Entwickler in einem Unternehmen gearbeitet, das eine bestimmte Technologie kannte, als einziger, der die Art der Programmierung durchführte, die ich durchführte, und als Auftragnehmer in ähnlichen Situationen. (Ich habe auch in Teamumgebungen mit anderen Entwicklern gearbeitet, die verschiedene Tools kannten, und mit anderen Entwicklern, die genau das taten, was ich tat.)
Vorteile, der einzige Programmierer zu sein
- Wie Sie bereits erwähnt haben Sie häufig die Freiheit, alle Tools oder Sprachen zu verwenden, die Sie zu lernen glauben. Sie müssen nicht immer vor Ihren Kollegen einen Fall erörtern, um die Erlaubnis zum Arbeiten mit New Technology X zu erhalten, während alle anderen die aktuelle Technologie Y verwenden.
- Sie haben mehr Verantwortung. Im Wesentlichen fungieren Sie sowohl als Projektleiter als auch als Entwickler für jedes Ihrer Projekte. Mit Ihrer Fähigkeit, neue Dinge zu identifizieren und umzusetzen, sind Sie effektiv auch der Abteilungsleiter. (Erzählen Sie dies nicht Verkäufern. Sie lieben es, mit Entscheidungsträgern zu sprechen, und Sie haben keine Zeit, mit ihnen zu sprechen.)
- Es ist keine Frage der Anerkennung für die geleistete Arbeit: Es sind offensichtlich Sie und Sie allein, die die Dinge geschehen ließen.
- Sie können mehr Zeit damit verbringen, an Ihren eigenen Projekten zu arbeiten, und weniger Zeit für Besprechungen über Projekte, die im Grunde genommen von einer anderen Person durchgeführt werden (aber Sie sind als Support-Mitarbeiter, als mögliches Backup oder was auch immer dabei).
Nachteile
- Wie David in einem Kommentar ausführt, sind Sie der einzige Entwickler. Ohne Sie wird also keine Entwicklung durchgeführt. Ich habe einmal mit meinem Bruder geprahlt, dass ich "der Typ" für ein bestimmtes Projekt bei der Arbeit war. Er beschrieb genau meine Situation für mich: Ich war gefangen. Ich konnte in dieser Firma nicht weitermachen, weil ich dieses Projekt nie loswerden könnte. (Er hatte auch Recht. Es dauerte mehrere Monate Training über einen längeren Zeitraum, bis ich es an jemanden weitergeben konnte, der es sogar einigermaßen unterstützen konnte.) Es kann schwierig sein, einen wahren Urlaub zu machen, wenn nichts kann ohne dich getan werden.
- Pierre weist darauf hin, dass niemand vor Ort ist, der Codeprüfungen durchführt oder Best Practices mit Ihnen teilt. Sie können auf verschiedene Arten Gleichaltrige erreichen, aber nichts ist so effektiv, als einen Kollegen auf die Schulter zu tippen und sie zu bitten, sich Ihren Code 5-10 Minuten lang anzusehen.
- In ähnlicher Weise haben Sie möglicherweise Schwierigkeiten, Erfahrungen mit neuen Tools zu sammeln. Offsite-Schulungen sind möglicherweise so selten wie Urlaubszeiten: Jemand wird sich darüber beschweren, dass es sich das Unternehmen nicht leisten kann, eine Woche lang auf Language 3.0 zu verzichten, wenn niemand da ist, der die Language 2.0-Apps am Laufen hält.
- Der berufliche Aufstieg kann äußerst schwierig zu bewältigen sein. Möglicherweise verfügen Sie nicht über eine Position, nach der Sie streben können, und selbst eine Änderung des Titels ist möglicherweise schwierig zu erlangen, und Jahresendberichte haben keinen Bezugsrahmen. Daher wird exzellente Arbeit möglicherweise weitgehend unbemerkt bleiben, wenn es keine andere gibt Grund als, dass niemand wirklich versteht, was Sie tun.
Wenn Sie sich entscheiden, zu einer Firma zu wechseln, in der Sie als Teil eines Teams von Programmierern arbeiten würden, wird Ihre Soloerfahrung Sie wahrscheinlich nicht sehr verletzen. Ihre mangelnde Erfahrung mit Entwurfsmustern ist nicht unbedingt so wichtig wie Ihre Bereitschaft, diese zu erlernen. (Es kann Situationen geben, in denen Sie ein Interview mit einem Kandidaten mit einem ähnlichen Hintergrund führen und Erfahrung mit den Methoden haben, die das Unternehmen anwendet, aber das gilt im Grunde für alle.)
Entsprechend wird Ihre mangelnde Erfahrung in einem Team durch Ihre Fähigkeit, viele Hüte zu tragen, ausgeglichen. Es gibt einige Entwickler, die gute Teamplayer sind, aber niemals die Fähigkeit entwickeln, ein Projekt zu verwalten. Sie haben bereits gezeigt, dass Sie das tun können.
Ich würde empfehlen, dass Sie als Einzelentwickler einige Zeit mit dem Lesen von Tools und Techniken verbringen, die von ähnlichen Entwicklern verwendet werden. Selbst wenn Sie sie nicht selbst verwenden, sind Sie sich dessen bewusst, dass sie existieren, und Sie können darauf verweisen sie während eines Interviews, auch wenn sie nur sagten: "Ja, ich habe ein wenig über MVC-Frameworks gelesen, aber ich habe sie selbst nicht verwendet." Tun Sie, was Sie können, um mit anderen Entwicklern in Kontakt zu bleiben: Besuchen Sie lokale Benutzergruppentreffen, lesen und kommentieren Sie Blogs (oder behalten Sie eines Ihrer eigenen bei), versuchen Sie, von Zeit zu Zeit an Workshops teilzunehmen, sehen Sie sich Webinare und ähnliches an. (Sie könnten auch Websites wie lynda.com für Inhouse-Schulungen in Betracht ziehen: Diese sind nicht so gut wie eine einwöchige Konferenz an einem anderen Ort, aber Sie können die Videos zu Ihrer eigenen Zeit ansehen und nicht alle in Panik versetzen, weil Sie es sind nicht im Büro.)