Come impari un nuovo linguaggio di programmazione? [duplicare]

19

Sono uno sviluppatore C ++ con una buona esperienza su questo. Quando cerco di imparare una nuova lingua (ho provato Java, C #, python, perl fino ad ora) di solito raccolgo un libro e provo a leggerlo. Ma il problema è che questi libri iniziano tipicamente con concetti di programmazione molto semplici come loop, operatori ecc. E inizia a diventare molto noioso presto. Inoltre, sento che otterrei solo la conoscenza teorica senza alcuna conoscenza pratica sulla scrittura del codice. Quindi la mia domanda è: come affronta queste situazioni? salti semplicemente i capitoli se spiega qualcosa di basilare? Inoltre, hai qualche serie standard di programmi che cercheresti di scrivere in ogni nuovo linguaggio di programmazione che cerchi di imparare?

    
posta Naveen 14.09.2010 - 13:51
fonte

11 risposte

21

Fondamentalmente scrivendo il codice in quella lingua.

Devi avere una buona applicazione di esempio per studiare / modificare altrimenti stai iniziando con il piede sbagliato e non potresti mai riprenderti. Anni fa abbiamo deciso di utilizzare Ada per il nostro prossimo prodotto, ma poiché tutti abbiamo utilizzato FORTRAN nel prodotto precedente, abbiamo finito per creare costrutti FORTRAN in Ada. Non ci siamo mai veramente ripresi da questo.

Avere accesso alla documentazione e Stack Overflow è essenziale altrimenti potresti perdere le importanti caratteristiche della lingua. A quel punto scopri chi sono i Guru nella lingua e leggi i loro blog, questi discuteranno spesso le nuove caratteristiche di un linguaggio / framework e anche le aree oscuranti che non troverai mai da solo. Se non riesci a scoprire chi sono chiedono qui!

In un mondo ideale mi piacerebbe imparare da solo per un po 'e poi essere valutato, ma non ci sono mai riuscito.

    
risposta data 14.09.2010 - 13:54
fonte
10

Non cercare di leggere i tuoi libri di programmazione dalla prima all'ultima in una o poche sedute. Solitamente raccolgo un libro e leggo un po 'alla volta, di solito non più di 10 pagine, e per libri particolarmente densi, solo un paio di pagine. Per i libri "soft", potrei leggere molto di più, ma cerco di evitarli, in primo luogo.

Se, come nel tuo caso, puoi già programmare in una lingua simile, iniziare con una semplice app per console o qualcosa di simile e fare piccoli esercizi come

  1. Leggi / scrivi qualcosa da / su un file
  2. Una piccola app della lista di cose da fare
  3. Verifica tutte le funzionalità linguistiche mentre leggi su di loro
  4. e avanti e indietro
risposta data 14.09.2010 - 18:26
fonte
6

Non ho ancora trovato un libro che mi abbia aiutato molto nell'apprendimento di una nuova lingua. "Smalltalk Best Practice Patterns" di Kent Beck si avvicina, ma potrei già confondermi con la scrittura di qualcosa (in Smalltalk, intendo) nel momento in cui l'ho letto.

La prima regola è JFDI. Pensa a qualche applicazione, giocattolo, problema, qualunque cosa - qualcosa di gestibile, ovviamente, e ragionevolmente semplice / piccolo - e prova a scriverlo. Incontrerai costantemente "ma come faccio a ...?" domande, che almeno trovo essere il miglior modo di imparare qualsiasi cosa.

Allora, come rispondi a queste domande? Vai ad annidarti nella comunità di quella lingua. Leggi la loro documentazione. Leggi i backlog per le mailing list . Chatta sui loro canali IRC . Presto scoprirai chi sono gli Alpha. Leggi i loro blog. Presta attenzione a ciò che dicono i professionisti esperti e preparati a sbagliare.

    
risposta data 14.09.2010 - 14:21
fonte
4

Ottieni un'ampia panoramica della lingua leggendo il manuale completo; sembra noioso, ma ti darà una visione ampia della lingua, anche se non capisci la maggior parte della parte. Questo consiglio è in linea con quanto detto in precedenza da "BioBuckyBall", ma se il manuale linguistico è piccolo, puoi completare il libro in pochi giorni. Il punto principale è "ottenere" l'essenza della lingua; ad un certo punto della lettura, l'intero concetto della lingua è solo "clic"!

Quindi crea un piccolo progetto nella lingua del dominio che ami. Inizialmente non cercare di approfondire i dettagli. Di solito, se sto imparando una nuova lingua, cerco di creare alcune funzioni o classi relative alle Statistiche: come Deviazione standard e medie. Questo mi porta rapidamente a matrici, iterazioni e tipi di dati. Quando impari una lingua diversa, prova ancora questi stessi esempi, che ti permetteranno di confrontare la sintassi e la semantica delle diverse lingue sullo stesso dominio problematico.

    
risposta data 16.09.2010 - 08:18
fonte
4
  • Leggi un libro

  • Scrivi del codice

  • Se hai qualche dubbio / problema, fai riferimento a Stack - Overflow

  • Ripeti

risposta data 16.09.2010 - 11:32
fonte
3

Mi piace prima apprendere i fondamenti linguistici come il sistema di tipi, ecc. per avere un'idea di come funzionano le cose e di vedere alcuni esempi di base su come si presenta il codice. Il mio modo preferito per farlo è leggere un libro e intendo un vero libro che posso leggere mentre sono sdraiato nel letto o dove voglio. Le basi dovrebbero essere spiegate in massimo 100 pagine, preferibilmente in molto meno. Se nessun libro è disponibile, cerco di trovare le informazioni da Internet.

Leggere l'intero libro è ovviamente una perdita di tempo, perché non capirai argomenti più avanzati senza alcuna esperienza pratica. Al lavoro di solito c'è già del codice con cui lavorare, quindi in quel caso inizierò a lavorare sull'attività in questione. Imparo poco a poco leggendo ciò che altri hanno fatto e se mi imbatto in un problema, provo a google per la risposta o che in mancanza, chiedi da un collega. Dopo aver lavorato per un po ', provo a finire il libro.

Se devo ricominciare da zero, inizio da Hello World, quindi prendo input dalla tastiera e dalla gestione dei file. A seconda della lingua, potrei fare qualche esercizio di interfaccia utente. Successivamente, inizierei a programmare il programma "reale".

    
risposta data 15.09.2010 - 21:44
fonte
2

I libri di "Pensare in ..." di Bruce Eckel sono abbastanza buoni se passi da C ++ / C # a Java ...

Python e Perl tendono ad essere meno correlati, quindi è più consigliato iniziare dalle basi lì,
o dovrai trovare un tutorial esplicitamente basato sul presupposto che sai come programmare.

    
risposta data 14.09.2010 - 13:55
fonte
2

C'è un libro che mi piace davvero. Si chiama "Sette lingue in sette settimane" , e mira a insegnarti ... sette lingue in sette settimane.

È un modo divertente di guardare lingue molto diverse e i punti di forza e di debolezza di ciascuno di essi. Per ogni lingua, il libro tratta un problema non banale.

Naturalmente, il libro non è un riferimento profondo per nessuna delle due lingue, ma ne mostra l'essenziale.

Le lingue coperte sono Ruby, Io, Prolog, Scala, Erlang, Clojure e Haskell.

    
risposta data 14.09.2010 - 17:52
fonte
2

Il mio approccio è semplicemente iniziare a scrivere nella lingua selezionata, trovare il pet project e farlo. Leggi un sacco di campioni, controlla il codice di altri, passa attraverso una fonte di progetto più grande, trova ciò che non capisci e leggi nei documenti. Attualmente sto imparando F # e ho comprato il libro - Expert F # - trovo incredibilmente difficile focalizzare e leggere tutto senza doverlo usare. Ma qui non c'è solo un nuovo linguaggio, è l'intero paradigma che passa dall'imperativo al funzionale.

    
risposta data 15.09.2010 - 20:01
fonte
1

Attualmente sto imparando Ruby usandolo per risolvere i problemi Project Euler . Per lo più lavoro C incorporato (anche alcuni PHP e C #) nel mio lavoro 9-5, quindi la roba di Ruby è solo per espandere un po 'i miei orizzonti. Ho preso un paio di libri Ruby, quindi ho installato un buon IDE .

    
risposta data 18.09.2010 - 20:45
fonte
0

Hai molti modi per imparare un nuovo linguaggio di programmazione. Vorrei andare con questo metodo:

  1. Scegli prima il linguaggio di programmazione che vuoi imparare
  2. Leggi libri su questo e guarda i tutorial online
  3. Collegati a un repository di codice open source online e scarica alcuni progetti
  4. Usa i libri e il cervello per connettere i punti con il codice "vita reale" dal repository del codice

In questo modo imparerai la lingua stessa e vedrai come viene usata nella "vita reale".

La cosa più importante: non cercare di imparare più di una lingua alla volta. Lo rovinerai.

    
risposta data 10.11.2012 - 14:41
fonte

Leggi altre domande sui tag