L'angolo dello sviluppatore in erba (o del curiosone)

Pubblicità
Dajeeee che magari qualcuno ci comincia a capire qualcosa :rickds:

 
Bel topic, lo stavo aspettando e anzi mi sono sorpreso quando l'ho cercato ma non ho trovato nulla.

Allora, smanetto in questo tipo di mondo da circa 10 anni, ma da autodidatta devo dire di aver imparato poco o nulla (non che sia impossibile eh, il problema è stato mio che o non ho avuto le dritte giuste o per mancanza di tempo o non lo so).

Iniziare l'università 3 anni fa è stata la svolta: ho imparato il c (un esame enorme e sono sicuro che chiunque faccia informatica sappia di cosa sto parlando) e ho sviluppato un clone di snake e di arkanoid con un framework per c in grado di visualizzare finestre (quindi con interfaccia grafica assolutamente primitiva). Successivamente ho studiato Java al secondo anno. Ho iniziato parallelamente a smanettare su Unity (il codice lo scrivevo in c#) e ho realizzato un endless side scroller non malvagio, ma decisamente spoglio e brutto graficamente). Dopodiché per l'esame di programmazione 2 in Java ho dovuto sviluppare il gioco della dama: è stata un'esperienza catartica, ho imparato un mare di cose, dal framework AWT agli algoritmi necessari per la gestione dell' IA e alle mosse possibili (alberi binari di ricerca, hash tables e array dinamici). Ci avrò speso sopra qualcosa come 2-300 ore, ma mi ha fruttato un 30 e lode, e tuttora lo reputo il mio più grande successo universitario e motivo d'orgoglio.

Volete un consiglio dall'alto del mio niente? Cominciate da qualcosa di semplice, e per semplice intendo tetris, snake, arkanoid, ecc.

Lo so che il sogno è creare qualcosa di grande e bello, ma dovete sporcarvi le mani. DOVETE, perché anche solo snake ha tantissimo da insegnarvi. Chiaramente prima dovete imparare un linguaggio e non c'è nulla come un buon manuale (chiedetemi pure consiglio su quale, in casi siate interessati) assieme a qualche tutorial pratico.

Sviluppare software è una pratica magnifica e affascinante da morire, ma ha la tendenza di succhiare la vita di chi vi si dedichi con passione (mi capita spesso di avere un bug e di pensare al perché e a come risolverlo continuamente, in ogni momento della giornata, tanto da risultare assente per chi mi sta accanto).

Se avete qualche domanda specifica chiedete pure, se volete il source code della dama la posto senza problemi //content.invisioncic.com/a283374/emoticons/winks.gif

 
Ultima modifica da un moderatore:
Bel topic, lo stavo aspettando e anzi mi sono sorpreso quando l'ho cercato ma non ho trovato nulla.








Allora, smanetto in questo tipo di mondo da circa 10 anni, ma da autodidatta devo dire di aver imparato poco o nulla (non che sia impossibile eh, il problema è stato mio che o non ho avuto le dritte giuste o per mancanza di tempo o non lo so).

Iniziare l'università 3 anni fa è stata la svolta: ho imparato il c (un esame enorme e sono sicuro che chiunque faccia informatica sappia di cosa sto parlando) e ho sviluppato un clone di snake e di arkanoid con un framework per c in grado di visualizzare finestre (quindi con interfaccia grafica assolutamente primitiva). Successivamente ho studiato Java al secondo anno. Ho iniziato parallelamente a smanettare su Unity (il codice lo scrivevo in c#) e ho realizzato un endless side scroller non malvagio, ma decisamente spoglio e brutto graficamente). Dopodiché per l'esame di programmazione 2 in Java ho dovuto sviluppare il gioco della dama: è stata un'esperienza catartica, ho imparato un mare di cose, dal framework AWT agli algoritmi necessari per la gestione dell' IA e alle mosse possibili (alberi binari di ricerca, hash tables e array dinamici). Ci avrò speso sopra qualcosa come 2-300 ore, ma mi ha fruttato un 30 e lode, e tuttora lo reputo il mio più grande successo universitario e motivo d'orgoglio.

Volete un consiglio dall'alto del mio niente? Cominciate da qualcosa di semplice, e per semplice intendo tetris, snake, arkanoid, ecc.

Lo so che il sogno è creare qualcosa di grande e bello, ma dovete sporcarvi le mani. DOVETE, perché anche solo snake ha tantissimo da insegnarvi. Chiaramente prima dovete imparare un linguaggio e non c'è nulla come un buon manuale (chiedetemi pure consiglio su quale, in casi siate interessati) assieme a qualche tutorial pratico.

Sviluppare software è una pratica magnifica e affascinante da morire, ma ha la tendenza di succhiare la vita di chi vi si dedichi con passione (mi capita spesso di avere un bug e di pensare al perché e a come risolverlo continuamente, in ogni momento della giornata, tanto da risultare assente per chi mi sta accanto).

Se avete qualche domanda specifica chiedete pure, se volete il source code della dama la posto senza problemi //content.invisioncic.com/a283374/emoticons/winks.gif




Ecco, chiedo a te per un mio dubbio.

Come si chiama esattamente la specializzazione universitaria per studiare linguaggi di programmazione? Ingegneria informatica?

 
Ultima modifica:
Ecco, chiedo a te per un mio dubbio.


Come si chiama esattamente la specializzazione universitaria per studiare linguaggi di programmazione? Ingegneria informatica?
Non esiste: Informatica, che sia Scienze o Ingegneria, insegna le basi dei linguaggi di programmazione (Java e/o C, di solito), ma nessuna insegna SOLO ed esclusivamente quelli ad un livello avanzato.

"Vuoi sapere più di quello che insegnamo? Sei grande, hai internet, imparalo da solo" //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

Entrambe comunque li trattano allo stesso modo, sia che tu scelga l'una o l'altra. Le differenze sono altre (a patto che ci siano :pffs: )

 
Ultima modifica da un moderatore:
Non esiste: Informatica, che sia Scienze o Ingegneria, insegna le basi dei linguaggi di programmazione (Java e/o C, di solito), ma nessuna insegna SOLO ed esclusivamente quelli ad un livello avanzato."Vuoi sapere più di quello che insegnamo? Sei grande, hai internet, imparalo da solo" //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

Entrambe comunque li trattano allo stesso modo, sia che tu scelga l'una o l'altra. Le differenze sono altre (a patto che ci siano :pffs: )
Attualmente sono in seconda superiore, manca ancora un po' all'università //content.invisioncic.com/a283374/emoticons/sisi.gif

Quindi non esiste qualcosa di specifico su tale ambito? Credo che sono io a non capire //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

 
Attualmente sono in seconda superiore, manca ancora un po' all'università //content.invisioncic.com/a283374/emoticons/sisi.gifQuindi non esiste qualcosa di specifico su tale ambito? Credo che sono io a non capire //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif
Lo sbaglio comune è pensare che l'università ti insegni a programmare: non è così, l'università ti da gli strumenti base per poter arrivare a conoscere i linguaggi a fondo, ma non insegna tutto l'insegnabile.

Ergo: non esiste una facoltà o indirizzo che insegni solo i linguaggi o che li insegni in modo approfondito //content.invisioncic.com/a283374/emoticons/sisi.gif

 
Un suggerimento spassionato per tutti quelli che vogliono approfondire il lato programmazione. Non imparate la programmazione mentre imparate a far giochi! Imparate bene a programmare prima e dopo buttatevi sui vg. Non solo avrete una preparazione più solida, ma la cosa vi aiuterà di certo da subito.

Al giorno d'oggi il monto dei VG è prevalentemente C++ con C# talvolta usato per script e cose varie. Altre cose si aggiungono se volete occuparvi di grafica (non lato artistico, lato tecnico), ma vi assicuro che è decisamente troppo avanzato come argomento per iniziare.

Il problema di C++ è che è un po' tanto esteso e per impararlo come cristo comanda ci vogliono anni e sicuramente un po' d'esperienza. Se dovete iniziare partirei con C (che è un linguaggio piccolino ed ottima palestra) e da lì poi mi muoverei ad altro. C# anche è sicuramente più alla portata.

Altra cosa che dovete imparare lato tecnico per poter iniziare è qualche rudimento di algebra lineare. Per far gameplay a livello base forse non più di tanto, ma un minimo sì.

Il mio unico problema a seguire i video è che quelli in lingua inglese ovviamente sono i più completi, e io ancora non lo capisco perfettamente, potrei perdermi facilmente //content.invisioncic.com/a283374/emoticons/sad.png
Dovrei trovarne qualcuno in italiano //content.invisioncic.com/a283374/emoticons/uhm.gif

- - - Aggiornato - - -

Avevo in mente delle idee per dei titoli, purtroppo rimangono ancora ancorati alla teoria e non alla pratica //content.invisioncic.com/a283374/emoticons/250978_ahsisi.gif

Purtroppo per il mondo del gamedev, ma in generale per tutto quello che concerne l'informatica, l'inglese è molto più che necessario :(

Ecco, chiedo a te per un mio dubbio.
Come si chiama esattamente la specializzazione universitaria per studiare linguaggi di programmazione? Ingegneria informatica?

Nessuna //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

Informatica (come ho fatto io) ha sicuramente più programmazione di Ingegneria Informatica. Ma non ti aspettare che all'uni si programmi da mattino a sera, anzi, si porgramma ben poco, ma si impara molto altro di utile, oltre che un ottima forma mentis. La maggiorparte lo devi fare da autodidatta.

Un linguaggio di programmazione è strumento, l'importante è imparare bene a programmare e la logica che vi è dietro. Fatto ciò imparare altri linguaggi è "facile".

EDIT: Sono stato ninjato //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

 
Ultima modifica da un moderatore:
Un suggerimento spassionato per tutti quelli che vogliono approfondire il lato programmazione. Non imparate la programmazione mentre imparate a far giochi! Imparate bene a programmare prima e dopo buttatevi sui vg. Non solo avrete una preparazione più solida, ma
Al giorno d'oggi il monto dei VG è prevalentemente C++ con C# talvolta usato per script e cose varie. Altre cose si aggiungono se volete occuparvi di grafica (non lato artistico, lato tecnico), ma vi assicuro che è decisamente troppo avanzato come argomento per iniziare.

Il problema di C++ è che è un po' tanto esteso e per impararlo come cristo comanda ci vogliono anni e sicuramente un po' d'esperienza. Se dovete iniziare partirei con C (che è un linguaggio piccolino ed ottima palestra) e da lì poi mi muoverei ad altro. C# anche è sicuramente più alla portata.

Altra cosa che dovete imparare lato tecnico per poter iniziare è qualche rudimento di algebra lineare. Per far gameplay a livello base forse non più di tanto, ma un minimo sì.

Purtroppo per il mondo del gamedev, ma in generale per tutto quello che concerne l'informatica, l'inglese è molto più che necessario :(

Nessuna //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

Informatica (come ho fatto io) ha sicuramente più programmazione di Ingegneria Informatica. Ma non ti aspettare che all'uni si programmi da mattino a sera, anzi, si porgramma ben poco, ma si impara molto altro di utile, oltre che un ottima forma mentis. La maggiorparte lo devi fare da autodidatta.

Un linguaggio di programmazione è strumento, l'importante è imparare bene a programmare e la logica che vi è dietro. Fatto ciò imparare altri linguaggi è "facile".

EDIT: Sono stato ninjato //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif
In neretto ciò che ho dimenticato di scrivere io prima //content.invisioncic.com/a283374/emoticons/250978_ahsisi.gif

Perciò non buttatevi di faccia sulle OpenGL :rickds:

 
Storia? E che cos'è? Il gameplay prima di tutto:game:

@Spelli e Cifa: Moolto interessante, mi sapete consigliare qualche buon manuale? (faccio il quarto superiore)

Spelli, potresti postare il source code di quel gioco della dama oppure se lo hai ancora quello di Arkanoid? Con tutta probabilità non ci capirò niente, ma vorrei vedere da vicino:sisi:

 
Storia? E che cos'è? Il gameplay prima di tutto:game:

@Spelli e Cifa: Moolto interessante, mi sapete consigliare qualche buon manuale? (faccio il quarto superiore)

Spelli, potresti postare il source code di quel gioco della dama oppure se lo hai ancora quello di Arkanoid? Con tutta probabilità non ci capirò niente, ma vorrei vedere da vicino:sisi:
Per Arkanoid purtroppo credo di aver perduto i file o devo mettermi a cercarli su qualche hdd esterno. Puoi comunque seguire

, volendo, però se sei completamente a digiuno io eviterei //content.invisioncic.com/a283374/emoticons/sisi.gifPer la dama: https://github.com/spelli93/Classic_Checkers

Per il manuale io ho studiato su quello di Kochan: http://www.amazon.it/Programmare-C-Introduzione-al-linguaggio/dp/8871926609

 
Ultima modifica da un moderatore:
Storia? E che cos'è? Il gameplay prima di tutto:game:

@Spelli e Cifa: Moolto interessante, mi sapete consigliare qualche buon manuale? (faccio il quarto superiore)

Spelli, potresti postare il source code di quel gioco della dama oppure se lo hai ancora quello di Arkanoid? Con tutta probabilità non ci capirò niente, ma vorrei vedere da vicino:sisi:
Posto che tutto quello che ho imparato l'ho fatto facendo e googlando quando avevo dubbi, il primissimo libro di programmazione che ho aperto e che parte da 0 è C: Corso completo di Programmazione di Deitel&Deitel. Lo consiglio in Inglese e si chiama C: How to Program. L'ho ripreso in mano per verificare e non mi sembra male.

 
Un suggerimento spassionato per tutti quelli che vogliono approfondire il lato programmazione. Non imparate la programmazione mentre imparate a far giochi! Imparate bene a programmare prima e dopo buttatevi sui vg. Non solo avrete una preparazione più solida, ma la cosa vi aiuterà di certo da subito.
Al giorno d'oggi il monto dei VG è prevalentemente C++ con C# talvolta usato per script e cose varie. Altre cose si aggiungono se volete occuparvi di grafica (non lato artistico, lato tecnico), ma vi assicuro che è decisamente troppo avanzato come argomento per iniziare.

Il problema di C++ è che è un po' tanto esteso e per impararlo come cristo comanda ci vogliono anni e sicuramente un po' d'esperienza. Se dovete iniziare partirei con C (che è un linguaggio piccolino ed ottima palestra) e da lì poi mi muoverei ad altro. C# anche è sicuramente più alla portata.

Altra cosa che dovete imparare lato tecnico per poter iniziare è qualche rudimento di algebra lineare. Per far gameplay a livello base forse non più di tanto, ma un minimo sì.

Purtroppo per il mondo del gamedev, ma in generale per tutto quello che concerne l'informatica, l'inglese è molto più che necessario :(

Nessuna //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

Informatica (come ho fatto io) ha sicuramente più programmazione di Ingegneria Informatica. Ma non ti aspettare che all'uni si programmi da mattino a sera, anzi, si porgramma ben poco, ma si impara molto altro di utile, oltre che un ottima forma mentis. La maggiorparte lo devi fare da autodidatta.

Un linguaggio di programmazione è strumento, l'importante è imparare bene a programmare e la logica che vi è dietro. Fatto ciò imparare altri linguaggi è "facile".

EDIT: Sono stato ninjato //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif
Grazie di tutti i consigli, in poche parole intendi che all'università non s'impara tutto sui linguaggi di programmazione, ma si studiano le basi (o meglio le "fondamenta") che permettono di approfondire come più si vuole.

Per l'Inglese io non capirò mai come possano mettere solo 3 ore a settimana, peraltro in un ITIS //content.invisioncic.com/a283374/emoticons/sad.png

 
Ultima modifica:
Grazie di tutti i consigli, in poche parole intendi che all'università non s'impara tutto sui linguaggi di programmazione, ma si studiano le basi (o meglio le "fondamenta") che permettono di approfondire come più si vuole.
Per l'Inglese io non capirò mai come possano mettere solo 3 ore a settimana, peraltro in un ITIS //content.invisioncic.com/a283374/emoticons/sad.png
Uhm non proprio, ma anche. Il linguaggio di programmazione non è la cosa importante. All'uni si fa un po' di programmazione, un po' di algoritmi (vedila un po' come "problem solving"), un po' di altre materie legate a computer science (sistemi operativi, basi di dati, architetture degli elaboratori etc.) e parecchia matematica. Tutta roba che se non ti è utile nell'immediato ti forma sicuramente bene.

Ripeto, non è il linguaggio di programmazione quello che si deve imparare. Si deve imparare a programmare e progettare, ma sopratutto la logica che è dietro il programmare.

E poi sì, devi lavorare tanto per conto tuo.

L'inglese imparalo leggendo il più possibile in inglese su internet e vedendo tanti video/film/serie tv in lingua inglese con sottotitoli e giocando in inglese. Tutto questo è ovviamente un debole sostituto di buon corso se parti con poche basi.

 
Ultima modifica da un moderatore:
Uhm non proprio, ma anche. Il linguaggio di programmazione non è la cosa importante. All'uni si fa un po' di programmazione, un po' di algoritmi (vedila un po' come "problem solving"), un po' di altre materie legate a computer science (sistemi operativi, basi di dati, architetture degli elaboratori etc.) e parecchia matematica. Tutta roba che se non ti è utile nell'immediato ti forma sicuramente bene. Ripeto, non è il linguaggio di programmazione quello che si deve imparare. Si deve imparare a programmare e progettare, ma sopratutto la logica che è dietro il programmare.

E poi sì, devi lavorare tanto per conto tuo.

L'inglese imparalo leggendo il più possibile in inglese su internet e vedendo tanti video/film/serie tv in lingua inglese con sottotitoli e giocando in inglese. Tutto questo è ovviamente un debole sostituto di buon corso se parti con poche basi.
La matematica dell'università prosegue ciò che si fa alle superiori o tratta altri argomenti, più avanzati? :morristend:

 
La matematica dell'università prosegue ciò che si fa alle superiori o tratta altri argomenti, più avanzati? :morristend:
Stiamo belli OT //content.invisioncic.com/a283374/emoticons/smile.png Ti consiglio il topic di Informatica in spazio scuola o il topic universitario in Altro.

Comunque sia, per chiudere l'OT, va oltre quello fatto alle superiori e parecchio (Analisi I e II), sia altri argomenti più avanzati (Probabilità, Algebra, Matematica del discreto, logica fra quelli che ho fatto alla triennale). Però questo è un po' tanto OT //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

 
Stiamo belli OT //content.invisioncic.com/a283374/emoticons/smile.png Ti consiglio il topic di Informatica in spazio scuola o il topic universitario in Altro. Comunque sia, per chiudere l'OT, va oltre quello fatto alle superiori e parecchio (Analisi I e II), sia altri argomenti più avanzati (Probabilità, Algebra, Matematica del discreto, logica fra quelli che ho fatto alla triennale). Però questo è un po' tanto OT //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif
Sì, in effetto siamo fuori completamente dall'argomento del topic //content.invisioncic.com/a283374/emoticons/emoticons_dent1005.gif

Comunque grazie delle risposte, ora ho capito meglio il funzionamento dell'università :sasa:

 
Comunque appena finita sta sessione inizio ad immergermi nell'Unreal Engine 4 (mi hanno dato 1 anno gratis :kappe:)

 
Finalmente il topic prende forma //content.invisioncic.com/a283374/emoticons/Predicatore.gif

Mi cercherò qualcuno dei libri che avete citato e cercherò di imparare il linguaggio C.

Nel frattempo ogni volta che potrò proverò a seguire pari pari un qualche tutorial di qualche giochino scemo, nel mio piccolo già lo faccio //content.invisioncic.com/a283374/emoticons/250978_ahsisi.gif

È un lavoro difficilissimo comunque, avere un'idea geniale è fondamentale, ma le idee possono averle tutti, a saper programmare ad alti livelli invece ci si deve applicare. La vera arte, paradossalmente, è la parte tecnica. //content.invisioncic.com/a283374/emoticons/sisi.gif

 
Pubblicità
Pubblicità
Indietro
Top