2009-06-23 15 views
10

Ich mache seit 10 Jahren Web Dev, hauptsächlich den MS Stack, aber auch einige LAMP. Es gibt heutzutage so viele Möglichkeiten für Programmierer und der Arbeitsmarkt scheint überall zu sein.Die Vorteile und Vorteile eines Alleskönner-Programmierers?

Bevor ich wieder in eine neue Technologie eintauchte, hatte ich gehofft, etwas Perspektive von anderen in Bezug auf die zusätzlichen Vorteile eines Alleskönner-Entwicklers zu bekommen, außer eine breite marktfähige Fähigkeit zu haben? Geben Sie bitte Ihre Erfahrung an.

+1

Duplizieren http://stackoverflow.com/questions/17903/should-developers-be-specialists-or-generalists und andere – cletus

+0

Es ist kein Dupe, der fragt "sollte man Generalist oder Spezialist sein", diese Frage ist Fokus auf nur der Generalist. – Marc

+0

Was ist der Unterschied zwischen und Nutzen und ein Vorteil? :-) –

Antwort

16

Hier sind einige Gedanken über die Vorteile der auf dem Gebiet der Programmierung vielfältige Erfahrungen mit:

  • Jede Sprache und Technologie bietet die Möglichkeit, einen anderen Ansatz zur Problemlösung zu lernen. Mit unterschiedlichen Problemlösungstechniken in Ihrem Toolset können Sie in einem sich ständig ändernden Umfeld relevant bleiben.
  • Das Erlernen einer neuen Technologie oder Sprache hilft Ihnen dabei, Ihren Verstand scharf zu halten - er zwingt Sie dazu, verschiedene ähnliche Bereiche des Wissens in Ihrem Kopf zu organisieren und hilft dabei, Ihr Gehirn aktiv zu halten.
  • Ein vielfältiger Hintergrund ist attraktiver für Arbeitgeber, weil es bedeutet, dass Sie eine motivierte Person sind, die Exzellenz auf ihrem Gebiet anstrebt. Wenn Ihr Hintergrund nur Erfahrung mit einer engen Technologie zeigt, kann dies bedeuten, dass Sie nur in Ihrer Komfortzone arbeiten möchten oder, noch schlimmer, unflexibel beim Erlernen neuer Fähigkeiten sind.
  • Verschiedene Sprachen und Technologien passen verschiedene Probleme unterschiedlich.'Wenn alles, was Sie haben, ein Hammer ist, sieht alles wie ein Nagel aus', ist das alte Sprichwort. Wenn Sie mehrere Technologien kennen, können Sie die beste für das jeweilige Problem auswählen.
  • Sie die Gruppe von Menschen erweitern Sie mit und kommunizieren mit in Ihrem Bereich in Wechselwirkung treten können-‚spricht die Sprache‘, eine Phrase zu stehlen, macht es einfacher für Sie, mit Menschen zu arbeiten, die in anderen Technologien spezialisiert. Zum Beispiel erleichtert ein gutes Verständnis der SQL- und Datenbankarchitektur die Interaktion mit den DBAs und deren Verständnis.
  • Es macht Spaß. Persönlich finde ich das Lernen neuer Konzepte in meinem Bereich eine lustige Art, mich als Person zu verbessern. Ich mag es zu lernen.
1

Ich weiß, dass ich normalerweise in der Box stecken bleibe, also möchte ich eine sehr große Kiste haben.

+5

Das hat SIE gesagt (?) – harto

3

Um eine breite Palette von Aufgaben zu lösen, ist es noch wichtiger, eine Reihe von marktfähigen Fähigkeiten.

Die marktfähigen Fähigkeiten helfen Ihnen, Arbeit zu finden. Das Lösen von Aufgaben hilft Ihnen dabei, Ihren Job zu behalten und eine Vielzahl interessanter Aufgaben zu erledigen, statt einige Aufgaben zu lösen und immer wieder zu lösen.

Plus, was auch immer das Problem ist, Sie wissen zumindest, wo Sie anfangen zu lösen - beide sieht sehr beeindruckend und fühlt sich gut an.

6

In meiner kurzen Erfahrung von ~ 5 Jahren in der Software-Industrie, arbeitete ich auf verschiedenen Domänen und Technologien (Java/J2ee, .Net, PHP, Linux-Shell-Skripte, XSLT, Javascript, Endeca und viele mehr). Was ich jetzt fühle, ist, dass ich gut darin bin, logische Probleme in jeder Sprache zu lösen, aber mein Stellenmarktwert ist nicht so viel.

Ich habe nicht angewendet (lesen, wie nie versucht) für einen neuen Job in den letzten 3 Jahren aber, wenn ich offene Jobbeschreibung sehe, sagt es 3+ Jahre auf Java oder 5+ Jahren auf .Net. Ich bin mir nicht sicher, wo ich in den aktuellen Arbeitsmarkt passe.

+3

"x + Jahre" Sache auf Stellenbeschreibungen sind in der Regel eine "nice to have" Art von Anforderung von Seiten der Arbeitgeber. Menschen mit "langer" Erfahrung hätten genauso gut an denselben alltäglichen Aufgaben arbeiten können. Es ist stattdessen, wie geschickt oder flexibel du bist, was zählt. Du solltest dich also nicht davon abhalten lassen, Jobs zu bewerben. – Spoike

1

Es gibt 2 Arten von Technologien: diejenigen, die ich verwendet habe und diejenigen, die ich nicht verwendet habe YET. Ernsthaft spreche ich fast jede Chance, neue Fähigkeiten zu erlernen, entweder indem ich mehr über das, was ich bereits weiß, lerne oder über neue Themen springe.

1

Wenn Sie kleinere Unternehmen wie Start-ups bevorzugen, ist es meiner Meinung nach wichtiger, anpassungsfähig zu sein und neue Fähigkeiten zu erlernen. In einem kleineren Unternehmen ist es wichtig, viele Hüte tragen zu können.

In größeren Unternehmen gibt es mehr Spezialisierung von Fähigkeiten, so ein Experte in einem bestimmten Bereich ist mehr geschätzt, IMHO.

Die Auseinandersetzung mit einer Vielzahl von Disziplinen und Sprachen bietet den Vorteil, unterschiedliche Perspektiven zu haben und vielleicht Probleme besser lösen zu können. Dies ist wichtiger, wenn Sie eher eine Designer-/Architektenrolle anstreben.

Ich denke, es war Joel selbst, der schrieb, dass er lieber jemanden einstellen würde, der in der Lage ist, sich an das Umfeld des Geschäfts anzupassen und zu verändern.

0

Ich möchte eine meiner eigenen hinzufügen (während ich warte einige upvotes zu bekommen für LBushkin verwenden)

Es gibt viele Herausforderungen, die eine neue Technologie von Lernen kommen und eignet sich für mit etwas völlig anderes, um hin und wieder zu arbeiten.

1

Sie haben eine zentrale Fähigkeit - das ist großartig. In vielen Bereichen darüber hinaus gut informiert zu sein, ist auch großartig. Es macht dich zu einem sehr wertvollen Vermögenswert. Vor allem, wenn Sie neue Fähigkeiten leicht erlernen können. Wenn Sie das beweisen können, dann haben Sie nicht nur eine starke Klage und viel anderes breites Wissen, sondern Sie sind auch nicht auf die Besonderheiten auf Ihrer Liste beschränkt. Das wird dich weit bringen.

Für diejenigen ohne einen zentralen Satz: das ist sehr schlecht während eines Interviews. Wenn Sie als "Tausendsassa, Meister von niemandem" in ein Interview gehen, dann sind Sie nur ein Teil des grauen Dunstes aller anderen Kandidaten. Wie viele anständige Programmierer sind kein Tausendsassa? Nicht viele. Und sie sind es, mit denen du verglichen wirst. In mindestens einem Bereich muss man immer außergewöhnlich gut sein. Ja, es ist erschreckend, so viele Eier in einen Korb zu legen, aber wenn du es nicht riskierst, wirst du immer nur eine der Massen während der Interviews sein.

6

Ich bin seit vielen Jahren Entwickler und betrachte mich als Alleskönner, Meister der None. Ich war mäßig erfolgreich dabei, wünschte mir aber bis zu einem gewissen Grad, dass ich die Geduld (und mehr Klugheit?) Hätte, mich wirklich zu spezialisieren und die Grundlagen bestimmter Fähigkeiten/Bereiche gelernt zu haben.

Aus meiner Erfahrung sind hier einige der Vorteile von Generalist über Spezialisierung zu sein:

  • Es hält mich auf meinen Zehen. Ich fühle mich viel besser an meine sich ständig verändernde Arbeitsumgebung angepasst. Ich fühle mich weniger wahrscheinlich, dass ich ein Dinosaurier werde.
  • Es macht mehr Spaß, bei einem Startup zu arbeiten, wo man viele verschiedene Dinge tun muss.
  • Eine größere Auswahl an Karrierewegen.

Vorteile der Spezialisierung:

  • natürlich - die Spezialisierung größer, das Gehalt höher ist.
  • Ich habe auch bei "large-co" gearbeitet, wo, wenn Sie sich spezialisieren, Sie für das Leben beschäftigt sind (Ihr oder das Firmenleben, das jemals zuerst kommt).
  • Ich bin gekommen, um einige der Bereiche zu bereuen, in denen ich mich freiwillig oder unfreiwillig spezialisiert habe. Z.B. Ich schrieb unser Build-System und für immer wurde es als "Build-Typ" bezeichnet, obwohl ich viele andere Dinge getan habe. Build-Systeme sind eine wertvolle unterschätzte Funktion - aber dafür möchten Sie nicht bekannt sein.

Fazit: das Gleichgewicht der beiden durch einige Bereiche, in denen Sie Kommissionierung ein bisschen mehr spezialisiert als Ihre Mitarbeiter sein kann.

1

Haben Sie den Vorteil gesehen, in der Vergangenheit in der Lage zu sein, ein besserer Mitarbeiter zu sein, indem Sie mit so vielen verschiedenen Positionen umgingen? Ich nehme Ihre Frage vielleicht in einem anderen Licht, wo ich all die verschiedenen Erfahrungen ansehe, die ich hatte und wie sie mir nützen. Möchtest du zum Beispiel nur ein Programmierer sein oder möchtest du eine Vielzahl von Aufgaben erfüllen, während du ein "Entwickler" im Titel bist? Welche Arten von Karriereverläufen und Arbeitsbedingungen bringen das Beste aus dir heraus?

Ich kann zurückblicken auf die paar verschiedenen Arten von Unternehmen, die ich gearbeitet habe und was hier gut funktionierte, was war Mist dort drüben, etc. Während die Marktfähigkeit dieser ist fraglich, da jeder, der x Jahre arbeitet, die gleiche Nummer hat von Jahren der Erfahrung zu verwenden, und einige Unternehmen können genug Veränderungen durchmachen, dass es manchmal wie ein anderes Unternehmen ist. Indem wir dies in eine Weise tun, um einem Arbeitgeber oder einem Arbeitgeber zu sagen: "Können wir so arbeiten?" oder "Wo ich früher gearbeitet habe, haben wir so etwas gemacht, dies und einige davon und es hat sich großartig ausgezahlt. Könnten wir das hier versuchen?" Die Fähigkeit, die Vergangenheit zu analysieren und dies zu nutzen, ist mein Hauptanliegen, da die Erfahrungen aller Menschen sie an ihren aktuellen Platz bringen.

2

Ein "Alleskönner" zu sein, kann ein Nachteil sein, wenn Sie auf der Suche nach einem neuen Job sind, weil es Ihnen an Fachkenntnissen mangelt. Nehmen wir an, Sie haben Erfahrung in Java und .NET.

Java-Job: Ihre allgemeine Erfahrung mit Java macht Sie nicht zu einem JSF-Spezialisten und Ihre .NET-Erfahrung ist bedeutungslos.

.NET-Job: Ihre allgemeine Erfahrung mit .NET macht Sie nicht zu einem WPF-Spezialisten und Ihre Java-Erfahrung ist bedeutungslos.

-1

Wenn Jack allerhand ist nicht wirklich, dass Sie nur die grundlegenden aller Dinge kennen, müssen Sie zumindest einige grundlegende davon kennen und mehr, so dass Sie in der Lage sein werden, mit der Fähigkeit zu arbeiten, die Sie hatten.

Die Möglichkeit, "Hello World" in jeder Programmiersprache zu programmieren, macht Sie nicht zum "Alleskönner".

+0

Dies ist keine wirkliche Antwort und fügt den bereits geposteten Antworten nichts hinzu. –