Quali tecniche aiutano a mantenere la conoscenza della programmazione? [chiuso]

44

Come ti ricordi della programmazione di cose correlate? Hai avuto la sensazione di aver riscontrato l'errore che hai davanti a te in questo preciso istante, pochi anni fa e potresti giurarti che conoscevi la causa, ma ora l'hai dimenticato?

Hai lavorato con l'analisi della stringa di xsl qualche tempo fa, ma ora non riesci a ricordare esattamente quali sono le funzioni di stringa del tutto da xsl e devi ricominciare da capo? O forse ti dimentichi di alcune funzionalità di Apache Commons come "filtrare una raccolta di alcuni predicati" che hai sicuramente usato in passato.

Quindi come lo fai? Ho provato ad avere un blog ma quando sviluppo app, non trovo mai il tempo per aggiornare il blog o scrivere delle mie esperienze. Inoltre, usare una wiki è una cosa carina ma poi ho trovato difficile mantenere una netta separazione tra di loro poiché molte volte avevo bisogno di cambiare un post sul blog per aggiungere nuove informazioni su quell'argomento. Questo mi ha fatto pensare che in realtà avrei dovuto inserire questo argomento nella wiki invece del blog.

Hai qualche sistema che ti aiuta a ricordare la tua esperienza di programmazione? Qual è la tua configurazione?

    
posta shining-light 19.03.2012 - 11:15
fonte

12 risposte

64

Dimenticare le cose è normale. Anche ricordare alcuni trucchi che ti hanno aiutato in passato è normale. Questo è il primo passo che dovresti riconoscere. Poi ci sono alcuni modi in cui puoi "memorizzare" la conoscenza per un'ulteriore revisione:

  • Trova tempo e blog a riguardo . Il futuro - sarai molto grato al presente - tu;
  • Lavora con piccole demo e archivale in qualche modo. Sicuramente passerai attraverso questo archivio molte volte;
  • Utilizza il tuo profilo stackexchange . Segna domande interessanti / problemi / problemi / suggerimenti / trucchi come preferiti per ulteriori indagini;
  • Mantieni facendo , continua a programmare. Più usi una certa parte di un framework, più lo familiarizzi e più ne ricordi.
risposta data 19.03.2012 - 11:36
fonte
20

La mia chiave è

Varietà

Ripetizione. Una volta può essere fugace. Vedere il 100 ° evento fa la differenza!

Memoria con le dita . Ricordo molto meglio il codice quando in realtà l'ho digitato alcune volte.

Libreria codici : conserva una serie personale di codice e trucchi che hai utilizzato e visto.

Centralizzazione. Conservo 1 file con tutti i miei nomi utente (centinaia) su 1 pc. Applico sicurezza ad esso.

Disciplina - hai accennato di non avere tempo e di sforzarti di aggiornare il tuo blog, ecc. Devi solo lavorare di più e assicurarti di farlo.

Accettazione - abilità e tecniche e cose che hai imparato settimana della settimana saranno fresche. Alcuni degli articoli che dici tre anni fa saranno difficili da ricordare. È normale perché il cervello fa spazio a più.

Più sensi - a volte uso la mnemonica, a volte faccio cadere un'immagine con concetti chiave disegnati in modi distinti. Leggo, ascolto i podcast, guardo i video, uso il colore nei redattori. Più senso io uso meglio.

Mnemonici , ad es. ordine di confine css Tarball (TaRBalL) TopRightBottomLeft. Uso anche colori e forme per ricordare parole e temi. Spesso il più bizzarro, il più memorabile!

Continua uso : questo è l'effetto "usalo o perdilo". Tutta la conoscenza svanisce nel tempo. Time ++ Fade ++

The Stack Exchange Network - Sto usando Stack Overflow in più aree per cercare di mantenere il maggior numero di abilità e tecniche diverse "attuali" e "memorizzate" anche se non le sto utilizzando nel mio attuale lavoro / progetto.

Dropbox : mantengo i piccoli file di commit con elementi relativi alla memoria

Libri - Mi piace ancora il pazzo e la sensazione dei libri fisici. Ho anche più Kindle e altri libri tecnici on-line a cui posso riferire ovunque. Ovviamente la mia biblioteca tecnica può essere accessibile ovunque quando è digitale che è enorme.

L'effetto Google : nessun elenco di elementi sarebbe davvero completo senza menzionare questo. Questo è qualcosa di più su ciò che non è necessario ricordare - perché puoi cercarlo su google e trovarlo. Anche questa è una considerazione importante. Man mano che più persone diventano più abili in questo modo di ottenere la conoscenza, la necessità di memorizzare effettivamente un determinato dato sta cadendo. Tuttavia, questo è anche un "punto di riferimento" per i knowledge worker che stanno scoprendo sempre più che è necessaria una profonda comprensione concettuale per operare nell'ambiente attuale. Ovviamente per i CME !

Il mio blog

Il mio segnalibri sito.

  • Come posso mantenere aggiornato il mio blog e i miei segnalibri? Bene, alla fine della giornata penso che sia discipline e niftyness , cioè sì, c'è una certa dose di dedizione necessaria per questo. Tuttavia se sei andato a scuola per una laurea e hai pagato $ 100.000 (o anche $ 10.000) o sei autodidatta, conosci il significato di dedizione e perseveranza. Questo non è diverso. La niftyness, o 'fattore nifty' è che quando vedi un sito web interessante con un tutorial o una tecnica interessante o qualsiasi altra cosa, o superi un problema spinoso difficile, vai "hey that's nifty!" - Quindi quando senti questo (o qualsiasi altro slogan che usi), ora associalo a "Devo scrivere sul blog o registrare quel segnalibro". C'è una buona probabilità che tu non sia al pc, aggiorna il tuo blog in quel preciso momento, quindi inviati una email, o un testo o anche una segreteria telefonica, o una nuova attività nella tua lista delle attività - qualsiasi cosa funzioni per te - per ricordarti di farlo! Ad esempio il mio telefono Android ha un'app per le attività utile per questo.
risposta data 19.03.2012 - 13:20
fonte
7

Nell'ultimo anno Evernote è diventato un programma di cui non potevo fare a meno.Io copio tutto in Evernote. Code Snipped, Screenshoots, dati di contatto, cronologia delle versioni e così via. Quindi non devo ricordare tanti dettagli. So solo che è lì da qualche parte.

La versione base è gratuita. Quindi provalo!

    
risposta data 19.03.2012 - 15:42
fonte
6

Sherlock Holmes una volta disse qualcosa come "La mente di un uomo è come un attico, se lo riempi di banalità, non c'è spazio per nulla di veramente importante." Per tutti questi dettagli, abbiamo l'enciclopedia. "

Se non hai una memoria fotografica e i problemi in essa contenuti, non ricorderai tutto. Costruisci una serie di risorse, una libreria personale di entrambe le tecniche di e di problem solving.

Potresti non ricordare la risposta e potresti anche non ricordare dove è stata scritta la risposta. Ma se sai come risolvere il problema, puoi sempre trovare la risposta di nuovo. Speriamo che questo includa la documentazione della tua soluzione in un modo ricercabile e riutilizzabile.

    
risposta data 19.03.2012 - 14:27
fonte
4

Bene, forse il mio caso è particolare ... ma: ho tutti i frammenti di software che ho scritto a partire da 76 sul mio laptop, programmi, script, configurazioni, ecc. Quindi nel tempo (devo confessare), il mio carico di memoria è cambiato dal ricordare 'cose' al ricordo di meta-dati su cose. Certo, molte cose non sono più rilevanti, ma quello che trovo è che la parte difficile è avere le idee, non implementarle realmente. Quindi i meta-dati sono fondamentalmente un indice di quali "idee" possono essere trovate dove.

Quando colpisco il nuovo campo, al giorno d'oggi, tendo a trovare una grande base di codice che usa i nuovi aspetti e trascorro del tempo di qualità con la base di codice. Lo studio, cerco di farlo funzionare in un ambiente di test, quindi cerco di aumentarlo in modo da potermi inserire in nuovi strumenti (librerie, linguaggi, tecnologia di costruzione, ecc ...). Questo processo mi consente di mappare i miei schemi, le mie idee e un esempio. Potrei prendere tempo per fare alcuni mini-progetti del genere e scegliere come riferimento quello con cui mi sento di più a casa. Una volta fatto, alla fine ricercheremo quel codice per costruire lo scheletro delle mie app.

Quando gli archivi personali falliscono, colpisco la rete, a cui ho aggiunto di recente SO. Prenderò un colpo sui "nuovi" concetti (nuovi dal punto di vista personale) su SO prima di gaagle. In effetti, raramente (al giorno d'oggi) ritorno a gaagle. La prima risposta pertinente su di esso è in genere un collegamento ad alcune domande interessanti su SO.

    
risposta data 19.03.2012 - 11:48
fonte
4

Come gli altri, tengo traccia delle cose usando i segnalibri.

Ero solito usare Delicious, ma ora sono passato alla Bacheca.

Ma non uso in questo modo tanto quanto facevo prima. Sembra che ogni problema di programmazione che ho riscontrato sia una piccola ricerca su Google. E nell'ultimo anno o giù di lì, ho iniziato ad usare Stackoverflow come uno dei miei termini di ricerca!

Ogni volta che trovo una domanda SO per un problema particolarmente difficile, l'ho preferito per tenerne traccia, quindi questa è un'altra forma di bookmarking.

    
risposta data 19.03.2012 - 12:36
fonte
3

"Remember the painting, forget the fine strokes"

È assolutamente normale non ricordare i dettagli più fini. Tuttavia ciò di cui dovresti preoccuparti è dimenticare le cose più importanti. Se hai corretto un bug, dovresti avere almeno un'idea concettuale su quale fosse il problema.

Segnalibri, blog, quaderni vanno bene per archiviare quei dettagli più fini. Ma alla fine devi ancora ricordare la "foto" più grande. Altrimenti, riscoprire quei dettagli "più fini" sarà molto più difficile.

    
risposta data 19.03.2012 - 11:59
fonte
2

Mantieni i tuoi appunti, esprimendo le cose con parole tue. Il tuo pubblico di destinazione è tu , nessun altro, quindi puoi permetterti di essere conciso. (Tuttavia, un post di blog deve essere chiaro e ben curato, il che richiede molto tempo.) Se trovi buoni articoli / post di blog, registra l'URL, ma continua a spiegare le cose con parole tue.

Conservo una grande gerarchia di file piccoli, brevi e con un solo argomento. I file sono per lo più di forma libera, ma sto passando all'utilizzo di Markdown. Cerca usando grep / find. Conservo la cartella nel mio DropBox, quindi è sempre disponibile per me.

    
risposta data 19.03.2012 - 15:49
fonte
1

Ognuno può avere il proprio stile a cui è abituato, Per me, separo le conoscenze in categorie:

  • Libri

  • Articoli

  • Collezioni (Stuff I find interesting limited to few paragraph - In realtà copio le informazioni e talvolta annoto la fonte) - Ad esempio: OODevelopment, Generics, ... ecc.

  • Codice riutilizzabile (testo e snippet) - Ciascuno su un file separato sotto una buona struttura ad albero. Per esempio. Il nodo DataValidation conterrebbe molte tecniche per la convalida di diversi elementi di dati, ciascuno in un file separato

  • Progetti completati

  • Tutorial video personali (a volte registro video su come fare le cose quando sono coinvolti troppi passaggi).

  • Link

Organizzo il suddetto per soggetto, con ogni soggetto in una struttura ad albero appropriata.

Alcune volte ci sono cose sovrapposte ma riesco a trovare quello che voglio.

Inoltre, utilizzando Google Desktop, trovare testo o file è molto veloce.

    
risposta data 19.03.2012 - 11:59
fonte
0

Uso OneNote. Ho molti linguaggi di programmazione diversi con cui lavoro, quindi ho sezioni diverse per ogni lingua e diverse schede per diversi tipi di note.

Ora sto iniziando a usare anche Stack Exchange.

    
risposta data 20.03.2012 - 22:15
fonte
-1

Devi essere bilanciato tra memoria e "storage" .. Se ti affidi troppo o per cose sbagliate in memoria, == problema, se ti affidi troppo alla memorizzazione di tutto == inutile.

Le mie regole:

-Non abbellire troppo! scrivi le cose importanti anche se la dimensione del carattere varia nel tuo documento:)

-Non sovrascrivere. Convinciti che orginizzare i tuoi pensieri non ha bisogno di una struttura ad albero di 10 livelli

-Tempo trascorso nel trovare cosa registrare. potresti trovare 5 soluzioni per lo stesso problema. nel momento in cui li scrivi TUTTI, perdi. Scrivi 1-2 che VERAMENTE ti aiutano. NON lasciate che vi dica che non avete tempo per questo ora. È piuttosto strano ma si applica: "Tempo trascorso per ottenere il tempo"

Non mi piace mettere queste cose in qualche "prodotto" perché voglio essere sicuro che esisterà 20 anni dopo e non voglio migrare me stesso su varie piattaforme ..

Quindi cosa fare?

Tutto ciò che puoi ottenere con il minimo sforzo.

Ad esempio, installa phpBB e scrivi a te stesso. la funzionalità di ricerca è immediatamente disponibile, è gratuita e puoi estrarre i dati con semplici istruzioni SQL e inserirli nei file. puoi avere un cronjob che esporta i tuoi pensieri nei file per l'archiviazione. Quindi se hai mai bisogno di metterli in un altro sistema sei pronto con il minimo sforzo.

Un altro problema è che nessuno garantisce che i collegamenti che trovi funzioneranno più tardi (immagina 5 anni dopo). Quindi prova a duplicare le informazioni:

-Scarica il video con qualche estensione del browser e collegalo ad esempio al tuo post phpBB (o wordpress o altro).

Affronta il problema: sei un programmatore e crei app per altre persone. Creane uno semplice per te stesso e diventa il TUO cliente migliore.

my 2c

    
risposta data 07.04.2012 - 11:06
fonte
-1

Risposta breve:

Pratica, pratica, pratica.

Risposta non troppo breve:

Come ti ricordi come camminare? Come ti ricordi come parlare? Concesse queste abilità non sono esattamente le stesse e non richiedono una conoscenza apparentemente enciclopedica (almeno per i principianti), ma stai usando la stessa cosa: la memoria.

Anche se ammetto che, per i principianti, la programmazione può sembrare un argomento incredibilmente grande quando si inizia a studiarla, diventa come qualsiasi altro argomento una volta che hai ottenuto le basi.

Non appena l'ho capito, ho iniziato a suddividere le cose in pezzi sempre più piccoli (la mia versione personale di astrazione). In questo modo, qualcosa che sembrava difficile da ricordare diventa più facile (almeno con me lo fa).

Scrivere le cose aiuta più di quanto si possa pensare (avendo lavorato in Educazione, so che questo può avere enormi effetti positivi sulla fidelizzazione). Soprattutto se riesci a metterlo nelle tue stesse parole - piuttosto che copiarlo alla lettera. Se puoi parafrasare o equipararlo a qualcosa che già conosci, ancora meglio.

Ad esempio: In C #, gli oggetti String sono immutabili. Ciò significa che ogni volta che dico al mio programma di cambiare il contenuto di un oggetto stringa, ciò che accade in realtà è che la stringa originale viene distrutta (tecnicamente si trova sul livello più basso del garbage collector). Esattamente come quando un artista commette un errore durante la creazione di una scultura in marmo - non può essere modificato, quindi viene distrutto e creato uno nuovo.

Non è un ottimo esempio, ma mostra le basi di ciò che sto ottenendo.

Anche la documentazione di qualità aiuta. Qualcosa che il mio docente di Programmazione 101 una volta mi ha detto di rimanere con me:

Make your commenting verbose. Not to the point of stupidity, but you need to be able to write comments that a non-programmer could understand. That way, you know that someone else on the project can understand it, perfectly. Imagine that you'd spend months implementing a system but you where involved in some kind of horrible accident on the way to work. Someone else will be assigned your work - especially if it's close to crunch time - and if they can't figure out what your code is doing, then production stops.

Anche i libri buoni sono un'ottima risorsa. Un altro tutor una volta mi ha detto che se un libro non ha un indice (e ce ne sono molti, là fuori che non lo fanno), allora non vale la pena acquistarlo.

Google può essere una risorsa straordinaria, ma fai attenzione ai codificatori copia-incolla. Stai lontano dai siti che ti danno un blocco di codice senza alcuna spiegazione. Preferisco leggere un intero articolo su piccoli blocchi di codice, in questo modo tu vai via sapendo esattamente che cosa il blocco di codice è destinato a fare, come lo fa e perché il programmatore lo ha scritto in quel modo.

Spero che ti aiuti

    
risposta data 17.04.2012 - 15:06
fonte

Leggi altre domande sui tag