Perché imparare più linguaggi di programmazione? [duplicare]

16

Mi sono imbattuto in una riga in questo articolo che è,

Learn one programming language every year

Perché i bravi programmatori suggeriscono di imparare più linguaggi di programmazione. In questo caso, possiamo essere un tuttofare e il padrone di nessuno.

    
posta Fahad Uddin 20.10.2012 - 17:06
fonte

10 risposte

29

Non ho letto l'articolo, ma ho visto questo specifico consiglio molte volte, è una conoscenza comune.

Il consiglio originale, non si riferisce alla padronanza che viene dopo anni di esperienza, ma all'esposizione su diversi paradigmi che forniranno all'individuo approcci diversi sulla soluzione dei problemi. Quindi c'è una nota mancante da qualche parte che direbbe: "Diversi paradigmi di programmazione".

Un post interessante ma non così rilevante su come i diversi approcci alla programmazione influiscono sulla risoluzione dei problemi è questo post di Steve Yegge Note del Mystery Machine Bus .

    
risposta data 20.10.2012 - 17:13
fonte
30

Il nostro mestiere è la programmazione. I linguaggi di programmazione sono strumenti di quel mestiere. L'apprendimento di più lingue non è un "tuttofare", è un maestro degli strumenti di uno scambio.

    
risposta data 20.10.2012 - 21:11
fonte
12
  1. Perché la vita raramente ti consente di cavartela con una strategia semplice come "diventerò un esperto di X e ignorerò tutti gli altri campi". È più difficile e più sottile di così. Sviluppare un'area di profonda competenza è essenziale, ma devi anche tenere d'occhio gli sviluppi al di fuori della tua specialità. Per decenni l'industria cambia inevitabilmente. Se non stai al passo con gli sviluppi al di fuori della tua specialità, puoi perdere l'apparenza di strumenti di qualità superiore, perdere l'ascesa di nuovi mercati e finire bloccato in un mercato di nicchia. Come bilanciare il tempo che spendi per approfondire la tua esperienza primaria vs. espandere la tua conoscenza è un giudizio. Nei tuoi primi anni trascorrerai quasi tutto il tuo tempo ad andare in profondità, ma con la tua maturazione vorrai dedicare più tempo alla ramificazione.

  2. Non tutte le lingue sono ugualmente efficaci per tutte le attività. CGI è un dolore da fare in C, e non stai andando a scrivere driver di dispositivo in JavaScript. La saggezza popolare è "Se tutto quello che hai è un martello, allora tutto il mondo sembra un chiodo". Conoscere più lingue ti aiuta a giudicare su quale sia lo strumento giusto per un lavoro.

  3. Imparare altre lingue ti aiuterà a capire la tua lingua principale. Se conosci solo una lingua avrai una serie di presupposti inconsci che sono in realtà decisioni di progettazione. Imparare più lingue ti aiuterà a renderti consapevole delle tue ipotesi.

  4. Una volta che hai imparato tre o quattro lingue, l'apprendimento di un altro diventa abbastanza semplice.

risposta data 20.10.2012 - 19:40
fonte
7

Why do good programmers suggest to learn more programming languages

Ci sono un paio di modi in cui ho potuto vedere che questo è abbastanza utile:

  1. Ottenere prospettive diverse. Se hai esaminato molti codici procedurali, OO e funzionali, puoi vedere modi molto diversi di affrontare un problema e questo può essere utile per avere molti strumenti diversi nella tua cassetta degli attrezzi. L'ampiezza può essere utile poiché più spesso qualcuno vorrà qualcosa di fisso e non si preoccupa affatto di quale linguaggio viene usato. "Basta farlo!" sarà ciò che l'attenzione del cliente o del cliente è ancora probabile che ci siano diversi modi per implementare una soluzione. Quanti ne pensi naturalmente e quanti altri sono là fuori? Questo è più su come essere aperti a quali sono le scelte disponibili che possono essere più che un po 'annebbianti per considerarle tutte. Quindi, provare a rendere questa dimensione del morso e farlo una alla volta può essere molto utile.

  2. Prevenzione del blocco. Aggiungendo un'altra lingua, c'è la possibilità che ci siano alcuni nuovi pezzi che potrebbero richiedere un adattamento. Come gestisci le cose cambiando? Assumendo regolarmente una nuova lingua, può aiutare a prevenire la prospettiva di pensare che tutto possa essere fatto in una lingua o in una struttura. La tecnologia cambia abbastanza spesso che vale la pena di perfezionare l'abilità di come prelevare qualcosa da zero, e questo è parte del beneficio derivante da questa pratica. Se qualcuno ha appena scritto in C per 20 anni e non ha toccato altre lingue, potrebbe essere difficile vedere come questa persona si adeguerebbe a una lingua con una sintassi e una struttura generale molto diverse.

risposta data 20.10.2012 - 18:01
fonte
7

Anche se devo ancora padroneggiare veramente ogni lingua, ho imparato bene alcuni aspetti, e ho usato / dilettato in molti. Con ogni nuova lingua che raccolgo, sto meglio con gli altri che conosco. Imparare ogni nuova lingua mi insegna a concentrarmi su discipline fondamentali che funzionano su tutti loro. Quindi l'apprendimento di nuovi linguaggi mi rende migliore nell'architettura del software, migliore nella scelta e nell'uso delle strutture dati, apprendo cose nuove sul mio editor di testo / IDE, e riesco a comunicare meglio le idee in un modo meno specifico della lingua (per citarne solo alcune benefici).

    
risposta data 20.10.2012 - 23:18
fonte
5

Da un'altra risposta, ho sempre pensato che "impari un linguaggio di programmazione ogni anno" era un consiglio terribile per i programmatori inesperti esattamente per la ragione che hai indicato.

Un programmatore alle prime armi deve imparare molto più di una lingua in breve tempo:

  • Un linguaggio di scripting per scopi generici come python o perl
  • Un linguaggio più veloce, in genere un linguaggio compilato, perché python e perl sono troppo lenti
  • Qualche familiarità con la shell
  • Qualche familiarità con make

Questo è un minimo. Aggiungi Matlab o Mathematica per chi lavora nella programmazione scientifica. L'ambiente di simulazione spesso è un linguaggio se stai lavorando su simulazioni. Per chi lavora su database o giochi, quel database o motore fisico sono in un certo senso linguaggi propri. Una GUI aggiunge ancora un altro elemento di complessità.

È il programmatore alle prime armi che deve affrontare la curva di apprendimento più ripida. Imparare una lingua all'anno è un pezzo di torta dopo aver compiuto quel passo iniziale.

    
risposta data 20.10.2012 - 21:42
fonte
5

Aiuta a conoscere più del linguaggio, puoi parlare più facilmente con più persone. È vero con le lingue straniere, è vero anche con i linguaggi di programmazione.

Prima di tutto è un buon allenamento per il tuo cervello. Impari nuovi modi di fare le cose che fai di solito. A volte scoprirai che le tue attività comuni sono più facilmente eseguite in un linguaggio di programmazione diverso.

In secondo luogo quando il tuo linguaggio di programmazione principale si esaurisce, sarai in grado di passare a un altro facilmente.

Sarai anche in grado di andare d'accordo con gli sviluppatori di software di terze parti. Conoscendo le limitazioni e i punti di forza di diverse lingue, sarai in grado di prevedere ciò che sarà difficile da implementare in una determinata lingua.

Ricorda inoltre che le abilità di programmazione sono indipendenti da un linguaggio di programmazione. È come sapere come parlare. Se sai come parlare in una lingua, devi solo imparare nuovo vocabolario e nuova grammatica per parlare correttamente in un'altra lingua. Non c'è bisogno di imparare come usare la lingua, corde vocali, denti, ecc.

    
risposta data 20.10.2012 - 17:41
fonte
4

Se l'apprendimento di una nuova lingua ti colpisce più di un'attività che di gioia, potresti aver scelto la professione sbagliata.

È come un musicista che non vuole imparare un nuovo strumento - potrebbe preferire uno e migliorarlo, ma chi ama la musica dovrebbe sempre essere interessato ad esplorare nuove opzioni che potrebbero essere fornite da diversi strumenti o stili.

Inoltre, l'apprendimento di una nuova lingua può fornire approfondimenti sugli stili di programmazione che è possibile applicare ad altre lingue. Una lingua potrebbe insegnarti a scrivere il tuo codice per essere più leggibile o sfruttare vari schemi ... È solo parte dell'essere un programmatore da imparare costantemente.

    
risposta data 21.10.2012 - 04:20
fonte
3

Sono d'accordo con il dimitris mistriotis, ma posso anche dire che se leggi molto sull'argomento teorico (come OOP, programmazione funzionale, pratiche agili e molti altri ...) non hai davvero bisogno di saperne di più lingue diverse da quelle che usi. Ma è una questione di opinione personale, immagino.

    
risposta data 21.10.2012 - 04:32
fonte
3

Pensa come uno chef. Se impari una nuova tecnica di cottura, se impari su una bella spezia da aggiungere al tuo piatto, o se impari una nuova preparazione per un determinato set di ingredienti, espandi le tue abilità. Puoi aggiungere un po 'di chiarore alle tue abilità culinarie.

Lo stesso vale per la programmazione. Alcuni strumenti sono migliori per alcuni compiti rispetto ad altri, e diversi linguaggi di programmazione possono aiutare a distinguere tra come risolvere i problemi in modi diversi. Aiuta ad avere diversità su come risolvere i problemi.

    
risposta data 21.10.2012 - 06:23
fonte

Leggi altre domande sui tag