MIT新年开课,帮你补习学校没教的计算机工具技巧

2023-12-03 11:10

本文主要是介绍MIT新年开课,帮你补习学校没教的计算机工具技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转自"机器之心"(almosthuman2014)

学校的计算机科学专业会教什么?从数学基础到操作系统,再到机器学习。一般来讲,计算机科学课程会关注该领域最为核心的知识。

与此同时,还有一些工具相关的主题需要我们自己在实际应用中摸索和总结,比如如何用好命令行、如何玩转 Git 等。最近,MIT CSAIL 实验室推出了一系列视频教程,补充了缺失的这部分内容。

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

课程概况

据介绍,设立该项课程的目的是为了帮助学生了解成为数据科学家和开发者的所有重要主题,但是具体内容是学生平时在课堂中学不到的。本课程非常实用,重点在于其中的实践。课程包括了各种工具的上手介绍——这些工具在开发过程中出现的频率很高,如命令行、git 等。

开课时间是今年的一月份,面向的主要是 MIT 的学生,但是课程资料会通过视频的方式开源给大众。大家可以通过上面的课程地址找到相应的视频和文字资料。

为什么要开设这样的课程?课程页面中提到,学生们在校期间使用这些工具的时间可能长达数百个小时(工作之后可能要用数千个小时),所以教会学生们流畅、无障碍地使用这些工具非常有必要。通过学习,学生们不仅可以节省掌握工具使用方法所需的时间,还可以在后续的职业生涯中受益。

目录和内容

第一节课从 1 月 13 日便开始了,一直到 30 日结束,共有 11 节课。从内容来看,主要涉及命令行相关工具和环境、编辑器(Vim)、版本控制(Git)、元编程、计算机安全等方面,每个程序员或多或少都会接触到。

课程的主要目录如下:

除了目录外,课程还提供了相关内容的介绍:

命令行工具

命令行是计算机从业者最常使用的工具了。在这项课程中,学生们可以了解到如何使用别名、脚本及构建的系统去自动化运行常见或重复性的任务,同时避免在文档中不停地复制粘贴某个命令,或者「忘记运行某个程序」、「忘记传递某个参数」等。

例如,快速搜索历史记录可以节省大量时间。以下示例会展示一些使用 convert 命令为 shell 历史记录做索引的相关技巧。

版本控制

版本控制是编程中非常重要的问题。在复杂的编程项目中协调各个参与者、使代码能够得到及时更新,这些都依赖于 Git。在课程中,学生们将会学到相关的技巧,不再使用 rm -rf; git clone,也不会有更多的合并冲突问题。

课程同时也会教你如何使用这些工具,向一些开源项目贡献代码(使用 pull request 等),以及帮助学习者避免删除工作代码等。

下面这个例子展示了如何使用 git bisect 来查找破坏单元测试的提交,进而用 git revert 去修复。

文本编辑器

文本编辑器可以帮助你使用命令行编辑文件(包括本次修改和远程修改),同时还可以利用一些高级特性完成更多操作。这可以减少很多来回复制文档的操作。同时,课程也会介绍 Vim 的宏特性。

下面这个例子展示了如何使用嵌套的 vim 将 html 表转换为 csv 格式。

操作远程主机

通过 SSH 的方式可以连接很多远程的主机并进行工作,但是同时打开多个终端窗口的效率很低。这次的课程也会介绍相关的技巧——比如不需要每次连接的时候都输入密码等。

下面这个例子展示了如何用 tmux 使得远程服务器保持活跃,用 mosh 去支持网络漫游及断开连接。

查找文件

课程中会介绍快速查找文件的方法,不需要点击项目中的文件来搜索。相关内容包括使用 fd、rg 等。同时也会有 cd、vim 等方法。

下面的例子展示了如何快速查找带 fd 的文件及带 rg 的代码段。

数据整理

这项内容主要是通过命令行来对数据和文件进行快速和便捷的浏览、修改、分析和可视化,这样可以减少从 log 文件复制粘贴的问题。手动计算和统计之类的操作会减少很多。

虚拟机

虚拟机也是编程中使用的重要工具,特别是需要使用新的操作系统、隔离无关项目,以及保持主系统环境干净整洁的情况下。当进行安全测试的时候,使用虚拟机也可以避免系统崩溃。使用虚拟机可以保证对应的版本中有相应的包和库。

安全

互联网安全也是计算机中的一个重要话题。在课程中,学习者可以接触到很多相关知识,如保护 WIFI 网络、使用加密通信等。

课程官网提到,通过这 12 节课程和对应的练习,学生可以自己掌握相关工具的用法。另外,还有一些相关课程在 Hacker Tools 网站上,感兴趣的朋友可以看看。

Hacker Tools 地址:https://hacker-tools.github.io/lectures/

* 凡来源非注明“机器学习算法与Python学习原创”的所有作品均为转载稿件,其目的在于促进信息交流,并不代表本公众号赞同其观点或对其内容真实性负责。

推荐阅读

教你几招,Python性能提升30%!

一文看尽2019全年AI技术突破

互联网公司复工时间表

新手必看:Python 3.8六大新功能

这篇关于MIT新年开课,帮你补习学校没教的计算机工具技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/449229

相关文章

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

使用python制作一款文件粉碎工具

《使用python制作一款文件粉碎工具》这篇文章主要为大家详细介绍了如何使用python制作一款文件粉碎工具,能够有效粉碎密码文件和机密Excel表格等,感兴趣的小伙伴可以了解一下... 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密的文件恢

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十