鍍金池/ 教程/ 產(chǎn)品經(jīng)理/ 提升效率
SOHO
寫點(diǎn)東西
懂點(diǎn)設(shè)計(jì)
常用軟件
Hacker
代碼架構(gòu)
獲取知識
代碼評審
程序員基礎(chǔ)知識
PM
團(tuán)隊(duì)合作
其他方面
數(shù)據(jù)結(jié)構(gòu)與算法
關(guān)注健康
網(wǎng)絡(luò)知識
關(guān)于工作
提升效率
服務(wù)器部署
附錄

提升效率

我是個很在意效率的人,雖然可能執(zhí)行力不那么強(qiáng)。但是能省的絕對不會浪費(fèi)精力去做。

這里的效率也包含了如何獲取信息,如何與人交流,總之是對個人有益的總結(jié)。

學(xué)會閱讀

參考資料

學(xué)會提問

這是我遇到的第一個提升效率的方式。

剛接觸網(wǎng)絡(luò)和論壇的時候,我常常會去問一些浪費(fèi)別人時間去回答的問題,比如:"如何 XXX",其實(shí)這類問題如果再花幾分鐘,或者再思考下都是很容易得出答案的問題。但是互聯(lián)網(wǎng)給人的就是浮躁,很多情況下我們只學(xué)會了伸手去索取。

一個好的答案需要一個好的問題。學(xué)會提問,你會得到更多的信息。網(wǎng)絡(luò)上有那個一篇文章:學(xué)會如何提問。我是沒有讀過,但是我理解它的意思。當(dāng)你被別人問了幾次基礎(chǔ)或者無腦的問題,你就知道你希望得到的提問是什么樣的。那么你其實(shí)也學(xué)會了如何提問。

參考資料

善用搜索

學(xué)會了如何提問,其實(shí)已經(jīng)能把握住問題的中心,也就可以先使用搜索去嘗試解決問題。

搜索引擎選擇

通常我也會根據(jù)具體的搜索內(nèi)容決定使用什么引擎,比如我要搜技術(shù)類的問題,肯定優(yōu)先考慮 google。搜索下載資源,優(yōu)先考慮相應(yīng)的下載資源網(wǎng)站。做到縮小搜索范圍,才能讓搜索結(jié)果的質(zhì)量得到提高。

其實(shí)配合上 site的用法,在 google 上也能很快鎖定搜索結(jié)果。

常用的幾個站點(diǎn):

設(shè)置 Chrome 的搜索

Chrome 是我最常用的瀏覽器,大部分搜索我都是在它之中完成的,那么如何節(jié)約時間呢。首先了解一個快捷鍵:command+l,快速定位到地址欄。

其次借助 Chrome 的地址欄搜索功能,快速搜索。中文版默認(rèn)的可能是百度搜索,我比較喜歡設(shè)置 google 搜索,打開 Setting->Search->Manage search engines,修改 defalut search 為:

Google google.com {google:baseURL}search?q=%s&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:bookmarkBarPinned}{google:searchClient}{google:sourceId}{google:instantExtendedEnabledParameter}{google:omniboxStartMarginParameter}{google:contextualSearchVersion}ie={inputEncoding}

如果設(shè)置了代理的,可以先訪問 google.com/ncr 選擇為通用版本。確保訪問到頁面是通用版本,在地址欄里搜索試試。如果還會自動轉(zhuǎn)向到代理的國家,Chrome 也會提示你繼續(xù)使用還是切換為 google.com。同時需要設(shè)置 Setting->Currently showing search results in為 English, 中文 (簡體)。

如果只選擇結(jié)果為 English,那么掛上日本的代理,出現(xiàn)的結(jié)果優(yōu)先會是日文。

其他搜索設(shè)置

在 Chrome 的地址欄中,也可以設(shè)置快捷鍵觸發(fā)其他搜索, 在 Setting->Search->Manage search engines,添加:

DDK duckduckgo.com https://duckduckgo.com/?q=%s

類似的規(guī)則,在地址欄中輸入 duckduckgo 然后按一下 tab,就可以選擇自定義的引擎進(jìn)行搜索。

搜索技巧

直接給一張圖解釋:

http://wiki.jikexueyuan.com/project/a-programmer-prepares/images/2.jpg" alt="" />

參考資料

如何寫作

關(guān)于寫作,我們?yōu)槭裁匆獙懽?,這是一個前提。

為什么寫作

無論是否是技術(shù)人員,我覺得都應(yīng)該堅(jiān)持寫作。寫作帶給你的是思維的總結(jié),因?yàn)橛行┦虑槟阒皇侨ハ?,貌似是很簡單。?dāng)你去深入思考,其實(shí)又是另一個境界。我覺得寫作能幫助到我最大的一點(diǎn)是,理清思路。

關(guān)于其他,我也比較推薦劉未鵬的兩篇博客:

程序員是理科出生,寫文章是文科的特征。但是程序員養(yǎng)成寫作的習(xí)慣,對編程也是很用用處的,比如:

  • 寫文章和寫代碼最核心的共同之處在于它們都需要清晰思考的能力。好代碼與好文章一樣都需要言簡意賅,不然就會浪費(fèi) CPU 資源或人的精力。

  • 軟件工程師應(yīng)該寫作因?yàn)楝F(xiàn)在開發(fā)協(xié)作變得越來越重要。不論是 GitHub 評論、代碼注釋,還是技術(shù)文檔都需要清晰準(zhǔn)確的文字。良好的寫作能力方便了人們之間的交流,使得項(xiàng)目更好地運(yùn)行下去。

  • 即使沒人讀你的文章,寫作的過程也是有益無害。它幫助你理清思路,明確對于某個問題的看法,加強(qiáng)或削弱你的某種觀點(diǎn)。把凌亂的想法匯聚成精簡的文字非常有價值。

用什么寫作

Markdown 是我極力推崇的一種通用格式。

但是目前存在多種解釋器,導(dǎo)致語法有些混亂,但是熟悉標(biāo)準(zhǔn)的語法,依然能夠?qū)懞梦恼隆?/p>

說幾點(diǎn)常用的:

  • 刪除線: 需要刪除的內(nèi)容前后添加~~
  • 強(qiáng)制斷行: 正常,回車后形成的斷行,不會被 Markdown 解析為斷行,需要在斷行前面段落后加兩個空格或者寫入<br/>標(biāo)簽。
  • 水平分割線: 三個以上的星號,減號,或者下劃線,除了空格,不允許出現(xiàn)其它符號。-----

在哪里寫作

小時候我們常常使用的是筆和紙,形式多為日記。其實(shí)日記并沒有什么不好,但是大多數(shù)人應(yīng)該和我應(yīng)該,會把日記寫成流水賬,沒有太大的意義。

現(xiàn)在是互聯(lián)網(wǎng)的時代,手機(jī)和電腦可以替代我們完成輸入,并且記錄的形式也多樣化,除了文字還可以記錄聲音,圖片和視頻。

如果是個人的記錄,我比較喜歡使用云筆記,比如印象筆記或者為知筆記。設(shè)置一個訪問密碼,以防無意被他人閱讀。

技術(shù)性的文章,我更喜歡以博客的形式去發(fā)布,一方面會有知識積累的成就感,另一方面也可以與他人交流。博客可以自己搭建,比如 github+jekyll,或者使用簡書這樣的 web 服務(wù)。

參考文檔

如何翻墻

既然想學(xué)點(diǎn)東西,就不能被網(wǎng)絡(luò)束縛住。國內(nèi)的網(wǎng)絡(luò)環(huán)境,并不利于我們成長。

什么是墻

great firewall, 中國特有的。就是國家對網(wǎng)絡(luò)的封鎖。想要看看外面的世界,就得翻墻。

如何翻墻

翻墻的服務(wù)一般都是收費(fèi)的,免費(fèi)的除了 goAgent,其他都不要嘗試了,不然只是在浪費(fèi)生命。我比較提倡用錢能解決的問題,盡量還是花些錢吧。

目前來說,我了解的方式主要有兩種:VPN 和 Shadowsocks。

VPN

在公用網(wǎng)絡(luò)上建立專用網(wǎng)絡(luò),進(jìn)行加密通訊。原理是在一個國外網(wǎng)絡(luò)無阻的機(jī)器上與本地機(jī)器通信。

優(yōu)點(diǎn)是方便設(shè)置,網(wǎng)絡(luò)速度穩(wěn)定。

缺點(diǎn)是穩(wěn)定的服務(wù)價格不便宜,且本地流量全部走的是代理。

配合 VPN 實(shí)現(xiàn)國內(nèi)外分流訪問

“分流”,這個詞不知道說的準(zhǔn)不準(zhǔn)確,意思就是實(shí)現(xiàn)對不需要翻墻的網(wǎng)站直接連接,需要翻墻的網(wǎng)站走 VPN 代理。這樣國內(nèi)的網(wǎng)站訪問不受影響,又能正常訪問國外站點(diǎn)。

實(shí)現(xiàn)方式就是修改系統(tǒng)的路由表,網(wǎng)絡(luò)上有這樣的開源項(xiàng)目,專門收集國內(nèi)被“墻”的網(wǎng)站。利用這些數(shù)據(jù),讓 vpn 客戶端在進(jìn)行連接的時候自動執(zhí)行.

通過這些路由腳本, 可以讓用戶在使用 vpn 作為默認(rèn)網(wǎng)絡(luò)網(wǎng)關(guān)的時候, 不使用 vpn 進(jìn)行對中國國內(nèi) ip 的訪問, 從而減輕 vpn 的負(fù)擔(dān), 和增加訪問國內(nèi)網(wǎng)站的速度.

Mac 設(shè)置:

  1. 下載附件 mac.zip, 并將其中的 ip-up, ip-down 兩個文件放入到 /etc/ppp 目錄中。
  2. 開終端,執(zhí)行命令 cd /private/etc/ppp,進(jìn)入/etc/ppp 目錄下。
  3. 在該目錄下執(zhí)行 sudo chmod a+x ip-up ip-down
  4. 好了,可以連接 VPN 試試了。

Windows 設(shè)置:

  1. 下載附件 windows.zip, 并將其中的 vpnup.bat, ivpndown.bat 兩個文件解壓到任意目錄。
  2. 右擊 vpnup.bat,選擇以管理員權(quán)限運(yùn)行,然后會彈出 cmd 窗口,等待運(yùn)行完畢,窗口會自動關(guān)閉。(Windows 需要每次開機(jī)時執(zhí)行一次)
  3. 好了,可以連接 VPN 試試了。

測試方式:連接 VPN 后,可以訪問 ip.cn 查看當(dāng)前的 ip,如果顯示南京就對了,然后再打開 youtube.com 看看能否訪問。

一點(diǎn)說明: ip-down 和 vpndown.bat 是恢復(fù)路由表的腳本。

goagent

goagent, 項(xiàng)目主頁里有詳細(xì)的安裝使用指南。需要你注冊 google 的 GAE 服務(wù)。

當(dāng)然,你可以用來當(dāng)做教育網(wǎng)加速,或者穿透公司內(nèi)網(wǎng)。我目前放在 SAE 上用來穿透公司 http 代理。

使用的過程之后,可能會遇到證書錯誤而不受信任的情況,解決方式就是導(dǎo)入證書。詳情可見: 解決 GoAgent 打開 https 網(wǎng)站 SSL 證書錯誤 (安全證書不受信任)

Shadowsocks

shadowsocks 的出現(xiàn),我覺得真是一大利好。它解決了網(wǎng)絡(luò)流量分配的問題,借助代理插件,可以方便的實(shí)現(xiàn)只針對需要翻墻的網(wǎng)站都代理訪問。且價格便宜。

一般情況下,我使用 Chrome 的插件: Proxy SwitchySharp

shadowsocks 的服務(wù),如果自己有 vps 的話,就自己搭建一個,分分鐘的事情,自己搜搜教程。如果沒有的話,也可以去買這樣的服務(wù),我用東哥的 ss,包年100,速度很好。

chnroutes

chnroutes,此項(xiàng)目通過修改路由表,解決通過 VPN 鏈接網(wǎng)絡(luò)時的流量轉(zhuǎn)向問題。達(dá)到不需要翻墻的訪問走正常網(wǎng)絡(luò),需要翻墻的請求走 VPN。

ChinaDNS

ChinaDNS, 此項(xiàng)目解決的是 DNS 污染問題,我還沒搞明白。。。

參考資料

突破內(nèi)網(wǎng)

有的公司網(wǎng)絡(luò)環(huán)境是受限的,上外網(wǎng)是需要通過代理的,并且對一些娛樂性質(zhì)的網(wǎng)站進(jìn)行了屏蔽。我們的目標(biāo)就是要消除這個現(xiàn)象!

準(zhǔn)備條件

  • 電腦一臺
  • 一個可以上外網(wǎng)的公司代理
  • goagent/shadowsocks,并且有賬號
  • proxifier: 控制網(wǎng)絡(luò)請求
  • SwitchOmega: chrome 的插件

實(shí)現(xiàn)原理

普通的科學(xué)上網(wǎng)上一節(jié)已經(jīng)介紹過了,一般能直連外網(wǎng)的情況下都適用,但是在需要代理上網(wǎng)的環(huán)境下,就需要借助其他軟件了。

普通環(huán)境下上網(wǎng)的過程是: 請求->goagent/shadowsocks->訪問。

但是內(nèi)網(wǎng)代理環(huán)境下,所有需要訪問外網(wǎng)的請求必須先經(jīng)過代理。由于 shadowsocks/goagent 沒有設(shè)置代理的選項(xiàng)(其實(shí) goagent 有,但是不穩(wěn)定),那么我們就需要借助 proxifier 類似的工具,先設(shè)置 goagent/shadowsocks 走代理訪問外部,再將其他網(wǎng)絡(luò)請求走 goagent/shadowsocks 創(chuàng)建的本地代理。這樣我們就實(shí)現(xiàn)了穿越 http 代理。

關(guān)于這個穿越 http 代理,我說一下我的理解: 就是我們通過代理和外界進(jìn)行了溝通,形成了一個隧道。我們將真實(shí)的請求通過這個隧道傳遞/接受,而代理只看到隧道有流量,卻不知道里面具體是什么。

科學(xué)上網(wǎng)

科學(xué)上網(wǎng)目前首選的工具是 shadowsocks,它可以創(chuàng)建一個本地的1080端口的 socks5 的代理,如果設(shè)置了允許局域網(wǎng)訪問,還會在本地創(chuàng)建一個8123端口的 http 代理。

下面我們就要使用 Proxifier 這個軟件,控制代理規(guī)則。具體的操作如下:

  • Profile -> Advance -> Http Proxy Servers -> 開啟
  • Profile -> Proxifier -> 添加可以訪問外網(wǎng)的代理
  • Profile -> Proxification Rules -> Add

    1. 命名隨意,比如 ss
    2. 應(yīng)用軟件添加 shadowsocks.exe
    3. action 選擇第二步添加的可以訪問外網(wǎng)的代理
    4. 如果 http 的代理不可用,可在第二步時,添加或追加一個相同地址的 https 代理
    5. 記得把新添加的放在最上面,規(guī)則是從上往下執(zhí)行的,并且保留最后一個 defalut,不然其他情況上不了網(wǎng)了。。
  • Save

接著開啟 shadowsocks,啟用系統(tǒng)代理(關(guān)于這個系統(tǒng)代理,我是將 ie 下面的 Lan 代理選擇了自動模式)。

最后,安裝 chrome 的插件 SwitchOmega(其實(shí)就是 proxySwitchy 的新版本)。添加新規(guī)則,選擇 socket5 代理,地址填寫127.0.0.1, 端口1080。使用新的規(guī)則模式上網(wǎng),比如 twitter.com 進(jìn)行一下測試,或者查看一下 ip 地址。

關(guān)于 SwitchOmega 這個插件,我推薦大家再建立一個規(guī)則,設(shè)置為公司提供的代理。并且在自動切換模式下,將公司代理設(shè)置為默認(rèn)訪問方式。這樣下來,通過 chrome 上網(wǎng)就不存在障礙了。

內(nèi)網(wǎng)加速

進(jìn)行了一番科學(xué)上網(wǎng)的設(shè)置后,基本所有的網(wǎng)絡(luò)都是可以上了。缺點(diǎn)也有,就是公司封鎖了的地址需要借助代理,這些大多的是國內(nèi)的網(wǎng)站,走代理速度肯定不太好。那么我們還有什么辦法可以讓被公司封鎖了的國內(nèi)應(yīng)用訪問更加自如呢?這個想法我想在國外的留學(xué)生朋友一定也有需求,國外看國內(nèi)的視頻網(wǎng)站也是被封鎖的,所以需要借助國內(nèi)的服務(wù)器,進(jìn)行一下代理,這里我推薦一下 goagent+SAE 的方法。其實(shí)還是推薦自己在國內(nèi)的 vps 上搭建一下 shadowsocks,使用確實(shí)速度快,穩(wěn)定。這兩點(diǎn)我個人感覺比 goagent 好得多。

說了這么一大推,下面實(shí)踐一下(原理還是和上面一樣的)。

goagent+SAE

必備條件:

  • SAE 賬號,便于創(chuàng)建應(yīng)用
  • goagent
  • proxifier

步驟:

  • 在 SAE 上創(chuàng)建一個應(yīng)用,記住生成的地址(其實(shí)就是 your_app_name.sinaapp.com 這樣的)
  • 將 goagent/serve/php 下目錄文件打包上傳 SAE(SAE 應(yīng)用有上傳代碼的菜單)
  • 編輯 goagent/local/proxy.ini
    • [gae] -> enable 屬性 -> 由1修改為0,關(guān)閉 gae 模塊
    • [pac] -> 如果不需要切換的話,也是由1修改為0
    • [php] -> enable -> 設(shè)置為1, 表示開啟
    • [php] -> fetchserver -> 設(shè)置為應(yīng)用地址,就是類似 http://xxx.sinaapp.com/
  • 開啟 goagent.exe, 如果有警告你需要使用管理員權(quán)限運(yùn)行,而普通權(quán)限暫時也沒問題的情況下,忽略那個警告吧。

開啟之后,本地就會有一個8088端口的 http 代理,這樣就可以通過 proxifier 或者 switchOmega 設(shè)置代理規(guī)則了。

shadowsocks+阿里云

必備條件:

我的國內(nèi)代理搭建在阿里云上(ps:國內(nèi) vps 確實(shí)貴,帶寬還?。4罱ǖ姆绞绞褂玫氖?docker,具體操作可以查閱: 搭建 shadowsocks。

shadowsocks 的客戶端可以選擇 qt5,這樣本地就可以開多個 shadowsocks 客戶端了。

步驟:

  • 服務(wù)器上搭建好 shadowsocks
  • 開啟一個 shadowsocks 客戶端,輸入賬號,指定本地端口
  • proxifier rules 添加一個規(guī)則,針對這個 shadowsocks 客戶端,使其走公司提供的外網(wǎng)代理
  • 瀏覽器或者 proxifier 可以使用本地端口的 socks5 代理

這樣的話,國內(nèi)訪問速度就會比較流暢了,唯一的缺點(diǎn)就是國內(nèi) vps 價格比較貴。

參考資料

時間管理

時間就是金錢,如果能把握時間,你就掌握了自己的命運(yùn)吧。

感受時間

大學(xué)的渾渾噩噩,上班之后的混水摸魚。我們只覺得到了時間過的好快,但我們真的感受過時間嗎?所以在談管理時間之前,我想先感受下時間。

你可以停掉手中的工作,遠(yuǎn)離電子設(shè)備,遠(yuǎn)離浮躁的互聯(lián)網(wǎng),靜靜的待上三分鐘。我喜歡用打坐的方式去感受時間,放空自己,讓自己清醒。我覺得只有大腦清晰,你才能高效,你才能把握時間。

有人說互聯(lián)網(wǎng)的信息垃圾很多,沒有營養(yǎng),我們就是為了吃飽,才會去吃更多的垃圾。所以何不換個方式,試著去體會呼吸的節(jié)奏,讓自己多吸收些營養(yǎng)。

GTD

GTD 是英文"Getting Things Done"的縮寫。是一種高效的管理時間的方式。個人感受就是劃分任務(wù),把重要的先去完成,專注一定的時間去處理一些事情。然后再休息,再繼續(xù)專注,周而復(fù)始。

通常每一天,最好的方式是在早晨花上一定的時間規(guī)劃一天的安排。

專注時間的方式,比較有效的是番茄工作法。

音樂

這里提到音樂,是因?yàn)橛袝r候我喜歡帶上耳機(jī),隔絕外界的環(huán)境。

音樂類型我比較推薦白噪音,大自然的聲音或者雨聲。會很容易讓人安靜,專注起來。如果你喜歡音樂,我覺得也可以單曲循環(huán)一首歌曲。記住,聽歌不是為了分神,而是為了更加專注!

知識管理

當(dāng)你有時間,有計(jì)劃,有效率的去工作生活的時候。你會涉及和吸取很多的知識。我不覺得有人能記住所有的信息,所以對知識也應(yīng)該做一些管理。

對于知識,我也比較推薦"IPO"的形式,就是 input->process->output。攝入的知識并不是你的收獲,而只有 output 出來的內(nèi)容才是自己的。

Input

在網(wǎng)絡(luò)時代,我對知識的吸收主要通過 web。所以我會通過微博,博客,新聞的形式收集信息。

微博

可以建立不同的分組,里面關(guān)注對于的賬號。這樣每天差翻閱翻閱,就能了解大致的內(nèi)容。

RSS

我喜歡這個已經(jīng)被 google 淘汰的技術(shù),可以方便我去訂閱自己感興趣的網(wǎng)站,以及個人博客。目前我使用的客戶端是 feedly。

網(wǎng)絡(luò)書簽

在網(wǎng)絡(luò)上看到好的內(nèi)容,我們需要去收藏。一般情況下只是對書簽進(jìn)行保存。

保存的方式可以放在 Chrome 的書簽中,使用 google 賬號同步。我個人喜歡第三方工具,比如 pinboard,它可以對書簽打上標(biāo)簽和描述,方便搜索。

process

output

文件管理

需要管理的文件,通常包含了一些用來同步的配置,有用的軟件和照片等。

工具

BitTorrent Sync

BitTorrent Sync,是一個可以自己搭建 p2p 服務(wù)的同步軟件。主要的意思就是可以自定義網(wǎng)盤,且文件大小不受限制。目前我發(fā)現(xiàn)的一個缺點(diǎn)是無法設(shè)置忽略文件。這導(dǎo)致很多隱藏文件也會備份。。。

百度網(wǎng)盤

這個主要是網(wǎng)盤大,速度還不錯。

金山快盤

同步盤,主要同步一些配置文件。

Dropbox

最好的網(wǎng)盤肯定是 dropbox,之前看到有人這么評價過:

試了一圈國內(nèi)的網(wǎng)盤,發(fā)自內(nèi)心感嘆 Dropbox 的牛 X。Dropbox 不僅可以在服務(wù)器上通過客戶端> 同步,同時也可以選擇創(chuàng)建應(yīng)用同步,Dropbox 在創(chuàng)建應(yīng)用時就可以為自己生成 access > token。

http://wiki.jikexueyuan.com/project/a-programmer-prepares/images/3.jpg" alt="" />

照片

文件命名

之前在一個 padcast 中聽到的方式,文件先按照設(shè)備去劃分,二級目錄使用日期去劃分。這樣的好處是保留原片。如果需要 share 的東西,可以拷貝原片再按照類別劃分。

文件保存

通常 instagram 的照片我通過 IFTTT 保存到了 dropbox 中。 手機(jī)的照片我盡量定期拷貝到電腦中。 單反的照片,每次使用完都拷貝到電腦中,然后格式化相機(jī)的存儲卡,因?yàn)橄鄼C(jī)的存儲空間還是不太大的,不適合長期保留文件。

原片存儲好之后,一般我會進(jìn)行一次篩選,刪除一些廢片。這其實(shí)是一項(xiàng)巨大的工作,至今我2014上半年的照片還沒有整理完。。。

密碼管理

制作視頻

既然我這么喜歡分享,圖文是一種方式,視頻不更直觀嘛。周末抽個時間學(xué)習(xí)一下如何制作視頻,特別是能吸引人的視頻。

與眾不同

授人以魚不如授人以漁,如果要教育好別人,是替他人開發(fā)心智,讓他人學(xué)會自我學(xué)習(xí),不斷提升。前幾天我也看到@iBuick 說到,"我對 OS X 圖書的看法,早年間,特別熱衷各種技巧介紹,各種 defaults write 覺得了不起。后來覺得重要的在應(yīng)用層面,各種 App 走起?,F(xiàn)在覺得,寫操作系統(tǒng)本身的書最重要,你把這東西弄明白了,給讀者講明白了,他們看完書以后會自己動手解決問題了,才是最重要的。"

我個人也很看好在線教育的發(fā)展,在線教育要的是研究,優(yōu)化,抽離,信息化教學(xué)習(xí)慣和流程。

保持課程的與時俱進(jìn),讓你的課程與眾不同。

課程大綱

確定了錄制的方向,就要確定內(nèi)容大綱。關(guān)于大綱,我覺得是做任何事都需要的一個思維習(xí)慣,很有效率的一件事。

大綱的要素

  • 誰適合學(xué)
  • 學(xué)什么內(nèi)容
  • 學(xué)完了可以做什么
  • 老師是誰
  • 如何學(xué)
  • 學(xué)習(xí)周期與頻率
  • 具體課程與章節(jié)

課程以一個向?qū)盗械恼n程,可以將很多內(nèi)容拆分為小課程,每個章節(jié)對應(yīng)的課程時間應(yīng)該也把握在 25 min 以內(nèi)。利用好零碎的時間,現(xiàn)在的人都比較浮躁。

麥子網(wǎng)的備課錄課的比例,大約是3:1。所以錄制出一小時的視頻,其實(shí)是需要花費(fèi)3-5小時的。

視頻錄制的規(guī)范

視頻分類

視頻可分為三大類:

  • 軟件操作的課程,主要是電腦的界面錄制
  • 硬件操作的課程,主要錄制的是操作臺
  • 非技術(shù)類的課程,主要是錄制人,以及后期的剪輯

操作系統(tǒng)的分類

  • windows
  • MacOS
  • Linux

視頻分辨率

早起為1024x768,現(xiàn)在主流為1280x720, 1280x800。

錄制環(huán)境

  • 電腦的選擇
  • 麥克風(fēng): 主要測試一下噪音等問題
  • 分貝增強(qiáng)的設(shè)置:最好不要設(shè)置,防止出現(xiàn)電流聲
  • 錄制的背景音:最好在按鍵的環(huán)境下,避免嘈雜的背景音。
  • 準(zhǔn)備手寫板:電子白板。
  • 錄屏軟件:不同的操作系統(tǒng)軟件不同。

錄制的時長

互聯(lián)網(wǎng)的時代是碎片時間,最好是 5-25 min,方便他人利用零碎時間觀看。

視頻之間的起承轉(zhuǎn)合

  • 視頻開始的時候要說一下 subject
  • 視頻結(jié)束要布置 homework
  • 課程資料以及 demo 等需要和視頻一一對應(yīng)

備課工具和形式

  • PPT 是一種方式,但是需要和演示的內(nèi)容經(jīng)常切換。
  • 云筆記之類的隨時敲打也是一種方式。
  • 思維導(dǎo)圖: 這是一種很好的方式,能夠清晰的梳理好我們的知識點(diǎn)和思路。包括夠花一些草圖也很方便。Mindjet 是一款很好的思維導(dǎo)圖軟件,各平臺在都有。操作確實(shí)很漂亮,但是收費(fèi)也很高。
  • 繪畫筆或者電子白板:直接在屏幕上進(jìn)行一些標(biāo)注。Mac 的電子白板不是很多,選擇的時候需要注意。

錄屏軟件的使用

Windows 下

Mac OS 下

推薦使用 ScreenFlow。這個軟件的使用過程,需要注意的是音量的設(shè)置,以及背景環(huán)境音。錄制完成即可預(yù)覽。

這個軟件錄制完成,會自動將音頻和視頻分開。

壓縮軟件的話,推薦使用 HandBrake。記得勾選 web optimized 選項(xiàng)。

Linux 下

后期的處理

  • 如何刪除內(nèi)容,將錄制出錯的地方刪掉。
  • 裁剪區(qū)域: 選擇合適的播放內(nèi)容范圍。比如可以截取除去頂部菜單,或者底部內(nèi)容的區(qū)域。
  • 音頻的控制,調(diào)制音頻的大小,使得清晰。
  • 導(dǎo)出的格式:適合 web 的,比如 H.264 的 MP4 格式。
  • 視頻壓縮: 投放到網(wǎng)頁或者與人分享的時候,文件較小一些便于傳輸。

錄課的技巧

  • 需要注意的是,錄課和現(xiàn)實(shí)的講課是有區(qū)別的?,F(xiàn)實(shí)的課堂是有學(xué)員的,錄制課程可以假象有一堆學(xué)員,保持積極的態(tài)度。
  • 形成自己的風(fēng)格,養(yǎng)成自己的習(xí)慣。有清晰的思路,有合適的 Homework,方便考察。
  • 線上的標(biāo)注,使用電子筆進(jìn)行標(biāo)注可以更清晰。
  • 養(yǎng)成課程的競爭優(yōu)勢,講解出與眾不同,有特點(diǎn),更專業(yè)的內(nèi)容。
  • 音頻的深入,可以使用專業(yè)的錄制設(shè)備。
  • 可以使用專業(yè)的剪輯和后期。

參考資料

制作 PPT

論音樂對效率的影響

我相信很多人都有在學(xué)習(xí)或者工作的時候聽音樂的習(xí)慣。那么音樂對我們有幫助嗎?應(yīng)該是有的,起碼我知道胎教的時候應(yīng)該多聽聽古典音樂。

白噪音

最初的時候,我是雜食,很喜歡在學(xué)習(xí)的時候聽流行音樂。不自覺的就會被曲子,或者歌詞帶入到另外一個世界里。工作之后,有時候辦公環(huán)境很嘈雜,也會把你的思緒打亂。所以我又必要找一種能讓你迅速進(jìn)入狀態(tài)的音樂,其實(shí)也就是培養(yǎng)一種習(xí)慣,條件反射而已。

應(yīng)該是今年(2014)上半年的時候,我看到了一些國外的應(yīng)用,有一些專門利用環(huán)境音樂的 app,比如雨聲,雷聲,鳥鳴聲。后來搜索了下,原來這叫做白噪音。

巴洛克超級學(xué)習(xí)音樂和羅扎夫記憶音樂

內(nèi)心里我覺得這一類肯定是假的,寄托于音樂幫助你學(xué)習(xí)是不可能的。但是能讓你專注的音樂,我覺得是可以嘗試的。

參考資料

程序員效率指南

幾條建議

盡量不要用 windows 進(jìn)行開發(fā)

除非你只用 dotnet 開發(fā)軟件,不然 osx/ubuntu 會是更好的開發(fā)平臺。太多太多優(yōu)秀的工具在 osx/ubuntu 下可以一鍵安裝,在 windows 下卻不得不花費(fèi)超過一個甚至幾個數(shù)量級的時間去安裝,更別提有的工具 windows 壓根沒有替代品。

如果不認(rèn)可 Rule 1,那么直接可以跳過下面的文字走人。

盡量使用 mbp

我在「能花錢的,就不要花時間」文中已經(jīng)強(qiáng)調(diào),有條件買15"高配的就不要買15"低配,有條件買15"低配的就不要買13"(Retina/ssd 版本是必備)。作為一個開發(fā)者,你實(shí)在應(yīng)該在開發(fā)工具上對自己好些 —— 畢竟你跟她相處的時間比跟女盆友/老婆多多了!

如果實(shí)在覺得 mbp 太貴 [1],可以考慮一個15"輕薄的本子裝 ubuntu。

mbp 的好處不在于逼格 [2],而在于優(yōu)秀的硬件 + 優(yōu)秀的 Unix 兼容的軟件。retina 屏,超長的電池續(xù)航(相比 PC),舒服的 trackpad 讓工作的舒適度提高不是一星半點(diǎn),而軟件上強(qiáng)大的 spotlight 等系統(tǒng)功能讓效率提升很多。這個我就不詳述,自己看『mactalk·人生元編程』去。

使用大屏幕

工作中使用 mbp 是為了便攜性 —— 在各種場合都可以進(jìn)行開發(fā)任務(wù),應(yīng)對會議和各種各樣的演示需求??梢坏┳诠の簧虾脦讉€小時,全神貫注地寫代碼時,就最好有個大屏幕。

屏幕多大才好?在機(jī)器帶的起來的情況下越大越好,能27"就不要24",能24"就不要21",能21"就不要直接使用筆記本的屏幕。大屏幕可以讓一個屏幕同時顯示好幾個窗口而無需來回切換。我現(xiàn)在自己的工作配置是15" mbp + 27" apple display,用上了就回不去了,一天呆在公司12小時都不嫌多。

我自己一般把屏幕劈成兩半,左邊 chrome,右邊 iterm,這樣,在 vim 里寫代碼時,隨時可以查文檔。配合 vim 的熱鍵,我可以用 xx 在 chrome 里打開某個開發(fā)語言的文檔,鼠標(biāo)都不用動一下。

使用 dotfiles

一個程序員一天可能80%的時間都在跟 shell 打交道,有個好的 shell(bash or zsh),加上合理的 shell 配置絕對讓效率提升一大截。我以前都是直接使用 mathiasbynens/dotfiles 的設(shè)置,后來自己改得多了,就干脆 fork 了一個版本 tyrchen/dotfiles 出來,把自己的改動放上去。

dotfiles 這樣的東西不必自己從頭來,在 github 上找個 star 最高的 clone 或者 fork 之即可,這便是所謂的站在巨人的肩膀上。武學(xué)中要打通任督二脈,靠勤奮往往是不夠的,還要有際遇,好比虛竹遇上了無涯子或者張無忌遇到了白猿。程序世界里的無涯子和白猿們都在 github 上,只是需要你的發(fā)掘。

我自己的 dotfiles 就在 Mathias 的基礎(chǔ)上發(fā)展而來,基本上,我做了兩個主要的改動:

  • 把 prompt 換成帥呆了的 liquidprompt
  • vim 使用 vundle,并且使能了一堆我喜愛的插件(這個隨后講)

挑一款趁手的 editor 和 ide

作為一個開發(fā)者,你需要精挑細(xì)選一款趁手的用來編輯代碼的 editor。我使用了幾年的 vim,又換用過大半年的 emacs,為了強(qiáng)制自己習(xí)慣 emacs,我甚至在 bash 中把 vim alias 成 emacs。但最終,沒能打開 emacs 下的任督二脈的我實(shí)在無法抗拒 vim 下的那些好用的插件,又回到了 vim 的陣營。所以在 editor 這里,我只能先講講更為熟悉的 vim。

vim 下最基本的 vundle 不提,至少這些插件你值得擁有:

  • SirVer/ultisnips: 撰寫和使用 snippet 神器,用過 textmate/sublime 的人應(yīng)該都知道。一個程序員的效率很大程度上跟他的 snippet 庫有關(guān)。如果你的 python class,html 的標(biāo)簽,erlang/elixir 的 otp 代碼還是一個字符一個字符手敲,那么你該好好看看這個插件了。配合著 honza/vim-snippets,大部分代碼的 snippet 都有了;遇到結(jié)構(gòu)類似的代碼塊(bolerplate),又沒有已經(jīng)定義好的 snippet 時,調(diào)用 :UltiSnipsEdit 立刻定義之,你基本上就走在無敵的路上了。

  • scrooloose/nerdtree:讓你的 vim 支持文件樹。這個插件加上 tpope/vim-eunuch,文件系統(tǒng)的各種操作和顯示全在 vim 里搞定了。

  • sheerun/vim-polyglot:幾乎所有程序語言的源文件 syntax/tab 等的支持。有此一個插件,就不再需要 vim-ruby,vim-go 等一票單獨(dú)的語言插件了。

  • Valloric/YouCompleteMe:讓 vim 支持自動補(bǔ)齊。這個幾乎是 IDE 的標(biāo)配,效率提升的另一大神器。有了它,IDE 的需求就減弱很多。

其它的插件就不一一介紹了,感興趣的可以在我的 dotfiles 里面一一翻閱。

大部分編程的工作,輕量級的 editor 就足夠勝任,但有些開發(fā)語言和框架,bolerplate 代碼實(shí)在太多,整個開發(fā)目錄太繁雜,這時候不得不使用 IDE,比如說 java 下的很多項(xiàng)目。當(dāng)你不得不使用 IDE 的時候,intelliJ 系列的 IDE 是比 eclipse 系列好很多的選擇。

當(dāng)然,這條 rule 的核心是盡量使用 editor,能不用 IDE 就不用 IDE。

把常用的任務(wù)命令化/快捷鍵化

國外的開發(fā)高手也都是使用快捷鍵的高手,我以前不習(xí)慣使用快捷鍵,但看了很多高手的 screencast 后,發(fā)現(xiàn)他們都是當(dāng)一個任務(wù)重復(fù)幾次后,順手就定義快捷鍵或者命令。這里我講講 vim 怎么做,emacs 的用戶自行腦補(bǔ)。

在進(jìn)行 elixir 做 TDD 開發(fā)的時候,我經(jīng)常需要運(yùn)行 mix test 來確保我新寫的代碼或者重構(gòu)的代碼能夠跑過已有的 test case。這事做多了也就煩了,因?yàn)樵?vim 里總需要輸入 !mix test,這個時候,我就會為此定義個快捷鍵。如果快捷鍵只跟當(dāng)前項(xiàng)目有關(guān),那么就在當(dāng)前項(xiàng)目根目錄下生成一個 .vimrc,定義快捷鍵,否則在系統(tǒng)的 .vimrc 中定義:

noremap <leader>et :!mix test<CR>

這樣,以后需要運(yùn)行這個命令的時候,直接敲 key + ed 就好。對于 elixir,我有這些定義:

noremap <leader>ed :!mix deps.get<CR>
noremap <leader>et :!mix test<CR>
noremap <leader>ec :!mix compile<CR>

因?yàn)槊總€語言都有類似的 dependency,test,compile 等任務(wù),如果要定義在全局的 .vimrc 文件里,可以為每種語言附不同的前綴(elixir 為 e)區(qū)隔。如果你喜歡按項(xiàng)目定義,那可以把 t 統(tǒng)一定義為 UT 的命令,這樣可以省去敲一個字符的時間。

培養(yǎng)自己好的重構(gòu)習(xí)慣

這里講的重構(gòu)和代碼里的重構(gòu)大體意思一樣,就是不斷優(yōu)化自己的工作環(huán)境。Rule 6 其實(shí)就是一種重構(gòu)。

經(jīng)常問問自己這些問題:

  • 常用的命令是不是做了 alias?比如:總敲 ls -l,是不是應(yīng)該 alias 出一個 ll 來?

  • 常用的服務(wù)器信息是否寫在了 .ssh/config 里?服務(wù)器登錄是否使用了pub/private key(毋須輸入密碼)?

  • 對于某些操作,可不可以定義一些快捷鍵(比如說 google search)?

  • 項(xiàng)目里重復(fù)的工作是不是寫成了 makefile(或是其他任務(wù)腳本,如 rake,jake)?

  • 常寫的代碼結(jié)構(gòu)是否定義了 snippet?

講講 snippet。我特別喜歡 vim 的 ultisnips,它能讓我按語言很方便地定義 snippet。比如在 elixir 里總要寫的 GenServer 代碼,大體結(jié)構(gòu)是 Public API + GenServer API,我可以定義一個 snippet,在敲入 defgen 的時候,可以展開成為下面的代碼(并且我可以在代碼中跳至需要我修改的地方):

defmodule name do
  @moduledoc """

  """
  use GenServer

  ### Public API

  def start_link do
    {:ok, server} = :gen_server.start_link __MODULE__, [], []
  end

  ### GenServer API
  def init(state) do
    {:ok, state}
  end

  def handle_call(, _from, state) do

  end

  def handle_cast(, state) do

  end
end

這將省去我多少 bolerplate 的時間 —— 更關(guān)鍵的時,我的思緒不會被撰寫這些無趣,但又不得不寫的 bolerplate 打斷。

使用 git 管理個人文件

大部分開發(fā)者對于自己的代碼項(xiàng)目都有很好的習(xí)慣:使用 git(或者其他 scm)管理。但代碼之外的文檔,管理起來就有些隨意,即沒有歷史記錄,單純存儲在本地也容易丟失。建議大家對 $HOME 下的文件,只要是自己生成的文檔(太大的二進(jìn)制除外),一律用 git 管理(在目錄下 git init)。你們看到的這個公眾號的所有文章就是用 github 存儲(private repo)。然而 github 上存儲 private repo 畢竟要花錢 —— 不想花錢,又想很多私人的文檔想管理怎么辦?可以在 dropbox(或者其他類似的網(wǎng)盤)上生成一個 git 的 bare project,然后把本地的文檔 push 上去。

多看高手的 screencast

很多時候我們沒有機(jī)會近距離看高手是怎么工作的,但觀看他們的 screencast 不失是一種提高自己的好辦法。在這個方面,其他語言的愛好者估計(jì)都要妒忌 ruby 的擁躉 —— ruby 社區(qū)的各種 screencast 多得令人發(fā)指!通過訂閱這些 screencast,你不僅能快速學(xué)到語言相關(guān)的知識和實(shí)用的技巧,更重要的是,你知道高手都在用什么工具,如何寫代碼。11年的時候我看過一個 php 的 screencast,一個法國人介紹如何用 symfony 撰寫項(xiàng)目。那是我第一次領(lǐng)略什么是指尖如飛,也給我播下了 snippet 的種子(他用的是 textmate)。從那以后,我會時不時地看一些各種各樣的 screencast(以 rails 的居多),學(xué)習(xí)點(diǎn)新東西的同時,還能學(xué)習(xí)高手的習(xí)慣。

參考資料