Quale modo è più vantaggioso e produttivo?
Penso che tu abbia bisogno di entrambi. Devi concentrarti sulle tue competenze chiave e migliorare la tua comprensione di esse, ma allo stesso tempo è utile guardare fuori e vedere cos'altro c'è fuori. L'esposizione ad altri approcci e altri linguaggi è molto importante per rendere uno uno sviluppatore migliore nel complesso. Ci sono molti modi per scuoiare un gatto, per così dire, e conoscere il maggior numero possibile di questi ti renderà uno psicopatico migliore nel scegliere lo strumento giusto per un particolare compito.
Quindi dedica la maggior parte del tuo tempo a migliorare le tue competenze e a dedicare un po 'del tuo tempo a imparare qualcosa di nuovo.
Qualcuno ha detto che "Un linguaggio che non cambia il modo in cui pensi di programmare non vale la pena di imparare".
Quindi, se conosci Java, c'è poco guadagno nell'apprendimento di C # (o viceversa). Se non per ragioni pragmatiche (cioè, ne hai bisogno per risolvere un problema), suggerirei di attenersi a una lingua per paradigma, e il tuo programma è ancora abbastanza pieno;).
La specializzazione, d'altra parte, è nella mia esperienza per lo più raggiunta "sul campo", cioè quando lavoro su un progetto, quindi viene naturale.
Ci sono molte discussioni davvero buone su entrambi i lati. Molti anni fa mi è stata presentata questa domanda esatta ... concentrarsi sulla mia lingua principale e cercare di diventare un "esperto" OPPer riprendere una nuova lingua e ampliare la mia commerciabilità. Ho scelto di concentrarmi su una lingua.
Non ci sarà davvero una risposta sbagliata. Entrambi hanno dei pregi, si sta davvero riducendo a quello che si adatta meglio a te e dove vuoi che passi la tua carriera.
Imparare nuove lingue è principalmente un mezzo per ottenere nuovi concetti e aumentare la tua efficienza con la programmazione. La programmazione dell'apprendimento di per sé è molto diversa dall'apprendimento di una nuova lingua da programmare.
Dovresti concentrarti sul rendere i tuoi programmi migliori (e ci sono molte metriche per misurarle, molte soggettive, non importa, fai la tua scelta sulle metriche e perfezionale nel tempo, usale per la tua educazione).
Detto questo, l'apprendimento di linguaggi "più recenti" (ad esempio Python
) sopra il tuo elenco più vecchio (come, ad esempio, " C
" e molti di questi) ti aiuterà a pensare in modo più efficiente e concentrarti su quei concetti fondamentali che dovrebbero essere reso migliore Prendendo ulteriormente l'esempio, potrebbe non apparire immediatamente ma potresti trovare che la tua programmazione C
sta migliorando perché hai pensato in Python. Potresti anche iniziare a scrivere Python invece di psudo-code per C
. Ora, questo è un psudo-codice molto più leggibile e verificabile.
Il che ci porta a riassumere la domanda principale:
Sì, dovresti concentrarti sulle lingue che già conosci e aumentare le tue conoscenze in esse - purché siano ancora in uso per te. E , dovresti anche dilettarti nei linguaggi più recenti per dare ai tuoi cervelli strumenti più recenti per pensare (forse anche più velocemente) a soluzioni per le tue esigenze di programmazione.
Dominare un framework di programmazione (e relativo linguaggio) e lasciare un po 'di tempo libero per un altro "dominio" preferibilmente diverso. Esempio: C ++ client-server, Ruby on Web
Dipende dallo scopo per cui stai imparando la lingua. Se stai imparando la lingua perché usa un paradigma diverso o è adatto per un particolare dominio problematico. Tuttavia, se si tratta di un linguaggio molto simile a quello che già conosci e tutto ciò che hai intenzione di fare è riscrivere tutto il tuo codice esistente in quel nuovo linguaggio, probabilmente non ha molto valore (ad esempio, riscrivendo una webapp Python in rubino) in esso.
Se ti senti già a tuo agio nella programmazione in una lingua, conosci tutti i suoi idiomi e puoi scrivere programmi in essa senza dover consultare la documentazione per ogni singola chiamata di libreria, probabilmente non c'è molto altro da sapere su esso. Se, d'altra parte, la tua conoscenza della lingua non è così profonda, potrebbe esserci qualche valore nell'apprendimento di più.
alcuni buoni modi per valutare se ti trovi nel primo o nel secondo campo per la lingua X sonoSe le tue risposte a queste domande sono in qualche modo sulla falsariga di "molto", "la maggior parte di loro" e "sì, e sta diventando fastidioso", è una buona indicazione che hai padronanza della lingua e dovresti muoverti su qualcosa di nuovo.
Se sei già abbastanza bravo con la lingua che conosci, non serve imparare trucchi specifici e dettagliati per un po 'di fresco ... sarà totalmente una perdita di tempo. Tuttavia, quando sei abbastanza a disagio con una lingua, il suggerimento è quello di padroneggiare prima quella lingua.
Oltre alle lingue ci sono strutture, schemi ... per imparare un quadro devi conoscere una lingua, quindi per le lingue molto simili impararle non aiuta nulla che non sia divertente.
La mia opinione personale è che dovresti sempre sviluppare le tue capacità per rendere il software più veloce, più sicuro, più robusto, per più piattaforme e abbreviare il tempo, a tal fine potresti aver bisogno di imparare una nuova lingua, un nuovo framework, un nuovo IDE (importante tanto quanto una lingua), e solo quando sei a tale scopo vale la pena investire.
Almeno non impara una nuova lingua per aumentare il numero di lingue che conosci.
Leggi altre domande sui tag experience languages