Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

练习题与扩展阅读

练习题

基础题

  1. 请画出计算机系统的层次结构,标明每层的名称和核心职责。
  2. 为什么程序员需要理解计算机系统的层次结构?请结合自己的工作经验举例说明。
  3. 列举3个你在实际开发中遇到的和底层知识相关的问题,以及你是怎么解决的。

思考题

  1. 有人说“现在编程语言和框架越来越高级,程序员不需要懂底层知识了“,你同意这个观点吗?为什么?
  2. 如果让你给刚入行的程序员推荐学习路径,你会怎么安排?
  3. 抽象层的设计给计算机系统带来了什么好处?又带来了什么弊端?

实践题

  1. 选择一个你常用的技术框架或工具,尝试分析它建立在哪些底层技术之上,梳理出它的技术栈层次。
  2. 列出你当前知识体系中比较薄弱的3个底层知识点,并制定一个学习计划。

扩展阅读

书籍推荐

  1. 《深入理解计算机系统》(Computer Systems: A Programmer’s Perspective)

    • 经典中的经典,程序员必读的计算机系统教材
    • 从程序员的视角讲解计算机系统原理,实践性很强
    • 适合有一定基础的开发者深入学习
  2. 《编码:隐匿在计算机软硬件背后的语言》

    • 非常通俗易懂的计算机原理科普书
    • 从最基础的编码原理讲起,层层深入
    • 适合初学者入门,建立对计算机的整体认知
  3. 《计算机组成原理》(唐朔飞版)

    • 国内经典的计算机组成原理教材
    • 讲解全面,适合系统学习硬件相关知识
    • 适合想要深入了解硬件原理的开发者
  4. 《现代操作系统》(Modern Operating Systems)

    • 操作系统领域的经典教材
    • 详细讲解了操作系统的各个核心模块
    • 适合深入学习操作系统原理

文章/教程推荐

  1. 《程序员的自我修养》

    • 讲解程序的编译、链接、运行的底层原理
    • 理解程序运行的本质
  2. Linux insides

    • 开源的Linux内核讲解教程
    • 适合想要了解Linux内核实现的开发者
  3. 《网络是怎样连接的》

    • 通俗易懂的网络知识科普书
    • 从用户输入网址开始,到页面返回的完整过程
    • 适合网络知识入门

课程推荐

  1. MIT 6.004 Computation Structures

    • MIT经典的计算机组成原理课程
    • 从数字逻辑讲到处理器设计
    • 适合想要深入理解计算机硬件的开发者
  2. MIT 6.828 Operating System Engineering

    • MIT经典的操作系统课程
    • 包含大量的实践内容,需要自己实现一个小型操作系统
    • 适合深入学习操作系统原理

答案提示

练习题的参考答案可以在附录/练习题参考答案.md中找到。建议先独立思考完成,再查看答案。