Temo che in Italia non ci sia nessuna laurea davvero adatta, ma la piu' vicina e' "informatica".
Ecco una lista di cose che avevo scritto per preparare un programma per una scuola. Escludo la parte di rendering e tutte le conoscenze specifiche per i vari reparti. Questo programma copre piu' o meno quello che ci serve da un programmatore Junior.
In genere siamo titubanti al prendere i Junior dall'estero, ma facciamo eccezioni per persone che si dimostrano eccezionalmente portate.
C++:
Generally, when the language is known (with books like “Thinking in C++”, which is free), the best solution is to read all the “Effective” books by Meyers.
When the read is done, apply everything to real problems.
- Casts: C++ has its own casts, they need to be well known.So cosa sono, più o meno come si usano, ma molto probabilmente c'è molto da sapere che non mi hanno insegnato di striscio
- RTTI: what it is.real time ti? non so cosa sia la sigla
- “const” keyword: what does it mean in C++ and how to proficiently use it.A ingengeria lo insegnano male. A informatica saltano il pezzo.
- Templates: what are them and how to use them proficiently .Fatti in teoria mai usati veramente all'uni
- STL containers and algorithms: How to use them. Even if not used directly, is the best approximation to any container.ci mancherebbe che la insegnassero all'uni
- Compile/Link: what happens during compilation and linkingFatto e stiamo approfondendo
- Namespaces: how to use them PRaticamente mai visti
- Preprocessor: how to use it. Visto, ora stiamo approfondendo
- References: how and when to use them Mai fatte
- Cache: how it works and how to make your code faster. Beh stiamo facendo Archietettura degli elaboratori
Programming:
Every argument should be presented with some exercises with real problems.
- Patterns: at least GOF. boh
- OOP: classes, objects, inheritance, polymorphism and so on. Per ora fatto da cani con java(oop spiegato in 2 minuti e senza òab, forse migliora nel secondo semeste)
- Multithreading: synch solutions, double buffering, deadlock problems and so on.stiamo facendo
- Data structures: Lists, Trees, Hashmap, sets and so on.fatto
- Optimization: choose the best algorithm for every situation.si può dire che sia stato fatto
Math:
Every argument should be presented with some exercises with real problems.
- Vectors
o What is a Vector: representation and simple operations. yes
o Dot product and Cross Product: What are them, what they mean and how they are calculated fatto
o Trigonometry: how to solve vector problems with trigonometry fattp
- Matrices
o What is a Matrix: representation and main operations (mul, add, sub).fatto
o Rotation, View and Proj Matrices: how are built, what they represent. matrici fatte praticamente solo a scopo teorico, in realtà non so come si comportano nello spazio. quei capitoli sono stati saltati a quanto pare
o Homogeneous Coordinates and Matrices: what are homogeneous coordinates and how are used in 3d computer graphics.
- Quaternionsfigurati
o What is a Quaternion: definition, representation and basic operations.figurati
o Rotation using Quaternions: What problem solves, when to use itfigurati
o Gimbal Lock: what it is and why quaternions solve itfigurati
In neretto cosa abbiamo fatto a metà 2° anno /fine secondo anno (so per certo che alcune cose non verranno fatte in questo secondo semestre)
Ora io mi rendo conto che stiamo facendo cose veramente troppo teoriche. Nel primo semestre non c'era un corso che necessitava l'apertura di un ide per sbaglio.
Il debugging non ci è stato insegnato, ma ce lo fanno fare a caso.
L'oop non è stato praticamente fatto se non con un'introduzione a java fatta da cani(ora dovremmo lavorare in maniera più approfondita su java) il bello è che abbiamo perso tutto il primo semestre a farci le pippe su un interprete in ocaml.
Il c++ non verrà mai insegnato, se non con una breve introduzione al terzo anno nel corso di interfacce.
Algebra lineare è stata trattata male a quanto pare(non sono sicuro ho seguito il corso da un'altra parte) in quanto nel programma sono stati i saltati i capitoli che parlano di elementi geometrici.
Alla fine posso dire di "conoscere" C,java,ocaml,sql (e c++ che ho fatto a ing inf) ma in realtà non me ne è mai stato insegnato uno in maniera approfondita. Il C qui è stato fatto da cani, per fortuna conosco un pò meglio il c++ (e ne manca di roba).
In pratica il programma prevede: 1° anno: caml & c | 2° : java & ocaml |introduzione al c++
In neretto c'è solo quello che conosco tramite università.
Ora io cerco anche di studiare le lacune a cui la mia uni non può porre rimedio per conto mio, però è una grossa sfacchinata. Dato che devo studiare+studiare quello che mi interessa e vorrei anche vivere.
uno come diamine deve fare???

Alla specialistica (che qui fa abbastanza schifo) gli unici corsi utili per il game programming sono stati tolti.
Non posso fare la triennale e presentarmi da un sh di vg senza aver mai fatto niente, mi prenderebbero forse se li pagassi per lavorare

(manco morto)
è un bel casino. consigli?