今天忙,沒時間寫 Sea.js 原始碼解析,閒聊點其他話題。
最近馮大輝和陳皓都有發文討論「加班和效率」,闡述得很明白,我補充說說效率與工具的關係。
很多程式設計師,包括我自己,都正在迷戀或曾經迷戀過各種工具,最常見的是程式碼編輯器。經常一有人「褻瀆」某個神器,就會引起激烈的口水戰,甚至上升到哲學高度……
談工具與效率之前,想先談下另一個話題。
最近看到 一篇文章,講我們這個大千世界上,實際上只存在四種職位。
- 生產者(Producers)。樓下的快餐店員工、公交車司機、去廣州的大量打工者、建築工人、商場服務員等等,這些工作的最大特點就是重複。但這是社會的主流生產者,價值巨大。沒有重複工作,現代社會將停止運轉。
- 改進者(Improvers)。重複工作的特點是流程化、規範化。但所有的流程、規範,都有改進空間。無論是餐飲行業,還是軟體開發行業,流程等各方面的改進,都是很多企業的競爭力。改進者經常是資深生產者,經歷過大量重複工作的「摧殘」後,才往往能做出改進。改進者的價值也很大,不斷的改進,可以把一個行業,做到極致。
- 構建者(Builders)。構建者不同於改進者,構建者可以將想法變成現實,可以將很多概念設想,變成實體。在網際網路行業,很多創業者都是構建者。科技行業也有很多,比如 3D 印表機能從概念變成現實,離不開構建者。這個世界,構建者改變世界,雖然成功者並不多。
- 思考者(Thinkers)。思考者富含遠見,對未來充滿想法,並能給出實際可行的指導。比如愛因斯坦,沒有他的思考沉澱,原子能就沒這麼快走進現實。思考者很少很少。
我們大部分人,都會同時具備多個角色,比如是生產者也是改進者,改進者也是構建者,偶爾我們也會是思考者。
不同的角色,工具對其工作效率的影響有很大不同。
對於生產者來說,好的工具可以極大提高工作效率。比如跨省的快遞員,如果有飛機協助,效率直接比電動車高非常非常多。
對於改進者、構建者和思考者來說,工具往往並不會帶來工作效率的飛躍。
回到我們程式設計師,一般剛畢業時,工作前一兩年很可能是生產者。這時工具的確很重要,因為這個階段我們是「碼農」,用什麼鋤頭幹活,有沒有自動打穀機等工具,很影響工作效率。熟練掌握一些順手的工具,很重要。
工作幾年後,工作內容會逐步變成改進者的角色。這時最影響效率的是大腦,學會如何去發現問題,如何總結沉澱經驗,如何擴充自己的視野思路等,這些方面,才是影響效率的最重要因素。
如果有幸成為構建者,技術的廣度和深度,做事的心態和眼界,環境的認可和人脈等等,是影響事情能否做成的關鍵。這個階段,都不再會怎麼談效率。
最後舉自己的一個實際例子。Sea.js 的開發,目前介於改進者和構建者之間。這一塊的工作效率,核心取決於我對模組化開發的理解,對同類產品實現細節的深入,以及自身編碼技能的積累上。目前效率最高的時候,是靜下心來,用傳統的紙和筆勾勒思路的時候。大概理清楚了思路,用 notepad 也能很快把功能實現出來。
掌握基本的工具是有必要的。比如對於前端開發來說,學會使用至少一個瀏覽器的開發者工具是必要的。合理的使用,會讓整體工作更順暢。
但不要執迷於工具。工具能將效率提升到某個量級,但很快就會碰觸天花板。真正的效率突破,不在工具上。
提高效率的核心,是去找到效率的「梗」。工具只是輔助,加班也只是臨時措施。從「梗」上去探尋,才能實現效率的真突破。