Aggiungo inoltre due concetti:Originariamente inviato da MdE2005
Il tuo tentativo è sicuramente apprezzabile, anche se può risultare ostico studiare contemporaneamente alle materie della scuola media superiore i fondamenti dei linguaggi di programmazione.
Putroppo (o per fortuna..), gli ambienti RAD ed i vari Visual Basic, Java e altri linguaggi del baraccone .NET et simila sono linguaggi caratterizzati da una curva di apprendimento ben poco ripida e consentono - anche ad un neofita che ignora la matematica booleana ma con un minimo di preparazione - di creare piccole applicazioni (talvolta inutili) per uso strettamente personale.
Al contrario, lo studio del linguaggio C, il più low-level tra gli HLL (high level-languages), è ostico, faticoso, poco intuitivo (almeno all'inizio) senza basi di matematica discreta o di architettura dei calcolatori, e non consente al beginner lo sviluppo di applicazioni
window-based o di altri accrocchi grafici, tuttavia permette al programmatore di iniziare a sviluppare una certa forma mentis fondamentale in molti ambiti dell'IT applicativa.
1. non è sufficiente il solo C a diventare un Vero Programmatore; se dai un'occhiata al programma dei singoli corsi di studio universitario di Ingegneria IT/elettronica/TLC o di qualche CdL in SSMMFFNN vedrai che gli argomenti da studiare, capire, approfondire sono numerosissimi, quasi impossibili da elencare in un forum.
2. esistono varie tipologie di programmazione: si va dalla programmazione web (semplice, intuitiva, che richiede conoscenze informatiche non estreme) alla semplice programmazione di gestionali fino alla progettazione e allo sviluppo di kernel, driver et simila ovvero programmazione low-level - esclusivamente con linguaggi come l' Assembly e il C - che richiede uno studio approfondito non solo di informatica ma anche di elettronica e matematica discreta, nonchè degli algoritmi più utilizzati e delle tecniche di ottimizzazione; se poi invece non ti interessa il mondo mainstream puoi dedicare 10-20 anni della tua vita nello studio della progettazione e programmazione di sistemi embedded (hardware, software, firmware) un *mondo* che necessita della massima professionalità e di competenze estremamente diffuse.