/**************************/
A CHI E' RIVOLTO.
non so bene cosa sia questo topic, ma e' indirizzato sia coloro che vogliono iniziare a programmare da 0 se vogliono sapere VERAMENTE qual e' la realta', sia a quelli che gia' sono piu' esperti e possono ( se vogliono ) aggiungere qualcosa o dire se non sono d'accordo.
ho scritto PROGRAMMARE che io intendo come CODICE PURO, no tools, bombe a mano , trick e track, etc...
qui si parla di farsi male a battere i polpastrelli sulla tastiera, se non fa per voi please leave.
/************************************/
INTRO.
volevo discutere qui le modalita' di instradamento dei nuovi adepti.
ho visto fin troppi topic ( qui come in altre centinaia di forum ) di persone che arrivano e dicono :
" ciao, stamattina mi sono svegliato e fare un videogioco , insegnatemi a programmare ".
cistighetdoun (calma ragazzo).
ecco la paternale :
creare un gioco da zero e' un vero bordello, ancor di piu' programmarlo e' un lavoro di cacca.
non e' che uno un giorno ha una ispirazione divina...
/***************************/
PATERNALE.
ci vogliono non solo attitudine, pazienza (tanta) e umilta', ma altro ancora.
attitudine : perche' se proprio in testa non ti entrano seno, coseno, equazioni, etc,... e tutta la matematica ( che come sapete per quanto non vi piaccia e' fondamentale) allora e' meglio che lasci stare, perderai solo tempo inutilmente che invece puoi utilizzare per fare altre cose che ti piacciono.
pazienza : ok puoi stare anche 6 ore di fila a giocare a q3 o ut2003, ma quanto tempo riesci a stare dietro ad una pagina di codice ?
sai cosa vuol dire rileggerti 2000 volte un dannato file sa 3596 righe perche' non riesci a vedere che hai sbagliato un carattere ? ( & vs * per chi gia' lo sa )
oppure cercarti alle 3 di notte su siti polacchi degli esempi di funzioni per i vertex array ?
ce la farai ? lo spero .
umilta': questa e' nuova, ve la spiego : non dire mai piu' "non funziona" SCORDATELO !!! sostituiscilo con " SONO UN COGLIONE, SONO IO CHE NON CAPISCO" il pc e' una macchina ficcatelo in testa,fa solo esattamente quello che gli dici di fare, se qualcosa non va la colpa e' solo tua.
Sii umile e chiedi su tutti i forum che vuoi , spiega il problema chiaramente e posta il tuo codice, gli aiuti arriveranno , ma NON aspettarti che qualcuno scriva il codice al posto tuo.
allora vogliamo continuare o hai gia' rinunciato ?
bene proseguiamo.
/********************************/
CHI SEI ? UN PROGRAMMATORE !!!
cosa vuoi fare ?
hai le idee chiare ?
se sei qui e' per programmare , a te non interessa se i modelli 3ds o le textures sono carine, hanno i fiorellini rosa e i coniglietti blu... a quello ci penseranno gli altri.
il tuo compito e' fare in modo che vengano vengano caricati il piu' rapidamente possibile, leva quella funzione con 8 parametri e riscrivine per l' ennesima volta una versione migliore , quando hai finito fatti un caffe' creati lo stack a mano e riscrivila di nuovo.
c'e' la musichetta dei blur di sottofondo ?
il tuo musicista e' un copione , ma tu con una variabile e mezza (lol) riesci a far suonare tutta la collezione di mp3 scaricati da internet.
capiamoci : se quello che ti attira e' creare modelli 3d eccezionali o effetti sonori mozzafiato, non ti serve programmare, buttati su milkshape, 3ds o altro le tue vere qualita' saranno esaltate , il codice lo produrranno gli altri.
/**************************/
DA DOVE PARTIRE
ora che le nuvole si sono diradate passiamo alle basi.
ora sappiamo calcolare gli integrali, ma torniamo bambini un attimo, alle elementari, quando la maestra ci insegnava le tabelline 2x1=2,2x2=4,2x3=6...
non e' uno scherzo, dobbiamo partire da zero per cui inizieremo dalle basi.
non puoi partire sparato su ogl o directx se non cosa e' un vettore !!!
per cui niente grafica o altro, solo console e programmini facili e stupidi ( si,si, STUPIDI ) prendere un numero, moltiplicarlo per 2, scrivere il tuo nome tutto maiuscolo etc,...
non te ne farai mai nulla in futuro, lo sappiamo, ma senza ste cavolate non vai da nessuna parte !!! non dire di no !!!
"PERFAVORE INSERICI UN NUMERO TRA 0 e 9 : " (lo ricordate ? )
/************************/
L'ARTE.
prima di passare all'atto pratico ancora un po' pazienza.
programmare e' veramente un' Arte ( ve lo accorgerete col tempo ) esistono programmi che sono stupendi, utili, etc, ma sono programmati da cani.
un utente normale non se ne accorge, non ne valuta obbiettivamente le prestazioni, semplicemente spende quei 1000 o piu' euro per aggiornarsi il supercomputer.
ma tu programmatore te ne accorgi ed inizi a bestemmiare.
Inoltre ognuno di noi ha uno stile.
quando avrete perso il conto di quante righe di codice scrivete per ogni programma avrete acquisito il vostro stile che sara' piu' o meno piacevole, ma comunque sara' personale.
/*************************/
GLI STRUMENTI, I VOSTRI PENNELLI.
finalmente ci siamo arrviati !!!
per programmare avete bisogno di un linguaggio.
prima di chiedere "QUALE" leggete sotto.
dato che come abbiamo detto questa e' un arte non e' importante se usate i pennarelli i pastelli o i colori ad olio.
e' la forma mentis che avete acquisito che vi permette con una certa maturita' di scegliere autonomamente quale linguaggio usare , al limite gli altri ve lo potranno consigliare, spiegandovene i motivi.
Ovviamente i pennarelli avranno un certo effetto, sono facili da usare , ma la qualita' sara' scarsa.
Al conttrario i colori ad olio sono eccezzionali, ma anche molto piu' difficili da usare.
Inoltre a cosa vi srvono ?
Se ho bisogno di un cartello per scrivere "affittasi" usero' un pennarello ( devo essere veloce e chiaro )
Per la riproduzione della cappella sistina mi sparero' tavolozza e colori ovviamente ( ho molto tempo, voglio realizzare tutto con i minimi perticolari )
"devo andare in un colorificio ???"
/*******************************/
I LINGUAGGI.
i linguaggi di programmazione sono molti, se avete letto sopra non ne esite uno "migliore" dell'altro, tutte le disquisizioni che vengono fatte sono del tutto superflue.
sono molti ed alcuni esistono da molto tempo e sono anche caduti in disuso.
se partite da zero allora IL MIO CONSIGLIO PERSONALE e' il seguente :
INIZIATE CON IL C
"perche' ?"
io mi ritengo della vecchia scuola ( ho iniziato con pascal ).
quello che ho visto e' che il pascal E' per eccellenza il linguaggio didattico.
ringrazio dio o chi per esso per aver iniziato con il pascal.
e' bello (personale), facile e da la possibilita' di capire dal basso cosa vuol dire PROGRAMMA.
"perche' se lo magnifichi cosi' tanto non lo consigli ?"
e' abbastanza vecchiotto, ed e' abbastanza hard per quello che riguarda la grafica ( ed e' per quello che voi siete qui nevvero ?)
Il C non e' la quint'essenza della facilita', ma permette a basso livello all' inizio di fare tutto quello che volete e successivamente ( mesi ) di passare ogl o direct X.
"Mio cugino usa java..."
bene java e' un linguaggio ad oggetti (scoprirete poi cosa vuol dire) ed e' molto facile pensare pensare che tutto quello che esista sia un "oggetto" e "fare operazioni" su oggetti, inoltre e' portabile che vuol dire che fatto il vostro programmino adeguatamente compilato, puo' girare anche su un registratore di cassa.
"e allora?"
omettendo la questione oggetti e classi java si scrive come il c.
cioe' dopo aver imparato per benino il c con poche ore potrete anche scrivere in java ( RIPETO ECCEZIONE PER CLASSI E OGGETTI,ED "ECCEZIONI" OVVIAMENTE LOL )
inoltre quello che ho visto praticamente da vicino e' che la gente che impara java da subito partendo da 0 e dopo va su c ha grosse difficolta' quando si passa alla sezione "puntatori" che tanto vi dovrete beccare lo stesso prima o poi, per cui perche' rimandare ?
Per ultimo vi posso assicurare che UT2003,QUAKE3,DOOM3,.. o qualsiasi altro NON sono scritti in java.
Ma ad esempio la chat di tgm-online e' scritta in java (e' un applet).
e' piu' chiaro ora ?
"ma il C++?"
ancora parli ???
c++ va benissimo ,perbacco, ma perfavore evita di passare subito alle classi, ancora non sai cosa e' una variabile !!!
e poi (per assurdo) il tuo codice scritto in c lo puoi "riciclare" e mettere dentro un programma in c++
C#(sharp),.net,pyton.. etc... e gli altri milioni di linguaggi vanno benissimo ma se vuoi partire da 0 e ti attacchi subito a quelli lo fai a tuo rischio e pericolo
riassumendo per il mio caro neofita livello di gradimento:
pascal 3
c 5
c++ 4
java 3
/***********************************/
I COMPILATORI.
"basta!!!"
invece no, siamo quasi alla fine.
cmq se sei arrivato a leggere fino qui +10 punti al carisma.
quello di cui hai bisogno e' un compilatore.
il codice del tuo programma lo puoi scrivere anche con notepad, ma per generare il file eseguibile hai bisogno di un compilatore.
Semplificando:
scrivete il "codice" del vostro "programma" su un "file di testo" che dato in pasto ad un "compilatore" il quale vi produce un "file eseguibile".
NON e' esattamente cosi' ( esempio, dll, byte code interprete,etc,...) ma e' per un neofita e' una buona approssimazione.
Ovviamente se il codice e' scritto in C avete bisogno di un compilatore C, se in java di un compiletore java etc...
se avete un codice scritto in C++ ed un compilatore Pyton vi accorgerete che c'e' qualcosa che non va LOL!!!
Per le risorse e' inutile che vi dia consigli una semplice ricerca fatta con google vi portera' nei meandri piu' profondi dei compilatori free, per cui li potete scaricare gratuitamente ed utilizzare senza problemi.
se usate una distribuzione linux non dovete nemmeno fare lo sforzo di cercarli, in genere stanno sui cd !!!
Ah, non che vi spinga a mettere su linux, ma dateci un' occhiata comunque e' veramente utile, fidatevi.
/**********************************/
CONCLUSIONE.
a tutti i programmatori neofiti un buon :
"HELLO WORLD"