{"id":13439090,"url":"https://github.com/niudai/How-to-be-a-good-programmer","last_synced_at":"2025-03-20T07:32:03.897Z","repository":{"id":39541565,"uuid":"197300890","full_name":"niudai/How-to-be-a-good-programmer","owner":"niudai","description":"I'm here to tell you some amazing stuff which teacher would never tell you.","archived":false,"fork":false,"pushed_at":"2022-10-26T02:49:46.000Z","size":1610,"stargazers_count":4120,"open_issues_count":12,"forks_count":703,"subscribers_count":104,"default_branch":"master","last_synced_at":"2024-10-15T01:41:05.776Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niudai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-17T02:33:37.000Z","updated_at":"2024-10-14T08:25:02.000Z","dependencies_parsed_at":"2022-07-16T10:16:15.229Z","dependency_job_id":null,"html_url":"https://github.com/niudai/How-to-be-a-good-programmer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niudai%2FHow-to-be-a-good-programmer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niudai%2FHow-to-be-a-good-programmer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niudai%2FHow-to-be-a-good-programmer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niudai%2FHow-to-be-a-good-programmer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niudai","download_url":"https://codeload.github.com/niudai/How-to-be-a-good-programmer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221739655,"owners_count":16872767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:01:11.047Z","updated_at":"2024-10-27T22:30:18.449Z","avatar_url":"https://github.com/niudai.png","language":"Makefile","funding_links":[],"categories":["HarmonyOS","Makefile"],"sub_categories":["Windows Manager"],"readme":"# 程序员修炼宝典\n\n![GitHub pull requests](https://img.shields.io/github/issues-pr/niudai/How-to-be-a-good-programmer)\n![GitHub issues](https://img.shields.io/github/issues/niudai/How-to-be-a-good-programmer)\n\n## 1. 电子书\n\n该目录给出了某些电子书的下载链接，他们是**从互联网下载到的**计算机经典教材.。\n\n`P.S.` URL 里的中文版教材大多数是经典英文教材的**中译本**，由于是扫描版，所以体积较大。我们尽可能地将这些**原版/高清扫描版**添加**电子书签**，并进行 `OCR` 处理，方便学习。\n\n**如果有任何侵权行为，请及时联系我们的 contributor 进行处理**。\n\n这里提供的教材都是入门教程，诸如高级计算机体系结构、高级网络调优、高级编译原理等类教材，暂不过多提供。\n\n### 1.1 下载说明 📖\n\n为避免版权问题，我们仅提供下载链接。\n\n本库会尽量避免提供下载速度非常慢的**百度网盘**下载链接，目前速度非常好的是**天翼云**，所以给出的下载链接基本都是天翼云的**永久无密码链接**，需注册天翼账号并登录，然后直接点击下载。\n\n如果遇到以下问题，请直接提 `Issue` 进行反馈。\n\n- 链接失效问题\n- 链接中的电子书与本描述文档不符问题\n- 链接中的电子书中有任何**标注**，如「高亮、批注、注释」等问题\n\n### 1.2 电子书链接 🔗\n\n单击以下超链接即可打开网页，然后点击下载即可。\n\n本目录会逐渐完善充实，有需要其他书籍但找不到的朋友，可以提请求，让大家帮你找。\n\n\u003e **重要提醒**：下面的链接及其简介中，标题中的超链接是该书的**原版链接**，翻译版将会在`该书中文版`字段中给出。\n\n#### 1.2.1 数学基础\n\n- [Discrete Mathematics and Its Applications](https://cloud.189.cn/t/7FVVBzyY7Zry) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：**离散数学**笼统地介绍了许多与计算机相关的数学领域，离散数学并不是「连续数学」即分析学的对立面，而是一个大杂烩，里面什么都有，排序、图论、自动机理论、编码、逻辑等等都被囊括其中。\n  - **该书中文版**：[《离散数学及其应用》](https://cloud.189.cn/t/yUjaAjMNnqIf) 【`OCR` | `带书签` | `高清扫描`】\n\n- [Operations Research: Applications And Algorithms](https://cloud.189.cn/t/BR7FJvymEzIb) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：运筹学是一个涉及过程优化的学问，在数学里是一个大的分支，网络流问题是该领域的研究核心，因为诸如指派、线性规划、整数规划、零一规划、拓扑图问题等，都可以全部或者部分地归为网络流问题。这个领域的问题以及结论非常多，建议非此专业的新手，把这门课当作算法课的补充与延伸，不要过于深入。\n  - **该书中文版**：**无中文版**\n\n- [Computational Complexity: A Modern Approach](https://cloud.189.cn/t/mY7RrqAf6RVf) 【`英文原版` | `无书签` | `English`】\n  - **简介**：可计算理论、计算复杂性理论应该是现代计算机的核心思想，这是阿兰·图灵和丘奇的开创性理论及拓展，学习本门课需要比较强的数学基础，但是这门课不一定是入门者必学的课，但是学了这门课之后，你会对计算机的原理将有更深刻的认视，比如 CPU 为什么需要寄存器，为什么有些问题是不可计算的，为什么计算安全性也能用于实际。由于本门课一般是研究生课程，而且实际应用中的作用不明显，所以不把这门课放在数学基础篇的开头。这本书的作者是著名的计算科学专家阿罗拉。\n  - **该书中文版**：[《计算复杂性：现代方法》](https://cloud.189.cn/t/FnYZBnmANN3m)\n\n#### 1.2.2 计算机基础\n\n- [Computer Systems: A Programmer's Perspective](https://cloud.189.cn/t/RfA3uaauEjim) 【`非英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**： 这本书简称 `CSAPP`，是所有入行计算机的人必看的一本「**内功心法**」，也是名校卡耐基·梅隆大学的计算机专业本科生基础教程，常看常新，海内外享誉无数。这本英文彩色版有点问题，不是原版，建议看中文版，对照英文。\n  - **该书中文版**：[《深入理解计算机系统》](https://cloud.189.cn/t/iEn2MfQZVvMv)【`OCR` ｜ `带书签` | `高清扫描` | `彩色版`】\n\n- [Computer Networking: A Top-Down Approach](https://cloud.189.cn/t/ree6zaBnYje2) 【`英文扫描版` | `彩色版` | `带凌乱书签` | `English`】\n  - **简介**：这是计算机网络经典教材，采用自顶向下方法写作，适合大多数人。由于这本书还没有开放授权，所以只能找到一个不太清楚的 PDF 英文版，不过该书的中文版很清楚，也有完美书签。另外，该书的[第六版](https://www.jianguoyun.com/p/DZDtkw0Qw8vpBxjd9b8C)已经开放下载，是英文原版，不介意的新手，可以参阅第六版英文版。\n  - **该书中文版**：[《计算机网络：自顶向下方法》](https://cloud.189.cn/t/mIzY7rmiUnua) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n- [Computer Networks: A Systems Approach](https://cloud.189.cn/t/yaaMraEfMrYb) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：该书与《计算机网络：自顶向下方法》齐名，该书的顺序是自底向上，但是没有花费过多的笔墨介绍物理层。该书对于链路层、网络层、高级网络层、端到端（传输层）的介绍非常详细，可以有助于网络学习者快速建立全局观，而且可以避免沉迷在纷繁的应用层协议里无法自拔。推荐初学者先看这本书。\n  - **该书中文版**：[《计算机网络：系统方法》](https://cloud.189.cn/t/QbAbainaE3Yb) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n- [Compilers: Principles, Techniques, and Tools](https://cloud.189.cn/t/nEFVzmR36fm2) 【`OCR` ｜ `带书签` | `高清扫描` | `English`】\n  - **简介**：这就是大名鼎鼎的编译原理「恐龙书」或「龙书」，另有「虎书」、「鲸书」，但是三本书中唯有龙书最牛\n  - **该书中文版**：[《编译原理》](https://cloud.189.cn/t/MNBzmynaaiAb) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n- [Operating System Concepts](https://cloud.189.cn/t/muiuAfmMbq2i) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：操作系统有很多的经典教材，这本书是其中之一。但是这本书正如其名字所示，着重于概念，对于一些细节和举例，并不是很详细。\n  - **该书中文版**：[《操作系统概念》](https://cloud.189.cn/t/ruqqArzUfqYb) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n- [Modern Operation Systems](https://cloud.189.cn/t/emIvMr3EBvaq) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：这本书的作者是著名的计算机科学家 Tanenbaum，作者名字一般译为**塔嫩鲍姆**，他也是著名的 MINIX 系统的作者。Linux 内核的作者 Linus Torvalds 在他的自传 Just for Fun 里面这样评价塔嫩鲍姆的另一本书：**每个人都会遇到一本改变自己一生的书吧......而安德鲁•坦尼鲍姆所著的书《操作系统：设计与实现》让我脱胎换骨，达到了一个全新的高度，改变了我的一生。** 这本《现代操作系统》更具现代意义，算是 Linus 高度赞誉的那本书的新时代版本。如果你能把这本书通读一遍，相信你肯定可以升华自己的境界。\n  - **该书中文版**：[《现代操作系统》](https://cloud.189.cn/t/fi2MJjMnUZFb) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n#### 1.2.3 算法基础\n\n- [Algorithms](https://cloud.189.cn/t/uIbQRbniQNrm) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：这本就是大名鼎鼎的「**算法4**」，这本书比《算法导论》简单点，但是学起来更顺手。\n  - **该书中文版**：[《算法》](https://cloud.189.cn/t/RBvIvurEFNZn) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n- [Introduction to Algorithms](https://cloud.189.cn/t/FbiuIfNZjMFr) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：算法导论是算法学习者必备的一本书，内容深度、广度都很大，是进阶选手、基础比较高的学习者所必看的一本算法书。该书给出的都是伪代码，因此比较适合理解原理。\n  - **该书中文版**：[《算法导论》](https://cloud.189.cn/t/iuqm2aVvemem) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n- [Computer Organization and Design: The Hardware/Software Interface](https://cloud.189.cn/t/J3YR7nmaAzim) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：这本书是**计算机原理**界的大牛 Patterson, David A. 的著作，此人是计算机原理界的大佬，更是计算机体系结构（也就是 CPU 原理）的执牛耳者，著名的《计算机体系结构：量化研究方法》也是他的作品。\n  - **该书中文版**：[《计算机组成与设计：硬件/软件接口》](https://cloud.189.cn/t/INrQ7vnQnaum) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n#### 1.2.4 UNIX \u0026 Linux\n\n- [Linux Kernel Development](https://cloud.189.cn/t/JvymayYjiE7n) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：内核开发比较硬，可以参阅。\n  - **该书中文版**：[《Linux 内核设计与实现》](https://cloud.189.cn/t/y6jENruEbEzm) 【`OCR` ｜ `带书签` | `次高清扫描`】\n\n- [Harley Hahn's Guide to Unix and Linux](https://cloud.189.cn/t/6jqErmBVvARr) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：这本书的作者哈雷·哈恩以幽默风趣的口吻讲述了 UNIX / Linux 的前世今生以及常用命令的由来、用法，这本书是入门 UNIX 世界的必读之书，假如你是一个对 UNIX 世界一无所知，只会用 Windows 的小白，那么这本书极其适合你。可惜的是，这本书的中文版绝版了；本书中文版被命名为 《Unix \u0026 Linux 大学教程》，实在让人摸不着头脑。\n  - **该书中文版**：[《Unix \u0026 Linux 大学教程》](https://cloud.189.cn/t/MNZr6jB3QRBv) 【`OCR` ｜ `带书签` | `次高清扫描`】\n\n- [Advanced Programming in the UNIX Environment](https://cloud.189.cn/t/veyiQfYVV7Rj) 【`英文原版` | `彩色版` | `带书签` | `English`】\n  - **简介**：UNIX 环境是绝大多数计算机从业者绕不开的，如果说 Harley Hahn's Guide to Unix and Linux 是入门者的有趣教程，那么这本书就是深入了解 UNIX 的一本必备之书。这本书作为 UNIX 的先驱 Stevens 的代表作，其价值不可估量。\n  - **该书中文版**：[《Unix 环境高级编程》](https://cloud.189.cn/t/j2uAFjRZnQny) 【`OCR` ｜ `带书签` | `高清扫描`】\n\n#### 1.2.5 数据库\n\n- [Database_System_Concepts](https://cloud.189.cn/t/eAviaifuqqIf) 【`英文原版` | `彩色版`】\n  - **简介**: 《数据库系统概念》是国外的经典数据库教材，里面关于并发，事务，锁等有细致系统的讲解。\n  - **该书中文版** [《数据库系统概念》](https://cloud.189.cn/t/b6vUFvmmyi2u)\n\n### 1.3 一键下载上述所有电子书\n\n对于想收集起这些电子书以供日常翻阅的学习者，可单击此[链接](https://cloud.189.cn/t/mquiQvIZBRza)下载全部电子书。\n\n## 2. 工具篇\n\n- 融入编程地球村：**[Github](doc/tools/tool_github.md)** 与 **[StackOverFlow](doc/tools/tool_stackoverflow.md)**\n\n## 3. 个人项目篇\n\n- **[搭建自己的技术博客](doc/projects/project_blog.md)**\n- **[如何参与开源项目](doc/projects/project_opensource.md)**\n\n## 4. 个人修养篇\n\n- **[如何学习英文, 融入英文世界](doc/abilities/ability_english.md)**\n- **[观念的转变: 学不如做, 实例驱动](doc/abilities/ability_task_driven.md)**.\n- **[学会输出知识, 尝试写文章](doc/abilities/ability_articles.md)**\n\n## 5. 工具篇\n\n- [Git学习](doc/tools/tool_git.md)\n- [命令行/快捷键学习](doc/tools/tool_command.md)\n\n## 6. 习惯篇\n\n- [电脑管理篇](https://www.zhihu.com/people/niu-dai-68-44/answers/by_votes) - 维护一个健康的电脑环境\n- [代码风格篇](doc/habits/habit_checkstyle.md) - 写出优雅代码\n- [视野篇](doc/habits/habit_know_how.md) - 获取更广视野\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniudai%2FHow-to-be-a-good-programmer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniudai%2FHow-to-be-a-good-programmer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniudai%2FHow-to-be-a-good-programmer/lists"}