it-swarm.it

È meglio specializzarsi in un singolo campo che mi piace o espandersi in altri campi per ampliare i miei orizzonti?

Questo è un dilemma a cui sto pensando da un po 'di tempo.

Sono uno studente laureato e i miei argomenti di interesse sono la progettazione del linguaggio di programmazione, l'analisi del codice, la compilazione, ecc. Finora, questo campo è stato molto interessante e gratificante per me, quindi stavo pensando di trovare un lavoro in quel campo e continuare specializzarsi in esso. Mi sento come se fosse un campo relativamente solido che non "passerà di moda" presto. Ho sempre pensato che in campi così complessi è meglio essere un vero esperto piuttosto che un altro ragazzo che capisce superficialmente di cosa parlano gli esperti.

D'altra parte, sento che specializzandomi in questo modo limito davvero la mia opzione futura. Ho sempre creduto fortemente negli approcci multidisciplinari ai problemi. Forse dovrei andare a cercare un lavoro di programmazione generale in cui poter acquisire esperienza in altri campi, nonché di tanto in tanto applicare il mio campo preferito per risolvere i problemi. La specializzazione in uno o due campi può impedirmi di pensare fuori dagli schemi e causare stagnazione.

Mi piacerebbe davvero sentire più opinioni su questa scelta. La verità è che mi sto già inclinando verso una delle scelte, quindi la psicologia di base dice che nulla cambierà idea, ma mi piacerebbe comunque ricevere feedback.

31
Oak

Specializza se ti piace

Come sai, se sei specializzato stai automaticamente sostenendo un costo opportunità in quanto non sarai immediatamente idoneo per altre tecnologie (ad esempio Java spesso non vengono immediatamente accettati per l'ottimizzazione del compilatore lavori) Tuttavia, devi bilanciarlo con il tuo amore per la complessità insita nella disciplina scelta.

Dici di voler essere un esperto - bene, vai avanti e prenditi il ​​tempo per imparare la disciplina che hai scelto. Come comunità abbiamo sempre bisogno di nuovi esperti. Tuttavia, il mio consiglio è di seguire la raccomandazione pragmatica del programmatore di "Impara una nuova lingua ogni anno". In questo modo, mentre ti stai impegnando in una profonda analisi lessicale della codifica algoritmica, puoi anche sfornare una piccola app per iPhone che ti interessa da un lato. Non si sa mai, l'impollinazione incrociata di paradigmi diversi può causare alcune intuizioni che estenderanno la tua specializzazione in nuove aree.

21
Gary Rowe

Penso che dipenda da cosa vuoi dalla tua carriera ...

A livello tecnico: Essere un tuttofare significa che puoi candidarti per una più ampia varietà di ruoli rispetto a qualcuno che è estremamente specializzato. Se vuoi essere adattabile, muoverti e non essere legato a una nicchia particolare, questo probabilmente non è poi così male. Tuttavia, il rovescio della medaglia è che probabilmente sarai limitato a un livello relativamente junior/intermedio di ruoli, a meno che tu non ti spinga più a fondo in una particolare area.

La specializzazione in una determinata area è praticamente l'opposto di quanto sopra. Probabilmente sarai in grado di comandare uno stato e un reddito più elevati (se sei in una buona nicchia con una forte domanda ovviamente), ma probabilmente ti colpirai in quella specialità in larga misura.

Quindi, in senso lato, queste due sono le scelte a livello tecnico.

A livello politico: se stai parlando di "avanzamento di carriera" in termini di passaggio al management e simili, in genere non importa cosa fai tecnicamente. Praticamente tutti quelli che conosco che sono passati alla gestione da un ruolo di programmatore lo hanno fatto conoscendo molto bene le persone e i processi aziendali nella loro organizzazione. Alcuni erano specialisti e alcuni erano generalisti (in termini di tecnologia con cui lavoravano) - ma TUTTI erano profondamente radicati nell'organizzazione, conoscevano bene le persone e i processi e fondamentalmente divenne logico per loro iniziare a possedere quelle responsabilità.

Quindi, in un senso di base, se vuoi far progredire la tua carriera in termini di crescita della gerarchia gestionale, si tratta di giocare con la politica. Essere un generalista contro uno specialista non ha molta importanza (forse diventa solo un po 'uno specialista nei processi e nella tecnologia che gestirai).

20
Bobby Tables

Prima di tutto, le offerte di lavoro spesso esagerano la quantità di specializzazione richiesta. Nessuna azienda mette "abbiamo bisogno di un ragazzo che sappia un po 'di Javascript perché non sappiamo nulla" in un annuncio di lavoro; hanno messo "esperto Javascript" lì perché, a parità di condizioni, adorerebbero avere qualcuno che fosse in realtà un esperto. Ciò non significa necessariamente che solo gli esperti siano qualificati per tutto ciò di cui l'azienda ha bisogno in Javascript (e rimarrai sorpreso dalla frequenza con cui non sanno nemmeno cosa devono fare). Quindi non preoccuparti troppo di essere un "esperto"; fare domanda per lavori in cui sei esperto nelle competenze pubblicizzate e vedere come vanno le cose nell'intervista. Essere bravi in ​​un lavoro significa molto di più di quanti anni di [inserire la lingua] hai sotto la cintura. E se il lavoro è gratificante, potresti ritrovarti a diventare un esperto.

Si tratta di "ottenere" un lavoro; per "mantenere" un lavoro, essere un JOAT può essere meraviglioso. Se la tua azienda inizia a esplorare lingue e piattaforme diverse, sarai in vantaggio. Se la tua azienda con sede in MS improvvisamente ha bisogno di un ragazzo UNIX per qualcosa, sarai il suo punto di riferimento (o essere quel ragazzo o gestire l'assunzione per un "esperto"). Mantenere un lavoro significa essere indispensabili, qualunque cosa accada, e JOAT è un buon modo per essere quel ragazzo.

Inoltre, diventa molto più facile ottenere un nuovo lavoro quando la tua azienda si trova in difficoltà :)

10
E.Z. Hart

Bene, sì e no. Il problema è che non sarai mai una rockstar. Non sarai mai quel tipo che può fare cose con C che nessun altro può fare. La tua mancanza di concentrazione preclude questo tipo di eccellenza.

D'altra parte, quando la direzione decide che non possono permettersi una tonnellata di programmatori, non sparano t, per mantenere lui. La flessibilità ha i suoi vantaggi.

Sono un Jack e il mio dipartimento ha visto una riduzione dell'80% negli ultimi 4 anni. Eppure eccomi qui. In parte è perché sono più sfocato della maggior parte. Io like mi viene consegnato un compito di cui non so nulla, e ai miei capi piace il fatto che dico "Sicuro!" non importa quale strana merda escano con. E, quando capisci il quadro generale, è una specie di rockstardom che la maggior parte degli specialisti non riesce mai a raggiungere, e può essere redditizio.

Quindi, se stai cercando di essere una rock star, devi concentrarti, perché nessuno può essere migliore di tutti in tutto. Ma se stai cercando stabilità, scegli la flessibilità, perché essere flessibile è più commerciabile che essere un brutto culo.

7
Satanicpuppy

Dipende dalla tua carriera. Penso che dovrebbe aiutare la tua carriera se vuoi essere un consulente generale, avviare un'attività in proprio, lavorare per una piccola impresa o in qualsiasi altra situazione in cui quel tipo di flessibilità è una risorsa riconosciuta. Sono nella stessa situazione e attualmente lavoro come consulente, anche se sto perseguendo la specializzazione in .NET/C #/SQL/ASP.

Allo stesso modo, è possibile fare una carriera fuori dalla versatilità con la tecnologia, avendo una vasta gamma di esperienze (anche se superficiali), ma senza specializzarsi in una particolare tecnologia?

Sì, penso che potresti cercare piccole aziende che non possono assumere qualcuno per ogni area di specializzazione o essere un consulente.

(Non è neanche una cattiva idea scegliere un'area in cui sarai specializzato, oltre a mantenere le tue abilità più generali.)

3
vjones

Generalist vs. Specialist è un articolo di CIO.com ma probabilmente ci sono dozzine di articoli simili o post di blog di persone che cercano di vedere se uno è migliore dell'altro. Ognuno ha i suoi vantaggi e svantaggi. Chiunque voglia dire che uno ha il sopravvento sull'altro può in qualche modo essere di parte.

Non dimenticare che esiste una possibile illusione su ogni lato della tua scelta. Ciò che vedi come una specializzazione può avere vari gusti. Ad esempio, considereresti gli sviluppatori web in generale come specialisti o generalisti? Alcuni potrebbero vedere che come una specializzazione e altri potrebbero ancora vederlo come piuttosto ampio come molte applicazioni basate sul web in questi giorni possono avere tutti i tipi di componenti che possono richiedere competenze diverse in una certa misura.

Mentre le aree che elenchi mi fanno pensare che tu voglia lavorare per un'azienda di software, ci possono essere alcune parti dell'Information Technology che potrebbero usare abilità simili in un certo senso. Puoi capire quanta personalizzazione viene eseguita su vari software standardizzati per farlo funzionare e quanto bene questo sia un investimento per la maggior parte delle aziende per fornire un esempio immediato.

3
JB King

D'altra parte, sento che specializzandomi in questo modo limito davvero la mia opzione futura.

Ricorda. Il tuo futuro si estende attraverso decenni.

L'attuale tecnologia si è notevolmente sbiadita quando si presentano nuove opportunità.

La specializzazione non è affatto dannosa.

Ho iniziato a specializzarmi nella perforazione di carte di carta per scrivere programmi COBOL. Ora scrivo Python e non ho toccato una carta di carta perforata da decenni.

La tecnologia va e viene. Qualunque cosa tu stia specializzando in questo momento, sparirà tra un decennio e ti specializzerai in qualcos'altro. O diventerai obsoleto.

Preoccuparsi di "esperienza in altri campi" è una perdita di tempo. Avrai quell'esperienza, che tu lo voglia o no.

3
S.Lott

Quando assumo sviluppatori, sono di parte nei confronti delle persone con forza ed esperienza nelle particolari abilità che sto cercando. I reclutatori amplieranno notevolmente questo pregiudizio. Ciò significa che, anche se potessi assumerti (e mi piacciono le persone con ampie competenze e buone conoscenze di base che possono imparare), è probabile che non ti parlerò mai.

Io stesso sono sempre stato un tuttofare e ho avuto molti titoli di lavoro diversi nella stessa azienda in cui ho lavorato per gran parte della mia carriera. Tuttavia temo la prospettiva di dover cercare un lavoro e non penso che potrei facilmente ottenere un altro lavoro al mio attuale stipendio (che è molto soddisfacente, ma la gente qui mi conosce).

2
Jeremy

come di solito...

Dipende

Dipende da cosa intendi per "carriera". Più precisamente, dipende da cosa tu pensi che intendi per "carriera".

Oggi lavoro molto con le applicazioni web. Quando ho iniziato questa carriera, il world wide web non esisteva. Quindi, in larga misura, la risposta di @ Satanicpuppy è proprio nel segno.

Ci sono quattro vantaggi che derivano dal territorio jack-of-all-trades (JOT):

  1. La volontà e la capacità di apprendere tutto ciò che è necessario per svolgere il lavoro
  2. La saggezza di sapere cosa non sai
  3. L'umiltà di dirlo e chiedere aiuto quando necessario.
  4. Un grande sacco di trucchi attraverso più confini di dominio

Lo svantaggio principale è: ci vuole molto, molto più tempo per Excel, perché stai spingendo la curva di apprendimento su più fronti.

Sono un DBA buono come alcuni amici che non hanno fatto altro che quello per 15 anni? Ovviamente no. Posso vedere soluzioni in un istante che non immagineranno mai in due settimane? Sì.

Il miglior consiglio, penso, è quello di continuare a essere un JOT fino a quando non trovi qualcosa di così affascinante, così avvincente che vuoi farlo e solo fino alla fine dei tempi. Che "esso" sarà la tua specialità.

Mi piace risolvere nuovi, difficili problemi, cercare innovazioni per uccidere il banale e imparare continuamente - questo è il mio "esso", ed è la ragione per cui amo I.T.

Essere un generalista è la mia carriera.

2
Steven A. Lowe

Penso che uno dei motivi per cui le aziende cercano e valorizzano maggiormente le persone specializzate risale a astrazioni con perdite . Il problema è che negli ultimi 30 anni circa, gli ingegneri del software hanno aumentato esponenzialmente il numero di strati di astrazione e, per quanto vorremmo assicurarci che non ci siano effetti collaterali, spuntano sempre. Ed sono le idiosincrasie prive di documenti che tendono a catturarti.

Forse potresti iniziare a utilizzare rapidamente la nuova tecnologia leggendo specifiche ed esempi online, ma ti sei mai accorto quando inizi qualcosa di nuovo spendi il 20% del tuo tempo a scrivere codice per una funzione e l'80% del tuo tempo a cercare il bug più strano hai mai visto? Man mano che diventi un esperto in un'area, questa razione cambia da 20/80 a 95/5 (sto inventando numeri, ma in generale probabilmente sono vicini) in particolare in quell'area. Ciò significa che puoi consegnare il lavoro molto più velocemente ed evitare insidie ​​/ bug comuni prima ancora che si verifichino. Ad esempio, prima di oggi, uno dei nostri ingegneri senior (nuovo per il team/prodotto) ha trascorso più di mezza giornata alla ricerca di un problema con la corruzione dello stack che mi ha impiegato 5 minuti per identificarmi perché questo era il mio territorio.

Man mano che diventerai un esperto nel tuo campo, diventerai più visibile e prezioso per la gestione. Non conosco altre aziende, ma in quelle in cui ho lavorato, il tuo compenso (almeno in parte) dipende da quanto siano importanti le tue responsabilità. JOAT generalmente non ha responsabilità permanenti. Invece, i manager li usano come risorse mobili/intercambiabili (il nostro vicepresidente li chiama coltelli da esercito svizzeri) che possono essere spostati da una squadra all'altra in base alla domanda. Quindi puoi stare con la compagnia per 10 anni, poi guardare indietro e rendertene conto, non hai mai guadagnato una sola responsabilità. Ho un ottimo amico (che è anche un eccellente sviluppatore C++/C #, ma è anche un JOAT molto bravo perché prenderà qualsiasi lavoro) che è stato tipografato in un ruolo del genere. So che non è felice perché mentre ho un pezzo molto considerevole e divertente del prodotto come il mio parco giochi, è principalmente un ospite temporaneo nella terra di qualcun altro. Ma ora non può uscirne.

Detto questo, avere le competenze di JOAT è altrettanto importante, quindi anche se non proverei necessariamente a posizionarmi come JOAT, penso che sia importante continuare a leggere/studiare/imparare cose nuove perché la tecnologia cambia e anche se tu sei un esperto oggi, potresti dover diventare un esperto in qualcosa di completamente diverso domani.

2
DXM

Direi assolutamente.

Ma dovrai uscire e prenderlo, non comparirà in un giornale o in un annuncio di lavoro online (la probabilità è piccola). Quindi, invece di cercare lavori specializzati, forse dovresti cercare lavori che giochino alla tua varietà di punti di forza. "Marginalmente bene" è soggettivo, forse sei troppo duro con te stesso, anche modesto, ma questa è una buona cosa (-:

Inoltre, mentre le tue esperienze e competenze sono importanti, i datori di lavoro sono più interessati alla tua capacità di ottenere risultati. Chiediti: Cosa posso fare con la mia varietà di conoscenze ed esperienze che migliora i profitti di questa azienda ? Senza vedere il tuo curriculum, alcuni titoli che posso pensare in cima alla mia testa sono Ingegnere delle soluzioni, Architetto (rete, applicazione, ecc.) O anche un CTO.

Infine, il mio consiglio è di fare una carriera di ciò che ti piace. Dovrai farlo per più di 8 ore al giorno per molti anni e potresti anche come quello che stai facendo a quel ritmo ( -;

HTH, e i migliori auguri,

KM

1
KM.

È vero che la maggior parte delle offerte di lavoro sta giocando contro di loro essendo troppo specifica o troppo esigente. Sono scritti come annunci (probabilmente per mostrare agli altri quanto sono potenti), ma impedisce ad alcuni ottimi profili di essere applicati a causa dei motivi che affermi nella tua domanda.

Ecco le offerte di lavoro che utilizzo:

Descrizione del lavoro e della persona

Almeno 4 anni di esperienza con .NET Framework. Non è richiesta la conoscenza di tecnologie specifiche. I candidati devono essere studenti veloci ed essere in grado di dimostrare un entusiasmo per imparare cose nuove. Vogliamo persone che:

  • sono interessati ai media digitali
  • vedere le difficoltà come opportunità
  • fare le cose e non sono guidate dal CV
  • interessato al lato commerciale di
  • il loro lavoro ha lo spirito di avvio Lingua: francese OR inglese

Competenze (non richieste ma ognuna sarà una risorsa):

  • .NET Framework 4.0
  • nHibernate o Entity Framework
  • Componenti DevExpress
  • LINQ
  • WCF
  • HTML/CSS/Javascript
  • ExtJs

Come vedi, tranne l'esperienza complessiva con .NET, non sono richieste altre conoscenze. Tuttavia, ciò che è richiesto è la capacità di appoggiare nuove cose.

Dal momento che non puoi controllare come le aziende scrivono la loro descrizione del lavoro, dovresti vederli come opportunità di apprendimento.

Quando vedo un annuncio di lavoro molto impegnativo, lo vedo come un'opportunità per imparare nuove cose. Durante l'intervista (se lo capisco), spiego che, poiché la mia motivazione è imparare e realizzare le cose, non sarei troppo influenzato dalla mancanza di esperienza in una delle tecnologie più quotate.

In effetti, è così che ho imparato così in fretta: scegliendo lavori impegnativi.

1
user2567