您的位置:首页 > 理论基础

理想的计算机科学知识体系

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毕业的同学都应该具备这些技能,不过包括我在内绝大部分同学都有欠缺,虽然毕业了,继续努力补上自己的缺陷
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: