# [OT] Programmare a 12 anni?

## styrix

Salve a tutti; questa volta ho bisogno di tanti consigli, perche' in gioco non ci sono io, ma mio cugino che ha 12 anni. In pratica, mio cugino ha visto il film "Hackers 2 takedown" e li e' nata una passione sfrenata verso:

a)  Programmazione 

b) Sistemi *nix

Ma il problema non e' tanto spiegarli cosa siano li OS *nix, ma cosa sia la programmazione. Percui mi ritrovo, a dover consigliare un linguaggio di programmazione a un ragazzino di 12 anni, che si portera' sempre con il passare del tempo ad imparare e a smanettare nel migliori dei modi. Ora il mio problema e': non fargli capire un linguaggio a pappagalo, ma farli capire cosa sia veramente la programmazione, sperando che con il passare del tempo diventi bravo.

Voi cosa pensate sia meglio per lui?

----------

## shev

 *styrix wrote:*   

> Voi cosa pensate sia meglio per lui?

 

Che si chiarisca le idee e che te ne riparli tra una settimana o due... a quell'età si è piuttosto recettivi nei confronti degli stimoli mediatici, quindi è possibile che vedendo "indiana jones" voglia diventare archeologo, "billy elliot" ballerino e così via (con tutto il rispetto per lui e i suoi 12 anni, sia chiaro). Quindi prima di perderci tempo cerca di chiarirgli per bene le idee: non so che incredibile e sana passione possa essergli venuta vedendo il film che hai citato...

In ogni caso il linguaggio più semplice ma nello stesso tempo potente, versatile e didattico è imho il python, quindi consiglierei quello per iniziare (inutile insegnargli nozioni teoriche ed astratte, meglio impari in modo pratico, tanto la teoria la impara cmq senza rendersene conto, inoltre c'è tempo per trattarla nel modo corretto quando sarà un po' più grandicello). Ovviamente imparando ad usarlo su un sistema linux, magari Gentoo Linux  :Wink: 

----------

## flocchini

Forse prima di insegnargli a programmare sarebbe bene fargli prendere dimistichezza con un sistema linux (visto che windows volente o nolente imparera' a usarlo comunque) . Io ho sbattuto una gentoo fresca fresca sul pc che babbo natale ha portato al mio fratellino 14enne e vedo che ci sta prendendo gusto...

----------

## Peach

personalmente dalla mia esperienza posso consigliarti vivamente due testi:

Unix for Programmers and Users: Graham Glass and King Ables - Ed. Prentice Hall

Unix System Programming: Keith Haviland, Dina Gray and Ben Salama - Ed. Addison-Wesley

l'unico praticolare è che sono in inglese... ma sicuramente si trovano anche in italiano.

Per quanto riguarda la difficoltà invece il primo è sia per utenti che per programmatori, quindi una buona introduzione al sistema operativo e quindi anche alla programmazione, il secondo integra il primo per quanto riguarda la programmazione nel sistema.

In ogni caso considero questi due testi superlativi... certo è che non sempre ad un ragazzino di 12 anni riescono semplici certi concetti.. dipende anche molto cosa già sa... e da cosa cerca di sapere...

spero di esserti stato d'aiuto..

se hai bisogno di info su qualcosa di particolare sui due testi sopracitati non hai che da domandarmi...

----------

## Yans

io concordo con quanto ha detto Shev....

----------

## styrix

a) Come vi ho gia detto, e' interessato ANCHE a sapere cosa siano i sistemi *nix e quindi con molto piacere li faro' installare con la guida, la bella gentoo (naturalmente, con me davanti).  :Smile: 

b) Ha accettato con molto entusiasmo l'idea di programmare e di apprendere subito qualcosa, all'incirca 5 giorni dopo averli spiegato cosa avra' davanti (Ha riflettuto un po'). 

c) L'inglese non lo conosce come lo conosciamo noi, quindi un testo inglese non credo che faccia a caso suo (ma comunque lo mettero' sotto anche con l'inglese).

d) L'idea del python mi sembra interessante (magari, potete consigliare qualche testo oltre a quelli che ci sono su python.org/it).

Altre idee?

----------

## cataenry

Secondo me, per incominciare a orientarlo nei linguaggi ad oggetti c'è Java... per quanto mi stia antipatico, a livello didattico è parecchio buono...  Altrimenti, C e un ottimo libro.. 

Se riesce a coltivare questa passione sin da quell'età, tanto di cappello: vorrei averla avuta io....  :Crying or Very sad:   Invece mi sono svegliato un po' tardi eheh (21)

----------

## Diggs

cataenry: io so + vecchio!!! Ho cominciato a 23   :Wink:  .

----------

## shev

 *styrix wrote:*   

> d) L'idea del python mi sembra interessante (magari, potete consigliare qualche testo oltre a quelli che ci sono su python.org/it).
> 
> 

 

Mmmm, oltre ai doc su python.it (visto che vuoi roba in italiano) non mi risulta ci sia molta roba, cmq già li c'è parecchio materiale per cominciare: due libri completi, diversi tutorial e guide, una comunità cui fare domande. Se gli interesserà approfondire ulteriormente, bhe, basta che faccia partire l'interprete e smanetti  :Very Happy: 

Purtroppo di testi stampati ne sono stati creati solo uno o due, che dovresti facilmente trovare con google (trovare i titoli, non credo siano liberi).

Mi veniva poi in mente che volendo c'è un altro (imho) ottimo libro disponibile liberamente in rete e che riguarda la programmazione in ambito linux e unix in generale. Non so se sia proprio adatto ad un ragazzino di 12 anni, qualche conoscenza di base la presuppone: Gapil

----------

## randomaze

Potrebbe iniziare dai sistemi *nix con piccoli programmi in bash... tanto per apprendere concetti quali variabili et simili.

Dopo... C o Pyhton probabilmente vanno bene (sopratutto il C se manifesta vero amore per *nix   :Wink:  )

Io avevo imparato con il basic dell'apple//c   :Rolling Eyes: 

----------

## Panda

 *styrix wrote:*   

> Ora il mio problema e': non fargli capire un linguaggio a pappagalo, ma farli capire cosa sia veramente la programmazione, sperando che con il passare del tempo diventi bravo.
> 
> Voi cosa pensate sia meglio per lui?

 

IMHO devi solo dargli qualche spunto... stampagli qualche guida su *nix e basta. Se non e' una infatuazione data dal film e la passione spuntera' fuori allora fara' tutto lui. Si accollera' anche guida in inglese pur di imparare, quando la curiosita' diventa sfrenata. Io ho cominciato a smanettare forse un tantino piu' giovane di tuo cugino, sull'Amiga... e forse non ci crederete ma io le prime parole di inglese le ho imparate sull'Amiga perche' quelle riviste che mi arrivavano ed i manuali erano tutti in inglese. Poi ho cominciato a smanettare in ARexx... ma ricordo che alcuni concetti della programmazione proprio non li capivo (nonostante mi divertissi un casino), quindi secondo me tu devi solo dargli un calcio su *nix, il resto lo fara' lui... smanettando e prendendosi il tempo che gli serve.

Considera che nel frattempo si cresce... e tra qualche anno il suo modo di vedere quello che gli sta attorno comincera' a cambiare un po'... dovrai  soprattutto sensibilizzarlo sulla questione dell'imparare bene, perche' a quell'eta' si tende a diventare sboroni con gli altri...

Ovviamente tutto secondo la mia esperienza... condivisibile o meno...

byez

----------

## alexbr

Io consiglierei java...

Non sarà il migliore dei linguaggi, ma è abbastanza intuitivo, c'è un libro di Deitel & Deitel a riguardo che consiglio a tutti per chiarezza e semplicità di espressione (Shev: questi libri sono bellissimi! oltre a C, C++ e Java cosa c'è?), e un editor (NetBeans) che ti permette di fare molte cose semplicemente.

----------

## shev

 *alexbr wrote:*   

> (Shev: questi libri sono bellissimi! oltre a C, C++ e Java cosa c'è?)

 

Trovi l'elenco in rete, cose tipo questa  :Wink: 

----------

## stefanonafets

/me che rimpiange:

a) di non essersi avvicinato prima la mondo unix

b) non aver mai studiato un linguaggio di programmazione

c)che si rammarica di aver perso un mucchio di tempo (dai 10 ai 16 anni  esclusivamente sui videogiochi e window$, ho iniziato a sentir parlare di GNU/Linux solo nel '99...)

...

Se tuo cugiono non abbandona potrà diventare veramente bravo...

----------

## Yota_VGA

 *alexbr wrote:*   

> Io consiglierei java...
> 
> Non sarà il migliore dei linguaggi, ma è abbastanza intuitivo, c'è un libro di Deitel & Deitel a riguardo che consiglio a tutti per chiarezza e semplicità di espressione (Shev: questi libri sono bellissimi! oltre a C, C++ e Java cosa c'è?), e un editor (NetBeans) che ti permette di fare molte cose semplicemente.

 

Mah, sti deitel & deitel, secondo me, fanno un po' schifo (opinione personale  :Smile:  ).

Cmq io consiglierei vivamente il C. Ma non fatto così superficialmente. Un C fatto senza lasciare punti insoluti è un C molto più chiaro e semplice di uno un po' raffazzonato. Se fatto bene è un linguaggio estremamente semplice (però fare cose concrete e grandi è piuttosto complicatuccio  :Very Happy:  )

Se non molla potrebbe diventare abbastanza bravo, ma dipende soprattutto da lui e dalla sua voglia d'imparare, ed in secondo luogo dalla sua intelligenza  :Smile: 

----------

## bld

 *Peach wrote:*   

> personalmente dalla mia esperienza posso consigliarti vivamente due testi:
> 
> Unix for Programmers and Users: Graham Glass and King Ables - Ed. Prentice Hall
> 
> Unix System Programming: Keith Haviland, Dina Gray and Ben Salama - Ed. Addison-Wesley
> ...

 

Potresti dirmi che le conoscenze che uno deve avere per leggere fluidamente questi testi? Sono molto interessato pero non conosco il C. Quando vedo il sorgente magari capisco cose molto basilari dove inizia la funzione dove finisce e a volte cosa fa.. Ma non so programmare.

Per dire anche io la mia. Per un 12enne consiglierei bash o tcsh, e' incredibile cosa si puo fare con il shell scripting, e poi impari ad usare la linea di comando in modo incredibile, hehe ho visto gente che metteva paura guardando la precisione dei comandi. cmq. 

Come gia cittato qualsiasi cosa va bene credo.. presto se vuole trovera la strada da solo.

----------

## bsolar

 *Shev wrote:*   

> a quell'età si è piuttosto recettivi nei confronti degli stimoli mediatici, quindi è possibile che vedendo "indiana jones" voglia diventare archeologo, "billy elliot" ballerino e così via

 

Meno male che non ha visto Pretty Woman...  :Twisted Evil: 

----------

## Yota_VGA

Mmm, come conoscenze, per il C, direi che basta saper usicchiare un pochettino linux (non obbligatorio ma aiuta), e poi leggere un buon manuale di C. Dopodicché comprate (se potete in italiano, ma anche in inglese va bene) la seconda edizione di Ansi C programming, di kerningham e ritche (spero di aver scritto giusto, so che son nomi sacri ma non mi linciate  :Very Happy:  ).

----------

## randomaze

 *Yota_VGA wrote:*   

> Mmm, come conoscenze, per il C, direi che basta saper usicchiare un pochettino linux (non obbligatorio ma aiuta), e poi leggere un buon manuale di C. Dopodicché comprate (se potete in italiano, ma anche in inglese va bene) la seconda edizione di Ansi C programming, di kerningham e ritche (spero di aver scritto giusto, so che son nomi sacri ma non mi linciate  ).

 

Confermo che il K&R non é il massimo quando si é alle prime armi con la programmazione... tuttavia é fondamentale dopo.

----------

## Yota_VGA

Infatti non l'ho messo per primo  :Smile: 

Non dico sia incomprensibile ma ci va vicino a chi non sa niente di programmazione  :Very Happy: 

Ma per chi vuol conoscere sul serio il C è indispensabile  :Very Happy: 

----------

## emix

 *Yota_VGA wrote:*   

> Cmq io consiglierei vivamente il C. Ma non fatto così superficialmente. Un C fatto senza lasciare punti insoluti è un C molto più chiaro e semplice di uno un po' raffazzonato. Se fatto bene è un linguaggio estremamente semplice (però fare cose concrete e grandi è piuttosto complicatuccio  )

 

Vagli a spiegare ad un 12enne che non conosce l'architettura di un elaboratore cos'è un puntatore. Secondo me deve iniziare con un linguaggio semplice e il Python è uno di quelli. Ha una sintassi molto lineare e i tutorial su python.org sono ben fatti. Prima di imparare a programmare deve capire cosa sono gli algoritmi, le iterazioni, ecc.

Inoltre col Python può iniziare con la shell senza preoccuparsi di compilare e cose del genere.

Una volta imparate le basi può dedicarsi al C.

----------

## -YoShi-

 *bsolar wrote:*   

> 
> 
> Meno male che non ha visto Pretty Woman... 

 

 :Laughing: 

Cmq anche io sono per il python

----------

## Yota_VGA

Io ho spiegato cosa fosse un puntatore a newby completi senza alcun problema. Non è questo il difficile del C. È saper usare tutto quello che hai imparato per fare cose serie  :Smile: 

----------

## silian87

Io ho iniziato a programmare a 13 anni... uso linux da meno di un anno... Io ho iniziato col basic... ma ho fatto il passo grande con il pascal. 

Credo che pascal sia ottimo, poi se usi lazarus o kylix fai anche interfacce grafiche, che sono la cosa che piace di piu' quando si e' noob, e poi il passaggio dal pascal al c/c++ e' quasi indolore. Quindi pascal, direi.  :Smile: 

----------

## fedeliallalinea

 *silian87 wrote:*   

> Io ho iniziato a programmare a 13 anni... uso linux da meno di un anno... Io ho iniziato col basic... ma ho fatto il passo grande con il pascal. 
> 
> Credo che pascal sia ottimo, poi se usi lazarus o kylix fai anche interfacce grafiche, che sono la cosa che piace di piu' quando si e' noob, e poi il passaggio dal pascal al c/c++ e' quasi indolore. Quindi pascal, direi. 

 

Secondo me non c'è un linguaggio adatto a qualcuno può iniziare con quello che vuole basta che ci metta la passione e poi tutto risulta più facile (IMHO).

----------

## silian87

Si, e' vero... Ma e' meglio iniziare col piede giusto. Se mi avessero fatto usare linux fin dal principio , chissa dove sarei ora   :Laughing:  .

----------

## fedeliallalinea

 *silian87 wrote:*   

> Si, e' vero... Ma e' meglio iniziare col piede giusto. Se mi avessero fatto usare linux fin dal principio , chissa dove sarei ora   .

 

Allora basta che eviti basic  :Very Happy:  .

----------

## Gavrila

 *silian87 wrote:*   

> Io ho iniziato a programmare a 13 anni... uso linux da meno di un anno... Io ho iniziato col basic... ma ho fatto il passo grande con il pascal. 
> 
> Credo che pascal sia ottimo, poi se usi lazarus o kylix fai anche interfacce grafiche, che sono la cosa che piace di piu' quando si e' noob, e poi il passaggio dal pascal al c/c++ e' quasi indolore. Quindi pascal, direi. 

 

Io addirittura sarei per il basic (giusto per capire un secondo di che si tratta) e poi pascal per cominciare a capire meglio le funzioni.

----------

## xoen

 *flocchini wrote:*   

> Forse prima di insegnargli a programmare sarebbe bene fargli prendere dimistichezza con un sistema linux (visto che windows volente o nolente imparera' a usarlo comunque) . Io ho sbattuto una gentoo fresca fresca sul pc che babbo natale ha portato al mio fratellino 14enne e vedo che ci sta prendendo gusto...

 

Perfettamente daccordo...in particolare, se gli regali un Computer con linux (Gentoo  :Wink: , ci smanettera', tranquillo  :Smile: 

PS: Per la programmazione, tranquillo...chi usa linux a programmare non ci mette molto, con tutti gli strumenti di sviluppo che ci sono di default  :Wink: 

----------

## augustus

C'è chi dice che per chi inizia a programmare sia meglio un linguaggio ad oggetti piuttosto che un linguaggio prettamente procedurale ... bho. Io trovo più vicino al mio modo di pensare l'approccio procedurale (è così strano? :Shocked: )  ... quindi consiglio il C.

Comunque se serve qualcosa di più facile da imparare ed allo stesso tempo  potente e portabile,  vada per il Python. 

L'importante ihmo è che eviti Visual Basic.   :Exclamation: Last edited by augustus on Thu Jan 08, 2004 1:04 pm; edited 1 time in total

----------

## xegallo

io penso che per cominciare a programmare il miglior trampolino sia il Pascal dopodichè quando ha idea di cosa vuol dire programmare può orientarsi verso altri linguaggi procedurali o ad oggetti. Dal pascal non è molto difficile migrare verso linguaggi + potenti come il c/c++ o java io eviterei di cominciare da questi come primo linguaggio il C è parecchio scoraggiante

----------

## matteo*

 *xegallo wrote:*   

> ... come primo linguaggio il C è parecchio scoraggiante

 

confermo, specialmente se si affronta il c come primo linguaggio a 12 anni...

----------

## paman

Python è un linguaggio molto adatto per un uso didattico come il pascal, ma ha il vantaggio di essere molto più in voga del pascal, ergo gli sarà utile anche nel mondo del lavoro - non credo che ci sia ancora chi programma in pascal per fini pratici e professionali.

Può essere molto utile "How to Think Like a Computer Scientist", tradotto in italiano come "Pensare da informatico", disponibile su http://www.python.it/Doc/Howtothink/Howtothink-html-it/index.htm,

adatto per chi parte da zero.

Disponibile anche in postscript e pdf.

----------

