Come si impara una lingua senza strumenti reali? [chiuso]

-5

Porterò un caso concreto qui.

Ho un progetto che coinvolge Sketch e Arduino. Dato che ero loro solo un ragazzo disposto nel gruppo, ho dovuto prendere la parte di Sketch. Il problema è che il nostro gruppo di informatica fa parte di un'organizzazione più grande e l'organizzazione non ci consente di portare con noi gli Arduino a casa. Siamo lì solo per 2 ore alla settimana e impariamo tutto ciò che è fuori questione (rumore, altri progetti, ecc.). Quindi sono bloccato qui senza nulla di fisico, solo libri. A proposito, non ho nemmeno un libro.

Lo stesso caso può essere fatto per l'apprendimento dell'iPhone che si sta sviluppando senza eseguire le app, o quant'altro. Quindi come procedete qui?

    
posta MikhailTal 24.10.2014 - 22:29
fonte

2 risposte

3

È fantastico quando puoi avere un'esperienza pratica che consente l'esplorazione interattiva e la sperimentazione. Ma non è affatto una parte essenziale dell'apprendimento di una tecnica o di una tecnologia - nell'informatica o nella maggior parte degli altri campi dello sforzo umano.

Mentre non sarai in grado di padroneggiare abilità che richiedono cinestetica (es. musica, danza, kung fu) senza farle, la programmazione è tanto per immaginare come è organizzato lo stato di una macchina e come può essere guidato quanto per digitare comandi o eseguire codice. L'attività ha bisogno sia del tempo di pensare che del tempo di contatto, anche se l'attrezzatura fisica è a portata di mano e disponibile.

Ci sono molti esempi storici di studenti che imparano separatamente dal computer. Mentre eravamo abituati ad avere i nostri computer personali, immediatamente disponibili negli ultimi 35 anni, nella prima metà del settore IT, il tempo della macchina era molto scarso e l'attrezzatura altamente condivisa. Gli studenti hanno programmato offline in modo naturale, quindi hanno inviato le loro corse al datacenter in modo molto indiretto. Questo flusso di lavoro continua ad essere comune fino ad oggi con dispositivi incorporati e con nuovi sistemi informatici, attrezzature sufficienti per le quali non è semplicemente disponibile per ogni sviluppatore di possedere e interagire costantemente con.

Quindi la tua situazione potrebbe non essere l'ideale, ma è difficilmente intrattabile o senza precedenti. Quindi allacciati e impara la lingua leggendo a riguardo. Immagina i programmi che ti piacerebbe eseguire e scriverli. Poi, quando avrai tempo per le mani, sarai pronto a provare le tue idee.

Btw, questa non è solo una teoria. Ho imparato un certo numero di lingue (tra cui Ada, Algol, APL, Fortran, Icon, Modula-2, assemblatore MOT68K, PL / I, Self, Smalltalk e SNOBOL) per le quali non avevo un posto dove eseguire il codice il tempo. Mi sono sentito meglio in seguito quando ho avuto più accesso, ma la possibilità di eseguire il tuo codice non è chiaramente un requisito per imparare almeno un ampio intervallo di un linguaggio di programmazione.

    
risposta data 25.10.2014 - 00:28
fonte
2

Sembra una filosofia Zen ma la risposta semplice è "Be the Computer". Lascia che ti racconti una storia per spiegare cosa intendo ...

Quando ero bambino, un amico / mentore adulto mi ha registrato in un computer mainframe nel suo college per giocare a un gioco basato sul testo chiamato " StarTrek " utilizzando una stampante telescrivente con carta per alimentazione a rullo (i monitor CRT erano rari allora). Mi sono innamorato del gioco e volevo imparare come funzionava tutto, ma non avrei nemmeno dovuto usare il computer e tanto meno aver stanziato tempo e risorse di programmazione. I computer domestici non esistevano nemmeno (Sì, sono VECCHIO!) .

Il programma è stato scritto in BASIC e contiene circa 2000 righe di codice. Il mio amico sapeva quanto volevo imparare così stampò l'intero elenco dei codici sorgente su un rotolo di carta lungo circa 30 piedi. Ha anche fornito esempi di input e output con diverse sessioni complete del gioco su altri rotoli di carta. Alla fine ho avuto un paio di centinaia di stampe.

Subito dopo aver ottenuto la quotazione mio padre ha ottenuto un nuovo lavoro e abbiamo dovuto spostarci, così ho perso l'accesso facile al mio amico per le domande (nessun computer di casa / email / etc di nuovo). La prima cosa che ho fatto quando ci siamo sistemati è stata andare nella mia biblioteca locale e controllare l'unico libro che avevano sul BASIC. Usando questi ho esaminato ogni riga, analizzato ciò che ha fatto, e poi usando un semplice taccuino vecchio stile & la carta millimetrata ha iniziato a eseguire il codice riga per riga. Ho rintracciato le variabili, costruito le stringhe e ho usato i dadi per generare numeri casuali. Nella terminologia moderna chiamiamo questo " single-stepping " .

Con le stampe, un libro, nessun istruttore e nessun computer dal vivo ho imparato come programmare e anche come funzionano gli interpreti di linguaggio del computer. Mi ci sono voluti circa 3 settimane di studio mirato per padroneggiare la lingua.

Più tardi, ho fatto la stessa cosa con l'intero sistema operativo del microcodice del TRS-80 (livello I) scritto nell'assemblatore Z80. Circa 4000 linee di codice mnemonico e hex. Ero la CPU, il bus, il nucleo della memoria e gli interrupt dell'hardware. Sono diventato un microprocessore Z80 e un sistema informatico TRS-80 e in circa 4 mesi di studio on-and-off ho seguito perfettamente la programmazione degli assemblaggi Z80 e ho imparato esattamente come funzionano i microprocessori. Ho anche appreso un po 'del design della scheda madre come effetto collaterale.

    
risposta data 05.02.2015 - 21:01
fonte

Leggi altre domande sui tag