it-swarm.it

Imparare più lingue contemporaneamente

Quando impari nuove lingue, è meglio impegnarti in una lingua al 100% e aspettare di averla "padroneggiata" per passare a un'altra, o lavorare sull'apprendimento di lingue diverse allo stesso tempo?

Se è importante, attualmente sto imparando il C++ e mi piacerebbe sapere Java e Python pure.

36
Maxpm

Non solo non vedo un problema con l'apprendimento di più lingue contemporaneamente, penso che possa trarne un beneficio diretto in quanto qualcosa in una lingua può chiarire un'area problematica che potresti avere in un'altra lingua. Ad esempio, il mio linguaggio principale è C # e quando ho a che fare con LINQ ho usato il formato SQL (il che va bene, non lo sto affatto bussando, ma non mi è sembrato il "bel modo" per farlo). Sono stato lontano da Lambdas perché, a dire il vero, non li capivo e la documentazione C # che ho visto non forniva una definizione chiara (per me). Poi ho iniziato a raccogliere alcuni libri su F # e ho iniziato a impararlo, il che mi ha dato il "ah ah!" momento di capire come sono i Lambda.

Ho scoperto che, avendo sperimentato sempre di più con altre lingue (e framework), sono diventato migliore in C # (e ASP.Net). Questo è il motivo per cui credo che l'apprendimento di più lingue contemporaneamente non sia affatto negativo!

31
Jetti

Se è la tua prima lingua, penso che sarebbe meglio impararlo abbastanza bene da capire come funziona un linguaggio di programmazione.

Una volta che hai buone basi, puoi sceglierne quante ne vuoi.

49
OscarRyz

Penso che un'abilità importante per i programmatori sia la capacità di apprendere nuovi linguaggi di programmazione. Come tale, tenderei a suggerire che uno prova prima ad imparare una singola lingua e poi ad aggiungerne altre.

Qualunque sia la tua prima lingua, il processo di apprendimento di altre lingue dovrebbe:

  • Trova un buon riferimento di sintassi per la nuova lingua
  • Identifica i punti di forza della nuova lingua, non limitarti a programmare nella nuova lingua come se fosse già una lingua che conosci (programmare con un accento)
  • Esplora le aree della nuova lingua che non corrispondono alle lingue precedenti che hai utilizzato in precedenza
  • Trova esempi di codice e, senza rivederli, prova a scrivere la stessa cosa da zero e vedi in che modo l'implementazione differiva dall'esempio

Con il passare del tempo, accumulando le lingue, formerai la tua lingua pseudocodica astratta interna che ti aiuterà a tradurre tra le lingue che conosci. Questa lingua interna è il framework che utilizzerai per apprendere rapidamente nuove lingue.

12
Jason Aller

L'apprendimento delle lingue in parallelo è una cosa abbastanza normale. Ad esempio la programmazione web. Hai a che fare con almeno tre lingue: lato server (php, Java, .net, Ruby, python ...), codice client (script Java e html), database (sql).

8
Boris Pavlović

Non vedo alcun problema nell'apprendimento di più lingue alla volta. In realtà, non hai mai padroneggiato davvero una lingua, quindi davvero, ogni volta che lavori con più di una lingua, probabilmente stai imparando entrambe.

Potresti voler concentrarti su una lingua per superare le basi solo per evitare di confondere le due lingue. Ciò è particolarmente vero se stai imparando lingue simili, come Java e C #.

7
Paul Whitehurst

Ho insegnato programmazione per diversi anni, quindi posso condividere la mia esperienza con te. Suppongo che C # sia la tua prima lingua, quindi la mia esperienza di insegnamento della programmazione a persone che non avevano mai programmato prima potrebbe essere utile.

Prima di tutto, lascia che ti dica che imparare più di una lingua è qualcosa che ogni programmatore esperto dovrebbe fare. Ma questo non significa che dovresti imparare diverse lingue contemporaneamente se hai appena iniziato.

Nel corso degli anni, gli studenti hanno dimostrato che ci vuole circa un anno perché una lingua si solidifichi nella mente (almeno la prima), a volte un po 'di più, a volte un po' meno. Se provi a insegnare più di una lingua in un anno, gli studenti tendono a confonderle e confondere concetti e lingue. Sebbene gli studenti facciano progressi, prendono molte cattive abitudini che è difficile eliminare in seguito. Se stai imparando da solo, questo rischio è maggiore.

Tuttavia, ho notato che aiuta a insegnare due lingue con una sintassi molto diversa. Quando due linguaggi di programmazione aspetto veramente diversi, aiuta la mente a vederli come entità veramente diverse senza inquinarsi a vicenda. (Quando un linguaggio di programmazione ti aiuta a comprendere concetti difficili in un'altra lingua, va bene; quando una lingua ti fa scrivere codice cattivo in un'altra lingua, è male).

Pertanto, la mia raccomandazione sarebbe di attenersi a un linguaggio di programmazione per il tuo primo anno. In alternativa, può essere una buona idea imparare due lingue contemporaneamente purché siano/abbiano un aspetto molto diverso. Se la tua prima lingua è C #, starei lontano da C, C++, Objective C e Java di sicuro; e probabilmente Python, Ruby e Javascript. Consiglierei di combinare C # con un funzionale linguaggio come Haskell, Scheme, F #, Erlang, Clojure o forse Scala.

6
sergut

Penso che imparare più lingue alla volta sia effettivamente meglio che impararne una alla volta, perché se le lingue sono sufficientemente diverse, ognuna ti dà una pausa dall'altra. Cerca di scaglionarli in modo da iniziare con uno nuovo una volta superato il livello "principiante assoluto" del precedente; in questo modo avrai molte più possibilità di conservare non solo ciò che hai imparato sulla lingua ma come hai imparato una nuova lingua. (L'abilità di apprendimento linguistico generalizzato è qualcosa di cui ti saremo molto grati in seguito nella programmazione della vita.)

Detto questo, l'apprendimento della tua prima lingua richiede un enorme investimento di tempo ed energia e potresti semplicemente non avere il tempo di affrontare un altro grande progetto durante questo processo. Se stai pensando di iniziare un'altra lingua perché sei stufo di C++ - non farlo! Ti incoraggerà a procrastinare. Se stai pensando di iniziare un'altra lingua perché continui a vedere menzioni di progetti scritti in (diciamo) Java e sei frustrato di non poter leggere e analizzare facilmente il codice, fallo! Questa è un'ottima ragione per imparare un'altra lingua in qualsiasi momento.

5
Arkaaito

Ho scoperto che l'apprendimento di più lingue contemporaneamente può portare ovviamente a richiedere più tempo per imparare una lingua specifica (è ovvio davvero). Tuttavia, nel mio caso mi ha permesso di decidere quali lingue preferisco e lo stile di programmazione che mi piace di più.

Nel mio caso ho iniziato con C #, poi sono entrato in Python e F #. Mi è piaciuto molto lo stile funzionale di F # che mi ha portato a provare Scala e Clojure. Ora a causa dell'apprendimento di tutte queste lingue ho trovato Scala per essere una buona misura per quello che faccio. Inoltre ora sono davvero fiducioso in OOP e stili funzionali e può leggere e scrivere diverse lingue con competenza. È una grande abilità avere.

2
Richard Todd