Se dovessi tornare indietro e riapprendere il tuo set di abilità, come lo faresti? [chiuso]


16

Mio fratello minore sta cercando di iniziare a programmare. Ha 14 anni e è tecnicamente propenso, ma non ha esperienza nella programmazione. Mi sta cercando guida e non mi sembra che la mia esperienza sia sufficiente, quindi ho pensato di chiedere qui.

È più interessato alla programmazione Web, ma ha anche un interesse per le applicazioni desktop / mobili / server.

Quale sarebbe un buon percorso di apprendimento per lui prendere? Gli comprerò un mucchio di libri per Natale per iniziare; la domanda è: cosa dovrebbe imparare e in quale ordine?

Per come la vedo io, deve imparare la teoria e il codice. Vorrei iniziare con Python o Ruby o PHP. Se vuole entrare nel web, dovrà anche imparare HTML, CSS, Javascript, ecc.

Di quei tre domini (Lingue, Teoria, Markup / Ecc.), Qual è l'ordine migliore in cui pensi di imparare? Inoltre, mi sto perdendo qualcosa?

Grazie!


18
Invece di libri, acquista un abbonamento di un anno a un sito di hosting. C'è molto per i principianti sul web gratuitamente. Mettere siti sul tuo computer a casa ha solo un fattore molto interessante per un adolescente.
JeffO,

Haha, gestisco un certo numero di VPS con cui l'ho creato, quindi dovrebbe essere bravo ad andare in quel dipartimento!
vorbb,

Risposte:


10

Registrare un account per StackOverflow.com e Programmers.StackExchange.com

e prendilo l'abitudine di sfogliare diverse domande quando è annoiato . Inizia con le domande più gettonate / più popolari.

Anche

Aiutalo a raggiungere l' obiettivo di qualcosa che vuole creare che è leggermente oltre la sua portata, un semplice gioco, un'app che può inviare un tweet? Deve essere qualcosa di eccitante . Questo aiuterà a guidare gli argomenti a cui si espone e gli fornirà motivazione attraverso l'output tangibile che crea.

E

Dove possibile , non comprare libri in forma fisica se funziona bene con la stampa digitale , sono sicuro che uno di voi ha un tocco Android o iPhone o Blackberry o iPod? Ottieni l'app ibooks o kindle e acquista le versioni digitali .

Dover affrontare un libro fisico rallenta il processo di acquisizione della conoscenza; gli strumenti integrati nei lettori digitali offrono molti vantaggi alla lettura tecnica.

Nota: come menzionato nei commenti, ci sono degli svantaggi per i libri digitali o stampati, quindi prendi questo punto con un granello di sale


15
Non sono d'accordo sulla lettura digitale. In realtà, do agli studenti i documenti e li faccio leggere. Su un computer, sono troppo presto distratti da tutte le altre caramelle. Lo studio dei concetti è fatto al meglio da qualsiasi dispositivo digitale nella mia esperienza. Inoltre, leggere su un cellulare uccide i tuoi occhi. Che cosa con schemi e figure? l'unico vantaggio sono i link, ma ciò non ha aiutato troppo i nostri studenti.
Joris Meys,

1
@Joris Meys, ammetto che la lettura mobile è più difficile per gli occhi e che 'essere distratti dalle altre caramelle' sarebbe un problema, ma allo stesso tempo sono in grado di assorbire le informazioni molto più rapidamente quando posso facilmente cercare i dispersi pezzi ... Non riesco nemmeno a stimare il numero di schede generate nel mio browser quando cerco qualcosa di nuovo.
instanceofTom

6

Mi piace molto il modo in cui sono entrato in programmazione; l'unica cosa che posso immaginare di cambiare è il mio accesso ai libri. La mia famiglia non aveva i soldi per tutti i libri che potevo divorare e la nostra piccola biblioteca rurale non aveva esattamente manuali tecnici. Nel grande schema delle cose, questo è un piccolo pignolo.

Sono totalmente in disaccordo con coloro che affermano che non puoi imparare la teoria a 14 anni. Prima impari la teoria, meglio è. Ho letto The Art of Computer Programming a 14 anni, anche se avevo già scritto un po 'di codice.

La cosa migliore che puoi fare per tuo fratello è dargli gli strumenti per perseguire i suoi interessi e includerlo nella comunità degli hacker / programmatori quando possibile, in modo che possa imparare la mentalità di un grande programmatore.

  • Spingilo lontano dagli strumenti proprietari ove possibile. C'è molto di più disponibile per lui nel mondo open source. Sono diventato bravo quanto lo sono in gran parte grazie alla guida che ho ricevuto da persone più esperte nella comunità open source.

  • Se te lo puoi permettere, procuragli un account Safari o aiutalo a comprare libri quando necessario. Anche prestare ciò che già possiedi può aiutare.

  • Assicurati che abbia accesso a un desktop o laptop decente e un server o VPS su cui sperimentare. Se le app per dispositivi mobili sono la sua passione, assicurati che abbia un telefono o un dispositivo demo su cui lavorare.

  • Mostragli come trovare canali IRC, mailing list, ecc. Per le cose a cui è interessato a lavorare con / su.

  • Assicurati che sappia porre domande intelligenti e, al contrario, i dettagli di una sanguisuga di supporto in modo che sappia cosa non fare.

  • Il suo primo linguaggio di programmazione non è il fattore più importante. La totalità dei linguaggi di programmazione che impara è estremamente importante. I programmatori di una lingua non superano mai un certo livello (relativamente basso) di coding-foo.


Sicuramente d'accordo lì. Stavo bene per assemblare a 14 anni, sicuramente non troppo giovane per un bambino brillante. Ho avuto le PRM del sistema operativo RISC per il mio 14 ° regalo di compleanno. ( computinghistory.org.uk/userdata/PRODPIC-12025.jpg - dio, ho adorato quei libri). Ma poi ho iniziato alle 7.
Orbling

3

Andrei con le cose di apprendimento per l'arena del telefono cellulare, che è il settore immobiliare principale lì. Fallo installare con un IDE che ha un emulatore di telefono e procuragli un telefono su cui può spingere le app .

Preparalo per un po 'di utilizzo e hacking nel mondo reale, integrato con qualche teoria dai tuoi libri per guidarlo. Assicurati che abbiano buoni campioni.


+1 per fornire l'hardware necessario. Sarà più un problema che l'informazione.
Joris Meys,

2

Andrei a scuola, se l'età del college. Lo prenderei al liceo, se il liceo.

Avrei una missione e adeguerei il curriculum di conseguenza alle 14.

molte persone mi prenderanno per questo, ma Visual Basic .NET sembra essere più facile per alcuni, solo dicendo gente. Sembra essere così per molti non nell'iniziato.


3
Se il fratello maggiore può aiutare o il liceo locale lo usa, questo potrebbe essere più di un vantaggio. Ora penso che l'IDE .NET sia ciò che rende più semplice la costruzione di un sito Web e non necessariamente la lingua scelta. Un principiante potrebbe imparare C # altrettanto facilmente? Il mandarino è un linguaggio difficile, ma i bambini piccoli in Cina fanno bene.
JeffO,

2

Iniziare con il web dev è una bella idea. Puoi ottenere risultati anche se sei un vero principiante e se sbagli, non importa molto.

Direi Html / CSS + Php. Come ha affermato Jeff nel suo commento, avere il suo sito ospitato sarà importante, e gli hoster di Php non sono costosi, spesso anche gratuiti.

Per quanto riguarda la teoria, lo dimenticherei semplicemente per il momento. Per come lo capisco, per lo più vuole divertirsi, e ammettiamolo, la teoria non è molto divertente. Inoltre, se gli piace programmare, ne avrà un sacco a scuola.

Ovviamente ci preoccupiamo tutti del bel codice, ma se ha intenzione di giocare, cosa importa se il suo codice è disordinato?


+1 Per menzionare la necessità di risultati rapidi per i principianti e fare casino senza causare fastidio.
Orbling

2

programmazione web / desktop / mobile / server? Mi sembra che sia interessato a tutto. Il problema è comunque che deve iniziare con qualcosa.

Molti non saranno d'accordo, poiché ovviamente non esiste una risposta "giusta" a questo, ma gli comprerei un libro su Python ( Imparare Python è abbastanza denso e completo da tenerlo occupato a lungo), ed è sicuramente un linguaggio che gli darà un buon rapporto tra le cose che ho imparato e le caramelle per gli occhi (cioè cosa si può ottenere con esso). È anche un buon punto di partenza per molti di questi.

Successivamente, vedi cosa preferisce di più di quanto sopra menzionato e indirizzalo ulteriormente con consigli in quella direzione.


2

Il suo liceo offre corsi di informatica? Ad esempio, negli Stati Uniti il ​​programma Advanced Placement ha una classe di informatica che passa attraverso un bel po 'dei concetti di base dell'informatica (flusso di controllo, pratiche di sviluppo orientate agli oggetti di base, cicli, ecc.).

Sono stato in grado di frequentare una scuola superiore che ha offerto corsi di informatica per praticamente tutti e 4 gli anni (da un corso introduttivo a LIPS, MIPS e Open GL di base). Ho finito per testare le basi del college e poi riapprendere molte altre lingue e argomenti nei corsi di livello superiore. Posso dirti che il cervello di 14-17 anni ha avuto molte più difficoltà a avvolgere la teoria rispetto a un cervello di 18-22 anni. Temi come la ricorsione, l'aritmetica dei puntatori, la programmazione di basso livello, la topografia di rete e la programmazione funzionale mi hanno richiesto molto tempo per frequentare il liceo, ma la seconda volta al college li ho trovati un gioco da ragazzi, forse perché

Anche se è stato difficile, pensare attraverso CS a partire da 14 è estremamente utile. Farlo senza insegnanti sembra che sarebbe stato complicato. Avrei trascorso del tempo a sviluppare pagine Web per divertimento perché è quello che mi piaceva fare allora (e ora), ma non mi sarei mai insegnato consigli, ricorsione e LISP per divertimento in quel momento.


1

Personalmente non inizierei con la teoria dell'hardcore. Comincerei con una programmazione pratica mescolata ad alcuni elementi della teoria. Potrebbe mantenere uno molto più motivato e non spaventarlo.

È ad esempio un caso con scuole musicali. Una gran parte degli studenti ha smesso perché si annoiano con la teoria e alla fine perdono interesse.

Inoltre, la teoria non è così buona quando viene appresa prima di aver sporcato le mani con la pratica. Non saprai quando e come applicarlo.

Ma se avessi qualche conoscenza teorica, allora ti eserciterai molto, dopo di che un corso serio in IT ti spingerebbe a un livello diverso. Altrimenti gli anni trascorsi in un'università sono solo sprecati in un anno sordo.

In questo ordine:

  1. Qualche teoria di base su hardware, architettura del computer e programmazione di tale hardware. Semplice.

  2. Quindi sviluppare cose pratiche. Applicazioni di base per mantenere l'interesse. Prima locale, poi qualcosa con la grafica. Pagine Web non ancora da quando si vorrebbe dimostrare la programmazione lato server ed è spesso inutile senza database.

  3. Mandagli alcune colture di conoscenza del database

  4. Interfaccia dell'applicazione locale con il database. Quindi prova lo sviluppo web.

  5. Regola il percorso mentre procedi.


0

Le mie preferenze logiche basate su ciò che so ora:

  1. Capire come funzionano le cose ora - Mentre affermi che è tecnicamente incline, quanto capisce come funziona un computer a questo punto? Ad esempio, capisce le differenze tra mark-up e script? Che ne dici di scrivere piccoli script per fare questo o quello? Questo sarebbe il mio suggerimento per un punto di partenza poiché demistificare ciò che abbiamo intorno a noi è un buon punto di partenza, dato tutto ciò che potrebbe essere esplorato abbastanza liberamente.

  2. Scegli una lingua, IDE e controllo del codice sorgente. Ora, mentre questo può sembrare un po 'scagliare contro qualcuno, questi sono gli strumenti piuttosto basilari che con un po' di pratica potrebbe passare a cose più grandi. Capire come realizzare un "Hello World!" la pagina web che ha il messaggio incorporato in JavaScript non è un brutto punto di partenza se si desidera qualcosa di più concreto qui.

  3. Ora inizia ad aggiungere alcune delle cose più difficili. Come fare loop o condizioni? Questo non è ancora così elaborato, ma siamo ancora alla comprensione della fase di blocco qui. Infine, introduce l'idea delle lezioni e quali sono alcune idee alla base di questo concetto.

Quelli sarebbero i punti da cui iniziare se qualcuno volesse ottenere alcune nozioni di base sul mio set di abilità.


0

Non avrei mai pensato di dirlo, ma prendilo Alice 3.0 .

Odio Alice con la furia infuocata di mille soli, ma fa sicuramente un buon lavoro nell'insegnare i fondamenti della programmazione (loop, dichiarazioni, funzioni, ecc.) Se abbinato a un tutorial decente.

Una volta che è solido sulle basi, passa a un linguaggio basato sul testo più pratico.


0

Vorrei iniziare con Python o Ruby o PHP. Se vuole entrare nel web, dovrà anche imparare HTML, CSS, Javascript, ecc.

Questo sembra ragionevole. Assegna alcune abilità di base e aiutalo a sviluppare un'idea per un progetto stimolante a cui rimarrà interessato.

Le sue prime esperienze non devono essere perfette, anzi sarà di aiuto se fa un sacco di errori in anticipo. Vuoi solo assicurarti che rimanga interessato ad espandere le sue conoscenze. Quando raggiunge i suoi limiti, chiederà assistenza e puoi indicarlo nella giusta direzione se non si è già diramato verso il materiale di riferimento.


0

Procuragli un libro su Test Driven Development. Gli farà test di unità solide una seconda natura per lui. Vorrei che i test fossero il fulcro della mia programmazione da zero.


0

Lo inizierei con un linguaggio basato su C. Ho scoperto che ci sono risorse più utili per loro. Puoi anche cercare di ottenere un libro su come progettare e formattare il tuo codice in modo che inizi usando buoni principi di codifica. Avevo una classe dedicata ad esso e abbiamo usato un libro intitolato "Clean Code" e un altro intitolato "Sviluppo software: principi di progettazione" se ricordo bene. Vorrei anche che sarei stato presentato a questo sito prima haha.

Ciò che mi ha aiutato di più è stato ottenere uno stage all'inizio della mia carriera universitaria. Sono andato alle fiere della carriera come matricola e ho ricevuto uno stage il mio secondo anno. Cerco anche di avere un progetto su cui sto lavorando in ogni momento e mi piace fare qualcosa che non ho mai fatto prima in modo da poter continuare ad imparare. In questo momento sto lavorando all'utilizzo di una Raspberry Pie e all'implementazione di Apple Siri per un sistema di automazione domestica.

Fondamentalmente, fai tutto il necessario per divertirti. Non essere frustrato. Fai delle pause. Non farti prendere troppo dai libri. A volte il modo migliore per imparare è semplicemente provarci e usare tentativi ed errori.

Oh ... e impara come Google :)


0

  • c
  • C ++
  • Python fino alla programmazione di base
  • quindi HTML
  • css
  • javascript
  • fare duro con css è molto importante e javascript fino al livello minimo di convalida
  • quindi eseguire Python per HTML e ottenere l'URL
  • quindi framework se tutto il palco è ok


    i livelli sono seguiti

  • livello base con prompt dei comandi per comprendere l'anatomia di base
  • livello di applicazione
  • livello grafico del mouse
  • livello web
  • livello di design
  • livello di database


    non dimenticare di modularizzare le cose quando insegni, non capire che non capirà javascript fino a quando non conosce c / c ++ o python ecc

  • una volta che conosce la programmazione di base, può fare facilmente HTML
  • una volta che conosce HTML, gli piace css
  • ma fermati e prova di più con i CSS in modo da generare nuove idee e sente di aver bisogno di aiuto per iniziare il progetto, quindi proverà a imparare javascript e python con il database per il completamento del progetto.



    Aggiunto il 04/07/2013

    all'età di 14 anni, quando vuoi provare prima le tue mani sulla programmazione, devi capire quali risorse avevo bisogno per completare l'attività o il progetto o le linee guida di base, così come ho menzionato nel mio post imparare prima la programmazione di base, ti aiuterà per capire come funzionano i programmi o il software con il looping e la condizione, quando in seguito pensi di aver capito tutto ma non so come accedere al mouse o fare qualcosa quando clicco da qualche parte, proverai alcune librerie come grafica e mouse, quindi capisci come funziona, ti verrà in mente la prossima domanda su come posizionare i miei pulsanti e aggiungere eventi in modo che possano interagire con il mio codice, quindi ti piacerebbe imparare la programmazione degli eventi, quindi quando completi questa fase, sorgerà la prossima domanda che faccio molto grande codice e non so come chiamare la funzione è un po 'complicata,quindi proverai la modularizzazione, l'oggetto e le classi per l'applicazione,

    dopodiché penserai di sapere come creare un'applicazione di base ma voglio creare un'applicazione per il database, poi mi viene in mente il database, ti piace imparare ma il problema è che ti senti difficile connettersi con il codice in modo da lavorare sul database prompt dei comandi, è

    un approccio programmatico, credo, faccio e imparo allo stesso modo e le mie basi sono molto chiare, quindi posso capire come funzionano le routine o il programma,
    una volta che hai capito e sei molto sicuro di te, puoi fare in modo che l'applicazione per desktop provi le stesse competenze per HTML


    quando provi per html, ti sentirai molto più facile di quello che impari in precedenza, solo perché hai speso molto tempo sulle basi.
    in html, comprendi la struttura e come funziona il codice, una volta che conosci queste cose, ti piace dare la convalida e la connettività del database per l'applicazione, provare e ottenere successo in un giorno, puoi facilmente costruire i pulsanti di posizionamento dei moduli e convalidare con l'arresto di javascript, quindi ti farai una domanda: ho fatto tutto, ma che ne dici di non corrispondere a quello che vedo su internet, quindi prova con css, sono sicuro che se proverai dedicamente css con il miglior IDE o dreamweaver, lo farai essere innamorato di hTML / css.

    è abbastanza per farti una semplice applicazione o web con HTML,
    ad un certo punto ti farai un'altra domanda su come renderlo dinamico quando sai che i collegamenti ipertestuali funzionano bene, quindi cosa fa dinamico, lascia pensare al database, che impari prima ,


    sì, questo è il mio punto, mostra i record, inserisci i record, elimina i record e gioca localmente con il database con javascript e programmazione lato server, poi ti verranno in mente automaticamente altri concetti, per creare utente, validazione, sessione, cronologia utente, internazionalizzazione ecc.
    e tu andrà avanti senza guida perché la tua base è chiara e sai cosa fare e quali risorse hai bisogno per completare l'attività


    ecco tutte le fasi. le basi sono molto importanti e anche i passi giusti. una volta che conosci le basi puoi facilmente imparare un'altra lingua o migrare da una lingua a un'altra lingua
    grazie per la lettura

    Aggiunto il 04/07/2013

    progarme non è altro che un insieme di istruzioni e routine, ad esempio la nostra routine quotidiana, ci svegliamo, facciamo il bagno, il pranzo, il lavoro, la cena, andiamo a dormire.
    ma se non riusciamo a svolgere nessuno dei compiti, ci sentiamo a disagio che è se il giorno è domenica quando non hai lavoro o in vacanza la condizione è cambiata e anche le routine quotidiane, quindi ti abbini ad altre cose, questo è ciò che come l'approccio di programmazione, impara dalla pratica non da ciò che i libri ti dicono, i libri sono utili come riferimento ma comprendono il modo naturale in cui reagiamo, lavoriamo con l'aiuto dell'istruzione if-else, ad esempio: supponiamo di avere due lavori ed entrambi sono molto importanti, ma possiamo fare solo uno alla volta, scegli il 1 ° e il completamento quindi puoi andare a casa, se scegli il secondo, devi lavorare le 5 ore successive, altrimenti se completi entrambi i lavori, ricevi 1 giorno di ferie, questo è l'approccio alla programmazione


  • 2
    La tua risposta è pesante su particolari ma leggera su giustificazione. La tua risposta sarebbe più forte se spiegassi perché ritieni che questo percorso sia il migliore.
    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.