2010-08-07 13 views
10

Ho appena iniziato l'apprendimento di Java (referring Head-First book).Qual è il tuo modo di imparare una lingua?

Volevo solo sapere qual è il modo migliore di apprendere qualsiasi lingua?

Come ottenere il massimo dal libro?

Si dovrebbe studiare l'argomento del libro e poi provare quel codice più tardi sul computer o farlo contemporaneamente? (concetto di apprendimento e provalo sul computer nello stesso momento)

Nel mio caso mi riferisco al libro e aiuto ai forum. Inoltre voglio sapere quando iniziare a rispondere qui su Stack Overflow :) Dal momento che sono nuovo della lingua, quindi non ne so molto.

(ho appena letto le risposte di altri qui regolarmente)

+0

Probabilmente vuoi segna questa domanda "Community Wiki" in modo che non venga chiusa all'istante. –

+0

provato http://stackoverflow.com/search?q=learning+a+language%3F? – Iznogood

+0

@ Carl: Grazie, fatto :) –

risposta

13

Il modo "migliore" dipende da voi - il mio approccio può essere riassunta come:

  • leggere un libro
  • scrivere del codice
  • ripetere

ma alcune persone non imparano bene in quel modo, e preferiscono s Qualcosa di più formale, come un corso di formazione, qualcosa per cui non riesco a stare fermo, sebbene come ex istruttore ero contento che molte persone si sentissero diversamente.

0

Quando voglio imparare una lingua, mi sono fissato un compito difficile, come codifica di Huffman, o Facebook puzzle, e iniziare a pugni via esso con l'aiuto di questo sito.

Si potrebbe desiderare di utilizzare un libro per ottenere le basi della lingua, anche se ...

0

Sono entrato in nuove lingue inventando un progetto. Forse qualcosa che hai già fatto in un'altra lingua o qualcosa che potresti trovare utile (come uno strumento di programmazione). Quindi prova a scriverlo nella lingua che desideri apprendere, in un primo momento utilizzando solo ciò che hai capito della lingua e puoi raccogliere da libri e siti web. Una volta completato il progetto, inizia a chiedere alla comunità che qualcuno guardi il tuo codice e faccia domande per quelle che sembrano essere aree problematiche.

È importante rendersi conto che un linguaggio è in genere molto generale mentre un problema lo fornisce contesto. Ad esempio, potrei sapere come sviluppare applicazioni Java, ma ciò non significa che io sappia come sviluppare applicazioni J2EE. Stesso linguaggio, contesto diverso; quindi potresti desiderare di pensarci mentre ti avvicini al progetto o ai progetti di apprendimento.

Inoltre, consiglio vivamente di costruire il progetto con test di unità molto pesanti. I test di unità di scrittura ti daranno un solido insieme di strumenti che non ti mostreranno nei libri, il tuo codice migliorerà e, soprattutto, qualsiasi idioma inatteso sarà come un ... come un test fallito.

1

Questo è un duplicato, come ricordo di aver risposto non molto tempo fa, ma per me dipende dalla lingua e se ho bisogno di imparare solo le lingue o idee completamente nuove.

Con un linguaggio come Haskell, che ho considerato difficile dato che era molto diverso da quello a cui ero abituato, ho iniziato con l'apprendimento dei libri.L'esperienza pratica è tuttavia essenziale, ma piuttosto che provare qualcosa di ambizioso da zero, mi concentro su piccole modifiche al codice esistente.

Con i linguaggi più semplici come Ruby, o addirittura Java, io possa fare un tutorial, quindi vorrei provare a scrivere un app da zero. Quando mi scontro con le pareti, mi limito a cercare risposte o a chiedere qui, e l'apprendimento arriva con l'esperienza.

realtà facendo cose è la chiave a prescindere.

0

La cosa più importante per me è sempre quello di trovare qualcosa che voglio veramente a che fare con la nuova lingua ho intenzione di imparare. Altrimenti è difficile essere veramente motivati. Ma una volta che ho un'idea per qualcosa vado a leggere tutorial e articoli sulla lingua e inizio a costruire il mio progetto di apprendimento mentre vado.

leggevo molti libri, ma oggi con StackOverflow e tutorial ovunque trovo la mia auto che ne hanno bisogno sempre meno.

0

solito Google per il miglior libro possibile (uno con la maggior parte delle raccomandazioni) e la scansione attraverso di essa molto veloce, solo per avere l'idea generale del linguaggio, buone pratiche ecc Poi ho né pensare fuori o google un programma che sarebbe in grado di coprire tutto ciò che si può fare con quella lingua (beh, OK, non tutto, ma il più possibile). Come quando stavo imparando Java EE (JSP, Servlets, JPA) ho deciso di scrivere un semplice gioco dell'impiccato, prima facevo le basi, poi aggiungevo il database etcetc. - Prima ho fatto un programma molto semplice, poi ho aggiunto sempre di più. Certo che mentre lo scrivo vorrei sempre google per le buone pratiche, perché puoi codificare qualcosa e funzionerà, ma potrebbe essere un inferno mantenerlo in futuro, ecc.

Penso che scrivere cose in una lingua che tu l'apprendimento è il modo più efficiente se lo esegui correttamente.

2

Io di solito prima letto i libri e fare gli esercizi dopo ogni capitolo, cercando di capire i concetti di base e avere familiarità con le sue caratteristiche

0

personalmente ho ancora una copia del set di dati NetflixPrize che scrivo algoritmi in detto linguaggio da risolvere o semplicemente scombussolare con esso, in generale. Sfortunatamente, il set di dati non è più disponibile pubblicamente (almeno ufficialmente da Netflix).

Indipendentemente da ciò, trova un progetto divertente che tu abbia una buona idea di cosa devi fare per completarlo e risolverlo, e quindi apprendere quali sono le strutture linguistiche e le piattaforme e le migliori pratiche per risolverlo. Una volta che ti sei bagnato i piedi, quindi espanditi e inizia nuovi progetti con la lingua/piattaforma che stai imparando.

2

che ho fatto qualcosa di interessante e ha cercato di riscrivere il mio IRC bot nella nuova lingua. Questo mi permette di imparare diverse cose tra cui

  • utilizzando qualsiasi interfaccia grafica quadro il linguaggio utilizza
  • Utilizzando le cose come le prese, ruscelli, ecc
  • sincronizzazione
  • OOP stile (se la lingua è OOP)
  • Multithreading
  • Fare le cose dinamicamente (per i plugin)
  • Se lo faccio correttamente quando sollecito una revisione del codice.
  • Come usare altri framework

in Java, questo è praticamente l'entità di eventuali SE applicazione desktop. In PHP (sì, ho fatto questo in qualche PHP cercando terribile che ho abbandonato), ho imparato molte cose interessanti, soprattutto che PHP non è stato fatto per farlo.

Usando questo può dare grande intuizione in molte caratteristiche del linguaggio. Può anche essere divertente a volte.

0

per me: imparare una lingua semplicemente iniziare un progetto. Ho imparato C# .NET questa estate avviando un progetto web su C#. Quando mi blocco su qualcosa, o google o semplicemente beneficiare di StackOverflow !! Se non si sentono sicuri: avviare un mini progetto con Java e vedere come va!

0

Se sei nelle prime fasi dell'apprendimento a programmare, allora penso che sia più didattico giocare con ciò che hai imparato mentre leggi il libro. Non aspettare che finisca di leggerlo per fare pratica. Puoi capire la conoscenza, ma essere in grado di applicarla adeguatamente richiede molta pratica. Ed è facile dimenticare ciò che hai imparato una settimana fa, se non lo eserciti.

Quindi cosa faccio di solito quando sto imparando una nuova lingua, è quello di cercare di risolvere alcuni problemi con esso. Questo mi aiuta molto a valutare fino a che punto è la mia comprensione della lingua e mi aiuta anche a scoprire gli approfondimenti della lingua. Esempi di problemi che cercare di risolvere quando sto imparando una nuova lingua:

0

Se non hai mai avuto alcuna esperienza di programmazione, non credo è una buona idea avviare un progetto in cui ti ritrovi a rimanere bloccato il più delle volte e richiedere l'assistenza di google o stackoverflow.

Piuttosto, prendi un libro, analizza ogni esempio, prova alcune domande sulla fine del capitolo, digita il codice dagli esempi e pensa a modi creativi per modificare il programma in base alle tue esigenze. Puoi anche integrare il tuo apprendimento guardando le lezioni video fornite da Stanford's Engineering Everywhere o MIT's OCW. Nel tuo caso, la prima serie di video lezioni gratuite di Stanford inizia con Java, passa a C++, quindi a MIPS e alcuni linguaggi di scripting.

Check it out: http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

Per quanto riguarda iniziare a rispondere alle domande che cominciano, si può sempre dire che cosa sono i tag preferita e impostarla a "principiante" in modo che StackOverflow mostrerà più domande "principiante".

+0

Grazie chiurox :) –

0

faccio spesso chi segue:

  • lettura libro che parla stessa cosa (ex Java intro, Java per principianti, Java capofitto etc)

Il motivo è si parla stesso cosa, ma a volte uso diversi esempi e diversi stili di codifica, quindi mi aiuta a capire le varie modalità di codifica. Inoltre, spesso un esempio non è abbastanza per comprendere appieno cosa sta realmente accadendo quando rimani bloccato.

  • codici letti che altre persone scrivono.

Andare online e cercare il codice che si sta cercando, scrivono in modo diverso e troverete quale approccio ha quali pro e contro.

  • partecipare ai forum e partecipare alla discussione.

Assicurati di passare un po 'prima di inviare domande. Alla gente non piace cercare una soluzione facile. Di solito trascorro un paio d'ore alla ricerca di risposte e, se non riesco a capire, inizio a chiedere online con il maggior numero di dettagli possibile in modo da ottenere le risposte precise.

0

Hai una preparazione informatica o di programmazione? In caso contrario, è importante imparare su strutture e algoritmi di dati, nonché sulla lingua attuale. Ci sono molte risorse gratuite là fuori, e mentre il libro ti aiuterà, potresti prendere in considerazione l'idea di seguire un corso di CS per aiutare con alcuni dei concetti.

Se si (o chiunque altro leggendo questa domanda) è interessato, è possibile controllare This site per un'introduzione all'informatica. Ci sono anche molti altri buoni corsi su opencourseware. Questa classe in particolare è costituita da tutti i video in streaming o scaricabili di conferenze con compiti, test e quiz, tutti al 100% e da insegnanti del MIT.

Se si dispone già di un fondo CS, quindi si prega di ignorare me :)

0

Penso iniziando un piccolo progetto è il modo migliore e inizialmente attenersi ad un libro è sempre aiuta

Problemi correlati