E' inutile iniziare l'apprendimento della programmazione se non si conoscono le basi della progettazione degli algoritmi, distinguendo le due fasi: dal problema all'algoritmo e dall'algoritmo al programma.
http://accarino.altervista.org/c/02-Dal%20problema%20all%27algoritmo.pdf
http://mate.unipv.it/~galbiati/corsi/programmazioneLucidi/C/C3_Algoritmi.pdf
http://accarino.altervista.org/c/04-Dall%27algoritmo%20al%20C.pdf
In un mio intervento (riportato sotto) metto in risalto l'importanza della conoscenza delle nozioni teoriche e matematiche di base sulla rappresentazione dei dati (sistemi di numerazione, codici, rappresentazione dei numeri e così via).
Infine non sarebbe male sapere alcune nozioni di cibernetica generale e applicata (teoria dei sistemi, elettronica digitale, automi a stati finiti, architettura dei microprocessori, cenni di programmazione a basso livello in Assembly, ecc.).
A presto
P.S. Ecco il mio intervento: "Come ho avuto modo di illustrare, l'HTML e i fogli di stile CSS non sono linguaggi di programmazione: l'HTML è un linguaggio di "formazione" della pagina Web, con il quale definisci la struttura e i contenuti del testo, mentre con i fogli di stile CSS associ a tale struttura un "layout", ossia ne definisci lo stile (il colore, l'allineamento, il tipo di carattere, gli effetti di transizione e così via).
I linguaggi di programmazione si differenziano in base ad un "paradigma", cioè secondo un determinato modello al quale ci si ispira per poter risolvere un certo problema.
Ci sono, ad esempio, linguaggi basati su un paradigma di tipo "imperativo" (il Pascal e il C), in cui i concetti di algoritmo e di programmazione strutturata sono importantissimi, altri linguaggi utilizzano un paradigma di programmazione "orientata agli oggetti" (OOP), tra cui Java e il C++, che identifica gli "oggetti" che compongono un problema e ne individua le "correlazioni" tra gli stessi, altri ancora usano un approccio "logico" (il Prolog) al problema, facendo delle "dichiarazioni" logiche e costruendo poi le relative relazioni, infine il paradigma "funzionale" (il Lisp e il Lambda calcolo) ha come base le funzioni matematiche per poter risolvere un problema.
Nozioni teoriche di base e matematiche a parte (sistemi di numerazione, codifica delle informazioni, proprietà dell'algebra booleana, tabelle di verità, proposizioni logiche e così via), che pure sono importanti e sarebbe bene conoscere, prima di affrontare la programmazione in un qualsiasi linguaggio, devi essere in grado di "progettare" un algoritmo, cioè passare "dal problema all'algoritmo" e poi "dall'algoritmo al programma".
Segnalibri