大学里的计算机课程通常专注于讲授从操作系统到机器学习这些学院派的课程或主题,而对于如何精通工具这一主题则往往会留给学生自行探索。在这个系列课程中,我们讲授命令行、强大的文本编辑器的使用、使用版本控制系统提供的多种特性等等。学生在他们受教育阶段就会和这些工具朝夕相处(在他们的职业生涯中更是这样)。因此,花时间打磨使用这些工具的能力并能够最终熟练地、流畅地使用它们是非常有必要的。

精通这些工具不仅可以帮助您更快的使用工具完成任务,并且可以帮助您解决在之前看来似乎无比复杂的问题。

目录: 1/13: 课程概览与 shell 1/14: Shell 工具和脚本 1/15: 编辑器 (Vim) 1/16: 数据整理 1/21: 命令行环境 1/22: 版本控制(Git) 1/23: 调试及性能分析 1/27: 元编程 1/28: 安全和密码学 1/29: 大杂烩 1/30: 提问&回答

视频: https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J

地址: https://missing.csail.mit.edu/

开设此课程的动机

在传统的计算机科学课程中,从操作系统、编程语言到机器学习,这些高大上课程和主题已经非常多了。然而有一个至关重要的主题却很少被专门讲授,而是留给学生们自己去探索。这部分内容就是:精通工具。

这些年,我们在麻省理工学院参与了许多课程的助教活动,过程当中愈发意识到很多学生对于工具的了解知之甚少。计算机设计的初衷就是任务自动化,然而学生们却常常陷在大量的重复任务中,或者无法完全发挥出诸如 版本控制、文本编辑器等工具的强大作用。效率低下和浪费时间还是其次,更糟糕的是,这还可能导致数据丢失或 无法完成某些特定任务。

这些主题不是大学课程的一部分:学生一直都不知道如何使用这些工具,或者说,至少是不知道如何高效 地使用,因此浪费了时间和精力在本来可以更简单的任务上。标准的计算机科学课程缺少了这门能让计算 变得更简捷的关键课程。

The missing semester of your CS education

为了解决这个问题,我们开启了一个课程,涵盖各项对成为高效率计算机科学家或程序员至关重要的 主题。这个课程实用且具有很强的实践性,提供了各种能够立即广泛应用解决问题的趁手工具指导。该课在 2020 年 1 月”独立活动期“开设,为期一个月,是学生开办的短期课程。虽然该课程针对 麻省理工学院,但我们公开提供了全部课程的录制视频与相关资料。

如果该课程适合你,那么以下还有一些具体的课程示例:

命令行与 shell 工具

如何使用别名、脚本和构建系统来自动化执行通用重复的任务。不再总是从文档中拷贝粘贴 命令。不要再“逐个执行这 15 个命令”,不要再“你忘了执行这个命令”、“你忘了传那个 参数”,类似的对话不要再有了。

例如,快速搜索历史记录可以节省大量时间。在下面这个示例中,我们展示了如何通过convert命令 在历史记录中跳转的一些技巧。

版本控制

如何正确地使用版本控制,利用它避免尴尬的情况发生,与他人协作,并且能够快速定位 如何正确地使用版本控制,利用它避免尴尬的情况发生。与他人协作,并且能够快速定位 有问题的提交 不再大量注释代码。不再为解决 bug 而找遍所有代码。不再“我去,刚才是删了有用的代码?!”。我们将教你如何通过拉取请求来为他人的项目贡献代码。

下面这个示例中,我们使用git bisect来定位哪个提交破坏了单元测试,并且通过git rever来进行修复。

文本编辑

不论是本地还是远程,如何通过命令行高效地编辑文件,并且充分利用编辑器特性。不再来回复制 文件。不再重复编辑文件。

Vim 的宏是它最好的特性之一,在下面这个示例中,我们使用嵌套的 Vim 宏快速地将 html 表格转换成了 csv 格式。

远程服务器

使用 SSH 密钥在远程机器下工作如何保持清醒,并且终端能够复用。不再为了仅执行个别命令 总是打开许多命令终端。不再每次连接都总输入密码。不再因为网络断开或必须重启笔记本时 就丢失全部上下文。

以下示例,我们使用tmux来保持会话在远程服务器活跃,并使用mosh来支持网络漫游和断开连接。

查找文件

如何快速查找你需要的文件。不再挨个点击项目中的文件,直到找到你所需的代码。

以下示例,我们通过fd快速查找文件,通过rg找代码片段。我们也用到了fasd快速cd并vim最近/常用的文件/文件夹。

数据处理

如何通过命令行直接轻松快速地修改、查看、解析、绘制和计算数据和文件。不再从日志文件拷贝 粘贴。不再手动统计数据。不再用电子表格画图。

虚拟机

如何使用虚拟机尝试新操作系统,隔离无关的项目,并且保持宿主机整洁。不再因为做安全实验而 意外损坏你的计算机。不再有大量随机安装的不同版本软件包。

安全

如何在不泄露隐私的情况下畅游互联网。不再抓破脑袋想符合自己疯狂规则的密码。不再连接不安全 的开放 WiFi 网络。不再传输未加密的信息。

结论 这 12 节课将包括但不限于以上内容,同时每堂课都提供了能帮助你熟悉这些工具的练手小测验。如果不能 等到一月,你也可以看下黑客工具,这是我们去年的 试讲。它是本课程的前身,包含许多相同的主题。

无论面对面还是远程在线,欢迎你的参与。

成为VIP会员查看完整内容
58

相关内容

「元学习」最新AAAI2021-Tutorial,附视频与240页ppt
专知会员服务
114+阅读 · 2021年2月7日
【斯坦福CS329S】机器学习系统设计导论,92页ppt
专知会员服务
37+阅读 · 2021年1月19日
MIT最新《贝叶斯深度学习》综述论文,37页pdf
专知会员服务
49+阅读 · 2021年1月4日
【干货书】计算机科学离散数学,627页pdf
专知会员服务
125+阅读 · 2020年8月31日
一图搞定ML!2020版机器学习技术路线图,35页ppt
专知会员服务
92+阅读 · 2020年7月28日
清华大学《人工智能》书籍教学课件开放下载
专知会员服务
137+阅读 · 2020年7月27日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
156+阅读 · 2020年7月24日
斯坦福EE364a《凸优化》课件,301页ppt
专知会员服务
93+阅读 · 2020年7月14日
如何正确使用Jupyter Notebook
专知
8+阅读 · 2019年4月6日
CCCF译文 | 机器学习如何影响本科生计算机课程
中国计算机学会
6+阅读 · 2019年2月18日
【资源】这本开放书籍帮你扫清通往ML的数学绊脚石
机器学习算法与Python学习
55+阅读 · 2018年10月28日
令人困惑的TensorFlow!
机器之心
4+阅读 · 2018年7月2日
这可能是学习Python最好的免费在线电子书
程序猿
51+阅读 · 2018年5月17日
国内高校人工智能教育现状如何?
大数据技术
9+阅读 · 2018年4月24日
2017年最受欢迎的10个编程挑战网站
算法与数据结构
9+阅读 · 2017年11月22日
Arxiv
0+阅读 · 2021年2月27日
Arxiv
5+阅读 · 2019年4月21日
Arxiv
29+阅读 · 2019年3月13日
VIP会员
相关VIP内容
「元学习」最新AAAI2021-Tutorial,附视频与240页ppt
专知会员服务
114+阅读 · 2021年2月7日
【斯坦福CS329S】机器学习系统设计导论,92页ppt
专知会员服务
37+阅读 · 2021年1月19日
MIT最新《贝叶斯深度学习》综述论文,37页pdf
专知会员服务
49+阅读 · 2021年1月4日
【干货书】计算机科学离散数学,627页pdf
专知会员服务
125+阅读 · 2020年8月31日
一图搞定ML!2020版机器学习技术路线图,35页ppt
专知会员服务
92+阅读 · 2020年7月28日
清华大学《人工智能》书籍教学课件开放下载
专知会员服务
137+阅读 · 2020年7月27日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
156+阅读 · 2020年7月24日
斯坦福EE364a《凸优化》课件,301页ppt
专知会员服务
93+阅读 · 2020年7月14日
相关资讯
如何正确使用Jupyter Notebook
专知
8+阅读 · 2019年4月6日
CCCF译文 | 机器学习如何影响本科生计算机课程
中国计算机学会
6+阅读 · 2019年2月18日
【资源】这本开放书籍帮你扫清通往ML的数学绊脚石
机器学习算法与Python学习
55+阅读 · 2018年10月28日
令人困惑的TensorFlow!
机器之心
4+阅读 · 2018年7月2日
这可能是学习Python最好的免费在线电子书
程序猿
51+阅读 · 2018年5月17日
国内高校人工智能教育现状如何?
大数据技术
9+阅读 · 2018年4月24日
2017年最受欢迎的10个编程挑战网站
算法与数据结构
9+阅读 · 2017年11月22日
微信扫码咨询专知VIP会员