练习题与扩展阅读
练习题
基础题
- 请画出计算机系统的层次结构,标明每层的名称和核心职责。
- 为什么程序员需要理解计算机系统的层次结构?请结合自己的工作经验举例说明。
- 列举3个你在实际开发中遇到的和底层知识相关的问题,以及你是怎么解决的。
思考题
- 有人说“现在编程语言和框架越来越高级,程序员不需要懂底层知识了“,你同意这个观点吗?为什么?
- 如果让你给刚入行的程序员推荐学习路径,你会怎么安排?
- 抽象层的设计给计算机系统带来了什么好处?又带来了什么弊端?
实践题
- 选择一个你常用的技术框架或工具,尝试分析它建立在哪些底层技术之上,梳理出它的技术栈层次。
- 列出你当前知识体系中比较薄弱的3个底层知识点,并制定一个学习计划。
扩展阅读
书籍推荐
-
《深入理解计算机系统》(Computer Systems: A Programmer’s Perspective)
- 经典中的经典,程序员必读的计算机系统教材
- 从程序员的视角讲解计算机系统原理,实践性很强
- 适合有一定基础的开发者深入学习
-
《编码:隐匿在计算机软硬件背后的语言》
- 非常通俗易懂的计算机原理科普书
- 从最基础的编码原理讲起,层层深入
- 适合初学者入门,建立对计算机的整体认知
-
《计算机组成原理》(唐朔飞版)
- 国内经典的计算机组成原理教材
- 讲解全面,适合系统学习硬件相关知识
- 适合想要深入了解硬件原理的开发者
-
《现代操作系统》(Modern Operating Systems)
- 操作系统领域的经典教材
- 详细讲解了操作系统的各个核心模块
- 适合深入学习操作系统原理
文章/教程推荐
-
- 讲解程序的编译、链接、运行的底层原理
- 理解程序运行的本质
-
- 开源的Linux内核讲解教程
- 适合想要了解Linux内核实现的开发者
-
- 通俗易懂的网络知识科普书
- 从用户输入网址开始,到页面返回的完整过程
- 适合网络知识入门
课程推荐
-
MIT 6.004 Computation Structures
- MIT经典的计算机组成原理课程
- 从数字逻辑讲到处理器设计
- 适合想要深入理解计算机硬件的开发者
-
MIT 6.828 Operating System Engineering
- MIT经典的操作系统课程
- 包含大量的实践内容,需要自己实现一个小型操作系统
- 适合深入学习操作系统原理
答案提示
练习题的参考答案可以在附录/练习题参考答案.md中找到。建议先独立思考完成,再查看答案。