Come posso aiutare un bambino a rimanere motivato nell'apprendimento della programmazione?


39

Come posso aiutare un bambino preadolescente intelligente (pre-adolescente) a imparare la programmazione? Va bene a scuola, ha saltato 2 gradi ed è un nerd stereotipato introverso. È molto interessato allo sviluppo web e ha imparato i fondamenti di HTML , CSS e JS , di cui non so nulla (non sono un programmatore). Ha realizzato un sito Web personale a sua conoscenza. Lo ha imparato da Internet su vari siti tutorial e StackTranslate.it.

Come posso incoraggiarlo a sviluppare queste abilità? C'è un modo per aiutare con il suo apprendimento dato che non so programmare me stesso? Non credo di poter imparare tutto ciò che ha imparato, dal momento che ci passa così tanto tempo ed è così devoto.

Penso che il pericolo maggiore sia perdere la motivazione e smettere. Il debugging a volte può essere frustrante e non voglio che si fermi a causa sua. In altre materie, potrei aiutarlo a lavorarci su, ma con la programmazione, non posso poiché non ho alcuna conoscenza del dominio.

Cosa devo fare per mantenere la sua motivazione a programmare in modo che non si scoraggi probabilmente di fronte a difficoltà dato che non posso superare quelle difficoltà da solo?

(non un genitore me stesso)


41
Hmm, proibiscilo e saranno immensamente interessati all'argomento.
Per Alexandersson,

Un mio amico ha scritto un post sul blog ( davidketcheson.info/2014/12/12/teaching_kids_to_program.html ) su come sta insegnando ai suoi figli a programmare che potrebbe esserti utile.
Jeff

3
Ho imparato a programmare da solo in tenera età. Mio padre mi ha comprato gli strumenti (oggi puoi ottenere una versione gratuita di Visual Studio) e libri. Non ha ancora bisogno di programmare come un professionista, solo per divertirsi. Mi sono divertito a creare giochi, ho iniziato con un'avventura testuale, poi un gioco sparatutto in 2D. Anche con Visual Studio, può aumentare la complessità di questo sito Web rendendolo dinamico.
the_lotus il

Impara a programmare con lui. Attività divertenti da fare insieme. In questo modo puoi fare le parti frustranti per lui all'inizio.
Evorlor

9
the fundamentals of HTML, CSS, and JS, which I don't know anything about (I'm not a programmer) dice la persona con reputazione SO 4k e i cui tag principali sono HTML, CSS e JS
Babbo Natale

Risposte:


25

Prima di tutto, in termini di aiutare il bambino ad imparare:

  1. Molte / la maggior parte delle scuole ha club di computer. Incoraggia il bambino a informarsi dagli altri studenti o chiedi tu stesso ai professionisti della scuola. Questo metterà il bambino con i suoi coetanei nello sviluppo, il che è il più grande incoraggiamento che puoi dare.

  2. Parla con un insegnante di informatica a scuola se ne esiste uno. Possono concordare di aiutare il bambino o dare consigli.

  3. Simile a # 1 / # 2, fai pubblicità per un tutor se te lo puoi permettere. Un povero ma brillante maggiore del college CS può davvero divertire a insegnare a un pre-adolescente intelligente, molto più dei coetanei meno intelligenti che di solito tutorano. So di averlo fatto. La sfida (a parte il fatto che devi pagare) è trovare qualcuno che sia bravo a insegnare - dovrebbero essere richieste precedenti esperienze di insegnamento o tutoraggio, oltre alla capacità di lavorare con i bambini più piccoli.

  4. I corsi online (Coursera, ecc ...) possono essere fantastici, specialmente per un secchione ( mi guardo allo specchio )

  5. Per sfidarli, indirizzali verso i siti CodeExchange di Code Rosetta e Code Review .

In secondo luogo, se ritieni che possano usare la motivazione per i prossimi passi:

  1. Se il bambino è maturo (probabilmente lo è), mostra loro tassi di retribuzione medi per varie professioni e che gli ingegneri del software sono molto più alti rispetto alla maggior parte delle professioni. Questo farà in modo che possa guardare oltre il solito bullismo disadattato che probabilmente incontrerà e che abbia ragioni per attenersi alla programmazione.

  2. Fai notare che ci sono molti bambini come questo (come puoi vedere dalle testimonianze personali su quasi tutte le risposte qui :) - probabilmente sarà più incoraggiato se non si sente un mostro anche se è introverso dalla natura.


3
Many/most schools have computer clubsMi permetto di non essere d'accordo.
Babbo Natale,

Sono d'accordo con @SantaClaus su questo. Soprattutto in Texas, non ci sono molti gruppi di programmazione. Ero estremamente dispiaciuto quando ho scoperto che il mio liceo locale non aveva un club. Abbiamo provato a parlarne e loro lo hanno negato a causa dei finanziamenti. Eppure hanno oltre 20 club sportivi. Ciò è apparentemente vero con la maggior parte delle scuole del Texas, tranne con quelle del centro città.
Damien Bochkarev,

12

Un paio di cose da aggiungere alla risposta eccellente di user3143:

Utensili. Gli strumenti non sostituiscono l'esperienza o la conoscenza, ma ogni artigiano / donna apprezza i buoni strumenti e sono qualcosa che tu come genitore non programmatore può aiutare. Alcuni dei migliori sono gratuiti, ma se il bambino desidera un IDE, una biblioteca, un programma, ecc. Che costi una quantità ragionevole di denaro, prendi in considerazione l'idea di ottenerlo. Trovo Photoshop, ad esempio, prezioso per lo sviluppo web (il mio lavoro). Ottieni al bambino un po 'di tecnologia mobile per cui sviluppare. Non deve essere costoso e non è necessario collegarlo a un piano dati, lo farà un telefono e un tablet di 2 anni usati.

Incoraggia il bambino a contribuire all'open source, scopri come funziona github (se non lo fa già). Incoraggia il bambino a cercare di ottenere crediti scolastici per progetti personali (miglior presa di sempre). Incoraggia il bambino a scrivere programmi come regali (attualmente sto creando un sito Web per mia figlia di 5 anni). Aiuta a imparare come anticipare e soddisfare i desideri e le esigenze di altre persone, il che sarà importante se vuoi che il bambino persegua una carriera nella programmazione. A proposito di ...

Suppongo (possibilmente a torto) che tu sia incoraggiante con la speranza che questo possa diventare la carriera del bambino. Se questo è il caso, ci sono un certo numero di cose che un programmatore professionista deve sapere che un hobbista probabilmente non lo fa. Se non sei ancora a quel punto (il ragazzo piuttosto giovane) non preoccuparti del seguente elenco di prerequisiti professionali: controllo della versione del codice sorgente, lavoro di squadra, gestione dei clienti (siano essi capi o clienti), documentazione (i programmi sono per altre persone a leggere e solo per inciso per far funzionare i computer) e l'equilibrio tra lavoro e vita privata (il nostro settore non è il peggiore, ma è un problema).

Ultimo ma non meno importante è RSI. Tuo figlio scriverà. Un sacco. Ho preso un'estate alla scuola elementare per imparare a digitare il tocco nel layout della tastiera Colemak, e sono molto contento di averlo fatto. Vale la pena dare un'occhiata.



1
Mi mordo. Gli hobbiest hanno bisogno di un SCM (Git è il migliore, IMO) se mai vogliono essere sani di mente.
Annulla

2
Ecco perché ho detto "discutibilmente". Di certo mi sono lasciato andare in un angolo un paio di volte su progetti personali pensando "Non mi preoccuperò del controllo del codice sorgente in questo piccolo programma usa e getta" :)
Jared Smith

11

Le altre risposte qui vanno bene, ma sono preoccupato che ci sia un fatto importante che tutti trascurano:

un nerd stereotipato introverso

Sono me stesso questo tipo di persona e non puoi immaginare quanto sia dura la vita quando sei timido e letteralmente spaventato di parlare con gli altri (questo sembra essere chiamato ansia sociale), quindi se possibile dovresti occupartene prima nient'altro, se non temo che userebbe la programmazione come "rifugio" dalla vita reale (come ho fatto per alcuni anni) e che gli darebbe problemi in futuro.


1
Questo è un ottimo punto da tenere a mente. Alla ricerca di un club di programmazione o di programmi extracurriculari che incorporano la programmazione (ad esempio i campionati FIRST LEGO), può aiutarlo a sviluppare sia i suoi ovvi interessi sia le sue capacità di socializzazione.
Acire

2
Concordato. Probabilmente ho ottenuto più di un anno di teatro al liceo rispetto a qualsiasi altra classe al di fuori delle materie informatiche. Mi ha insegnato come affrontare la paura del palcoscenico, come improvvisare in una situazione sociale stressante e ogni sorta di "soft skills" che sono utili in ogni momento. E i "fanatici del dramma" sono, beh, un'altra sottospecie di geek, quindi interagire con i compagni di classe e relazionarsi con loro non sarà così difficile per il bambino come lo sarebbe con alcune delle altre forme di vita aliene che vagano per i corridoi di un tipico liceo. Dovresti assolutamente incoraggiarlo (ma non spingerlo ) a fare teatro.
Mason Wheeler,

6

Come programmatore e in una certa misura essendo io stesso "quel bambino", direi che cose come kit hardware (economici) integrati come Raspberry Pi o Arduino sono la strada da percorrere. Questi kit sono generalmente abbastanza economici (il Pi costa circa $ 30 ed è alimentato da un caricabatterie per telefono).

I giovani programmatori non sono interessati ad avere una corretta comprensione dei concetti di programmazione come la scrittura di codice sicuro / di alta qualità. Fino a quando non diventa un'abitudine non riesce a far funzionare le cose. L'ho paragonato alla chimica in quanto conoscere i dettagli intricati del perché Mentos e Diet Coke formano una grande fontana è molto meno interessante che sperimentare disordinatamente nel cortile con soda e dolci.

I giovani programmatori apprendono molte cattive abitudini da corsi online ed esempi di codice. Di solito sono mal progettati e costruiti per funzionare solo in condizioni ottimali. I buoni programmatori costruiscono per tutti quei piccoli "casi limite" in cui le cose non sono esattamente come ci si aspettava. Ad un certo punto dovranno disimparare tutti i cattivi comportamenti ed evitare l'ambiente "professionale" fino a quando non saranno pronti è un buon modo per impedire la formazione di cattive abitudini.

Sono motivati ​​a giocare e possono anche giocare mentre sono ancora bambini e mentre vogliono farlo.

Prendere hardware / circuiti stampati e realizzare effettivamente qualcosa incoraggia le capacità creative che spesso mancano (stereotipicamente) ai bambini con quel tipo di interessi. Come giovane programmatore, c'è molta più soddisfazione in "Ho creato QUESTO" e di un bug nel codice che ha il potenziale per rompere effettivamente qualcosa. Inoltre, quando hai finito di costruirlo, puoi giocarci per un po '.

Ancora più importante - per il non programmatore è molto più facile lodare qualcosa di fisico il cui scopo è facilmente comprensibile. Ciò a sua volta porta a maggiori elogi e conversazioni più costruttive rispetto a codici / programmi su uno schermo che finiscono per trasformarsi in "cacce ai bug" o che richiedono una spiegazione più lunga della dimostrazione.


5

Una volta ero in una posizione simile. Ero un pre-adolescente desideroso di conoscere la programmazione ed ero euforico guardando un computer che eseguiva i comandi come da istruzioni. Non ero interessato allo sviluppo web, ma inizialmente ero interessato al contrario: l'hacking / sfruttamento. Tuttavia, credo che la mia esperienza con l'apprendimento del programma sarà pertinente.

Credo che la chiave per insegnare ai giovani come programmare sia l'incoraggiamento. Questo è qualcosa che vorrei avere di più. I miei genitori non sono esattamente esperti di tecnologia né nessuno nella mia famiglia, e per questo motivo, non ho ricevuto molto incoraggiamento o supporto nell'apprendimento / affinamento delle mie capacità di programmazione. Hai fatto il passo giusto chiedendo agli altri i loro pensieri e questo dimostra che sei favorevole ai suoi interessi. Il miglior consiglio che posso dare al genitore / tutore / mentore di un bambino interessato alla programmazione è semplice: non lasciarli scoraggiare o sopraffare. Un bambino può facilmente sentirsi scoraggiato o sopraffatto quando si lavora su un grosso problema. Il tuo compito è assicurarti che ciò non accada.

Quanto a come puoi incoraggiarlo, è un po 'più complicato. Ogni bambino è diverso. I miei genitori hanno iniziato a essere di supporto e incoraggiamento quando ero nei miei ultimi anni di scuola superiore. Ho trovato il massimo incoraggiamento quando sarebbero entrati nella mia stanza, mi sarei seduto accanto a me, chiedendomi su cosa stavo lavorando, ascoltandomi spiegarlo in dettaglio, guardarmi mentre lo gestivo per loro e sembra essere interessato. Oggi non credo più che i miei genitori nutrano molto interesse per le mie spiegazioni o dettagli, ma al momento ero convinto che lo facessero e questo mi ha aiutato a sentirmi soddisfatto e realizzato con il mio lavoro. Prenditi il ​​tempo di sederti con lui, guarda cosa ha costruito, discutilo con lui, fai domande e sembra entusiasta. Lo farà sentire speciale e fornirà rinforzi positivi. Potresti non essere in grado di offrirgli aiuto o mostrargli come fare qualcosa,

Uno dei modi migliori per imparare la programmazione è trovare un obiettivo difficile e renderlo un punto focale di sviluppo. Nel mio caso, mi ero concentrato su un obiettivo particolare quando avevo 16 anni. Ero concentrato sullo sviluppo di un programma per sfruttare un gioco Android / iPhone molto popolare in quel momento. Mi sono fissato su quell'obiettivo e ci ho lavorato per mesi. Finalmente sono stato in grado di creare un'applicazione per esso e quindi il mio obiettivo è diventato più ampio. Dopo aver raggiunto questo obiettivo, ho quindi lavorato per espandere il programma e aggiungere ulteriori funzionalità ad esso. Nel corso del prossimo anno e mezzo, ho realizzato più programmi che hanno raggiunto quell'obiettivo e ospitato funzioni che una volta non avrei mai pensato di poter raggiungere. Dirò, la mia motivazione per espandere ulteriormente era il denaro. Ho creato un business online che ha venduto il software exploit di gioco che ho scritto. Tuttavia, la sua motivazione può essere qualsiasi cosa. Non deve essere denaro o vendere ciò che crea. Può semplicemente trovare motivazione nella soddisfazione di raggiungere un obiettivo finale. Non importa ciò che lo motiva, ciò che conta è che sia motivato.


Ecco alcune delle migliori risorse che ho trovato per imparare a programmare:

  1. YouTube: questo può sembrare un suggerimento scadente, ma lasciami spiegare. Cerca il tutorial "[Qualunque lingua voglia imparare]" e scegli una playlist. Ci sono molti ottimi tutorial per molte lingue su YouTube che vanno dal principiante all'avanzato.
  2. Khan Academy: non l'ho trovato fino a un anno fa, ma Khan Academy ha un corso di programmazione gratuito. Ho sfogliato il corso e sembra essere un ottimo corso per un programmatore principiante. Copre i concetti di base ed è molto comprensibile. Potrebbe essere una buona risorsa per lui.
  3. "TeachMeComputer": TeachMeComputer è il nome YouTube di un uomo che è stato creato grandi tutorial per Visual Basic .NET e PHP. Li ha organizzati tutti e ha fornito contenuti aggiuntivi su www.HowToStartProgramming.com . Con l'interesse del bambino per lo sviluppo web, questo potrebbe essere un bene prezioso per l'apprendimento di PHP. Credo che VB.NET sia un ottimo linguaggio di programmazione per principianti, quindi anche questa serie di tutorial potrebbe essere molto utile per lui.

Modifica : le mie scuse per presumere che tu fossi il genitore. Non ho notato l'ultima riga del tuo post che dice che non lo sei. Nonostante ciò, credo che la mia risposta potrebbe essere ancora utile.


4

Avendo imparato io stesso lo sviluppo del software più o meno allo stesso modo (anche se nei primi anni '90 c'era molto meno materiale disponibile online e quindi ho trovato / acquistato libri come la mia principale fonte di informazioni), posso dire che la cosa più importante il bambino ha già bisogno di avere: motivazione per imparare.

Le altre risposte qui offrono buoni suggerimenti, tra cui elementi come il coinvolgimento con colleghi affini, aiutare a acquisire familiarità con gli strumenti e semplice come sembra, è fondamentale imparare a digitare in modo efficiente (altrimenti inserire qualsiasi tipo di informazione nel computer tende ad essere così arduo da non riuscire a far fronte all'idea di risolvere grossi problemi con il codice).

Vorrei anche aggiungere: incoraggiare questo giovane a selezionare un obiettivo / progetto di propria scelta e attenersi al suo completamento. Questo potrebbe richiedere diversi tentativi e il primo potrebbe essere incompleto, essere troppo ambizioso, alla fine diventare noioso, ecc. Ma imparare a superarlo e produrre effettivamente qualcosa di qualità che qualcuno usa (potrebbe essere un progetto open source o qualcosa usato a scuola o da amici, ecc.): questo è un punto importante e un passo vitale.

Ho imparato molto sulla programmazione intorno a quella stessa età (10-12), ma quando avevo tredici anni qualcuno mi offrì effettivamente denaro per programmare qualcosa per loro, e aveva una scadenza associata. È stata un'esperienza diversa. Sebbene avesse qualche stress associato, mi ha anche reso responsabile. Avevo un sacco di progetti incompleti e idee intelligenti, ma non è stato fino a quando qualcuno mi ha aiutato a istruirmi sulla disciplina di fornire qualsiasi software stavo scrivendo (e renderlo abbastanza decente e fattibile, non un mucchio di merda eccessivamente difettoso), che In realtà ritengo di essere "diventato un vero sviluppatore".

Sono i miei due centesimi.


3

Inizia con Scratch: http://scratch.mit.edu/

"Scratch è uno strumento di authoring multimediale online e desktop gratuito che può essere utilizzato da studenti, studiosi, insegnanti e genitori per creare facilmente giochi e fornire un trampolino di lancio al mondo più avanzato della programmazione informatica o persino essere utilizzato per una vasta gamma di programmi educativi e scopi costruttivi di intrattenimento da progetti di matematica e scienze, tra cui simulazioni e visualizzazioni di esperimenti, registrazioni di conferenze con presentazioni animate, storie animate di scienze sociali, arte e musica interattive ". WP


5
Ew. Sono stato costretto a usare Scratch in un corso di "alfabetizzazione informatica" in prima media, ed è stato terribile. perché mi stai costringendo ad usare il mouse così tanto da farmi tyyyyype
Doorknob

1
Se l'unica cosa che hai imparato lavorando con Scratch è che non ti piace il mouse, allora hai perso il punto. È uno strumento eccellente per l'apprendimento dei concetti di programmazione di base. Ed è molto divertente sperimentare. Entrambi i miei figli l'hanno adorato e hanno continuato a imparare la vera programmazione. La chiave non è se utilizza o meno un mouse; la chiave è che è un modo divertente per iniziare, che potrebbe spingerli verso un ulteriore apprendimento.
james.garriss,

5
Scratch è un buon punto di partenza per introdurre i fondamenti della logica di programmazione, ma potrebbe essere un po 'giovane per un pre-adolescente che ha già iniziato. È anche un buon modo per abituarli ai linguaggi di programmazione visiva, che possono essere utilizzati in una carriera (ad esempio LabVIEW).
Acire

3

La gente ha già aggiunto alcuni ottimi suggerimenti. L'unica cosa che posso aggiungere sarebbe trovare qualcosa che gli piace già fare, in cui la programmazione gli darebbe un vantaggio competitivo. Ad esempio, se gli piacciono i videogiochi e sapere come programmare significa che potrebbe modificare il suo sistema o software (sì So che questo potrebbe portare a barare) per dargli un vantaggio, quindi forse questo è un modo per farlo hackerare il codice e imparare come piegare il comportamento di un'applicazione per soddisfare le sue esigenze. Potrebbero essere cose sciocche a cui inizia a fare a pezzi; ma con il tempo, le sue abilità sarebbero cresciute naturalmente senza diventare un lavoro ingrato. Quando le persone godono di ciò che fanno, imparano più velocemente e continuano ad evolversi.


3

Non dimenticare mai che ci sono due obiettivi, che a volte possono essere in conflitto.

  • Buona programmazione
  • Diventa un grande sviluppatore di software

Tieni a mente questi due, perché se prendi decisioni senza essere consapevole di quale dei due stai dando la priorità, potresti non ottenere il giusto equilibrio. Dare sempre la priorità allo stesso rispetto all'altro non andrà bene.

Qualcuno che sta insegnando a se stesso come programmare senza la guida di programmatori più esperti può insegnarsi alcune cattive abitudini, che dovranno disimparare in seguito.

Se ottenere un tutor per il bambino è un'opzione per te, allora potrebbe essere molto utile.

Incoraggia il bambino a partecipare a progetti open source, in quanto ciò può offrire molteplici vantaggi:

  • Imparerai a lavorare insieme ad altre persone su un progetto, che è cruciale se speri un giorno di programmare per vivere.
  • Le persone più esperte che partecipano al progetto possono fornire alcune indicazioni sulla strada.
  • Se riesci a contribuire con qualcosa di carino al progetto, significa che c'è qualcosa da mettere su un CV se un giorno farai una carriera come sviluppatore.

Ci sono molti progetti open source, quindi è molto probabile che ce ne sia uno che possa interessare il bambino.

Anche se non hai competenze tecniche, puoi comunque guidare il bambino in questo processo. Parte di ciò che è necessario per essere coinvolti in un tale progetto riguarda le abilità delle persone buone, dove probabilmente potresti fornire qualche consiglio.

Alcune comunità online possono sembrare un po 'ostili ai nuovi arrivati. Alcuni consigli che sono rilevanti nella maggior parte dei casi sono:

  • Sii solo un po 'umile all'inizio. I nuovi arrivati ​​di tanto in tanto (a volte per buoni motivi) sono visti come persone arroganti con maggiore autostima di quanto giustificato.
  • Mostra che sei disposto a imparare.
  • Dimostra che puoi dare contributi preziosi.

Molti progetti open source stanno discutendo gli sviluppi su mailing list aperte, quindi dovrai decidere se presterai attenzione a quelli per vedere come il bambino va d'accordo nella comunità.


2

Sono attualmente in giovane età e sto programmando da diversi anni.

Sono stato introdotto per la prima volta in C quando avevo circa otto anni, anche se non ho toccato molto la lingua. Mi concentro maggiormente sullo sviluppo e sulla progettazione Web, anche se ho una conoscenza fondamentale di Java per l' API Bukkit e presto mi espanderò su Objective C o Swift.

Nella mia attuale esperienza, è meglio imparare tramite te stesso. Trovo più difficile imparare in giovane età da altre persone, ma piuttosto prove ed errori. So che molte scuole offrono club di computer e simili, a cui mi è stato chiesto di frequentare ma che mi hanno negato, anche se non mi sento come queste mi bastano. Essendo un'età più giovane, le persone generalizzano che noi bambini non siamo capaci di ciò che si aspettano. So di essere più esperto con vari linguaggi di programmazione e scripting con molti adulti che assumono il mio livello di conoscenza in materia.

Quando ho iniziato con la programmazione, guardavo molti tutorial online, sebbene solo i tutorial visivi mi avrebbero aiutato. La lettura e le risorse interattive non mi aiuterebbero affatto, anche se i video mi limitavano.

Vorrei copiare il codice dai video ed esplorare come ha funzionato. Vorrei ricercare determinate funzioni e sperimentare la lingua fino a quando non ne avessi una conoscenza intermedia.

Mi sento come se fossi un bambino, sono limitato a ciò che posso ottenere. Teoricamente, potrei essere classificato come un 'Nerd' o simile per avere una gamma così ampia di conoscenze per l'elaborazione e la programmazione, anche se per me non è di grande aiuto. Non riesco a concentrare il mio tempo pieno sull'informatica e sulla programmazione per barriere come la scuola, la famiglia e gli amici. Se fossi un adulto, credo che potrei ampliare le mie conoscenze più rapidamente e imparare di più, anche se è diverso per persona.

Ad ogni modo, se non vuoi leggere il mio testo disordinato, ti consiglio solo di lasciare che il bambino impari da solo. Probabilmente è nella stessa posizione in cui mi sento limitato, anche se se lo lasci essere sono sicuro che troverà risorse che lo aiutano piuttosto che ricevere risorse che non lo aiuteranno.

Mi scuso per eventuali errori grammaticali poiché sono ancora un bambino e non sono in grado di scrivere in dettaglio o nel modo strutturato in cui un adulto con più esperienza e conoscenza sarebbe in grado di farlo.

Spero tuttavia che le mie informazioni siano di aiuto, anche se sono piuttosto ampie.

Modifica: non consiglierei l'uso di strumenti come scratch o il completamento automatico o strumenti di codice generati automaticamente poiché questi vanificherebbero lo scopo della programmazione. Scratch consiste nel buonsenso piuttosto che nella programmazione: non è così che si dovrebbe vedere la programmazione.


2
+1 alla tua modifica. Questa è la mia più grande lamentela contro l'utilizzo di alcuni IDE durante l'apprendimento. Se l'IDE scrive la maggior parte del codice per te, cosa stai imparando? Sono cauto quando raccomando Visual Basic .NET a causa di questo problema. Visual Studios per VB.NET spesso scrive automaticamente gran parte del codice chiave e suggerisce cosa scrivere per il resto. Questo va bene se l'utente impara cosa fa effettivamente il codice generato automaticamente / completato, ma se l'utente non cerca questa conoscenza da solo, allora non imparerà correttamente. Quindi +1 al tuo consiglio contro questo tipo di cose.
Spencer D

1
Grazie per essere d'accordo con me. Dato che ho conoscenza in varie lingue, userò gli IDE che si completano automaticamente. Questo è solo per la gestione del tempo, e anche se lo consiglierei a sviluppatori più esperti, le persone devono ancora imparare a programmare. È come saper parlare una lingua senza saperla scrivere in un certo modo.
Profilo

Buona analogia per questo. Se potessi, direi che è come conoscere alcune parole in una lingua straniera e quindi utilizzare Google Translate per tradurre il resto di ciò che vuoi dire. Sì, capisce e funziona, ma non l'hai scritto tu stesso e quindi non hai imparato cosa significa ogni singola parola. Tuttavia, come hai detto, una volta comprese le lingue e il codice, l'utilizzo del completamento automatico e del codice generato automaticamente può essere un notevole risparmio di tempo.
Spencer D

Eh si. Completamente d'accordo con quello.
Profilo

2

Vorrei aggiungere un punto alle risposte fornite qui. Se riesci a farlo pur mantenendo il loro interesse, prova a incoraggiare lo studio di come funzionano le lingue (teoria dell'informatica, paradigmi linguistici, ecc.), Magari leggendo libri di testo e non solo sintassi e documentazione linguistica. Prove ed errori sono grandi per imparare cosa funziona, ma per capire il perchédietro ciò che funziona o non funziona nella programmazione è vitale per diventare uno sviluppatore di software invece di qualcuno che è solo interessato a portare a termine il compito senza considerare quanto bene sia scritto il codice. Solo i miei due centesimi come ingegnere del software che hanno visto la differenza tra "funziona, quindi deve essere perfetta" la mentalità e l'idea di scrivere codice pulito che funzioni bene, sia scalabile, adattabile, ecc. Studiare la teoria può davvero aiutare Questo.


1

Il bambino sa già come imparare e ha dimostrato di volerlo fare. Molte delle altre risposte si concentrano sulla visualizzazione dei materiali per bambini, il che non è utile, dal momento che il bambino può porre domande sui materiali da solo in qualsiasi parte del web. Spingere materiali e aspettative sul bambino può persino scoraggiare e uccidere qualsiasi interesse per l'argomento.

Penso che ci siano solo 2 cose da cercare: perdita di interesse a causa della mancanza di una sfida o di essere sopraffatto da una sfida.

Per combattere l'essere sopraffatti, mostra interesse per quello che ha fatto in modo che possa essere orgoglioso dei suoi progressi (o almeno realizzare che ci sono stati progressi, se le cose procedono lentamente). E se manca una sfida, menziona alcune altre cose che potrebbe fare (ad es. Lavorare su una mod per un gioco che gli piace, comprare un Raspberry PI, ecc.), Ma non spingere il lavoro su di lui - lascia che sia lui a farlo decide se vuole farli.


1

Ha bisogno di progetti personali a cui interessarsi. L'open source è fantastico. Fare un gioco è fantastico, ma sicuramente l'ordine più alto da riempire.

Finire cose che hanno un chiaro uso, sia per lui che per qualcun altro, è la soluzione più flessibile, affidabile. Consiglio i giochi, perché amo i giochi. Ma ancora una volta, adoro i giochi e i giochi richiedono la più ampia gamma di abilità per essere completati.

Ma se è un secchione, adorerà anche i giochi. Anche i giochi sono redditizi. Ahaha.


1

Penso che la maggior parte dei suggerimenti qui portino nella direzione sbagliata.

Dato che sembra essere in grado di ottenere da solo le conoscenze o le competenze pertinenti per un progetto, raccomanderei i due seguenti:

Suggeriscigli di tenere una lezione di insegnamento dopo la scuola o alcuni discorsi sulla programmazione ai suoi compagni studenti. Il modo migliore per imparare è insegnare comunque. Ciò può anche migliorare le sue abilità sociali.

Dagli alcuni progetti "reali". Chiedigli di programmare un sito Web per la classe scolastica o qualche applet web per un progetto di matematica o fisica. O una piccola cosa di database o una wiki. In questo modo vedrà una reale rilevanza nelle sue capacità. Capirà che è l'esperto e che altre persone hanno bisogno di lui. E imparerà presto a commercializzare se stesso.


1

Congratulazioni a questa giovane mente per avere già un'abilità incredibilmente commerciabile alla prima età di 14 anni! Quanto è bello questo ragazzo. (Sono un programmatore, quindi scusatemi mentre geek).

  1. Prima di tutto incoraggia questo è una grande abilità da avere!

    Un programmatore entry level può iniziare a $ 30.000-50.000 all'anno a seconda della zona. I programmatori avanzati (di solito chiamati Ingegneri) possono semplificare sei cifre.

  2. Tutte le risorse di cui ha bisogno per imparare, divertirsi e continuare a migliorare sono gratuite online, pubblicherò alcuni link qui sotto.
  3. Anche se la programmazione è divertente, le tastiere e le scrivanie hanno un impatto pesante sul corpo. Il giovane padawan ha iniziato in tenera età, ha bisogno di prendere in considerazione alcune attività fisiche per assicurarsi che non ottenga tunnel carpale a 16 anni.

    Consiglio vivamente lo yoga, e nella sua forma più semplice basta fare una ricerca su YouTube e fare ogni giorno 15 minuti di esercizi che non vanno a scuola o in qualche altra attività.

    Potrebbe pensare che sto scherzando (soprattutto come un quattordicenne) ma l'industria è molto ... pesante ... principalmente perché un programmatore si trova in una posizione e tipi. Costruisci buone abitudini ora.

Link Love:

Ci sono molte MOLTE più risorse là fuori, ma una volta che li guarda sarà in grado di trovare altro dai link ecc.



0

Se è bravo in HTML CSS e JS senza sollecitare, ha già un talento per questo. Se vuole affinare le sue abilità, perché non indicarlo a CodeEval ? Completando queste sfide, avrà un'idea di qualunque lingua prenda, e se ne acquisisce il meglio e meglio (le lingue di codifica sono come le lingue umane dopo tutto, più sai, più è facile imparare la prossima ).

Se è un tipo di lettura esteso, potresti prendere alcune letture richieste da una classe CS101 nella tua università più vicina. Se è già in grado di programmare, questi non saranno eccessivi e potrebbero interessarlo.


Spiacente, -1. Come sviluppatore professionista, non c'è niente di peggio che qualcuno che pensa che il golf sia una cosa positiva; e come qualcuno che ha insegnato la programmazione, il golf è molto al di là di ciò a cui un principiante dovrebbe essere esposto.
user3143

@ user3143 Point, collegamento golf rimosso. CodeEval (almeno le sfide per principianti) sono un ottimo modo per raccogliere trucchi e lavorare attraverso algoritmi di base.
Sidney,

0

Tutti i suggerimenti sopra riportati sono utili, ma se ti trovi in ​​una delle aree elencate di seguito, puoi andare al Coderdojo lì. Altrimenti e puoi trovare alcuni bambini e genitori come te, potresti prendere in considerazione l'idea di avviarne uno nella tua zona. Vedi i dettagli su https://zen.coderdojo.com/dojo

Ne gestisco uno nella mia zona di Sallins, Naas (a Co Kildare. Irlanda) e da 4 bambini due anni fa, ora abbiamo più di 50 bambini ogni settimana, da 6 a 17 anni, tutti lavorando in lingue e strumenti diversi, da Scratch e MineCraft, a Python e PyGame, a Java, Blender, Unity, Eclipse, ecc.

Spero che tu riesca a collegarti con un gruppo, in quanto si aggiunge davvero all'esperienza, per essere in grado di condividere l'eccitazione delle nostre esperienze di apprendimento costanti e di mostrare ogni nuovo progetto :-) JK


0

Ho iniziato a programmare al liceo con il libro Game Programming for Teens . Insegna il linguaggio di programmazione BlitzMax . Penso che questo sia un buon linguaggio di programmazione per principianti perché ha una sintassi inglese e un semplice set di comandi per disegnare sullo schermo. Molte altre lingue come Java hanno un'API enorme che è una risorsa per i programmatori professionisti ma può essere travolgente per un principiante. Una volta che impari un linguaggio di programmazione, è molto più facile impararne un altro, così può passare a un'altra lingua come Java o C # quando è pronto.


0

Non posso dire di aver letto tutte le risposte, ma i primi mi hanno rattristato molto. VIRTUALMENTE NESSUNO dei moderni informatici (pensate a Gates, Jobs ecc.) Si sono tagliati i denti a un livello così alto di astrazione (ovvero tecnologie basate sul web). Si sono tutti sporcati con l'hardware. I guru esperti di qualsiasi squadra sono quasi sempre quelli che hanno le conoscenze di livello più basso.

Se vuoi che apprenda il REAL computing e lo entusiasti, procuragli i giocattoli necessari (un multimetro di buona qualità e un CRO (una bella unità Tektronix da 50 MHz di seconda mano farà bene), una scheda di sviluppo elegante (Raspberry PI, Intel Edison ecc.) E fare un brainstorming di alcuni fantastici progetti da realizzare. Qualcosa come possibilmente collegare un sensore di movimento e inviargli via email una foto della sua camera da letto quando viene rilevato un movimento. Completamente inutile, ma molto divertente e bello da mostrare i tuoi compagni.

Una volta che ottiene il bug e ha gli strumenti, le sue abilità si svilupperanno in modo naturale. La cosa più importante è mettergli delle sfide commisurate al suo livello di abilità. Inizialmente avrà bisogno di un po 'di mano, ma una volta sviluppate le competenze di base di I / O hardware, architettura del programma e come ottenere le informazioni necessarie per risolvere il problema successivo, non sarà più possibile fermarlo.


Sparkfun è un buon posto per iniziare con questo genere di cose. Molti progetti di robotica pre-laminati. Stavo pensando di raccomandare me stesso robotica / roba incorporata.
Tyler,

0

dalla mia ESPERIENZA posso dire che devi solo far sì che impari da solo, come ho fatto io, ho iniziato a vedere cosa hanno fatto gli altri, a leggere i wiki, a guardare tutorial e a cercare di capire i loro meccanismi, poi ho iniziato a provare a farlo da solo e qui sono. ho anche imparato alcune cose da codeacademy.com è stata la mia fondazione per html, css, javascript, php e ruby. Soprattutto, devi dargli un computer, internet, molto tempo, comprensione e, naturalmente, ha bisogno di ispirazione (come il suo progetto o qualcosa di importante per lui) e MAI dirgli come farlo se dice che CONOSCE come farlo, poiché ha bisogno di trovare tutto da solo per apprenderlo, inoltre può ottenere sottodomini e hosting gratuiti su http://api.hostinger.co.uk/redir/3586817(<- sto usando quello) e non ha bisogno di strumenti speciali per la codifica poiché è più facile da imparare quando lo fai in un semplice editor di file Ma, in realtà sai, non fare nulla che non chieda

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.