学习这件事情,还是要从点滴做起。
1 对于各种技术还有引擎,其实弄明白一个,其他的也就差不多了,都是互相借鉴。关键是要如何开始,如何深入。拿C来说,首先就是基本的语法和结构,指针和IO是重点,其中穿插些数据结构and离散数学,主要是有一个程序化的思想。接下来就可以看C++了,说C++是面向对象其实不准确,基于类应该是较准确,c++重点的是掌握类的概念以及纷繁复杂的继承关系,这时候一些基础的东西就显得灰常重要;当把C++搞清楚后,就可以开始从标准c++升级到Win32或者Linux了,这其中关键的是要找个方向深入。各平台都好,VC(windows应用),LinuxC(嵌入式用的较多?)或者object C(苹果的,据说Iphone应用啥的需要),随便你想做哪个,深入下去即可。
2 下面开始是平行的学习些别的语言,推荐:Java,主要原因是,java结构很好,而且基于自己的虚拟机,便于跨平台;此时,你有了C的概念,java的前N章的基础就很好学,后面的东西主要就是结构啥的,其实,我觉得Java的思想还是很好,譬如说你可以用Java的架构来揣摩OGRE,或者你自己写CPP程序的时候也可以应用Java的结构。多看好的语言结构和思想,对于自己今后的发展,也是很有帮助的。
3 接下来就是各大小引擎,关于引擎,你可能需要先具备某种语言的能力,主要弄清楚处理流程和管线(一般开始的介绍都有),跑一个helloworld就可以了。剩下的知识,可以在实际做东西的时候查找,帮助文件很重要,一定要学会使用。
4 上面1 2 3 感觉是由底往上,还有诸多兄弟弄很高深的活计,譬如说OS的开发,那种更底层的我也没接触过,仅是流于表面。时间是有限的,找一个点来突破会比较好,譬如说,某人喜欢网络,就重点突击网络相关的,譬如说TCP/IP,B/B(C)等的应用等。
5 如果你喜欢图形图像方面的开发,就可以找一个点来辐射,譬如说图形方面:可以从OpenGL/D3d开始,随便选一个,只不过OpenGL更偏向于动画电影数字后期啥的,D3D则是虚拟现实和游戏等实时渲染的必备武器。一般学校讲OpenGL的较多,D3d的可能少,D3D的先修课程应该是Win32的编程。学习的过程中,会涉及到一些数学和物理的知识,以及图形学的知识,可以问题或点的形式来学习,不必通篇书籍阅读,太残忍了。基础的学习过后,就可以接触一些好的引擎,譬如说OGRE,这个是开源的,而且结构比较好;或者别的,譬如说UnReal啥的(现在也免费了);用引擎的好处是,不用从底层写,想用调就行,而且好的引擎有很好的脚本兼容性,这样开发会很省事。
6 其实,光是图形这块的工具就有很多,从搞研究的Madlab,到流行的游戏引擎,任何一种工具都是值得研究和学习的。看到庞杂的东东不要慌,认真从跬步做起,就能拨开云雾,看清未来滴!