必读书籍:
- 《Go 程序设计语言》Go 语言学习最好的入门书籍。
- 《深入理解计算机系统》原书名为《Computer Systems A Programmer’s Perspective》。不过,这本书叫做《程序员所需要了解的计算机知识》更为合适。本书的最大优点是为程序员描述计算机系统的实现细节,帮助其在大脑中构造一个层次型的计算机系统。从最底层的数据在内存中的表示到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户态应用。通过掌握程序是如何映射到系统上,以及程序是如何执行的,你能够更好地理解程序的行为为什么是这样的,以及效率低下是如何造成的。这本书是程序员必读的一本书!
- 《算法导论》美国计算机科学本科生的教科书。
- 《计算机网络》这本书采用了独创的自顶向下方法,即从应用层开始沿协议栈向下讲解计算机网络的基本原理,强调应用层范例和应用编程接口,内容深入浅出,注重教学方法,理论与实践相结合。新版中还增加了无线和移动网络一章,并扩充了对等网络、BGP、MPLS、网络安全、广播选路和因特网编址及转发方面的材料。是一本不可多得的教科书。
- 《现代操作系统》这本书是操作系统领域的经典之作,书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入 / 输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。
- 《数据结构与算法分析 C 语言描述》这本书曾被评为 20 世纪顶尖的 30 部计算机著作之一,作者 Mark Allen Weiss 在数据结构和算法分析方面卓有建树,他在数据结构和算法分析等方面的著作尤其畅销,并广受好评,已被世界 500 余所大学用作教材。
- 《数据库系统概念》它是数据库系统方面的经典教材之一。国际上许多著名大学包括斯坦福大学、耶鲁大学、德克萨斯大学、康奈尔大学、伊利诺伊大学、印度理工学院等都采用本书作为教科书。这本书全面介绍了数据库系统的各种知识,透彻阐释数据库管理的基本概念。不仅讨论了数据库查询语言、模式设计、数据仓库、数据库应用开发、基于对象的数据库和 XML、数据存储和查询、事务管理、数据挖掘与信息检索以及数据库系统体系结构等方面的内容,而且对性能评测标准、性能调整、标准化以及空间与地理数据、事务处理监控等高级应用主题进行了广泛讨论。
- 《编译原理》又叫 " 龙书 ",其全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。
- 《计算机程序的构造和解释》, MIT 的计算机科学系的教材。这本书中主要证实了很多程序是怎么构造出来的,以及程序的本质是什么。整本书主要是使用 Scheme/Lisp 语言,从数据抽象、过程抽象、迭代、高阶函数等编程和控制系统复杂性的思想,到数据结构和算法,到编译器 / 解释器、编程语言设计。
- 《Unix 高级环境编程》
- 《UNIX网络编程》
- 《TCP/IP 详解 卷 I 协议》
学习网站:
- The Key To Accelerating Your Coding Skills 如何有效地快速提高自己的编程能力。
- 97 Things Every Programmer Should Know
- 提问的智慧 How To Ask Questions The Smart Way(中文版 )一文最早是由 Eric Steven Raymond 所撰写的,详细描述了发问者事前应该做好什么,而什么又是不该做的。作者认为这样能让问题容易令人理解,而且发问者自己也能学到较多东西。你可以到 StackOverflow 上看看如何问问题的一些提示 -- “FAQ for StackExchange Site”。
- Effective Go Go 语言官方的文档,必读,告诉你如何更好地使用 Go 语言,以及 Go 语言中的一些原理。
- List of Algorithms ,这个网站罗列了非常多的算法,完全可以当成一个算法字典,或是用来开阔眼界。
- Data Structure Visualizations 一个数据结构动画图的网站,便于更直观的理解数据结构。
- 数据库设计的那些事
- MySQL 中文文档
- Go 精华文章列表
- Go 相关博客列表
- Go Talks
- Awesome Go
实践:
- LeetCode 锻炼和检验自己的算法能力。
- 简书 目前自己的知识分享平台。
- Notion 做笔记的软件
- Learning English 英语学习
- English as a Second Language 英语学习
最后,学习的方法和方式是一件很个性化的事情,我的这些整理也只是自己的一些尝试。欢迎评论更多的学习方法和学习资源。