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

https://juejin.im/post/5e3b80ddf265da5735504055html


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



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


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


課程地址: 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 地址: hacker-tools.github.io/lectures/
相關文章
相關標籤/搜索