As a self-taught programmer, what inside the black box is always mysterious to me. That's why I start this project.
- 计算机科学概论
- 读《计算机科学概论》(必读,了解计算机科学的全貌,适合初学者)⭐️⭐️⭐️⭐️⭐️
- 读《深入理解计算机系统》(必读,从程序员的角度理解程序是怎么运行的,有配套的课程视频,有一定的深度,适合进阶的初学者)⭐️⭐️⭐️⭐️⭐️
- 数字电路
- 视频教程
- 计算机组成原理和计算机体系结构
- 《计算机是怎样跑起来的》(适合初学者)
- 《穿越计算机的迷雾》(适合初学者)
- 读《编码:隐匿在计算机软硬件背后的语言》(必读,用通俗易懂的方式一步一步告诉你计算机是怎么做出来的,适合初学者)⭐️⭐️⭐️⭐️⭐️
- 下面这几本书都具备一定的专业性,而且与其他领域相关联,建议先阅读 CS:APP
- 《计算机组成与设计:硬件/软件接口》(做应用开发的看这本就够了)
- 《计算机体系结构:量化研究方法》
- 《计算机组成:结构化方法》
- 汇编语言
- 《汇编语言》(王爽著)
- 操作系统
- 读《The Linux Command Line》
- 《Unix & Linux大学教程》
- 《现代操作系统》⭐️⭐️⭐️⭐️⭐️
- 《UNIX 环境高级编程》
- 编译、链接(自己动手写一个编译器/解释器)
- 《编译原理》(龙书)
- 《现代编译原理——C 语言实现》(虎书,以例子贯穿前后端)
- 《高级编译器设计与实现》(鲸书,主要讲后端的,轮子哥推荐)
- 《编译器设计》(基本概念讲的比较清楚,比龙书容易理解,适合初学者)
- 《Parsing Techniques》(轮子哥推荐,主要讲前端)
- 《程序员的自我修养 : 链接、装载与库》⭐️⭐️⭐️⭐️⭐️
- 离散数学
- 《离散数学及其应用》
- 数据结构和算法
- 《数据结构与算法分析》(基础)⭐️⭐️⭐️⭐️⭐️
- 《算法》(基础)
- 《算法导论》(理论)
- 《编程珠玑》(思维)
- 计算机网络
- 《图解 HTTP》
- 《图解 TCP/IP》⭐️⭐️⭐️⭐️⭐️
- 《网络是怎样连接的》
- 《计算机网络:自顶向下方法》⭐️⭐️⭐️⭐️⭐️
- 《TCP/IP 详解》
- 数据库
- 《数据库系统概念》
- 程序设计、编程思想
- 设计模式
- 《Head First 设计模式》(Java 语言)
- 《设计模式》
- 编程范式
- 《七周七语言:理解多种编程范型》
- 斯坦福大学公开课:编程范式
- 编码修养
- 《代码大全》(必读)⭐️⭐️⭐️⭐️⭐️
- 《重构:改善既有代码的设计》
- 《修改代码的艺术》
- 《代码整洁之道》
- 《程序员的职业素养》
- 《编写可读代码的艺术》
- 程序设计思想
- 《计算机程序的构造和解释》(必读)⭐️⭐️⭐️⭐️⭐️
- 《UNIX 编程艺术》
- 《松本行弘的程序世界》
- 《计算的本质:深入剖析程序和计算机》
- 设计模式
- 编程语言
- C
- 《C 程序设计语言》
- 《C 语言程序设计现代方法》
- C++
- 《Accelerated C++》
- 《C++ Primer》
- 《C++ 编程思想》
- Objective-C
- Java
- Python
- 《Python 编程:从入门到实践》
- 《Python 编程快速上手》
- JavaScript
- Ruby
- Swift
- C
- 细分领域
- 自学编程和计算机科班出身的差别在哪? - David Zhang的回答 - 知乎
- 大学理科生零基础自学计算机和编程有哪些书籍和方法比较好? - SkyDragon的回答 - 知乎
- 计算机专业学生一定要学好这几门课! - 知乎
- 计算机专业的学生怎样练习编程才能把编程学精通啊? - 知乎
- 如何自学计算机专业课程? - 知乎
- 学编译原理有什么好书? - 知乎
- 国外的计算机专业是如何教 《计算机组成原理》 这门课的? - 知乎
- 怎样学习和理解计算机组成原理? - 知乎
- 左耳朵耗子的专栏 - 极客时间(推荐)
- 故胤道长:去美国读名校,在硅谷写代码
- 《软技能:代码之外的生存指南》
- 《Learn More Study Less》
- 《学习之道》
- 《如何阅读一本书》