Vai al contenuto

Cominciare la programmazione da zero


Messaggi raccomandati

Ciao ! sono federico ho 16 anni e vorrei cominciare a studiare programmazione ... finora non mi sono mai avvicinato a questo mondo quindi non ho idea di come cominciare... vorrei studiare da un buon libro ma quasi tutti secondo me si focalizzano su un linguaggio particolare e forse bisogna avere già delle conoscenze che io presumo di non avere... insomma ho bisogno di un libro per cominciare da zero con la programmazione e capire su quale linguaggio devo concentrarmi.. grazie mille!

Link al commento
Condividi su altri siti

Visto che hai 16 anni la cosa migliore sarebbe andare in un Itis informatico dove ti possono dare delle ottime basi. Personalmente ho iniziato a programmare proprio cambiando scuola in 4 superiore (a 19 anni), passando dall'allora Scientifico tecnologico (adesso Liceo delle Scienze applicate) ad un itis informatico, e in base alla mia esperienza non c'è metodo migliore per iniziare ad acquisire solide basi di programmazione (la cosa migliore sarebbe anzi fare il cambio prima, in terza superiore).

Avendo 16 anni dovresti essere in tempo (sempre che tu non sia già in un itis informatico, in quel caso ti basterà continuare a frequentare).

 

Se la strada scolastica non è possibile (in questo caso, se sarai ancora convinto, ricordati di scegliere informatica o ingegneria informatica all'università), il mio consiglio da programmatore studente/lavoratore laureando in informatica è di non studiare sui libri la programmazione.

La cosa migliore che puoi fare è smettere di preoccuparti del linguaggio e iniziare a programmare praticamente.

 

Mi spiego meglio. Teoricamente parlando qualsiasi linguaggio C-like va benissimo (meglio se ad oggetti, ma anche funzionale va bene) per iniziare, la realtà è che in ambito informatico sono pochi i linguaggi che durano abbastanza da poterci lavorare tutta la vita, e anche in quei casi i linguaggi si trasformano e vengono aggiornati continuamente quindi non potrai mai studiare un linguaggio da cima a fondo e non studiare mai più, dovrai aggiornarti continuamente e potresti ritrovarti a dover studiare da zero un linguaggio che tu non hai mai visto in poche settimane.

In ambito sviluppo software non si finisce mai di studiare e imparare.

Dopo che avrai studiato il tuo primo linguaggio gli altri saranno molto più semplici da imparare perchè, sintassi a parte (che nei linguaggi C-like rimane comunque molto simile), la maggior parte dei costrutti rimarranno uguali.

Il linguaggio che al momento è ritenuto più "scolastico" è il Java. Viene insegnato in tutti gli Itis, in tutte le università, in moltissimi corsi di formazione seri e viene richiesto da moltissime aziende. È inoltre il linguaggio ad oggetti più utilizzato in assoluto ed è uno dei pochi linguaggi strutturati utilizzabili su server web. Ha infine una sintassi C-like semplice da imparare, ma è anche molto rigoroso (il che aiuta a prendere delle buone abitudini). Gli IDE disponibili sono inoltre tutti avanzati, multipiattaforma e gratuiti (Netbeans, Eclipse, IntelliJ IDEA).

Fino a qualche anno fa il linguaggio più "scolastico" era proprio il C, che però non è ad oggetti. La sua evoluzione più diretta, il C++, ha perso parte della semplicità del C ed è per questo ritenuto non adatto per iniziare.

Il mio consiglio pratico è quindi iniziare con Java (o al massimo con C# (che si legge C sharp), che è l'alternativa Microsoft a Java).

 

Per quanto riguarda i libri ti ho suggerito di dimenticarteli per diversi motivi, il principale è che studiare programmazione sui libri non è efficace. La creazione di un piccolo programma elementare vale più di centinaia di ore sui libri e permette anche di avere tutt'altro tipo di soddisfazione.

In secondo luogo i libri (in particolare in italiano) non vengono aggiornati abbastanza spesso e diventano obsoleti molto velocemente. In pratica rischieresti di studiare informazioni che erano vere qualche anno fa, ma che adesso non lo sono più.

Per finire i libri possono darti solo un punto di partenza. Esistono migliaia di librerie e framework che possono svolgere funzionalità complesse che non è conveniente reimplementare da zero ("reinventare la ruota" è considerata una bad practice. se una funzionalità esiste già e non c'è un motivo valido per implementarla nuovamente conviene usare quel che c'è), tu stesso creerai delle librerie e dei framework. Per tutte queste librerie/framework esistono le apposite documentazioni.

In pratica, se dovessi studiare solo sui libri, dovresti prendere un libro per ogni libreria/framework... Il che non è fattibile (inoltre è improbabile che tutte le librerie/i framework abbiano un libro dedicato).

 

Se proprio vuoi un punto di partenza il mio consiglio è di scaricarti l'ottimo ebook gratuito e open source "How to think like a computer scientist. Java edition". È un ottimo punto di partenza ed è abbastanza leggero per essere usato come risorsa per la consultazione delle basi di Java. Oltretutto segue il programma seguito nella maggior parte dei corsi di informatica quindi è un ottimo modo per avere una direzione su quali sono gli argomenti principali da sapere.

 

La cosa migliore che puoi fare è però creare una piccola applicazione da linea di comando e, se ne avrai la volontà, anche con un'interfaccia grafica. Se ti piacciono i videogiochi potresti provare con Unity3d (usando C# come linguaggio di programmazione).

Se non sai cosa fare cerca un tutorial passo passo su google o anche su youtube. Copia, copia e copia ancora, pian piano imparerai a implementare le tue soluzioni in autonomia.

Più copierai, più ti farai domande e potrai rispondere in modo mirato (ad esempio: "cos'è la ricorsione?"), più ti farai domande più imparerai, più imparerai meno dovrai copiare.

Anche tra i laureati in informatica ci sono pessimi programmatori, la differenza tra chi ha sempre creato programmi e chi lo ha fatto solo quando obbligato per un esame è enorme, e non sempre chi ha programmato poco ha voti più bassi di chi programma di più. Insomma studiare programmazione significare fare programmi, non c'è modo migliore per imparare.

 

Un'ultima cosa. Sviluppare software a volte può essere molto frustrante, anche dopo molti anni potresti ritrovarti davanti un programma dove non capisci una mazza, con librerie/framework che non hai mai visto. Potresti ritrovarti a dover imparare la matematica e la fisica anche se non ti piacciono (piccolo esempio: la fisica nei videogiochi... ma anche solo la risoluzione di problemi tramite algoritmi).

Se davvero ti piace lo potrai capire solo tra qualche anno... se mollerai significa che non ti piaceva abbastanza.

D'altra parte la soddisfazione di dar vita ad un programma o ad una funzionalità di un programma da zero è qualcosa che solo la programmazione può darti.

 

Alla fin fine ho scritto un poema, ma spero di aver chiarito la maggior parte dei tuoi dubbi. Se hai ancora domande chiedi pure (non posso prometterti che mi ricorderò di rispondere, ma farò del mio meglio XD).

Link al commento
Condividi su altri siti

wow ! grazie mille... io frequento il liceo scientifico tradizionale... e ho fatto questa scelta perchè in realtà chi fa scienze applicate non studierà mai programmazione (i miei coetanei stanno studiando il pacchetto office).  Vorrei prendere dopo ingegneria cinematografica o informatica... detto questo ci proverò ma il libro gratis che mi hai consigliato è solo in inglese? potresti linkarmelo?

Link al commento
Condividi su altri siti

attenzione che il liceo (che sia scientifico tradizionale o delle scienze applicate) non ti permetterà di studiare programmazione ad un livello sufficiente.

il biennio comune è uguale per tutti (più o meno), ma dal terzo anno mentre all'itis informatico fanno Java e programmazione ad oggetti, allo scientifico (sia uno sia l'altro) fanno al massimo il pessimo visual basic 6 o javascript a livelli troppo elementari per essere utili.

l'ebook lo trovi su google cercando il titolo. ovviamente in inglese, se non hai un livello sufficiente a leggerlo vale la pena che studi un po' d'inglese perchè quello è il livello minimo per fare programmazione

Link al commento
Condividi su altri siti

5 ore fa, Federico Sanfrancesco dice:

io però non ho capito una cosa... una volta imparato il linguaggio di programmazione... dove lo uso? cioè dove bisogna scrivere?

Puoi scriverlo in un file qualsiasi, anche un semplice txt che poi dovrai rinominare in modo da modificare appropriamente l'estensione (esempio, i file java li chiamerai .java, i file c .c ecc...).

Questo file andrà poi compilato o interpretato da un interprete. Nel caso compilato i file di output saranno i tuoi programmi (potrebbe essere anche un semplicissimo hello world da linea dicompando. Nel caso interpretato ci dovrà essere un interprete che fa girare il tuo codice.

Java è sia compilato che interpretato quindi come esempio è ottimo: i .java vanno compilati in .class dal compilatore javac, i file .class vengono poi fatti girare sulla virtual machine di Java

per aiutarti nell'uso della sintassi e nella compilazione puoi poi usare un IDE tipo netbeans o eclipse.

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...