數碼時代的效率生活
0. 引言
目前,有太多的信息都以電子資料的形式存在,也有太多的工作和生活被綁定在線上。在這個連貨幣都馬上要數字化的時代里,如何打理好自己的數字生活,保護好自己的數字資產,很重要。
1. 需求分析
作為一個非典型程序員和深度學習煉丹師,平常又會逛逛論壇,寫寫BLog,代碼和文檔是最常要處理的兩類數字資料。
此外,業餘還喜歡拍照,大量的照片也需要妥善保管。
總結核心需求如下:
-
資料在必要時較易實現本地化
-
資料在必要時較易實現跨平台遷移;
-
對於不同類型的資料,分場景進行保存和備份;
-
盡量提高資料保存和備份的自動化程度。
1.1 本地化
本地化的意思是指,我可以把原始格式的資料拉取到本地磁盤上。這也是針對於雲服務越來越盛行的現狀所說。
在合理的場景中,在線化、上雲是大勢所趨,我也是擁護者和受益者。工作中,在需要協作的場景下,我已經不止一次地去推動如騰訊文檔、禪道等工具的使用,來取代老舊的Office式項目管理模式。
但對於需要積累和沉澱的資料,全部在線化,我是心懷擔憂的。
我不怕被雲端綁定,但我怕被雲端綁架。
我希望能夠享受雲端的便利,但在最壞的時刻,還有一個托底方案,能夠把所有的原始資料掌握在自己手中。
1.2 跨平台遷移
既然我不希望我的資料被雲服務器綁架,類似地,我也不希望我的資料被某一款軟件或系統所綁架。
舉例來說,我自認是一個喜歡整理和總結的人,但對於《印象筆記》這款號稱第二大腦的筆記軟件,我一直是採取迴避的態度。
它太封閉了,除非用一些黑科技手段,你很難把你存儲在裏面的資料原封不動地搬運出來。你使用得越多,你就被套牢越深。假如有一天它的系統崩潰,或公司倒閉,對你來說就是滅頂之災。這種頭懸利劍的感受很不好。
再比如,一款常用的生產力工具,如果是某操作系統獨佔(MacOS,說的就是你),那我一般不會選擇用它,我會優先選擇Win/Linux/Mac跨平台兼容的軟件。
目前,我在辦公室的工作終端是Win10,還有一台Linux的遠程服務器,在家的電腦是Ubuntu。為了保證單位和家之間的工作狀態無縫切換,工具的跨平台兼容性很重要。
1.3 分類和自動化
代碼,文檔,數據,程序文件,照片等不同資料的存儲要求有非常大的差異。這主要從修改的頻率和資料本身的大小兩方面體現。
因此也就需要選擇不同的方案。我主要會從Git託管,網盤,NAS和移動硬盤四個方面去考慮。
自動化的需求主要是為了對抗人的思維惰性,如果一切都依靠繁瑣的手動操作,那麼很可能堅持不了多久。
2. 實現思路
2.1 個人知識庫
前面說過,我對於把自己稱為「第二大腦」類型的軟件是迴避的。
但對於這種理念,我是十分贊同的,收集-整理-輸出,完整經歷這一過程,知識才能被更好地掌握。
只不過我願意多花費一點點時間和操作,自己來掌控這個流程。來實現前述的「本地化」,「跨平台」等原則。
2.2 資料分類
經過分析,將資料按如下類別進行分類:
類別 | 特點 |
---|---|
代碼/筆記/文檔 | 重要性高,修改頻繁,文本化 |
其他文檔資料 | 多樣化,零碎 |
大體積數據 | 修改少,持久保存 |
-
代碼、筆記、文檔:所有靠自己碼出來的文本類資料,含金量最高。所有特性都指向了一種最合適的保存方式,那就是Git。有保密要求的,託管在公司內網Git;無保密要求的,我會在Github/Coding等多個平台同步託管。
-
其他文檔資料:工作/生活中有大量這類文檔,比如下載的各種論文/電子書,工作中的各種PDF/WORD/EXCEL,文件增刪較為頻繁,但文件內容本身修改頻率並不高,這種時候,最合適的應該是同步盤工具。
-
大體積數據:比如照片/視頻,大量的樣本數據,下載的視頻課程,一些需要保留的程序安裝文件等,基本沒有修改的需求,但需要持久保存,並方便隨時讀取。我置辦了一個小型的NAS,主要用於這類需求。只要能聯網,手機和電腦就可以隨時隨地接入看網課或者翻看以前拍攝的照片和視頻。此外,每隔一段時間,我還會將整理過的照片/視頻在網盤上備份一次。
-
最後,大概以每月一次的頻率,我會將所有類型的資料在移動硬盤上備份一次,作為最後的保險。
2.3 文檔/筆記
工程代碼和對應的文檔是工作產出要求,而在此以外的文檔和筆記,則是個人持續積累和提升的關鍵,這邊專門談一談。
對於個人文檔/筆記,我採用的是一種去中心化的方案。
說得更直白一點,我更傾向於用最傳統的本地文件夾方式來組織和管理,同時利用Git這樣的版本管理工具,實現文件的多端同步。
對於現在也很流行的標籤式管理體系,暫時沒有領會其精髓,在實際操作上往往也需要與系統或軟件強綁定。如果未來有第三方的工具能夠進行這方面的增強,我可能會嘗試一下。
在遵循Git基本規範,操作得當的情況下,所有的文檔會在我所有的電腦和多個遠程託管平台上保持同步更新,以此達到:
-
極高的標準化,一處編寫,多處使用;
-
極高的安全性,因為同時損壞或丟失的情況幾乎不可能發生。
3. 工具推薦
合理而順手的工具可以大大提高工作效率和工作時的幸福感。我也很喜歡嘗試和折騰一些效率/生產力類型的工具。
為了配合前面提到的所有指導原則和實施思路,下面推薦一些我用過或正在使用的工具。
3.1 Markdown及相應編輯器
大部分程序員應該都很熟悉Markdown。
不Coding但是有碼字需求的人,也強烈推薦嘗試一下。
這是一個用過後就再也回不去的神器。如非必要,我現在絕不會主動打開MS-Office,因為Markdown太好用了。
Markdown的優點,我總結主要有以下幾點:
-
純文本,簡單快速;
-
兼容性高,格式統一;
-
能夠被git diff所識別。
缺點可能就是對於複雜的排版支持不夠。
概括地說,就是方便寫文,特別是技術類文檔,但不方便寫書。
雖說任何文本編輯器都可以用來寫Markdown,但是一個順手的寫作工具還是能夠提高效率和舒適度。專門支持Markdown寫作的工具軟件有很多,這邊推薦三款。
3.1.1 VSCode
同類型的還有Atom和SublimeText,它們本質上都是代碼編輯器,自身或者通過插件擴展,可以實現Markdown的編輯功能。
但使用體驗來說,VSCode是最好的,而微軟官方的Remote系列插件,則完美符合我的使用需求,只此一項就秒殺了另外兩款。
作為一個Vim盲的我,調試代碼時再也不用本地編輯後,手動用SFTP上傳服務器運行了。
VSCode可以兼容編碼和簡單的Markdown編輯需求,但體驗上跟專門的Markdown編輯器還是有些差距,最主要體現在快捷鍵的支持範圍,以及插入圖片等附件時的便利性。如果想要真正體驗飛一般的輸入快感,你需要下一款。
3.1.2 Typora
這個軟件在網上的口碑非常好,我自己使用的體驗也很棒,目前是我的主力編輯器。
將Markdown這種標記語言的特性和所見即所得的功能整合起來是它的特色。而對於插入圖片的操作優化,特別符合人的使用直覺,進一步降低了學習成本。
3.1.3 Mark Text
Typora雖然目前免費使用,但它屬於閉源軟件,等正式版推出,估計會收費。如果軟件足夠好,我也是願意付費的,但本着保險起見的原則,我又搜尋到這樣一款開源軟件,幾乎完美實現了Typora的所有優點。
Mark Text在一些細節上可能還需要打磨,但已經足堪大任。我目前在自己的Ubuntu系統中,就是使用的Mark Text。
3.2 Git及託管服務
3.2.1 Git
Git幾乎可算是現代程序員的必備技能。但用來做文檔的同步管理也是非常棒的,如果只是個人用來管理文檔,不涉及分支和協作的話,Git其實很簡單,只需要用到非常有限的操作,而且目前也有足夠多的可視化工具可以輔助。
3.2.2 Git託管服務
關於Git託管服務,公司內網的本地部署採用的是Gitea的方案。
公網的話,Github是繞不過去的。但鑒於某些原因,Github的登錄不是很穩定,傳輸速度也非常感人,因此,我還會同時託管在Coding和Gitee上,連接穩定快速多了。
3.3 同步盤/網盤
3.3.1 堅果雲
堅果雲大概是目前國內唯一一款,免費用戶也能用得比較舒心的同步盤產品。
Win/Linux/Mac/Android/iOS/Web全平台兼容。
日常辦公涉及的文檔資料,我都是通過堅果雲實現自動同步。只要注意一下不要把特別大的文件放到同步地址下,每個月免費的上傳下載額度基本足夠使用了。
也有一些別的軟件支持同步盤,但功能都有些缺陷,比如不支持多個終端的同步,不能自由設置多個同步地址等,堅果雲還是最好用的。
3.3.2 百度網盤
雖然不充會員就特別慢,但是似乎也沒有其他更通用的選擇了。據說阿里雲也要出個人網盤了,希望能帶給我們更多選擇。
3.4 NAS
目前用的不算標準NAS,是聯想出的一款個人雲存儲。當時買它主要是看中了便宜,首發期間有很大優惠,幾乎等於買機械硬盤送NAS。但也滿足基本需求了。
後邊如果要升級的話,可能會考慮威聯通或者群暉的產品。硬件方面的動手能力很弱,就不考慮DIY方案了。
3.5 其他
再推薦一個自己用得比較順手,覺得很有價值的工具。
3.5.1 Teambition
這原本是一個團隊項目管理工具,但其實用來做個人任務管理和日常生活的協作都很好。
還有一些其他類似的在線工具,比如Trello,Worktile,Tower等可以選擇。
(1)用於個人:
我會把Teambition當做一個便簽和TODO-List來使用,用項目的方式分類管理起來。
比如把閱讀清單作為一個項目,分為「在讀/已讀/待讀」三個任務列表,每本書作為一個任務,任務詳情中可以記錄一些簡單的閱讀情況。甚至看到一些精彩或有用的段落,通過截屏或拍照的方式,把圖片上傳在備註中,留待後期的進一步整理。把書看完後就可以把任務置為完成。
再比如把Blog寫作作為一個項目,想到一個可寫的主題就列為一個任務作為備選,任務詳情中可以隨時記錄一些點子和零散的資料。這樣,就可以累積起不少素材。寫完成篇後就可以把任務置為完成。
自從用了這種方式,讀書的效率提高了不少,特別是把一本書讀完的概率提高了不少;而Blog的產出效率也提高了。
(2)用於家庭協作
家庭生活中,一些重大的事項其實也可以看作一個個項目,我跟老婆經過一段時間的嘗試,也摸索出一種用項目管理的理念來提高生活條理性和規劃度的模式。
之前我們還用過微軟的ToDo,簡單的協作也很不錯,比如購物清單,快遞備忘等,但是更複雜更長時間跨度的協作管理就感覺有些力不從心了。目前ToDo還在使用中,但僅限於這些短平快的備忘性質任務。
比如把家庭出遊當做一個項目,分為「待出行/構想中/已出行」三個任務列表,每一次出遊作為一個任務,任務詳情中可以記錄出遊的各項細節情況,比如目的地、住宿預訂、車票機票預訂、景點門票預訂等,還可以把攻略和參考鏈接附上。回來後,在項目Wiki里,還可以寫遊記。
以後回顧起來非常清晰明了,甚至系統自動的統計報表功能,可以幫你完成出遊的數據統計。
其他比如買房/裝修,娃上學擇校等,都可以列為項目,進行更有條理的規劃。
4. 關於寫作
看到過有人說,程序員都應該學會寫作,都應該去寫博客。話雖說得絕對,但我覺得有道理。
代碼是一種語言,日常用語也是一種語言,只不過一個是要讓機器讀懂,一個是要讓人讀懂。而把語言和邏輯組織好,並表述清楚的能力,其實是相通的。
並且,在一定規模的團隊協作項目中,使代碼能夠讓人看懂,可能比讓機器看懂更重要。讓人看不懂的代碼,就算當時寫得再精巧再完善,無法維護始終是致命傷,不說其他人接手,就算作者自己,可能過一段時間也回憶不起來當時的解決思路。
之前折騰過一段時間的靜態博客工具Hexo,利用Github和Coding的Pages服務去生成個人博客網站。後來又玩過Hugo,也是一個類似的工具。現在回頭想想,只是為了滿足自己動手摺騰的好奇心。像我這樣在社交媒體上的隱形人,自建站約等於零流量。不如回歸一些較為主流的平台,省去維護的精力,用這個時間多寫幾篇帖子。