diff --git a/README.md b/README.md index e178ccf..c71cc8a 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,9 @@ 你可以[在线免费阅读这本书](https://pkuflyingpig.github.io/pku-cs-self-learning/)。 -英文版请移步[这里](https://github.com/PKUFlyingPig/Self-learning-Computer-Science)。 \ No newline at end of file +英文版请移步[这里](https://github.com/PKUFlyingPig/Self-learning-Computer-Science)。 + +## 如何成为贡献者 +一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出[Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。如果你想贡献一门新的课程,可以参考目前repo中的[template](./template.md)文件作为模版。 + +同时由于个人水平有限,书中难免有笔误甚至概念错误之处,也请各位不吝赐教,在issue中提出来。 \ No newline at end of file diff --git a/docs/CS学习规划.md b/docs/CS学习规划.md index d124107..2c0aa5d 100644 --- a/docs/CS学习规划.md +++ b/docs/CS学习规划.md @@ -18,8 +18,12 @@ IDE(Integrated Development Environment):集成开发环境,说白了就 [Makefile](必学工具/Makefile.md):一款工程构建工具。善用Makefile会让你养成代码模块化的习惯,同时也能让你熟悉一些大型工程的编译链接流程。 +[CMake](必学工具/CMake.md):一款功能比Makefile更为强大的构建工具,建议掌握Makefile之后再加以学习。 + [LaTex](必学工具/Latex.md):逼格提升论文排版工具。 +[Docker](必学工具/Docker.md):一款相较于虚拟机更轻量级的软件打包与环境部署工具。 + [实用工具箱](必学工具/tools.md):除了上面提到的这些在开发中使用频率极高的工具之外,我还收集了很多实用有趣的免费工具,例如一些下载工具、设计工具、学习网站等等。 ## 好书推荐 diff --git a/docs/index.md b/docs/index.md index c2623af..409c67e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -73,4 +73,4 @@ 在这里,我怀着崇敬之心真诚地感谢所有将课程资源无偿开源的各位教授们。这些课程倾注了他们数十年教学生涯的积淀和心血,他们却选择无私地让所有人享受到如此高质量的CS教育。没有他们,我的大学生活不会这样充实而快乐。很多教授在我给他们发了感谢邮件之后,甚至会回复上百字的长文,真的让我无比感动。他们也时刻激励着我,做一件事,就得用心做好,无论是科研,还是为人。 ## 你也想加入到贡献者的行列 -一个人的力量终究是有限的,这本书也是我在繁重的科研之余熬夜抽空写出来的,难免有不够完善之处。另外,由于个人做的是系统方向,很多课程侧重系统领域,对于数学、理论计算机、高级算法相关的内容则相对少些。如果有大佬想在其他领域分享自己的自学经历与资源,欢迎和我邮件联系(zhongyinmin@pku.edu.cn)。 \ No newline at end of file +一个人的力量终究是有限的,这本书也是我在繁重的科研之余熬夜抽空写出来的,难免有不够完善之处。另外,由于个人做的是系统方向,很多课程侧重系统领域,对于数学、理论计算机、高级算法相关的内容则相对少些。如果有大佬想在其他领域分享自己的自学经历与资源,可以直接在项目中发起Pull Request,也欢迎和我邮件联系(zhongyinmin@pku.edu.cn)。 \ No newline at end of file diff --git a/docs/必学工具/Docker.md b/docs/必学工具/Docker.md index 58224f6..faf0fb1 100644 --- a/docs/必学工具/Docker.md +++ b/docs/必学工具/Docker.md @@ -1,6 +1,9 @@ ## 为什么使用 Docker -使用别人写好的软件/工具最大的障碍是什么——必然是配环境。配环境带来的折磨能够极大地消解你对软件、编程本身的兴趣。虚拟机可以解决配环境的一部分问题,但它庞大笨重,且为了某个应用的环境配置好像真的不值得模拟一个全新的操作系统。 -Docker 的出现让环境配置变得(或许)不再折磨。简单来说Docker 使用轻量级的“容器”(container)而不是整个操作系统去支持一个应用的配置。应用自身连同它的环境配置被打包为一个个image可以自由运行在不同平台的一个个container中,这极大地节省了所有人的时间成本。 +使用别人写好的软件/工具最大的障碍是什么——必然是配环境。配环境带来的折磨会极大地消解你对软件、编程本身的兴趣。虚拟机可以解决配环境的一部分问题,但它庞大笨重,且为了某个应用的环境配置好像也不值得模拟一个全新的操作系统。 + +[Docker](https://www.docker.com/)的出现让环境配置变得(或许)不再折磨。简单来说Docker使用轻量级的“容器”(container)而不是整个操作系统去支持一个应用的配置。应用自身连同它的环境配置被打包为一个个image可以自由运行在不同平台的一个个container中,这极大地节省了所有人的时间成本。 ## 如何学习Docker -[Docker 官方文档](https://docs.docker.com/)当然是最好的初学教材,但最好的导师一定是你自己——尝试去使用Docker才能享受它带来的便利。Docker在工业界发展迅猛并已经非常成熟,你可以下载它的桌面端并使用图形界面。 \ No newline at end of file +[Docker 官方文档](https://docs.docker.com/)当然是最好的初学教材,但最好的导师一定是你自己——尝试去使用Docker才能享受它带来的便利。Docker在工业界发展迅猛并已经非常成熟,你可以下载它的桌面端并使用图形界面。 + +当然,如果你像我一样,是一个疯狂的造轮子爱好者,那不妨自己亲手写一个[迷你Docker](https://github.com/PKUFlyingPig/rubber-docker)来加深理解。 \ No newline at end of file