Est-il préférable de se spécialiser dans un seul domaine que j'aime ou de m'étendre à d'autres domaines pour élargir mes horizons? [fermé]

31

C'est un dilemme auquel je réfléchis depuis longtemps.

Je suis un étudiant diplômé et mes sujets d'intérêt sont la conception de langage de programmation, l'analyse de code, la compilation, etc. Jusqu'à présent, ce domaine a été très intéressant et gratifiant pour moi, alors je pensais à trouver un emploi dans ce domaine et continuer de s'y spécialiser. J'ai l'impression que c'est un domaine relativement solide qui ne "se démodera" pas de si tôt. J'ai toujours pensé que dans des domaines aussi complexes, il vaut mieux être un vrai expert qu'un simple gars qui comprend superficiellement ce dont parlent les experts.

D'un autre côté, je pense qu'en me spécialisant de cette façon, je limite vraiment mon option future. J'ai toujours été un fervent partisan des approches multidisciplinaires des problèmes. Je devrais peut-être aller chercher un emploi de programmation générale dans lequel je pourrais acquérir de l'expérience dans d'autres domaines, ainsi que parfois appliquer mon domaine préféré pour résoudre des problèmes. Se spécialiser dans un ou deux domaines seulement peut m'empêcher de sortir des sentiers battus et provoquer une stagnation.

J'aimerais vraiment entendre plus d'opinions sur ce choix. La vérité est que je penche déjà vers l'un des choix, donc la psychologie de base dit que rien ne changera d'avis, mais j'aimerais quand même entendre des commentaires.

Chêne
la source
Bon déroulement. Je te porte garant. Je voudrais aussi voir d'autres commentaires
PradeepGB
Spécialisé dans la programmation ET autre chose qui ne disparaîtra pas, comme le droit, les taxes, la langue, la biologie ou les mathématiques peut-être. Alors que les compétences informatiques perdent rapidement de leur valeur, d'autres compétences persistent. Il est difficile de trouver (à titre d'exemple) un programmeur parlant italien + chinois spécialisé dans les taxes. Faites vos paris à bon escient. Pensez-y: au cours des 20 prochaines années, en tant que programmeur, vous aurez (espérons-le) besoin d'apprendre beaucoup plus de choses qu'il n'en faut pour terminer une thèse de doctorat. De ce point de vue, 2 années supplémentaires de scolarité dans quelque chose de "plus statique" ne semblent pas être une idée terrible.
Job

Réponses:

21

Spécialisez-vous si vous l'appréciez

Comme vous le savez, si vous vous spécialisez, vous encourez automatiquement un coût d'opportunité dans la mesure où vous ne serez pas immédiatement éligible pour d'autres technologies (par exemple, les programmeurs Java ne sont pas souvent immédiatement acceptés pour les travaux d'optimisation du compilateur). Cependant, vous devez équilibrer cela avec votre amour de la complexité inhérente à votre discipline choisie.

Vous dites que vous voulez être un expert - allez-y et prenez le temps d'apprendre la discipline que vous avez choisie. En tant que communauté, nous avons toujours besoin de nouveaux experts. Cependant, mon conseil est de suivre la recommandation pragmatique du programmeur "Apprendre une nouvelle langue chaque année" . De cette façon, pendant que vous vous lancez dans une analyse lexicale approfondie du codage algorithmique, vous pouvez également créer une petite application iPhone qui vous intéresse sur le côté. Vous ne savez jamais, la pollinisation croisée de différents paradigmes peut vous donner un aperçu qui étendra votre spécialisation dans de nouveaux domaines.

Gary Rowe
la source
En ce qui concerne votre première phrase - il y a aussi la crainte qu'un jour je me lasse de ce que j'aime et puis, en tant que spécialiste, il sera difficile de changer de domaine. D'un autre côté, mon intérêt pour ce domaine se poursuit depuis un bon nombre d'années.
Oak
1
@Oak, vous ne pouvez jamais prédire quand vous vous lasserez de quelque chose, alors choisissez un domaine dont vous êtes presque sûr d'être satisfait et maximisez-le. Si vous sentez l'épuisement professionnel, détournez votre attention vers d'autres travaux. Si le domaine que vous avez choisi est suffisamment avancé (et il semble que ce soit le cas), vous devez avoir suffisamment de compétences pour pouvoir tout ramasser. OK, vous serez un noob, mais consacrez-vous et vous volerez bientôt.
Gary Rowe
2
Étant donné que Oak s'intéresse aux langues et à la conception de langues, je parie qu'il connaît déjà une tonne de langues, et apprendre de nouvelles langues relève essentiellement de sa spécialisation (plus ou moins). Pour quelqu'un qui s'intéresse déjà aux langues, je suggère de faire quelque chose de nouveau et de non trivial dans une langue que vous connaissez: essayez-vous à l'IA ou à l'apprentissage automatique ou à la PNL ou à l'écriture d'un système d'exploitation ...
Tikhon Jelvis
20

Je pense que cela dépend de ce que vous attendez de votre carrière ...

Sur le plan technique : être à la pointe de tous les métiers signifie que vous pouvez postuler pour une plus grande variété de rôles que quelqu'un qui est extrêmement spécialisé. Si vous voulez être adaptable et vous déplacer sans être lié à un créneau particulier, ce n'est probablement pas trop mal. Cependant, l'inconvénient est que vous serez probablement confiné à un niveau relativement junior / intermédiaire de rôles, sauf si vous approfondissez un domaine particulier.

Se spécialiser dans un domaine donné est à peu près le contraire de ce qui précède. Vous serez probablement en mesure d'obtenir un statut et des revenus plus élevés (si vous êtes dans un bon créneau avec une forte demande bien sûr), mais vous risquez de devenir un pigeonnier dans cette spécialité dans une large mesure.

Donc, au sens large, ces deux sont les choix au niveau technique.

Sur le plan politique : si vous parlez de "progression de carrière" en termes de passage à la gestion et autres, alors peu importe ce que vous faites techniquement. Pratiquement tous ceux que je connais qui sont passés à la direction après avoir occupé un poste de programmeur l'ont fait en apprenant très bien les gens et les processus métier de leur organisation. Certains étaient des spécialistes et d'autres étaient des généralistes (en termes de technologie avec laquelle ils travaillaient) - mais TOUS étaient très profondément ancrés dans l'organisation, connaissaient bien les personnes et les processus, et il était simplement devenu logique pour eux de commencer à assumer ces responsabilités.

Donc, dans un sens de base, si vous voulez faire progresser votre carrière en termes de progression dans la hiérarchie de gestion, il s'agit de jouer à la politique. Être un généraliste ou un spécialiste n'a pas autant d'importance (seulement peut-être devenir un peu spécialiste des processus et de la technologie que vous allez gérer).

Tables Bobby
la source
4
Je ne sais pas exactement pourquoi vous devez être très spécialisé pour être classé comme senior.
Jon
@ Jon: Bon point. J'ai édité ça.
Bobby Tables
3
En outre, Jack-of-all-trades peut avoir une perspective unique face à un problème, car il peut envisager des solutions supplémentaires que quelqu'un qui ne connaît qu'une seule technologie ne peut même pas imaginer.
Wildpeaks
10

Tout d'abord, les offres d'emploi exagèrent souvent le niveau de spécialisation requis. Aucune entreprise ne met "nous avons besoin d'un gars qui connaît un peu Javascript parce que nous ne savons rien" dans une offre d'emploi; ils ont mis "Javascript expert" là-dessus parce que, toutes choses étant égales par ailleurs, ils aimeraient avoir quelqu'un qui était en fait un expert. Cela ne signifie pas nécessairement que seuls les experts sont qualifiés pour tout ce que cette entreprise doit faire en Javascript (et vous seriez surpris de voir combien de fois ils ne savent même pas ce qu'ils doivent faire). Alors ne vous inquiétez pas trop d'être un "expert"; postulez pour des emplois où vous maîtrisez les compétences annoncées et voyez comment les choses se passent dans l'entretien. Être bon dans un travail, c'est bien plus que le nombre d'années de [insérer la langue] que vous avez sous votre ceinture. Et si le travail est gratifiant,

Il s'agit de «trouver» un emploi; pour «garder» un emploi, être JOAT peut être merveilleux. Si votre entreprise commence à explorer différentes langues et plates-formes, vous serez en avance sur le jeu. Si votre entreprise basée sur MS a soudainement besoin d'un gars UNIX pour quelque chose, vous serez son go-to (être ce type ou gérer l'embauche d'un "expert"). Garder un emploi, c'est être indispensable quoi qu'il arrive, et JOAT est un bon moyen d'être ce type.

De plus, cela rend beaucoup plus facile de trouver un nouvel emploi lorsque votre entreprise fait faillite :)

EZ Hart
la source
1
"Si votre entreprise MS a soudainement besoin d'un gars UNIX pour quelque chose" ... oh nous pouvons rêver, n'est-ce pas :)
Jordan
@Jordan - pas besoin de rêver; J'ai été là. J'ai travaillé pendant des années dans une boutique MS, mais nous nous sommes finalement retrouvés avec des clients qui avaient besoin d'assistance sur MySQL et Linux. Ceux d'entre nous qui connaissaient Linux grâce à d'autres emplois et à un usage domestique devaient intervenir jusqu'à ce que nous puissions embaucher un administrateur Linux. Cela arrive :)
EZ Hart
7

Eh bien, oui et non. Le problème est que vous ne serez jamais une rock star. Vous ne serez jamais ce type qui peut faire des choses avec C que personne d'autre ne peut faire. Votre manque de concentration empêche ce genre d'excellence.

D'autre part, lorsque la direction décide qu'ils ne peuvent pas se permettre une tonne de programmeurs, ils ne seront pas le feu vous , de garder le . La flexibilité a ses avantages.

Je suis Jack et mon département a connu une réduction de 80% au cours des 4 dernières années. Pourtant, je suis là. C'est en partie parce que je suis plus flou que la plupart. Je comme se remis une tâche que je ne sais rien, et mes patrons comme le fait que je dis « Bien sûr! » peu importe la merde de cul qu'ils viennent. Et, quand vous comprenez la situation dans son ensemble, c'est une sorte de rockstardom que la plupart des spécialistes n'atteignent jamais, et cela peut être lucratif.

Donc, si vous cherchez à être une rock star, vous devez vous concentrer, car personne ne peut être meilleur que tout le monde. Mais si vous recherchez la stabilité, choisissez la flexibilité, car être flexible est plus commercialisable que d'être un mauvais cul.

Satanicpuppy
la source
3

Generalist vs. Specialist est un article de CIO.com, mais il existe probablement des dizaines d'articles ou de blogues similaires de personnes essayant de voir si l'un est meilleur que l'autre. Chacun a ses avantages et désavantages. Quiconque veut dire que l'un l'emporte totalement sur l'autre peut très bien être biaisé dans une certaine mesure.

N'oubliez pas qu'il y a une illusion possible de chaque côté de votre choix. Ce que vous voyez comme une spécialisation peut avoir différentes saveurs. Par exemple, considéreriez-vous les développeurs Web dans leur ensemble comme des spécialistes ou des généralistes? Certains pourraient voir cela comme une spécialisation et d'autres peuvent encore le voir comme étant assez large car de nombreuses applications Web peuvent de nos jours avoir toutes sortes de composants qui peuvent nécessiter une expertise différente dans une certaine mesure.

Bien que les domaines que vous énumérez me fassent penser que vous souhaitez travailler pour une société de logiciels, certaines parties des technologies de l'information pourraient utiliser des compétences similaires d'une certaine manière. Vous pouvez savoir dans quelle mesure la personnalisation est effectuée sur divers logiciels standard pour le faire fonctionner et dans quelle mesure est-ce un investissement pour la plupart des entreprises de donner un exemple standard.

JB King
la source
3

D'un autre côté, je pense qu'en me spécialisant de cette façon, je limite vraiment mon option future.

Rappelles toi. Votre avenir s'étend sur des décennies.

La technologie actuelle aura considérablement disparu à mesure que de nouvelles opportunités se présenteront.

La spécialisation ne fait aucun mal.

Je me suis spécialisé dans le poinçonnage de cartes papier pour écrire des programmes COBOL. Maintenant, j'écris en Python et je n'ai pas touché à une carte en papier perforé depuis des décennies.

La technologie va et vient. Tout ce que vous vous spécialisez maintenant aura disparu dans une décennie et vous vous spécialiserez dans autre chose. Ou vous deviendrez obsolète.

S'inquiéter de «l'expérience dans d'autres domaines» est une perte de temps. Vous obtiendrez cette expérience, que vous le vouliez ou non.

S.Lott
la source
3

Cela dépend de votre carrière. Je pense que cela devrait aider votre carrière si vous voulez être consultant général, démarrer votre propre entreprise, travailler pour une petite entreprise ou dans toute autre situation où ce type de flexibilité est un atout reconnu. Je suis dans la même situation et travaille actuellement en tant que consultant, bien que je poursuive une spécialisation en .NET / C # / SQL / ASP.

Dans la même veine, est-il possible de faire carrière en étant polyvalent avec la technologie, ayant un large éventail (quoique peu profond) d'expérience, mais sans se spécialiser dans une technologie particulière?

Oui, je pense que vous pourriez rechercher des petites entreprises qui ne peuvent pas embaucher quelqu'un pour chaque domaine de spécialisation, ou être consultant.

(Il est également pas une mauvaise idée de choisir une zone que vous vous spécialiser dans, en plus de maintenir vos compétences plus générales.)

vjones
la source
2

Lorsque j'engage des développeurs, je privilégie les personnes ayant de la force et de l'expérience dans les compétences particulières que je recherche. Les recruteurs vont amplifier considérablement ce biais. Cela signifie que même si je pourrais vous embaucher (et j'aime les personnes ayant de vastes compétences et de bonnes connaissances fondamentales qui peuvent apprendre), je ne vais probablement jamais vous parler.

Mais moi-même, j'ai toujours été un homme à tout faire et j'ai eu beaucoup de titres différents dans la même entreprise où j'ai travaillé la majeure partie de ma carrière. Pourtant, je redoute en quelque sorte la perspective de devoir chercher un emploi et je ne pense pas que je pourrais facilement décrocher un autre emploi à mon salaire actuel (ce qui est largement satisfaisant, mais les gens ici me connaissent).

Jeremy
la source
2

comme d'habitude...

Ça dépend

Cela dépend de ce que vous entendez par «carrière». Plus précisément, cela dépend de ce que vous pensez que vous entendez par «carrière».

Ces jours-ci, je travaille beaucoup avec des applications Web. Quand j'ai commencé cette carrière, le World Wide Web n'existait pas. Donc, dans une très large mesure, la réponse de @ Satanicpuppy est exacte.

Il y a quatre avantages qui viennent avec le territoire jack-of-all-trades (JOT):

  1. La volonté et la capacité d'apprendre tout ce qui est nécessaire pour faire le travail
  2. La sagesse de savoir ce que vous ne savez pas
  3. L'humilité de le dire et de demander de l'aide en cas de besoin.
  4. Un grand sac de trucs à travers les frontières de plusieurs domaines

Le principal inconvénient est: il faut beaucoup, beaucoup plus de temps pour exceller , car vous poussez la courbe d'apprentissage sur plusieurs fronts.

Suis-je aussi bon DBA que certains amis qui n'ont rien fait d'autre que ça depuis 15 ans? Bien sûr que non. Puis-je voir en un instant des solutions qu'ils n'imagineront jamais en quinze jours? Oui.

Le meilleur conseil, je pense, est de continuer à être un JOT jusqu'à ce que vous trouviez quelque chose de si fascinant, si convaincant que vous voulez le faire et seulement jusqu'à la fin des temps. Ce "ça" sera votre spécialité.

J'aime résoudre de nouveaux problèmes difficiles, rechercher des innovations pour tuer le banal et apprendre continuellement - c'est mon "ça", et c'est la raison pour laquelle j'aime l'informatique

Être généraliste est ma carrière.

Steven A. Lowe
la source
+1: Être généraliste est aussi ma carrière. :-) Connaître des choses autres que votre domaine problématique ou votre technologie principale est utile car cela vous permettra d'avoir une boîte à outils de solutions possibles . Cela ne fait peut-être pas de vous un super spécialiste, mais vous pourrez bricoler avec de nouveaux jouets, je veux dire, la technologie.
Spoike
2

Je pense que l'une des raisons pour lesquelles les entreprises recherchent et apprécient davantage les personnes spécialisées remonte aux abstractions qui fuient . Le problème est qu'au cours des 30 dernières années environ, les ingénieurs logiciels ont augmenté le nombre de couches d'abstraction de manière exponentielle et autant que nous aimerions nous assurer qu'il n'y a pas d'effets secondaires, ils surgissent toujours. Et ce sont les idiosyncrasies non documentées qui ont tendance à vous attraper.

Vous pouvez peut-être commencer à utiliser rapidement les nouvelles technologies en lisant les spécifications et les exemples en ligne, mais avez-vous déjà remarqué que lorsque vous démarrez quelque chose de nouveau, vous passez 20% de votre temps à écrire du code pour une fonctionnalité et 80% de votre temps à rechercher le bug le plus étrange tu as déjà vu? Lorsque vous devenez un expert dans un domaine, cette ration passe de 20/80 à 95/5 (je compose des chiffres, mais en général, ils sont probablement proches) spécifiquement dans ce domaine. Ce qui signifie que vous pouvez fournir du travail beaucoup plus rapidement et éviter les pièges / bogues courants avant même qu'ils ne se produisent. Par exemple, plus tôt dans la journée, l'un de nos ingénieurs principaux (nouveau dans l'équipe / produit) a passé plus d'une demi-journée à rechercher un problème de corruption de pile qui m'a pris 5 minutes à identifier car il s'agissait de mon propre terrain.

En devenant un expert dans votre domaine, vous deviendrez plus visible et plus précieux pour la direction. Je ne connais pas les autres entreprises, mais dans celles où j'ai travaillé, votre rémunération (au moins en partie) dépend de l'importance de vos responsabilités. JOAT n'a généralement pas de responsabilités permanentes. Au lieu de cela, les managers les utilisent comme des ressources mobiles / interchangeables (notre VP les appelle les couteaux de l'armée suisse) qui peuvent être déplacés d'une équipe à l'autre en fonction de la demande. Vous pouvez donc rester dans l'entreprise pendant 10 ans, puis regarder en arrière et vous rendre compte que vous n'avez jamais acquis une seule responsabilité. J'ai un très bon ami (qui est également un excellent développeur C ++ / C #, mais qui est aussi un très bon JOAT car il prendra n'importe quel travail) qui a été transformé en un tel rôle. Je sais qu'il n'est pas content parce que même si j'ai un morceau très important et amusant du produit comme terrain de jeu, il est principalement un invité temporaire dans la terre de quelqu'un d'autre. Mais maintenant, il ne peut plus s'en sortir.

Cela dit, avoir les compétences de JOAT est tout aussi important, donc même si je n'essayerais pas nécessairement de me positionner comme JOAT, je pense qu'il est important de continuer à lire / étudier / apprendre de nouvelles choses parce que la technologie évolue et même si vous êtes un expert aujourd'hui, vous devrez peut-être devenir un expert dans quelque chose de complètement différent demain.

DXM
la source
Le cas de votre ami est exactement ce que je vis en ce moment! +1
Html Tosin
1

Je dirais absolument.

Mais vous allez devoir aller le chercher, il ne sera pas affiché dans un journal ou une offre d'emploi en ligne (la probabilité est faible). Ainsi, au lieu de chercher des emplois spécialisés, vous devriez peut-être chercher des emplois qui correspondent à votre variété de forces. "Marginally well" est subjectif, peut-être que vous êtes trop dur avec vous-même, modeste aussi, mais c'est une bonne chose (-:

De plus, bien que vos expériences et votre expertise soient importantes, les employeurs sont plus intéressés par votre capacité à produire des résultats. Demandez-vous: que puis-je faire avec ma variété de connaissances et d'expériences qui améliore les résultats de cette entreprise ? Sans voir votre curriculum vitae, certains titres que je peux penser du haut de ma tête sont Ingénieur Solutions, Architecte (Réseau, Application, etc.), ou même un CTO.

Enfin, mon conseil est de faire carrière de ce que vous aimez. Vous devrez le faire pendant plus de 8 heures par jour pendant de nombreuses années, et vous pourriez aussi bien aimer ce que vous faites à ce rythme (-;

HTH, et meilleurs voeux,

KM

KM.
la source
1

Il est vrai que la plupart des offres d'emploi jouent contre eux en étant trop spécifiques ou trop exigeants. Ils sont écrits comme des publicités (probablement pour montrer à quel point ils sont puissants), mais cela empêche certains grands profils de s'appliquer pour les raisons que vous énoncez dans votre question.

Voici l'offre d'emploi que j'utilise:

Description du poste et de la personne

Au moins 4 ans d'expérience avec .NET Framework. La connaissance de technologies spécifiques n'est pas requise. Les candidats doivent être des apprenants rapides et être capables de démontrer un enthousiasme pour apprendre de nouvelles choses. Nous voulons des gens qui:

  • sont intéressés par les médias numériques
  • voir les difficultés comme des opportunités
  • faire avancer les choses et ne sont pas pilotés par CV sont
  • intéressé par le côté commercial de
  • leur travail a l'esprit startup Langue: français OU anglais

Compétences (non requises mais chacune sera un atout):

  • .NET Framework 4.0
  • nHibernate ou Entity Framework
  • Composants DevExpress
  • LINQ
  • WCF
  • HTML / CSS / Javascript
  • ExtJs

Comme vous le voyez, à l'exception de l'expérience globale avec .NET, aucune autre connaissance n'est vraiment requise. Cependant, ce qui est requis, c'est la capacité de se pencher sur de nouvelles choses.

Étant donné que vous ne pouvez pas contrôler la façon dont les entreprises rédigent leur description de poste, vous devez les considérer comme des opportunités d'apprentissage.

Quand je vois une offre d'emploi très exigeante, je vois cela comme une opportunité d'apprendre de nouvelles choses. Pendant l'entrevue (si je comprends), j'explique que puisque ma motivation est d'apprendre et de faire avancer les choses, je ne serais pas trop affecté par le manque d'expérience dans l'une des technologies énumérées.

En fait, c'est comme ça que j'ai appris si vite: en choisissant des emplois exigeants .


la source