理想的计算机科学知识体系
2015-09-09 10:01
162 查看
学了这么多年的计算机,真没好好梳理过整个计算机科学体系,正好看到一篇帖子讨论此问题,就此总结一下吧。
理论
数学理论(书籍:《具体数学》《离散数学》《数理逻辑》)
基础数学
高等数学(极限理论)
数论(Number Theory)
离散数学(集合论、图论)
数理逻辑
形式语言与自动机(Automata,书籍:《形式语言与自动机》)
几何理论(Geometry)
硬件(书籍:《Computer Architecture: A Quantitative Approach》)
计算机组成原理:计算机组成部件、CPU时间片、存储体系、IO接口、总线技术
计算机体系结构:多处理机、流水技术、指令调度
计算机微机原理:一种处理机的具体结构、引脚作用
数字电路:逻辑门电路、触发器、组合电路设计
机器语言编程
汇编程序设计(Assembly)
可执行文件格式
链接(Linking)与加载(Loading)
操作系统(书籍:《现代操作系统》《操作系统实现》)
进程与线程理论
段页式内存管理
文件系统
IO管理
内核与驱动
程序设计基础(书籍:《The Art of Computer Programming》)
数据结构(书籍:《数据结构与算法分析》)
算法
算法分析(书籍:《算法分析》)
算法设计(书籍:《算法导论》)
程序设计语言
编译原理(《编译原理》龙书)
C一定要会
C++/Java建议要会(《C++ Primer》《Effective C++》《Thinking in
Java》)
C#/F#等新语言了解
Python/Perl/Shell等脚本语言掌握其一
编程框架和库
平台程序开发
Windows程序设计(书籍:《Programming Windows》)
Linux/Unix系统编程(书籍:《Advanced Programming in the UNIX
Environment》)
跨平台程序设计
程序库
C++:STL/Boost/MFC/
跨平台:GTK/wxWidgets/Qt
Perl:CPAN
程序设计与软件工程
面向对象的程序设计方法,必须掌握(书籍:《深入浅出设计模式》《Thinking in UML》《The Unified
Modeling Language User Guide》)
敏捷(Agile)、统一过程(RUP)、迭代方法(Iterative)建议掌握一些
调试和测试方法必须掌握一些
应用
计算机网络(书籍:《计算机网络》)
数据库(书籍:《数据库系统概念》《数据库系统实现》)
WEB应用
并行开发(Concurrent Programming)
分布式系统(Distributed System)
非常理想的计算机科学知识结构,原则上每个CS毕业的同学都应该具备这些技能,不过包括我在内绝大部分同学都有欠缺,虽然毕业了,继续努力补上自己的缺陷
理论
数学理论(书籍:《具体数学》《离散数学》《数理逻辑》)
基础数学
高等数学(极限理论)
数论(Number Theory)
离散数学(集合论、图论)
数理逻辑
形式语言与自动机(Automata,书籍:《形式语言与自动机》)
几何理论(Geometry)
硬件(书籍:《Computer Architecture: A Quantitative Approach》)
计算机组成原理:计算机组成部件、CPU时间片、存储体系、IO接口、总线技术
计算机体系结构:多处理机、流水技术、指令调度
计算机微机原理:一种处理机的具体结构、引脚作用
数字电路:逻辑门电路、触发器、组合电路设计
机器语言编程
汇编程序设计(Assembly)
可执行文件格式
链接(Linking)与加载(Loading)
操作系统(书籍:《现代操作系统》《操作系统实现》)
进程与线程理论
段页式内存管理
文件系统
IO管理
内核与驱动
程序设计基础(书籍:《The Art of Computer Programming》)
数据结构(书籍:《数据结构与算法分析》)
算法
算法分析(书籍:《算法分析》)
算法设计(书籍:《算法导论》)
程序设计语言
编译原理(《编译原理》龙书)
C一定要会
C++/Java建议要会(《C++ Primer》《Effective C++》《Thinking in
Java》)
C#/F#等新语言了解
Python/Perl/Shell等脚本语言掌握其一
编程框架和库
平台程序开发
Windows程序设计(书籍:《Programming Windows》)
Linux/Unix系统编程(书籍:《Advanced Programming in the UNIX
Environment》)
跨平台程序设计
程序库
C++:STL/Boost/MFC/
跨平台:GTK/wxWidgets/Qt
Perl:CPAN
程序设计与软件工程
面向对象的程序设计方法,必须掌握(书籍:《深入浅出设计模式》《Thinking in UML》《The Unified
Modeling Language User Guide》)
敏捷(Agile)、统一过程(RUP)、迭代方法(Iterative)建议掌握一些
调试和测试方法必须掌握一些
应用
计算机网络(书籍:《计算机网络》)
数据库(书籍:《数据库系统概念》《数据库系统实现》)
WEB应用
并行开发(Concurrent Programming)
分布式系统(Distributed System)
非常理想的计算机科学知识结构,原则上每个CS毕业的同学都应该具备这些技能,不过包括我在内绝大部分同学都有欠缺,虽然毕业了,继续努力补上自己的缺陷
相关文章推荐
- 如何系统化学习计算机
- 理想的计算机科学知识体系
- python 网络爬虫开源框架scrapy
- Cacti - SOCKSTAT - tcpInuse
- 计算机网络学习——04
- Android主线程不能访问网络异常解决办法
- 适合新手的网络编程,用socket传文件(本例传的是jpg图片) 用到sendfile函数
- HTTP/2 与 WEB 性能优化(三)
- HTTP/2 与 WEB 性能优化(二)
- HTTP/2 与 WEB 性能优化(一)
- 贝叶斯网络
- 【转载】TCP TIME_WAIT详解
- delphi请求idhttp数据
- window环境下的ip网络释放和重新连接
- 计算机网络- 可靠数据传输协议-设计和实施的协议,如停止的
- 通达OA 小飞鱼老师OA工作流设计课程教学网络公开课之HTML基础(二)
- 通达OA 小飞鱼老师OA工作流设计课程教学网络公开课之HTML基础(二)
- 读书笔记之TCP/IP1(2)
- HTTP 错误 500.19 - Internal Server Error
- 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的解决办法