问题描述:看了《谈谈我对攻读计算机研究生的看法》文章,里面谈到编程修炼的一些观点,毕竟是有经验的人写的吧,做下摘录。

    关于怎样才是有实际开发经验:



    1)你已经认为C++和汇编语言都是很简单的语言,并能够自如地运用;2)你能够在30 分钟之内想到正确的五子棋AI 算法设计思路和方向;3)你完全理解STL 为什么这么重要;4)你能够独立地解决所有的编译与链接问题,哪怕你从来没有遇到的问题,你也不需要询问任何人;5)英文网站是你的首要信息来源;6)能够读懂英语写成的国际标准,比如NTFS 磁盘格式标准。7)你经常站在集合论的角度思考算法问题;8)能够理解一个简单的驱动程序,能够理解一个简单3D 交互程序;9)你能够认识到线性代数和概率论在实际编程工作中的极端重要性;10)你完全理解COM的设计思想,尤其能够理解COM 为什么要设计成这样;11)当我说到虚函数的重要作用时,你不会急着去找书来翻;12)你能够说出C++为什么比其他语言优秀的理由。



    需要满足当中至少5条。其实感觉就是几点:英语要好,算法功底深厚,程序语言运用能力强,对语言设计方法和模式非常了解。



    关于有理论深度的算法设计:



    大规模数据的搜索算法,3D场景生成,图形变换,碰撞检测,物性模拟,纹理映射,灯光模型等。



    计算机理论发展基础的一些巨匠:



    欧拉,费马,高斯,康托,图灵等。



    关于实战经验与理论学习的优劣问题:



    管理信息系统,设备驱动开发,工具软件开发,软件病毒剖析等等这些工作不太需要创造性,需要的是耐心和经验,需要的是对既有规范的准确理解,这类开发工作最适合在实战中提高。但在人工智能,模式识别,图像



压缩,虚拟现实,巨量数据检索,自然语言理解,计算机图形学等等需要深厚理论知识。