官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧

機器之心報道

參與:一鳴、Jamin

有些計算機從業人員非常熟悉一套理論,但是可能還要花時間自學一些常用的工具。近日 MIT 推出了一系列相關課程,節省了大家自行摸索的時間。

官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧


學校的計算機科學專業會教什麼?從數學基礎到操作系統,再到機器學習。一般來講,計算機科學課程會關注該領域最為核心的知識。


與此同時,還有一些工具相關的主題需要我們自己在實際應用中摸索和總結,比如如何用好命令行、如何玩轉 Git 等。最近,MIT CSAIL 實驗室推出了一系列視頻教程,補充了缺失的這部分內容。


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


課程概況


據介紹,設立該項課程的目的是為了幫助學生了解成為數據科學家和開發者的所有重要主題,但是具體內容是學生平時在課堂中學不到的。本課程非常實用,重點在於其中的實踐。課程包括了各種工具的上手介紹——這些工具在開發過程中出現的頻率很高,如命令行、git 等。


開課時間是今年的一月份,面向的主要是 MIT 的學生,但是課程資料會通過視頻的方式開源給大眾。大家可以通過上面的課程地址找到相應的視頻和文字資料。


為什麼要開設這樣的課程?課程頁面中提到,學生們在校期間使用這些工具的時間可能長達數百個小時(工作之後可能要用數千個小時),所以教會學生們流暢、無障礙地使用這些工具非常有必要。通過學習,學生們不僅可以節省掌握工具使用方法所需的時間,還可以在後續的職業生涯中受益。


目錄和內容


第一節課從 1 月 13 日便開始了,一直到 30 日結束,共有 11 節課。從內容來看,主要涉及命令行相關工具和環境、編輯器(Vim)、版本控制(Git)、元編程、計算機安全等方面,每個程序員或多或少都會接觸到。


課程的主要目錄如下:


官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧


除了目錄外,課程還提供了相關內容的介紹:


命令行工具


命令行是計算機從業者最常使用的工具了。在這項課程中,學生們可以瞭解到如何使用別名、腳本及構建的系統去自動化運行常見或重複性的任務,同時避免在文檔中不停地複製粘貼某個命令,或者「忘記運行某個程序」、「忘記傳遞某個參數」等。


例如,快速搜索歷史記錄可以節省大量時間。以下示例會展示一些使用 convert 命令為 shell 歷史記錄做索引的相關技巧。


官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧

版本控制


版本控制是編程中非常重要的問題。在複雜的編程項目中協調各個參與者、使代碼能夠得到及時更新,這些都依賴於 Git。在課程中,學生們將會學到相關的技巧,不再使用 rm -rf; git clone,也不會有更多的合併衝突問題。


課程同時也會教你如何使用這些工具,向一些開源項目貢獻代碼(使用 pull request 等),以及幫助學習者避免刪除工作代碼等。


下面這個例子展示瞭如何使用 git bisect 來查找破壞單元測試的提交,進而用 git revert 去修復。


官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧



文本編輯器可以幫助你使用命令行編輯文件(包括本次修改和遠程修改),同時還可以利用一些高級特性完成更多操作。這可以減少很多來回複製文檔的操作。同時,課程也會介紹 Vim 的宏特性。


下面這個例子展示瞭如何使用嵌套的 vim 將 html 錶轉換為 csv 格式。


官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧


操作遠程主機


通過 SSH 的方式可以連接很多遠程的主機並進行工作,但是同時打開多個終端窗口的效率很低。這次的課程也會介紹相關的技巧——比如不需要每次連接的時候都輸入密碼等。


下面這個例子展示瞭如何用 tmux 使得遠程服務器保持活躍,用 mosh 去支持網絡漫遊及斷開連接。


官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧


查找文件


課程中會介紹快速查找文件的方法,不需要點擊項目中的文件來搜索。相關內容包括使用 fd、rg 等。同時也會有 cd、vim 等方法。


下面的例子展示瞭如何快速查找帶 fd 的文件及帶 rg 的代碼段。


官方「補習班」:MIT新年開課,幫你補習學校沒教的計算機工具技巧


數據整理


這項內容主要是通過命令行來對數據和文件進行快速和便捷的瀏覽、修改、分析和可視化,這樣可以減少從 log 文件複製粘貼的問題。手動計算和統計之類的操作會減少很多。


虛擬機


虛擬機也是編程中使用的重要工具,特別是需要使用新的操作系統、隔離無關項目,以及保持主系統環境乾淨整潔的情況下。當進行安全測試的時候,使用虛擬機也可以避免系統崩潰。使用虛擬機可以保證對應的版本中有相應的包和庫。


安全


互聯網安全也是計算機中的一個重要話題。在課程中,學習者可以接觸到很多相關知識,如保護 WIFI 網絡、使用加密通信等。


課程官網提到,通過這 12 節課程和對應的練習,學生可以自己掌握相關工具的用法。另外,還有一些相關課程在 Hacker Tools 網站上,感興趣的朋友可以看看。


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


分享到:


相關文章: