Newsgroup: it.comp.lang.c
Titolo: come iniziare

salve, vorrei iniziare a programmare in c o c++ però non ne sò una pippa,
cosa mi consigliate
al livello di un bambino di 6 anni???:)))


Ci provo:
1) Se non ce l'hai gia`, devi arrivare ad avere una buona confidenza con 
la piattaforma su cui vai a sviluppare.
2) Se non ce l'hai gia`, devi arrivare a prendere una buona confidenza 
con un buon editor (esempi: Emacs, JEdit, Vim)
3) Se non ce l'hai gia`, devi procurarti un compilatore con tutta la 
serie di tool a contorno necessaria (il GCC e` un'ottima idea per iniziare)
4) Se non ce l'hai gia`, procurati un buon manuale del C (il Kerningham 
& Ritchie, ad esempio).
5) Con l'editor prova a battere il classico "Hello World!" (riportato in 
ogni manuale), e poi a compilarlo ed a eseguirlo, senza chiederti 
perche` e` scritto cosi` e perche` funziona cosi`. Non procedere oltre 
finche` non arrivi a vedere "Hello World!" a video. La documentazione 
del compilatore e un po' di aiuto da un newsgroup (non questo, ma uno 
specifico per la piattaforma su cui sviluppi) ti tornera` alquanto utile.
6) Inizia a leggere il manuale per benino. Per il momento concentrati 
sulle variabili intere, sugli array e sulle strutture di controllo 
(cicli e condizioni). Lascia perdere tutte le stringhe che non siano 
costanti. Unico output ammesso: printf(). Unico input ammesso: variabili 
avvalorate direttamente nel codice. Abituati a commentare quello che 
stai facendo come se lo dovessi spiegare a un bambino di 6 anni (che 
pero` sa il C :-) Abituati a usare correttamente i rientri nel codice 
(almeno 3 spazi per ogni livello, di meno e` da galera, meglio almeno 4).
7) Cerca di comprendere lo scope delle variabli e delle funzioni. Per 
intanto, accontentati di variabili globali e locali. Cerca di 
comprendere la differenza tra dichiarazione e definizione.
8) Cerca di capire bene gli array e qual e` la loro principale 
caratteristica.
9) Passa ai tipi compositi (struct).
10) Passa alle stringhe non costanti e ai puntatori. Passaci sopra di 
nuovo. Anche una terza volta. Trova le similitudini tra indici di array 
e puntatori. Cerca di capire come passare parametri per riferimento 
invece che per valore.
11) Passa alla lettura e scrittura di file (e quindi anche all'input da 
tastiera).
12) Fatti una cultura sulle altre strutture di dati, ovvero pile, code, 
deque, liste (linkate singole e doppie), alberi, alberi binari, grafi, 
hastable, etc. Con uno sforzo di immaginazione puoi ancora implementarli 
tutti con degli array di strutture (chiaramente con dimensioni massime 
prefissate). Impara cosa vuol dire allocare qualcosa. Impara cosa vuol 
dire avere frammentazione.
13) Fatti una cultura sulle funzioni ricorsive. Riguarda alberi e grafi.
14) Passa all'allocazione dinamica della memoria, e applica quanto 
appreso alle strutture di dati di cui sopra. Comprendi la differenza tra 
stack e heap. Ricordati quanto imparato sulla allocazione e sulla 
frammentazione (malloc() non e` gratis).
15) Fatti una mini-cultura sugli algoritmi di ordinamento (almeno 
bubblesort e quicksort). Questo lo puoi fare anche prima, se ti va.
16) Cerca di capire per bene come funziona il preprocessore C. Chiediti 
perche` in testa ai .h ci metti
     #ifndef qualcosa
     #define qualcosa
     ...
     #endif
17) Passa a scrivere programmi divisi su piu` file, da compilare 
separatamente e linkare insieme.
18) Creati delle librerie archive e delle librerie shared.
19) Puoi cominciare a pensare alle GUI e alla programmazione basata su 
eventi.
Sicuramente ho dimenticato parecchio in questi punti, ma bene o male il 
succo ci dovrebbe essere.
All'inizio io ti sconsiglierei di usare un IDE: son pieni di wizard e di 
codice precotto, credi di imparare qualcosa, ma non impari nulla, ed 
anzi poi fai molta piu` fatica a scendere al dettaglio necessario.
Una volta che avrai pratica, un IDE ti potra` sveltire i tempi di sviluppo.
Se ti sembra un percorso troppo accidentato, vai su linguaggi come il 
Perl, Php, Python o Tcl, che lo ammorbidiscono un poco (ma non di molto).
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

 succo ci dovrebbe essere.
Visto i consigli a proposito degli editor, direi
0) Se non lo hai gia', installati (o fatti installate Linux).
:-)
C:\>iao Angelo
P.S. In ogni caso chi consiglia Emacs o Vi a un neofita merita almeno
     3 anni di galera, senza condizionale, a pane e acqua.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Visto i consigli a proposito degli editor, direi
Ehm, sono tutti quanti multipiattaforma, con ottimo supporto per lo 
sviluppo in C, e tanto, prima o poi, si finisce per l'usare uno di quei 
tre... per cui tanto vale studiarsene a fondo uno solo che ti possa 
andar bene per qualche lustro, no? Voglio dire, non passo la vita a 
cambiare editor... ;-)
