我一直是一个很大程度上独立的学习者,从维基百科和各种书籍中收集到的东西.但是,我担心我可能会因无意中遗漏主题和概念而偏向于我的自我教育.我的目标是从顶尖大学自学相当于计算机科学的本科学位(无所谓).
为此,我购买并开始阅读一些学术教科书:
计算机程序的结构与解释
算法简介
人工智能:现代方法
除了我在一所平庸的州立大学上课时留下的一些教科书:
计算机模拟方法导论
微积分:概念和连接
计算机组织与架构
操作系统概念
数据库系统的第一门课程
形式语言和自动机
我的问题是:
本系列未涵盖哪些主题?
是否有比这里列出的书更严格或更彻底(甚至更容易阅读)的书籍?
有没有浪费我时间的书?
我应该以什么顺序阅读这些书?
麻省理工学院或斯坦福大学(或UCB或CMU ......)本科生学到了什么,我可能会错过什么?
欢迎使用软件工程书籍,但请在学术研究的范围内.我知道Code Complete和Pragmatic Programmer,但我正在寻找一种更理论化的方法.谢谢!
我看到最大的两个遗漏:
龙书
计算机网络
对于操作系统,我更喜欢Tanenbaum而不是Silberschatz,但两者都很好:
操作系统
关于订单,这取决于您的兴趣.没有太多先决条件,编译器的自动机是最明显的.首先阅读自动书,然后是龙书.
我不知道你拥有的所有书籍,但我知道的书籍已经足够好,这可能意味着其他书籍也是不错的.
你也缺少一些逻辑和离散的数学书籍.
让我们不要忘记一些数据库理论书!
我找到的最好的方法是选择你最喜欢的大学,去他们的网站,并查看学位课程.许多大型课程都为每门课程发布了所需的阅读材料.麻省理工学院的Open Course Ware就是一个很好的例子.
顺便说一下,这也适用于非CS学位课程.
Don Knuth的计算机编程艺术
麻省理工学院几年前推出了他们的"OpenCourseWare"计划.他们在线提供书籍/家庭作业/讲座,因此您可以跟随麻省理工学院的课程:
http://web.mit.edu/catalogue/degre.engin.ch6.shtml