E 'mai troppo presto per imparare una nuova lingua? [chiuso]

11

Contesto personale: sto imparando formalmente il C ++ negli ultimi 6 mesi all'università. Prima di questo mi sono dilettato in JavaScript per un anno. Ora sto pensando di imparare Python durante un mese scolastico.

Dividendo la mia attenzione all'inizio del processo di apprendimento sto degradando l'efficienza del mio apprendimento? Dovrei passare il mese libero continuando in C ++? O non è mai troppo presto per imparare una nuova lingua?

    
posta Anticipation 22.08.2012 - 06:25
fonte

5 risposte

8

La mia esperienza con Python è limitata a qualche codice di riproduzione solo leggermente più complesso di Hello World, quindi questa non sarà una risposta molto approfondita per python in particolare, ma posso dirti questo:

Le differenze tra le lingue sono in dettagli come la sintassi e alcuni specifici del linguaggio saranno diversi (come i diversi modi in cui vengono gestiti gli errori, le capacità di I / O e come i compilatori convertono il tuo input in qualcosa di eseguibile), ma sia C ++ che Python offrire gli stessi paradigmi, quindi la soluzione dei problemi può essere fatta allo stesso modo con entrambe le lingue. Sia C ++ che Python sono imperativi e orientati agli oggetti, quindi probabilmente stai andando a prendere python abbastanza velocemente se sei a tuo agio con C ++ una volta che hai padroneggiato la nuova sintassi usando le tecniche di risoluzione dei problemi che hai acquisito con C ++. Se vuoi, puoi usare Python anche per la programmazione funzionale, ma non ho mai toccato quella parte, quindi non posso dirti molto a riguardo.

È troppo presto? Non posso davvero dire dalla tua storia in un sì o no definitivo. Sei già abbastanza sicuro di scrivere applicazioni complete (GUI) con C ++? (ad esempio, utilizzare le librerie, funzioni di linguaggio più complesse come generici e / o modelli ecc.) Penso che imparare un nuovo paradigma linguistico sia molto più difficile che imparare una nuova lingua nella stessa famiglia di paradigmi. Quando esci in un nuovo territorio di paradigmi, dovrai dedicare molto più tempo per avere una buona idea di come risolvere i problemi con quel paradigma. Tra i linguaggi OO ci sono differenze su come viene gestita l'ereditarietà e come i dati vengono passati in memoria quando si passa un parametro / argomento a una funzione che influisce sulle prestazioni. Ma per andare avanti questi sono di solito di minore preoccupazione all'inizio.

La mia ipotesi è che se sei abbastanza sicuro di C ++ per fare qualcosa di più del mondo ciao in un modo elegante, sei ok per il lancio. Imparare molte lingue in modo superficiale ti aiuterà a capire gli esempi di codice indipendentemente dalla lingua utilizzata, ma la creazione di un tuo codice richiede una maggiore comprensione di come funzionano le lingue e di come differiscono l'una dall'altra.

P.S. Quando voglio imparare a usare superficialmente un nuovo linguaggio, di solito proverò le seguenti cose per capire la sintassi del linguaggio e il funzionamento superficiale:

  • Ciao mondo (testo sullo schermo)
  • Ciao mondo scritto su un file (ti insegna le nozioni di base sull'I / O dei file per quella lingua e molto spesso anche altri tipi di I / O)
  • Esecuzione di alcuni calcoli standard con basi diverse (10, esadecimale, ottale), sia integer che a virgola mobile. (ti insegna riguardo al troncamento e alla notazione numerica)
  • Cerca di utilizzare alcune librerie grafiche per mostrare ciao mondo in una finestra di dialogo elegante. (ti insegna come usare le librerie e il codice esterno)
risposta data 22.08.2012 - 07:20
fonte
6

Beh, certo che lo è.

Non ci sono dubbi, a volte è troppo presto per imparare un nuovo linguaggio di programmazione.

Il caso più semplice è se viene fuori un linguaggio el-stinko e prima che qualcuno ne rilevi l'inadeguatezza, imparandolo si danneggia il cervello. Una coppia che viene in mente include BASIC, FORTH e APL.

Per un caso più complicato, uno dei grandi scienziati informatici ha descritto questo problema che ha affermato brevemente che la pratica rende permanente, e ci sono molte discipline che dovrebbero essere apprese prima di apprendere le lingue del computer in modo che la lingua non distorca comprensione più fondamentale. Nelle sue parole:

The tools we use have a profound and devious influence on our thinking habits, and therefore on our thinking abilities.

L'avversario di tuffarsi nella programmazione si chiama Edsger Dijkstra e ha avuto una carriera molto distinta. Ha ricevuto l'ACM Turing Award con la seguente citazione:

For fundamental contributions to programming as a high, intellectual challenge; for eloquent insistence and practical demonstration that programs should be composed correctly, not just debugged into correctness; for illuminating perception of problems at the foundations of program design.

Il documento in cui esplode l'apprendimento prematuro dei linguaggi di programmazione è:

"Sulla crudeltà dell'informatica realmente insegnata" link

Inoltre, per favore non scottarmi, sono solo il messaggero.

    
risposta data 22.08.2012 - 08:57
fonte
3

È mai troppo presto per imparare una nuova lingua?

Direi di sì. Se stai ancora pensando al fatto che il computer potrebbe effettivamente fare ciò che dici, allora l'apprendimento di una seconda lingua probabilmente ti confonderà.

Ma se hai superato il punto in cui ti rendi conto che il computer fa esattamente ciò che dici, non importa quanto sia stupido, è probabile che tu abbia una comprensione abbastanza ragionevole del tuo la prima lingua che guarda un secondo (e il terzo!) linguaggio non infrange la tua attenzione.

    
risposta data 22.08.2012 - 08:11
fonte
2

Non puoi fare entrambe le cose ?? Farei un progetto in C ++ e imparerei bit di Python (solo perché è così fantastico), potresti risolvere problemi a ProjectEuler.net usando Python

In generale, penso che sia una cattiva idea imparare una lingua, lasciarla e iniziare a impararne una nuova. Uno dovrebbe essere flessibile a lavorare con diversi paradigmi nelle fasi iniziali. Ma è proprio quello che penso.

    
risposta data 22.08.2012 - 07:01
fonte
2

Per un programmatore praticante direi senza riserve che imparare una nuova lingua non è quasi mai una cattiva idea. Per uno studente universitario, vorrei insistere con un po 'di cautela, a seconda di quali lezioni stanno arrivando. Il motivo è che, in un esame scolastico, è spesso necessario recitare i dettagli della lingua senza il beneficio di un ambiente compilato / eseguito che evidenzi facilmente i tuoi errori.

Specialmente quando hai solo pochi mesi di esperienza, è molto facile confondere i dettagli nella tua mente. Se ti importa dei tuoi voti e stai frequentando un corso con esami del genere, starei attento. Nel mondo reale, non è una preoccupazione.

modifica : inizialmente ho detto la sintassi, ma i dettagli non sintattici sono altrettanto importanti per i professori e ce ne sono molti di più.

    
risposta data 22.08.2012 - 14:16
fonte

Leggi altre domande sui tag