Che cosa fai quando non riesci a capire una certa parte della programmazione? [chiuso]

11

Sto imparando nuove lingue mentre procedo, scrivo codice per programmi di base in più lingue e vado in classe. Ho letto libri, articoli, lezioni, video, lo chiami, ma non riesco a capire come funziona.

Ad esempio, non ho mai capito i puntatori: in cosa sono bravi. (NON PARTE DELLA DOMANDA - la ricodifica con "Puntatori" non è richiesta ...)

La mia domanda tuttavia, non è ciò che i suggerimenti fanno, ma invece come posso capire cose del genere? Se, dopo aver letto un libro o un articolo su una certa parte della programmazione, e non capisco, cosa faccio? Scrivere codice in una determinata funzione di programmazione aiuta sicuramente, ma in realtà non aiuta a capire molto. La parte teorica è importante per capire.

    
posta Bugster 28.02.2012 - 18:12
fonte

11 risposte

22

Se hai problemi con la comprensione di un concetto astratto, basta scendere di un livello. Se non riesci a ottenere i puntatori in C - vai al livello di assemblaggio. Hai ancora problemi? Scopri di più sull'hardware, fino alle porte logiche.

    
risposta data 28.02.2012 - 18:24
fonte
17

Ciclo di apprendimento dell'apprendimento incrementale breve

  1. Prova e non riesci a capire il concetto.
  2. Prova a implementare qualcosa che illustra il concetto.
  3. Prova a diagramma il concetto sulla lavagna (se applicabile)
  4. Prova a parla attraverso con qualcuno che capisce il concetto.
  5. Prova a spiegare le parti che hai compreso a questa persona (aiuta a vedere la luce, a volte).
  6. Riavvia da 1 fino a quando puoi finalmente spiegarlo a qualcuno che si trova nello stato 1 e faglielo ottenere.

Passaggi aggiuntivi

Da usare con cautela.

  • Cerca ulteriori letture e materiale di studio :
    • online (i motori di ricerca più diffusi e Wikipedia sono grandi amici),
    • in biblioteca (non sottovalutare i libri e le persone che vanno lì a leggerli),
    • sul tuo sistema (la documentazione in bundle e gli strumenti di doc sono spesso estranei all'inizio, ma il tuo miglior goto-compagno dopo un po ': impara a trovare ciò che stai cercando in essi. per esempio man -k , apropos , ecc. ..)
  • Prova leggi il codice utilizzando il concetto ...
  • ... e esegui il passaggio del codice con un debugger.

Questi sono più snelli in quanto devi rivalutare te stesso per assicurarti di aver capito bene. Il mentoring diretto da parte di una persona esperta è solitamente migliore, seguito naturalmente dalla tua convalida delle conoscenze acquisite ri-implementando ciò che hai appena appreso (e cercando quindi di spingerlo oltre e apprendere un concetto di livello superiore costruito sopra di quello, ad esempio liste collegate per i tuoi puntatori).

Crediti: Nupul (per diagrammi)

    
risposta data 28.02.2012 - 18:28
fonte
5

Nella mia esperienza, si tratta di input e feedback. Vuoi ricevere input in quante più forme puoi e feedback sui tuoi errori il più velocemente possibile.

Nella mia esperienza, il mio diploma CS era molto secco, molto formale e assolutamente inutile nell'insegnare qualsiasi programmazione. Ho frequentato due-tre lezioni alla settimana e se non la capisci, allora è più o meno così - il docente ha un'altra lezione da insegnare e non può restare in disparte per aiutarti. E, è strano, che un ragazzo lo capisca in un certo modo, e lo insegnerà in un certo modo e questo è tutto, quindi se non lo pensi come lui, non lo capirai mai. Quel che è peggio è che dal momento che probabilmente comprende un miliardo di altri concetti correlati, probabilmente lo inquadrerà in termini di quegli altri concetti, che potrebbero benissimo essere sopra la tua testa o semplicemente nemmeno nel materiale del corso.

Sono andato su Stack Overflow e ho chiesto nel canale di chat C ++ e ho ottenuto cinque diverse spiegazioni in cinque minuti. Erano tutti su misura per me e il problema esatto che avevo, quindi non sorprende che uno di loro abbia colpito casa per me e l'ho preso. La velocità con cui puoi imparare dall'ottenere feedback dal vivo da più esperti è enormemente superiore a quello che puoi ottenere da una fonte di carta essiccata.

Quindi, idealmente, fai una pausa, e poi troverai un gruppo di persone dalla mentalità piccola o media che non hanno niente di meglio da fare e chattare con loro dal vivo. A proposito, Stack Overflow è un posto eccellente per ottenere questo tipo di feedback personale ad alta velocità di alta qualità.

    
risposta data 28.02.2012 - 18:24
fonte
3

In nessun ordine, libri, amici e la lettura di codice ben documentato sono buone fonti. La pratica è l'unico modo per imparare: provare a scrivere test di piccole unità. Ad esempio, per i puntatori scrivi il codice che tratta le stringhe: inverti una stringa, inverti ogni parola in una stringa, prova per palindromo, sostituisci una lettera con un numero ...

Fai domande su stackexchange ...; >

    
risposta data 28.02.2012 - 18:18
fonte
2

La pratica rende perfetti! (beh meglio comunque). Continua a provare e prova a utilizzare il maggior numero possibile di fonti e sensi:

Fonti: libri, Internet, gruppi di utenti, amici, apprendimento video, usando siti che ti permettono di testare un po 'di codice come jsfiddle (principalmente html),
Rubulare (Ruby espressioni),
SQlzoo per provare sql,
jslint per javascript, pad di codice per molte lingue.

Ricordare le cose astratte considerano mneomici - I medici li usano!

Considerati uno studente che vive per tutta la vita e rimani umile e puoi andare lontano.

    
risposta data 28.02.2012 - 18:17
fonte
1

Devi cambiare la tua messa a fuoco per un po ', non 5 min. o 5 ore ... intendo qualcosa come 1 giorno senza guardare quel codice .... semplicemente rilassati ... leggi qualcosa di diverso ...

Se hai per capirlo adesso ... chiedi aiuto agli amici o here =)

    
risposta data 28.02.2012 - 18:15
fonte
1

Cosa fanno tutti gli altri in IT.

Uso un motore di ricerca per cercare i concetti correlati che non capisco finché non riesco a rivisitare l'argomento che inizialmente volevo capire.

È probabile che non comprendiate a pieno lo stack, l'heap, le variabili automatiche, il processo di compilazione C ++, l'assembly, la memoria gestita e la memoria non gestita.

Una maggiore chiarezza su questi e altri concetti relativi ai puntatori probabilmente eliminerebbe tutto.

    
risposta data 28.02.2012 - 18:18
fonte
1

Non esiste un modo rapido per capire un argomento. Il tuo successo dipende da quanto contesto hai portato con te nei tuoi studi. Sarai molto fortunato a trovare qualcuno che spiegherà le cose con il tuo punto di vista in mente. Come le macchine di Turing, chiunque può imparare ciò che sanno gli altri, ed è solo questione di persistenza e accettazione che la frustrazione sia naturale.

Ricordo l'immensa difficoltà che avevo con i puntatori. Non è stato fino a quando un ragazzo molto paziente mi ha spiegato come se fossi un completo idiota che l'ho capito. A volte è quello che serve.

    
risposta data 28.02.2012 - 18:38
fonte
1

Questo è un problema comune nell'apprendimento e nell'insegnamento. E come altri hanno già detto, non esiste un modo sicuro per ovviare a questo problema. È una verità fondamentale che tutti impariamo in modo diverso dal momento che i nostri cervelli sono cablati in modi diversi ma cruciali.

L'apprendimento genera nuove connessioni neuronali. Senza andare troppo nelle neuroscienze (di cui non so quasi niente), generare nuove connessioni richiede diversi tipi di esposizione a un concetto per persone diverse. Prova diversi angoli, leggi / ascolta / guarda diverse spiegazioni. Practice!

Se ciò non funziona, metti da parte il problema: potresti semplicemente perdere un'altra parte del puzzle che, una volta acquisita, sembra ovvio il problema originale.

Conoscete questi momenti aha! ? Questo è quando il tuo cervello ha appena creato una nuova connessione. Ecco come avviene l'apprendimento.

Per inciso, ogni buon insegnante lo sa. Le linee guida per la scrittura tecnica affermano spesso che ogni concetto dovrebbe essere spiegato almeno due volte, usando parole diverse (e magari con un testo tra di loro). Se presti attenzione, sarai in grado di individuare che tutti i bravi scrittori di scienze seguono questa regola.

Purtroppo, troppi insegnanti lo ignorano e spiegano le cose solo una volta. E anche se riescono a trovare una spiegazione elegante con una grande metafora, questo semplicemente non è sufficiente.

    
risposta data 28.02.2012 - 21:53
fonte
0
  1. Leggi tutti i documenti pertinenti e Google i tuoi dubbi.

  2. Prova a scrivere esempi di codice, guarda cosa fanno.

  3. Prova a eseguire il codice nel debug e guardalo passo dopo passo.

  4. Se continui a non capire un determinato comportamento, chiedi a qualcuno, sia di persona o in un sito come questo. Se hai provato tutto quanto sopra, dovresti avere tutti gli elementi per comporre una buona domanda. Non essere timido:)

Penso che sia più o meno quello che fanno tutti gli altri.

    
risposta data 28.02.2012 - 18:22
fonte
0

Continua a cercare e imparare. Ho avuto lo stesso problema con vari altri aspetti della programmazione. Parlare con gli altri e leggere articoli alla fine porta ad un momento "AHA". Generalmente, è un altro post del blog o una risposta SO che presenta le informazioni che sono in grado di seguire.

In pratica, continua a cercare e sii paziente per la comprensione che verrà.

    
risposta data 28.02.2012 - 18:22
fonte

Leggi altre domande sui tag