计算机科学自学指南
如果有一位好老师教你一门好课程,每个人都应该享受计算机科学。
新冠肆虐,网课盛行,计算机科学热门,这一系列事件使得自学计算机成为了一种趋势。
随着欧美众多名校将高质量的计算机课程全部开源,自学计算机科学成了一件可操作性极强的事情。毫不夸张地说,只要你有毅力和兴趣,自学的成果完全不亚于你在国内任何一所大学接受的本科计算机教育(当然,这里仅指计算机专业领域,大学带给你的显然不止是专业知识)。
我很庆幸在大一时就选择了自学计算机科学这条路,它让我爱上了这门学科,也极大地拓宽了我的视野。
但同时,自学这条路也有很多困难和阻力:课程繁多不知如何选择,资料零散甚至残缺,作业难度不知深浅,课内任务还需要花时间应付······这些主客观因素叠加到一起,使得好课虽多,却只能在收藏夹里吃灰。
在大学的第四个年头,我想把这一路自学走来的经验和教训,把那些让我受益终身的课程记录下来,分享给大家,形成了这本计算机科学自学指南,以期能给所有想自学计算机的朋友一点帮助。
我的目标是让一个刚刚接触计算机的小白,可以完全凭借这些开源社区的优质资源,少走弯路,在2-3年内成长为一个有扎实的数学功底和代码能力,经历过数十个千行代码量的项目洗礼,掌握至少C/C++/Java/JS/Python/Go/Rust等主流语言,对算法、电路、体系结构、网络、操作系统、编译、人工智能、机器学习、计算机视觉、自然语言处理、强化学习、密码学、信息论、博弈论、数值分析、统计学、分布式、数据库、图形学、Web开发、云服务、超级计算等等方面均有所涉猎的全能程序员。此后,无论是选择科研还是就业,我相信你都会有相当的竞争力。
如何成为贡献者
一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出Pull Request。如果你想贡献一门新的课程,可以参考目前仓库中的template文件作为模板,并在mkdocs.yml文件中添加其导航,当然你还可以在计算机科学学习规划里的对应模块为其添加言简意赅的导语。如果你有想推荐的书籍,请参考好书推荐模块上方的注释按相应格式添加内容。
对于中英混合排版的要点规范,可以参考这个仓库,我们将会对您的Pull Request做相应的校对,具体原因参见这个issue。
本书支持英文版,因此贡献的内容需要提供对应的英文翻译,具体流程可以参考这个issue。
同时由于个人水平有限,书中难免有笔误甚至概念错误之处,也请各位不吝赐教,在issue中提出来。
关于交流社区的建立
本书支持页面评论功能,因此如果你想自学某课程,可以自己建立群聊后(QQ微信皆可)在对应的课程页面下方发表评论,注明你的学习目标以及加入交流群的途径。此外,过去已有不少朋友在issue里建立了类似群聊,可以自行选择直接加入。
星标历史
✨ 鸣谢
特别感谢 @AlfredThiel 为项目制作了精美的Logo。
许可
项目贡献者编写的部分依照MIT许可证。
其余部分(包括但不限于书中提到的课程资源、开源书籍以及视频内容)遵循原作者规定的许可。