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


31

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 sia 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, e di tanto in tanto applicare il mio campo preferito per risolvere i problemi. Specializzarmi solo 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.


Ben fatto. Garantisco per te. Vorrei anche vedere altri commenti
PradeepGB,

Specializzati in programmazione E qualcos'altro che non andrà via, come forse legge, tasse, lingua, biologia o matematica. Mentre le competenze IT diventano inutili troppo rapidamente, alcune altre competenze restano in sospeso. È difficile trovare (ad esempio) un programmatore di lingua italiana + cinese specializzato in tasse. Fai le tue scommesse saggiamente. Pensaci: nei prossimi 20 anni come programmatore dovrai (si spera) imparare molte più cose di quelle necessarie per completare una tesi di dottorato. Da questo punto di vista, altri 2 anni di scuola in qualcosa di "più statico" non sembrano un'idea terribile.
Giobbe

Risposte:


21

Specializza se ti piace

Come sapete, se siete specializzati, state automaticamente sostenendo un costo opportunità in quanto non sarete immediatamente idonei per altre tecnologie (ad esempio, i programmatori Java spesso non vengono immediatamente accettati per i lavori di ottimizzazione del compilatore). Tuttavia, devi bilanciarlo con il tuo amore per la complessità insita nella disciplina che hai scelto.

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.


Per quanto riguarda la tua prima frase, c'è anche il timore che un giorno mi stancherò di quella cosa che amo e poi, come specialista, sarà difficile cambiare campo. D'altra parte, il mio interesse in questo campo è andato forte per un buon numero di anni.
Quercia

1
@Oak non puoi mai prevedere quando ti stancherai di qualcosa, quindi scegli un campo di cui sei abbastanza sicuro di essere soddisfatto e massimizzalo. Se senti che il burnout sta arrivando, sposta la tua attenzione su altri lavori. Se il campo prescelto è abbastanza avanzato (e certamente suona così), dovresti avere abbastanza abilità per essere in grado di raccogliere qualsiasi cosa. OK, sarai un noob, ma dedicati e presto volerai.
Gary Rowe,

2
Dal momento che Oak è interessato alle lingue e al design delle lingue, scommetto che conosce già un sacco di lingue e l'apprendimento di nuove lingue sostanzialmente rientra nella sua specializzazione (più o meno). Per qualcuno già interessato alle lingue, suggerisco di fare qualcosa di nuovo e non banale in una lingua che conosci: prova la tua intelligenza artificiale o apprendimento automatico o PNL o scrivi un sistema operativo ...
Tikhon Jelvis

20

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 e 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 approfondisca una determinata 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 "progressi della 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 certo senso, se vuoi far progredire la tua carriera in termini di aumento della gerarchia gestionale, si tratta solo di giocare a 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).


4
Non sono esattamente sicuro del motivo per cui devi essere molto specializzato per essere classificato come senior.
Jon

@Jon: buon punto. L'ho modificato.
Tavoli Bobby,

3
Inoltre, Jack-of-all-trades può avere una prospettiva unica di fronte a un problema perché può immaginare soluzioni aggiuntive che qualcuno che conosce solo una tecnologia non può nemmeno immaginare.
Wildpeaks

10

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 di cosa hanno bisogno). 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,

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à :)


1
"Se la tua azienda con sede in MS improvvisamente ha bisogno di un ragazzo UNIX per qualcosa" ... oh possiamo sognare, no :)
Jordan

@Jordan - non c'è bisogno di sognare; Ci sono stato. Ho lavorato per anni in un negozio MS, ma alla fine ci siamo ritrovati con clienti che avevano bisogno di supporto su MySQL e Linux. Quelli di noi che conoscevano Linux da altri lavori e uso domestico dovevano intervenire fino a quando non potessimo assumere un amministratore Linux. Succede :)
EZ Hart,

7

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 un sacco di programmatori, non saranno fuoco si , 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. Mi piace ricevere 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.


3

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ò essere in qualche modo influenzato.

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 farebbero pensare che tu voglia lavorare per un'azienda di software, potrebbero esserci 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

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 tocco 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

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à è un'attività 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 è una cattiva idea di scegliere una zona che si dovrà specializzarsi in, oltre a mantenere le vostre abilità più generali.)


2

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 credo di poter facilmente ottenere un altro lavoro al mio attuale stipendio (che è molto soddisfacente, ma la gente qui mi conosce).


2

come di solito...

Dipende

Dipende da cosa intendi per "carriera". Più precisamente, dipende da cosa pensi di intendere 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 eccellere , 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 l'IT

Essere un generalista è la mia carriera.


+1: Essere un generalista è anche la mia carriera. :-) Conoscere cose diverse dal tuo dominio problematico o dalla tecnologia principale è utile perché ti permetterà di avere una cassetta degli attrezzi di possibili soluzioni . Potrebbe non renderti un super specialista, ma dovrai armeggiare con nuovi giocattoli, intendo la tecnologia.
Spoike,

2

Penso che uno dei motivi per cui le aziende cercano e valorizzano maggiormente le persone specializzate risale alle astrazioni che perdono . 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.


Il caso del tuo amico è esattamente quello che sto attraversando adesso! +1
HTML Tosin,

1

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 ti potrebbe piacere anche quello che stai facendo a quel ritmo (-;

HTH, e i migliori auguri,

KM


1

È 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 o 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: selezionando lavori impegnativi .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.