Dovrei concentrarmi sull'essere profondo o ampio [chiuso]


10

Sono stato uno sviluppatore professionista per poco più di sei mesi e sono rimasto sorpreso da quanto il mondo sia davvero fuori dal college. Ho continuato ad imparare nel mio tempo libero ma mi chiedo dove dovrei concentrarmi?

FOCUS 1) Lo stack di sviluppo utilizzato dalla mia azienda. Il guadagno più veloce nel mio sviluppo quotidiano. #Deepest

FOCUS 2) Un linguaggio diverso con lo stesso paradigma. Vedi se riesco a generalizzare la mia conoscenza e il mio modo di pensare.

FOCUS 3) Linguaggio diverso, paradigma diverso. Espandi i miei confini e impara nuovi modi di fare le cose. #Broadest

Se qualcuno ha un focus diverso, sentiti libero di pubblicarlo.

Risposte:


18

Sì.

Direi che devi fare entrambe le cose. Inizia con il n. 1 in quanto ha il profitto immediato e non lo fai da molto tempo. Ma devi assolutamente fare un po 'di # 2 e # 3.


Un buon piano, rendendomi immediatamente più utile aumenterà il mio valore nell'azienda, mentre gli ultimi due aumenteranno il mio valore come sviluppatore in generale.
Bob Roberts,

Esattamente. Anche se penso che lo scoprirai nel corso della tua carriera, rendere te stesso prezioso come sviluppatore in generale aumenterà anche il tuo valore in azienda. Il payoff può essere un paio d'anni però.
Marcie,

1
Forse la risposta dovrebbe essere "Entrambi" invece di "Sì". Guardando il titolo della domanda e la risposta, sono confuso.
Amr

1
Ho scoperto che mentre imparo una nuova lingua o un nuovo paradigma, divento più efficace al n. 1: credo che ciò sia dovuto al fatto che avere un'esperienza più ampia offre prospettive diverse su come risolvere un problema specifico. Stessa lezione appresa come: se hai solo un martello, ogni problema inizia a sembrare un chiodo.
Bryan Rehbein,

25

Quando le persone mi chiedono consigli sulla carriera, la tua domanda è una delle prime domande che faccio loro. Non credo che nessuno possa rispondere a questa domanda per te; Penso che devi decidere tu stesso se concentrarti sulla profondità o sull'ampiezza è più probabile che raggiunga i tuoi obiettivi di carriera.

L'ultima volta che ho cambiato team ho avuto due opportunità: lavorare nel team degli strumenti di sviluppo XBOX o lavorare nel team del compilatore C #. Mi sono reso conto che è arrivato alla larghezza contro la profondità. Nel team di XBOX potrei lavorare un giorno su sistemi di sicurezza, sistemi audio il giorno successivo, video, reti, interfaccia hardware, il nome è tuo. Certo, alcune persone sono esperte, ma tutti devono sapere un po 'di tutto. Nel team del compilatore C # ho potuto immergermi in una lingua e un compilatore e capire davvero tutto in profondità.

Ci ho pensato molto e ho deciso che ero più moderatamente adatto a essere un esperto in una cosa piuttosto che un dilettante in molti. È stata una buona scelta per me, ma potrebbe non essere per te. Alcune persone hanno molto successo sapendo un po 'di tutto.

Il mio consiglio quindi è di invertire la questione. Scopri che tipo di persona sei e poi vedi se la tua azienda ha opportunità per qualcuno come te. In caso contrario, trova quello che fa.


Col senno di poi chi sei, questo post è davvero epico. :)
ashes999,

12

Essere uno specialista può renderti più costoso. Ma le opportunità di lavoro che richiedono un livello così elevato saranno limitate, sia in termini numerici che geografici.

Essere un generalista forse paga meno, ma ti apre una grande varietà di opportunità di lavoro, potenzialmente in tutto il mondo.

Anche per lavori di livello superiore e manageriale si preferisce avere una persona esperta in una varietà di cose, tecniche e tecnologie. Conoscere i bordi e poter vedere un'immagine grande ti rende una risorsa preziosa.


Oh, non ho nemmeno pensato al mio attuale impiego (anche se spero che questo rimarrà per un lungo periodo).
Bob Roberts,

3

Penso che nella tua fase di sviluppo, ottenere un po 'di profondità sia la prima priorità. Vedo troppe persone che sanno un po 'di cose, ma non riescono a superare il lavoro di base perché tutte le loro conoscenze sono di base.

Se volevo essere uno specialista, chiaramente, la profondità dell'edificio è la prima scelta migliore.

Se voglio essere un generalista, costruisci prima la profondità (raggiungi almeno il livello intermedio) in una pila e poi ramifica in altre lingue. Se prima costruisci un po 'di profondità, potresti trovare più semplice costruire profondità in più lingue poiché hai più concetti a tua disposizione e sai di più su ciò che potresti voler imparare. Poi vorrei ramificarmi un po 'in qualcos'altro. Quindi torna indietro e approfondisci il livello avanzato, poi ramifica di nuovo e impara altre cose che sono molto diverse da quelle che già conosci. Quindi espandi quella profondità in un'area diversa a un livello intermedio, impara di nuovo qualcos'altro, ecc.

Avvertenza: sono uno specialista, quindi preferisco chiaramente la profondità della conoscenza


1

Entrambe le opzioni hanno il loro posto. Concentrarsi sullo stack di sviluppo utilizzato dalla tua azienda ti aiuterà nel tuo lavoro, ma conoscere altre tecnologie ti aiuterà nella tua carriera.

Alla fine degli anni '90, le competenze di COBOL erano molto richieste dalle aziende che avevano bisogno di preparare i loro software per l'anno 2000. Ma chiunque conosca ancora solo COBOL oggi avrà molto più difficoltà a trovare lavoro.

Allo stesso modo, la tecnologia di oggi sarà obsoleta molto prima che la maggior parte di noi sia pronta a ritirarsi, quindi è essenziale apprendere nuove competenze e tecnologie.


0

Vai avanti e impara qualcosa come Haskell o un Lisp. Imparare un linguaggio funzionale mi ha davvero pensato di disaccoppiare il mio codice, rendendo più semplice il debug complessivo. L'unico problema che potresti incontrare è che non vuoi tornare indietro.

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

http://lisperati.com/haskell/

http://learnyouahaskell.com/


Esatto, impara la programmazione funzionale, per quanto mi riguarda, voto per OCaml o F #
0xFF

F # si integrerebbe bene con C # o altre cose .net su cui stai lavorando. Solo qualcosa da tenere a mente. Clojure funziona bene con Java.
Theo Belaire,
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.