PDA

View Full Version : Primi passi nel mondo della programmazione.


*+*kekko*+*
07-09-2011, 19:34
Salve,
sono un ragazzo di 17 anni che vuole imparare il linguaggio della programmazione e fare dei videogiochi la mia professione ed il mio futuro.
Purtroppo non sono ferrato con la programmazione e vorrei imparare.
Sono disposto a comprare dei libri pur di imparare, e mi ero imbattuto in questi:
http://www.ibs.it/code/9788843040377/clementini-eliseo/fondamenti-di-informatica-programmazione.html
http://www.ibs.it/code/9788808167606/zzz1k1456/fondamenti-di-informatica-vol.html
http://www.ibs.it/code/9788808044372/zzz1k1456/fondamenti-di-informatica-vol.html
Secondo voi, per partire praticamente da zero, sono i libri giusti?
Potete consigliarmi un libro voi?
So che è molto difficile, ma sono determinato, e preferirei non leggere dei messaggi del tipo "Lascia perdere è troppo difficile" ecc...
Grazie mille dell'aiuto!

ndakota
07-09-2011, 23:02
Dipende che linguaggio vuoi imparare. Dal primo libro che hai linkato si direbbe C++. E' così? Gli altri due no, farei a meno. Il secondo c'azzecca proprio zero con quello che vuoi imparare. Il terzo qualcosa di più ma piuttosto per gli algoritmi vai di questo che è il migliore
http://www.ateneonline.it/cormen3e/

Per il C++, nel caso vorresti imparare questo linguaggio, la bibbia è questa
http://www.pcself.com/libri/scheda-libro.asp?id=29&cat=4

Ma se è la prima volta che ti addentri nel mondo della programmazione potrebbe essere troppo ostico. In questo caso, potresti andare di questi
http://www.ibs.it/code/9788850323869/deitel-harvey-m-/fondamenti-programmazione.html
http://www.ibs.it/code/9788850323876/deitel-harvey-m-/tecniche-avanzate-programmaz.html

Z80Fan
08-09-2011, 03:26
In questo caso, potresti andare di questi
http://www.ibs.it/code/9788850323869/deitel-harvey-m-/fondamenti-programmazione.html
http://www.ibs.it/code/9788850323876/deitel-harvey-m-/tecniche-avanzate-programmaz.html

Consiglio anche io questi libri. Li ho entrambi, e sono veramente fantastici!
Praticamente anche io ho imparato da autodidatta su questi libri.

*+*kekko*+*
09-09-2011, 16:13
Grazie a tutti! Credo che inizierò con fondamenti di programmazione...
PS: E' possibile imparare il C++ senza aver studiato prima il C?

Z80Fan
09-09-2011, 16:24
E' possibile imparare il C++ senza aver studiato prima il C?

Certo. Anzi, forse avere un background di C di fa programmare in stile "C" piuttosto che in stile "C++", perdendo quelle caratteristiche proprie del C++.

Cmq i libri che ti son stati consigliati sopra non presuppongono nessun background di programmazione, quindi sono l'ideale per iniziare. :)

Ricorda solo che se le prime volte sei un po' disorientato, è normale: il C++ non è proprio il più semplice linguaggio per iniziare, e quindi all'inizio dovrai mettere cose che ancora non potrai capire.
Ma, ripeto, i libri Deitel son fatti veramente bene!

cdimauro
09-09-2011, 17:13
Prima di correre (http://www.appuntidigitali.it/2711/videogiochi-non-solo-c/) bisognerebbe imparare a camminare (http://www.appuntidigitali.it/11630/sviluppare-un-gioco-con-python-i-rudimenti/)... ;)

-MiStO-
09-09-2011, 18:13
Dipende che linguaggio vuoi imparare. Dal primo libro che hai linkato si direbbe C++. E' così? Gli altri due no, farei a meno. Il secondo c'azzecca proprio zero con quello che vuoi imparare. Il terzo qualcosa di più ma piuttosto per gli algoritmi vai di questo che è il migliore
http://www.ateneonline.it/cormen3e/

Per il C++, nel caso vorresti imparare questo linguaggio, la bibbia è questa
http://www.pcself.com/libri/scheda-libro.asp?id=29&cat=4

Ma se è la prima volta che ti addentri nel mondo della programmazione potrebbe essere troppo ostico. In questo caso, potresti andare di questi
http://www.ibs.it/code/9788850323869/deitel-harvey-m-/fondamenti-programmazione.html
http://www.ibs.it/code/9788850323876/deitel-harvey-m-/tecniche-avanzate-programmaz.html

a me piace molto, se non ti è ostico leggere in inglese, "accellerated c++" (http://www.amazon.com/Accelerated-C-Practical-Programming-Example/dp/020170353X) che, per imparare il linguaggio, è veramente ben fatto. lo consiglio :)

ndakota
09-09-2011, 20:30
Prima di correre (http://www.appuntidigitali.it/2711/videogiochi-non-solo-c/) bisognerebbe imparare a camminare (http://www.appuntidigitali.it/11630/sviluppare-un-gioco-con-python-i-rudimenti/)... ;)

Bè, l'utente ha chiesto delle cose in particolare e io mi sono attenuto a quelle cose. Però devo dire che quoto codesto utente. Pensate che al MIT ora usano Python, non soltanto come linguaggio per il corso di programmazione, ma anche per il corso di algoritmi. Noi per algoritmi usiamo il C :muro:

*+*kekko*+*
09-09-2011, 20:30
Grazie a tutti!
Questi libri sono universitari o si trovano nelle normali librerie scolastiche?

cdimauro
09-09-2011, 21:05
Bè, l'utente ha chiesto delle cose in particolare e io mi sono attenuto a quelle cose.
Sì, l'avevo capito. Non mi riferivo a te, ma a lui, infatti, che vuole correre troppo quando ancora non sa nemmeno come si faccia un programma. ;)
Però devo dire che quoto codesto utente. Pensate che al MIT ora usano Python, non soltanto come linguaggio per il corso di programmazione, ma anche per il corso di algoritmi. Noi per algoritmi usiamo il C :muro:
Sono molto avanti. Ma ti dirò: a maggio mi sono incontrato con un mio carissimo ex-prof., e mi ha detto che stava smanettando con Python e proponendolo in qualche corso.

Qualche speranza c'è anche da noi. :D

AngeL)
09-09-2011, 21:26
Pur amando le infinite potenzialità del C++, mi tocca sconsigliartelo.
La mia esperienza personale: ho iniziato a programmare per gioco, alle medie, e mi buttai proprio sul C++. Righe e righe di codice che non capivo, ma, in qualche modo, funzionava. Poi ho provato altri linguaggi, e ho "collegato" le strutture simili, ho iniziato a capire come in realtà un computer pensava, come andavano tradotti i ragionamenti per cacciarne un programma.
Sono ritornato al C++, e finalmente l'ho capito. Ho capito cos'era quell'#include, quel namespace std, quel return che scrivevo automaticamente.

Long story short, inizia con qualcosa di più vicino al tuo modo di ragionare. Se pensi a una lista, a un vettore, a una matrice, lascia che sia il computer a gestirne i dettagli, e tu preoccupati di usarla bene nel tuo algoritmo. Verrà il giorno in cui te la scriverai tu in C++, ma con calma. Se prima ancora di capire come si usa devi scervellarti a implementarla, con errori ovunque, non farai altro che confonderti.

Personalmente non lo uso, ma l'ho provato, e consiglio python. (e cdimauro starà facendo i salti di gioia! :D)

cdimauro
09-09-2011, 21:40
Io li faccio ormai da 7 anni. :D

I problemi sono degli altri. :cool:

P.S. Prova PyGame, che è un layer a più alto livello sulle SDL. ;)

Z80Fan
09-09-2011, 21:53
Grazie a tutti!
Questi libri sono universitari o si trovano nelle normali librerie scolastiche?

Io li ho trovato entrambi in una libreria che trattava un po' di materiale tecnico, nulla di speciale.

*+*kekko*+*
09-09-2011, 23:00
Io li faccio ormai da 7 anni. :D

I problemi sono degli altri. :cool:

P.S. Prova PyGame, che è un layer a più alto livello sulle SDL. ;)

Mi sa che proverò prima questo Python. Ci sono dei libri anche per questo linguaggio o mi consigliate di imparare su internet?
Ho trovato il sito programmazione.html.it che fornisce guide su ogni tipo di linguaggio.

cdimauro
09-09-2011, 23:30
Controlla la firma. :fagiano:

Maximum Omega
10-09-2011, 00:27
Controlla la firma. :fagiano:

A proposito del link nella tua firma, è la traduzione italiana di questo libro?

http://www.amazon.co.uk/gp/product/0521725968/ref=s9_simh_gw_p14_d0_g14_i1?pf_rd_m=A3P5ROKL5A1OLE&pf_rd_s=center-2&pf_rd_r=1GJ902MWNZP8NX06V7M1&pf_rd_t=101&pf_rd_p=467128533&pf_rd_i=468294

Sto cercando di capire perchè su amazon viene riportato la data di pubblicazione il 16 marzo 2009 mentre nel pdf è indicato Aprile 2002 visto che entrambi sono prime edizioni.

*+*kekko*+*
10-09-2011, 00:30
Controlla la firma. :fagiano:

Ok, dopo aver letto questa parte:
Il primo esempio illustra bene il punto. E' il tradizionale programma \hello,
world", la cui versione C++ nel libro originale è la seguente:
#include <iostream.h>
void main()
{
cout << "Hello, World!" << endl;
}
Nella versione Python diventa:
print "Hello, World!"
Ho deciso di imparare Python... :P
PS: Ho letto che hai nominato "Pygame" . Sarebbe la versione di Python per creare i videogiochi? Se è così, questo libro va bene anche per imparare Pygame?

cdimauro
10-09-2011, 00:36
A proposito del link nella tua firma, è la traduzione italiana di questo libro?

http://www.amazon.co.uk/gp/product/0521725968/ref=s9_simh_gw_p14_d0_g14_i1?pf_rd_m=A3P5ROKL5A1OLE&pf_rd_s=center-2&pf_rd_r=1GJ902MWNZP8NX06V7M1&pf_rd_t=101&pf_rd_p=467128533&pf_rd_i=468294
Sì.
Sto cercando di capire perchè su amazon viene riportato la data di pubblicazione il 16 marzo 2009 mentre nel pdf è indicato Aprile 2002 visto che entrambi sono prime edizioni.
Può darsi che la prima si riferisca a quando è stato pubblicato il volume cartaceo.
Ok, dopo aver letto questa parte:

Ho deciso di imparare Python... :P
Saggia decisione, giovane padawan.
PS: Ho letto che hai nominato "Pygame" . Sarebbe la versione di Python per creare i videogiochi? Se è così, questo libro va bene anche per imparare Pygame?
No, va bene per imparare i fondamenti della programmazione (e qualcosa di più, man mano che si avanza).

PyGame è molto usato per realizzare velocemente videogiochi, per lo più 2D (ma supporta anche il 3D).

Su Appunti Digitali c'è stata una serie di articoli (di cui ho fornito il primo link) su come realizzare videogiochi con PyGame.

*+*kekko*+*
10-09-2011, 00:47
Ora faccio la domanda che se reputate stupida vi appoggio in pieno:
Con Python, è possibile inserire un motore grafico già creato o ne devo creare uno da zero? (Lo chiedo perchè da un po' di tempo la Epic games ha rilasciato il Development Kit dell'Unreal Engine 3 gratuitamente)
Ok, scannatemi se la domanda è da deficiente... :D

cdimauro
10-09-2011, 00:58
In genere Python viene inserito in un engine già creato (in C/C++).

Ad esempio, Panda3D (http://www.appuntidigitali.it/15999/sviluppare-un-gioco-in-python-panda3d/).

Ma c'è anche Civilization 4 che usa interamente Python per scriptare qualunque cosa. Blender per la modellazione. E altri ancora.

*+*kekko*+*
10-09-2011, 01:07
In genere Python viene inserito in un engine già creato (in C/C++).

Ad esempio, Panda3D (http://www.appuntidigitali.it/15999/sviluppare-un-gioco-in-python-panda3d/).

Ma c'è anche Civilization 4 che usa interamente Python per scriptare qualunque cosa. Blender per la modellazione. E altri ancora.

Ultima domanda:
Dato che mi aspetta l'ultimo anno di scuola e poi l'università, quale facoltà devo scegliere per studiare i linguaggi della programmazione : Informatica o Ingegneria Informatica?

cdimauro
10-09-2011, 01:18
Dipende da quello che vuoi fare. :D

Si studiano in entrambe le facoltà, ma la prima è più teorica e incentrata su vaste conoscenze di algoritmi. La seconda più sullo sviluppo concreto del software, con un bagaglio culturale abbastanza variegato per poter affrontare varie problematiche reali.

*+*kekko*+*
10-09-2011, 01:22
Dipende da quello che vuoi fare. :D

Si studiano in entrambe le facoltà, ma la prima è più teorica e incentrata su vaste conoscenze di algoritmi. La seconda più sullo sviluppo concreto del software, con un bagaglio culturale abbastanza variegato per poter affrontare varie problematiche reali.
Sto usando Python in questo momento, ma che differenza c'è tra l'interfaccia IDLE e la Command Line? Quale mi conviene usare?

cdimauro
10-09-2011, 08:52
IDLE è una sorta di editor di testo, quindi puoi caricare e salvare il sorgente su cui hai lavorato.

Invece se lanci python, hai soltanto la command line, con la quale cominciare a smanettare. Ed è quello che ti serve al momento.