Sollte ich mich darauf konzentrieren, tief oder breit zu sein?

10

Ich bin seit etwas mehr als einem halben Jahr ein professioneller Entwickler und war erstaunt darüber, wie groß die Welt wirklich außerhalb des College ist. Ich habe in meiner Freizeit weiter gelernt, frage mich aber, wo ich mich konzentrieren soll?

FOKUS 1) Der von meiner Firma verwendete Entwicklungsstapel. Schnellste Auszahlung in meiner täglichen Entwicklung. # Tiefste

FOKUS 2) Eine andere Sprache mit demselben Paradigma. Sehen Sie, ob ich mein Wissen und meine Denkweise verallgemeinern kann.

FOKUS 3) Unterschiedliche Sprache, unterschiedliches Paradigma. Erweitern Sie meine Grenzen und lernen Sie neue Wege, um Dinge zu tun. #Broadest

Wenn jemand einen anderen Fokus hat, kann er dies gerne veröffentlichen.

Bob Roberts
quelle

Antworten:

17

Ja.

Ich würde sagen, dass Sie beides tun müssen. Beginnen Sie mit # 1, da sich dies sofort auszahlt und Sie dies nicht lange getan haben. Aber Sie müssen definitiv einige von # 2 und # 3 machen.

Marcie
quelle
Ein guter Plan, mich sofort nützlicher zu machen, erhöht meinen Wert im Unternehmen, während die beiden letzteren meinen Wert als Entwickler im Allgemeinen erhöhen.
Bob Roberts
Genau. Obwohl ich denke, dass Sie das im Laufe Ihrer Karriere feststellen werden, wird es Ihren Wert im Unternehmen steigern, wenn Sie sich als Entwickler im Allgemeinen wertvoll machen. Die Auszahlung kann jedoch einige Jahre betragen.
Marcie
1
Vielleicht sollte die Antwort "Beide" anstelle von "Ja" sein. Wenn ich mir den Titel der Frage und die Antwort ansehe, bin ich verwirrt.
Amr
1
Ich habe festgestellt, dass ich beim Erlernen einer neuen Sprache oder eines neuen Paradigmas auf Platz 1 effektiver werde. Ich glaube, dies liegt daran, dass Sie durch eine breitere Erfahrung unterschiedliche Perspektiven zur Lösung eines bestimmten Problems erhalten. Dieselbe Lektion gelernt wie: Wenn Sie nur einen Hammer haben, sieht jedes Problem wie ein Nagel aus.
Bryan Rehbein
24

Wenn Leute mich um Karriereberatung bitten, ist Ihre Frage eine der ersten Fragen, die ich ihnen stelle. Ich glaube nicht, dass jemand diese Frage für Sie beantworten kann. Ich denke, Sie müssen selbst entscheiden, ob es wahrscheinlicher ist, Ihre Karriereziele zu erreichen, wenn Sie sich auf Tiefe oder Breite konzentrieren.

Als ich das letzte Mal das Team wechselte, hatte ich zwei Möglichkeiten: im XBOX-Entwicklertool-Team oder im C # -Compiler-Team zu arbeiten. Mir wurde klar, dass es auf Breite und Tiefe ankam. Im XBOX-Team konnte ich an einem Tag an Sicherheitssystemen arbeiten, am nächsten an Audiosystemen, Video, Netzwerk, Hardware-Schnittstellen, wie Sie es nennen. Sicher, einige Leute sind Experten, aber jeder muss über alles etwas wissen. Im C # -Compiler-Team konnte ich in eine Sprache und einen Compiler eintauchen und das Ganze wirklich gründlich verstehen.

Ich dachte viel darüber nach und entschied, dass ich eher dazu geeignet war, ein Experte für eine Sache zu sein, als bei vielen ein Dilettant. Das war eine gute Wahl für mich, aber vielleicht nicht für dich. Einige Leute sind sehr erfolgreich, wenn sie ein bisschen von allem wissen.

Mein Rat ist daher, die Frage umzudrehen. Finden Sie heraus, welche Art von Person Sie sind, und prüfen Sie dann, ob Ihr Unternehmen Chancen für jemanden wie Sie hat. Wenn nicht, finden Sie eine, die dies tut.

Eric Lippert
quelle
Im Nachhinein ist dieser Beitrag wirklich episch. :)
Asche999
11

Als Spezialist können Sie teurer werden. Die Beschäftigungsmöglichkeiten, die ein hohes Niveau erfordern, sind jedoch sowohl in ihrer Anzahl als auch geografisch begrenzt.

Ein Generalist zu sein, zahlt sich vielleicht weniger aus, eröffnet Ihnen jedoch eine Vielzahl von Beschäftigungsmöglichkeiten, möglicherweise auf der ganzen Welt.

Auch für höhere Ebenen und Führungsaufgaben ist es bevorzugt, eine Person zu haben, die Erfahrung mit einer Vielzahl von Dingen, Techniken und Technologien hat. Wenn Sie Kanten kennen und ein großes Bild sehen können, sind Sie ein wertvolles Gut.


quelle
Oh, ich habe nicht einmal über meine derzeitige Beschäftigung nachgedacht (obwohl ich hoffe, dass dies ein langfristiger Aufenthalt sein wird).
Bob Roberts
3

Ich denke, in Ihrer Entwicklungsphase hat es oberste Priorität, etwas Tiefe zu erlangen. Ich sehe zu viele Leute, die ein wenig über eine Reihe von Dingen wissen, aber nicht daran vorbei kommen, Einstiegsarbeit zu leisten, weil ihr gesamtes Wissen Einstiegsarbeit ist.

Wenn ich ein Spezialist sein wollte, ist die Bautiefe natürlich die beste erste Wahl.

Wenn ich Generalist werden möchte, bauen Sie zuerst die Tiefe in einem Stapel auf (mindestens auf die mittlere Ebene) und verzweigen Sie dann in andere Sprachen. Wenn Sie zuerst eine gewisse Tiefe aufbauen, fällt es Ihnen möglicherweise leichter, Tiefe in mehreren Sprachen aufzubauen, da Ihnen mehr Konzepte zur Verfügung stehen und Sie mehr über das wissen, was Sie möglicherweise lernen möchten. Dann würde ich mich ein bisschen in etwas anderes verzweigen. Dann kommen Sie zurück und bauen Sie Tiefe auf das fortgeschrittene Niveau auf, verzweigen Sie sich dann wieder und lernen Sie mehr Dinge, die sich sehr von dem unterscheiden, was Sie bereits wissen. Erweitern Sie dann diese Tiefe in einem anderen Bereich auf ein mittleres Niveau, lernen Sie wieder etwas anderes usw.

Vorsichtsmaßnahme - Ich bin ein Spezialist, daher bevorzuge ich eindeutig die Tiefe des Wissens

HLGEM
quelle
1

Beide Optionen haben ihren Platz. Die Konzentration auf den von Ihrem Unternehmen verwendeten Entwicklungsstapel hilft Ihnen bei Ihrer Arbeit, aber das Erlernen anderer Technologien hilft Ihnen bei Ihrer Karriere.

In den späten 1990er Jahren waren COBOL-Kenntnisse bei Unternehmen, die ihre Software für das Jahr 2000 vorbereiten mussten, sehr gefragt. Wer jedoch heute nur noch COBOL kennt, wird es viel schwerer haben, Arbeit zu finden.

Auf die gleiche Weise wird die heutige Technologie veraltet sein, lange bevor die meisten von uns bereit sind, in den Ruhestand zu gehen. Daher ist das Erlernen neuer Fähigkeiten und Technologien unerlässlich.

Bruce Alderman
quelle
0

Lerne etwas wie Haskell oder ein Lisp. Das Erlernen einer funktionalen Sprache hat mich wirklich dazu gebracht, meinen Code zu entkoppeln, was das Debuggen insgesamt einfacher macht. Das einzige Problem, auf das Sie stoßen könnten, ist, dass Sie nicht zurückkehren möchten.

http://book.realworldhaskell.org/read/

http://lisperati.com/haskell/

http://learnyouahaskell.com/

Theo Belaire
quelle
Das ist richtig, lernen Sie funktionale Programmierung, da ich für OCaml oder F #
0xFF
F # lässt sich gut in C # oder andere .net-Inhalte integrieren, an denen Sie arbeiten. Nur etwas zu beachten. Clojure funktioniert gut mit Java.
Theo Belaire