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

本文内容遵从CC版权协议 , 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/study/computer_science_knowledge_hierarchy.html

学了这么多年的计算机,真没好好梳理过整个计算机科学体系,正好看到一篇帖子讨论此问题,就此总结一下吧。

  • 理论
    • 数学理论(书籍:《具体数学》《离散数学》《数理逻辑》)
      • 基础数学
      • 高等数学(极限理论)
      • 数论(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毕业的同学都应该具备这些技能,不过包括我在内绝大部分同学都有欠缺,虽然毕业了,继续努力补上自己的缺陷。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值