干嘛要清华的课表啊,你又不是身在清华,身处在一群牛人之中你才会越变越牛的,光买教材又浪费钱又看不进去。而且学计算机是不靠教材的,你需要的教材是以下这些:百度、Google、Wikipedia、Stackoverflow。你的练习本包括:POJ、ZOJ、TC、CF。要是真说正经八百的教材的话,我推荐以下这些:《设计模式——可复用面向对象的软件元素》、《编程之美》、《算法导论》、《重构》。(看过这些书你的修养会上一个档次的,因为这些书教的都是哲学和修养一类的东西,码农之所以为码农,就是因为他们不但缺乏编程上的修养,还不愿意积极思考,因此成不了合格的工程师,只能为别人写代码),能用自己的手写出自己的思想才是好的程序员。
关于学科方向,每一个大二或者大三的学生都得给自己的未来定好学科方向,不是什么写代码、做网站、编大程之类的,而是你以后准备研究和服务的计算机领域,分为软、硬、网、图四大类,具体拆开讲太多了,比如大数据、信息检索、计算机视觉、图形学、游戏设计(难度巨高的,不是玩游戏)等等。
其他和学科分类相关权威书籍的有(都是些教材,我仔细读过一部分,确实是经典):
《计算机图形学》——图形学(科学家的行业,计算机游戏和动画大师的诞生的地方)
《数字图像处理》——计算机视觉(服务于各行各业的一个学科方向)
《数据库系统原理》《数据挖掘概念与技术》——数据库(永远有工作可找的方向)
《Hadoop权威指导》——分布式系统、云计算(其实目前还很虚)
《搜索引擎——信息检索实践》——搜索引擎(互联网改变世界的工具)
《计算机组成设计——软/硬件接口》——硬件体系设计(一条难走的路,Intel等着你)
《IT项目管理》、《软件工程——实践者之路》——IT管理(一个软件工程师的自我修养,估计工作几年以后才看得进去吧,我上项目管理课的时候觉得这两本就是天书,而且又大又重又贵,打死也别去买)
。。(学科方向太多,根本说不完的)
有一个方向比较特别,就是计算机游戏,我说的特别是“特别难”:
其实,关于计算机游戏行业,很多人不理解从事游戏设计与开发的工程师为什么工资那么高:一个互联网方向名企的研发工程师刚毕业年薪也就十七八万吧,而搞游戏开发的年薪则可以高达三十几万(想想金融危机就知道这个待遇已经很不错了)。其实能搞游戏开发的人都是多面手,既对openGL、游戏引擎编程有很深的造诣(这可是硬功夫,一点水分都没有的,动不动就是几千行代码自己写)、又有创意(游戏要好玩)、有美术功底(界面、主题要好看,审美方面还得把关),一般人没几个能干的好,所以才造就了这么高的职业地位和待遇。如果LZ你有兴趣从事计算机游戏行业的话,那么本科就学计算机图形学方向吧(就算以后当不了游戏设计师也可以当个计算机科学家的),研究生还得继续深造的。
计算机行业的书大都很贵,又很厚,所以很难看进去的,推荐你上网去下载对应的电子书。要是懒得手工找,可以用Python或者Java写个爬虫自动上网搜。
另外,为了学好计算机你需要的是数学和计算机的融合,数学是思维、计算机是工具,两者结合才能锻炼出解决问题的能力。其中线性代数是最关键的,因为学会用矩阵来思考有利于你快速适应计算机的数字世界。做Online Judge上的算法习题可以帮助你达到训练的目的。
计算机中有一门课叫数值分析,是一门将离散数学、代数、数学分析串到一起的课。难度不小,不过学起来很有意思,并且对思维起到很好的训练作用,推荐你自己找相关资料看看。
PS:我是个ZJU计算机学院的小菜鸟,现在在百度实习。我成绩普普通通,编程能力也一般,感受身边大牛的学术气息所以悟到了一些道理,现在正向他们努力呢。LZ加油吧~