Bisognerebbe imparare nuove lingue o concentrarsi solo sulle lingue che già conosci e aumentarne la conoscenza? [chiuso]


22

In che modo è più vantaggioso e produttivo?


1
Questo non dipende dal tipo di lavoro e progetti? Se lavori per una grande azienda probabilmente non stai spostando le tecnologie troppo spesso, se fai il freelance hai scelta.
Chris,

@Chris: Suggerimento, "Lingue e frame", la maggior parte degli sviluppatori non funziona più solo con un compilatore da riga di comando e un editor di testo, ma librerie, IDE, BD, Thrid-Party Tools, ... ;-)
umlcat

1
A giudicare dal conteggio dei voti positivi, questa domanda è costruttiva secondo l'opinione di molti. Penso che Mark Trapp sia in realtà un programma per computer scritto per chiudere le domande.
T. Webster,

Risposte:


18

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'è là fuori. L'esposizione ad altri approcci e altre lingue è molto importante per rendere uno uno sviluppatore migliore in generale. Esistono molti modi per scuoiare un gatto, per così dire, e conoscerne il maggior numero possibile ti renderà uno psicopatico migliore nella scelta dello strumento giusto per un determinato compito.

Quindi, dedica la maggior parte del tuo tempo a migliorare la competenza prescelta e dedica un po 'del tuo tempo all'apprendimento di qualcosa di nuovo.


4
+1 Per sapere come usare bene il tuo "martello", ma anche sapere che esistono cose come "cacciaviti", "seghe" e "virata adesiva".
Ryan Hayes,

1
E la maggior parte delle volte l'apprendimento di una nuova lingua potrebbe esporvi a un modello di progettazione o qualcosa di utile che non avresti mai pensato di usare le tue lingue.
Attaccando

8

Qualcuno ha detto "Non vale la pena imparare un linguaggio che non cambi il modo in cui pensi alla programmazione".

Quindi, se conosci Java, c'è poco guadagno nell'apprendimento di C # (o viceversa). Se non fosse per ragioni pragmatiche (cioè, ne hai bisogno per risolvere un problema), suggerirei di attenermi a una lingua per paradigma e il tuo programma è ancora abbastanza pieno;).

La specializzazione, d'altra parte, è nella mia esperienza ottenuta principalmente "sul campo", vale a dire quando si lavora su un progetto, quindi viene naturale.


1
C # offre interessanti nuove funzionalità agli sviluppatori Java. Le espressioni Linq e lambda potrebbero aprire gli occhi su un nuovo mondo.
Carra,

In realtà, direi che portare sul mercato un programma C # è stato più facile (almeno per me), quindi portare sul mercato un programma Java. Quindi, in tal senso, i miei occhi sono stati aperti in modo da poter avere le comodità di Java, evitando alcune delle sue carenze. Indipendentemente dalle guerre delle fiamme linguistiche, direi che è un buon punto.
riwalk

+1 Ho iniziato con .NET e ho imparato molto dai miei dilettanti con Objective C e JavaScript.
Trevor,

@Carra: non ne ero a conoscenza (la mia ultima esperienza approfondita con entrambi era, quando Java 1.5 era attuale). La differenza, nella tua esperienza, è cresciuta abbastanza grande da renderli abbastanza diversi da giustificare una raccomandazione per imparare entrambi (da una prospettiva "accademica")?
keppla,

Probabilmente sei ancora meglio di imparare uno e un linguaggio funzionale. Quindi nel complesso sono d'accordo con te.
Carra,

3

Ci sono molte argomentazioni davvero valide da entrambe le parti. Molti anni fa mi è stata posta quella domanda esatta ... mi concentro sulla mia lingua principale e cerco di diventare un "esperto" OPPURE prendere 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 meriti, si ridurrà davvero a quello che si adatta meglio a te e dove vuoi che la tua carriera vada.


2

Imparare nuove lingue è principalmente un mezzo per ottenere nuovi concetti e aumentare la tua efficienza con la programmazione. L'apprendimento della programmazione in sé è molto diverso dall'apprendimento di una nuova lingua in cui programmare.

Dovresti concentrarti su come migliorare i tuoi programmi (e ci sono molte metriche per misurarle, molte soggettive; non importa, scegli le metriche e perfezionale nel tempo, usale per la tua istruzione).

Detto questo, l'apprendimento di lingue "più recenti" (ad esempio Python) sull'elenco precedente (come, ad esempio " C" e molti altri) ti aiuterà a pensare in modo più efficiente e a concentrarti su quei concetti chiave che dovrebbero essere migliorati. Prendendo ulteriormente l'esempio, potrebbe non apparire immediatamente ma potresti scoprire che la tua Cprogrammazione sta migliorando perché hai pensato in Python. Potresti persino iniziare a scrivere Python invece di psudo-code per C. Questo è uno psudo-codice molto più leggibile e verificabile.

Il che ci porta a sintetizzare sulla 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 con linguaggi più recenti per offrire al tuo cervello strumenti più nuovi per pensare (forse anche più velocemente) soluzioni per le tue esigenze di programmazione.


1

Domina un framework di programmazione (e il relativo linguaggio) e lascia del tempo libero per un altro "dominio" preferibilmente diverso. Esempio: client-server C ++, Ruby su Web


1

Imparare una nuova lingua

Dipende dallo scopo per cui stai imparando la lingua. Se stai imparando la lingua perché utilizza un paradigma diverso o è adatto per un particolare dominio problematico. Tuttavia, se è una lingua molto simile a quella che già conosci e tutto ciò che pensi di fare è riscrivere tutto il codice esistente in quella nuova lingua, probabilmente non c'è molto valore (ad esempio, riscrivere una webapp in Python in rubino).

Conoscenza più approfondita nella lingua corrente

Se ti senti già a tuo agio con la programmazione in un linguaggio, hai familiarità con tutti i suoi modi di dire e puoi scrivere programmi in esso senza dover consultare la documentazione per ogni singola chiamata in biblioteca, probabilmente non c'è molto altro da imparare. Se, d'altra parte, la tua conoscenza della lingua non è così profonda, potrebbe esserci un valore nell'apprendere di più. Alcuni buoni modi per valutare se ci si trova nel primo o nell'ultimo campo per la lingua X sono

  1. Quanti programmi hai scritto in lingua X?
  2. Se vai su Stack Overflow e guardi le domande taggate con X, a quante di esse ti sentiresti a tuo agio nel dare una risposta?
  3. Le persone vengono da te per chiedere aiuto con la lingua X?

Se le tue risposte a queste domande sono da qualche parte sulla falsariga di "molto", "la maggior parte di esse" e "sì, e sta diventando fastidioso", è una buona indicazione che hai imparato la lingua e dovresti passare a qualcosa nuovo.


0

Se sei già abbastanza bravo con la lingua che conosci, non è bene imparare trucchi molto dettagliati e specifici per un po 'di figo ... sarà totalmente una perdita di tempo. Tuttavia, quando sei abbastanza a disagio con una lingua, il suggerimento è di padroneggiare prima quella lingua.

Oltre alle lingue ci sono framework, schemi ... per imparare un framework devi conoscere una lingua, quindi per lingue molto simili impararle non aiuta a non portare un divertimento non così 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 per ridurre i tempi, a tal fine potresti dover imparare una nuova lingua, un nuovo framework, un nuovo IDE (è importante quanto una lingua), e solo quando sei per quello scopo vale la pena investire.

Almeno non imparare una nuova lingua per aumentare il numero di lingue che conosci.

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.