CS自学计划
本人目前在浙大直博中。算是半路出家做图形学的课题,接触到很多计算几何的算法,也实践过两个项目,一个规模约22k代码行已经结束,一个目前规模约50k代码行还在进行。由于基础不够扎实,学习和实践中仍感觉吃力,用到什么才学什么,学的时候发现自己好多更基本的东西也不清楚,有种空中楼阁的感觉。决定趁这个开学季,制定一个CS自学计划,系统而全面的学习一下CS。通过制定计划也能理清自己已经掌握了哪些知识,同时作为一个对自己的监督。参考本校的CS培养计划和网络上的资料,把CS的知识体系整理了一下,然后看看自己还缺一些什么。
2017年的秋招季结束,最终选择了网易游戏,继续做些跟图形相关的工作。
声明:以下被标为Done的书不一定是系统性看完了的,有些只是看了个大概,然后作为工具书来查,求别喷。被标为Got的技能并不代表精通,仅仅是已经系统学习过,遇到问题可以通过查阅资料等途径快速解决,求别喷。所列的书目只是我看过和准备看的书,仅仅是对自己的记录回顾以及监督鼓励,并不代表我推荐这些书,找推荐书的请绕道。
1. 离散数学(Got)
《离散数学(第四版)》 John A.Dossey, Albert D.Otto, Lawrence E.Spence, Charles Vanden Eynden (2010 Done) 基础吧。
2. 数据结构 & 算法(Got)
《算法导论》(2010 Done)
高中(2006-2009)OI经历
本科(2009-2013)ACM经历
3. 数值分析(Got)
上课(2010)
《数值分析》 David Kincaid, Ward Cheney 虽然上过课,但是学的东西过于简单了,真正用到的时候还是得查阅更深入的书。
4. 计算几何
该部分处于不断学习中,学别人的算法,也改进别人的算法,研究自己的算法。也正是自己的研究显得吃力,所以萌生系统学习CS的念头。
《非均匀有理B样条(第2版)》 Les Piegl, Wayne Tiller (2015 Done) 研究曲线曲面必须掌握的一本书。
《计算机图形学与几何造型导论》 Ronald Goldman (2016 Done) 并不是很符合我的需求。
《计算几何 : 算法与应用》 Mark De Berg (2016 Done)
《计算几何 : 算法设计与分析》 周培德 (2016 Done)
《GIS数据结构与算法基础》 Stephen Wise (2016 Done)
《地理信息系统算法基础》 张宏 (2016 Done)
《自由曲线曲面造型技术》朱心雄(2016 Done)
邓俊辉老师的网络课程(2016 Done)
《计算机辅助几何设计》 王国瑾、汪国昭、郑建民(2017Done)
5. 计算机图形学
这个部分主要是做第一个项目时候赶鸭子上架,仓促之间学了就用,也没有打好基础,学得不是很系统。
《计算机图形学(第3版)》 Donald Hearn, M.Pauline Baker (2013 Done)
《Open GL编程指南(第7版)》 Dave Shreiner, The Khronos OpenGL ARB Working Group (2013 Done)
《DirectX 9.0 3D 游戏开发编程基础》 Frank D.Luna (201801 Done)
6. 编译原理(Not Yet)
《编译原理(第2版)》 Alfred V. Aho, Monica S.Lam (Not Yet)
7. 具体的程序语言
7.1 C(Got)
上课(2009-2010),课程作业小组做过一个国际象棋。
7.2 C++(Got)
《C++ Primer》 Stanley B. Lippman, Josee Lajoie, Barbara E. Moo 这本现在在当字典用
《C++编程思想(第1卷)(第2版)》 Bruce Eckel (2012 Done) 第一次接触面向对象的设计概念。
《C++编程思想(第2卷)(实用编程技术)》 Bruce Eckel (2013 Done)
《C++ STL中文版》 P.J.Plauger (2013 Done) 这本书倒是并没有看得太仔细,对STL实现现在还是一知半解哈。
以下这几本书和工程实践结合起来收获非常大,单纯看可能不以为意。
《Effective STL: 50条有效使用STL的经验》 Scott Meyers (2013 Done)
《Effective C++:改善程序与设计的55个具体做法(第3版)》 Scott Meyers (2014 Done)
《More Effective C++:35个改善编程与设计的有效方法》 Scott Meyers (2014 Done)
《C++编程风格》 Tom Cargill (2014 Done)
《C++编程规范: 101条规则、准则与最佳实践》 Herb Sutter, Andrei Alexandrescu (2015 Done)
7.3 Java(Not Yet)
《Java编程思想(第4版)》 Bruce Eckel (Doing) Java搞ACM的时候学习了一下,但是掌握的并不系统,再系统性学习一次。
7.4 Python(Got)
《Python基础教程(第二版)》 Magnus Lie Hetland(201712Done)
公司作业写了一个Lua Table的解释器,一个网络聊天室
7.5 LISP
做过一个课程作业。
7.6 C#(Doing)
《Head First C#》(Doing)
《CLR via C#》(Doing)
7.7 Lua
公司作业要求写个Lua Table 的解释器,接触了一些Lua的语法
8. 计算机系统概论(Got)
《深入理解计算机系统(第2版)》 Randal E.Bryant, David R.O'Hallaron (201604 Done)
9. 计算机组成与设计(Got)
《计算机组成与设计:硬件\软件接口》 David A. Patterson, John L. Hennessy (2016 Done)
《计算机组成原理(第2版)》 唐朔飞 (201606-07 Done)
网络课程(201606-07 Done)
10. 操作系统(Got)
《现代操作系统(第3版)》 Tanenbaum.A.S (2017Done)
《操作系统概念(第6版)》 Abraham Silberschatz, Peter Bear Galvin, Greg Gagne (2017Done)
网络课程(2017Done)
《Linux教程》 Syed Mansoor Sarwar, Robert Koretsky, Syed Aqeel Sarwar (2010 Done) 在学校里上了一门选修课。学了点基本的,搞ACM的时候一定要在Linux下,倒也是有了些实践。
11. 计算机网络(Got)
《计算机网络(第5版)》 Andrew S. Tanenbaum, Davi J. Wetherall (2017Done)
12. 数据库(Not Yet)
《数据库系统概念(第6版)》 Silberschatz.A. (Not Yet) 这门课当时还旁听过,但是没有掌握好,再系统性学习一次。
13. 软件工程(Got)
《软件工程:实践者的研究方法(第7版)》 Roger S.Pressman (2014 Done) 结合工程实践,收获很大。
《人月神话》Frederick P.Brooks(201705Done)
《设计模式:可复用面向对象软件的基础》 Erich Gamma,Richard Helm,Ralph Johnson(201707Done)
《并行程序设计导论》 Peter S. Pacheco(201708Done)
《程序开发心理学》 Gerald M. Weinberg (201712Done)
14. C++ & Windows工程实践(Got)
《深入浅出MFC》 侯俊杰 (2013 Done) 这本书对于我理解MFC起到很大帮助。
《VC++深入详解》 孙鑫 (2013 Done) 对于理解Windows那一套还是很有帮助的。
《Windows程序设计(第5版)》 Charles Petzold (2013 Done) 这本书略看了几章,然后作为工具书查阅了。
《C++ GUI Qt 4编程(第2版)》 Jasmin Blanchette, Mark Summerfield (Not Yet) 一度想学学Qt,不过由于项目一直在MFC下做,没有紧迫感,倒是一直没能动手学。
15. 其它
《浪潮之巅(第3版)》吴军(201711-12Done)对于了解行业很有帮助
《暗时间》刘未鹏(201803)关于思维的

浙公网安备 33010602011771号