|
說明1:對點擊“推薦“的朋友表示感謝,博客園有沒有可以看到是誰推薦的功能呢?
說明2:對所有的評論朋友表示感謝,即使是批評意見也很有價值。
說明3:是這個系列的第一篇,忍不住放入太多內容,導致重點不突出,等有時間把文章重構成2-3篇。
說明4:題目中的Hacker是特指編程技術超牛的程序員。而不是指黑客,由于中文把Hacker翻譯成了黑客所以導致了混淆。
黑客又被稱為黑帽黑客(Black Hat),cracker,腳本小子,是利用所學技術繼續進行系統破解的人群。
本系列的Hacker都是指編程頂尖高手,也被稱為白帽黑客(White Hat) ,比如hacker老大 Linus。
這也就是Redhat名字的出處吧。
重量級秘密之二 :保護眼睛
上一篇提到過Hacker都是“以我為主”的。提高編程效率是為了增加競爭力和收入。保護眼睛就是為了減少支出,延長編程生涯的壽命。
一個程序員,坐在空調房,沒有體力勞動,可以說是一個非常舒服的工作,但是他有一樣東西是過度使用的,那就是眼睛。
特別是鼠標型程序員,他們每一分種都在做手眼協同。一般來說一個程序員用眼度是一個文員的200%。
而一個Hacker的用眼度可能只有程序員5%,沒有寫錯,只有5%,甚至更少。
所以有很多大胡子Hacker。因為編程不需要用力氣,能敲鍵盤就可以,所以只要保護好眼睛,就可以干到很大年紀。
也就是說他們產出高達100倍,損耗卻只有5%,真是無語呀。
那么他們是怎么做到的呢?(以下方法都是從用眼的角度去考慮,當然也有其他方面的考慮,只是暫時忽略)
首先是開發環境,Hacker盡量使用命令行,并使用良好的配色(深色底,淺色字),如果使用VS的朋友,如果你的背景色是白色,建議趕快換成深色(VS有很多theme)
很多人會嘲笑hacker的古董界面,他們總是一笑了之,依然故我。我也嘲笑過命令行程序員,恐怕當時他們看著我的紅紅的眼睛暗暗發笑吧。
其次是編輯器,也就是傳說中的vim,emacs這樣的神器。用他們有以下幾個好處。
1、用機器去找, 而不用眼睛去找。
以VIM為例
找文件的話,用所謂fuzzyfind,比如 app/controller/user_controller.cs這個文件, 你只需要輸入 acu三個字母,文件就自動打開了。這個可以節省用眼30%
找整個詞的話,輸入/user,這個可以節省用眼5%
查找單個字母,輸入fo,就自動跳到 user.name="Tom"中的o,這個可以省眼5%
2、連擊技
這個就厲害了,利用查看和動作,可以行成“連擊技“
比如 User user=User.new,要刪除new,鼠標在第一U上,輸入cfn+find,直接就把User.new改成了User.find,可以省眼30%,(一般做這個動作,我總會閉上眼)
還有內刪除,比如要刪除find(Name user,Age age),輸入f(,光標定位到(上,然后ci(三鍵將括號里面的內容刪除干凈。
還有幾百種連擊技,大多我也不懂。不過即使掌握了10種,省眼也有50%。
3、snippet和autocompele
snippet比較普遍了, autocomplete要提一下, 這個不同于Intellsence,因為autocomplete開頭的字母一定要輸入正確,才可以補齊的,所以Hacker都是要背api的(第一篇已經提到過背api了)。
以上只是vim技巧的一滴水珠而已,vim是需要用一生去相處的朋友。(注:emacs比vim難,建議還是從vim入手),不過很多初學者由于沒有人指點,所以往往都最后失敗了。其實是方法不對,反向不對,以后要專門寫一篇Vim的最佳學習法。
然后就是編程方法了,比如Hacker推崇的TDD,MVC。
所謂TDD,就是用程序去檢查程序,成功綠色,失敗紅色,這個可以省眼30%。(Hacker的機器小秘?!!)
所謂MVC就是把顯示隔離開,做MC的時候,和TDD結合,繼續省眼,有些Hacker很寂寞,所以即使做View的時候,他們也搞出了沒有顯示的瀏覽器(Headless Brower),還是命令行!
還就是用腦力換眼力,Hacker盡可能的把代碼的結構建立在大腦中,比如文件夾的結構,文件的名字,比如類的namespace,比如庫的結構,比如函數名稱,(當然背api是入門功夫了)。一個頂級的Hacker可以在腦中建立起代碼庫的全息索引。
然后利用神器,指哪打哪了。
最后就是social coding,就是大家一起團結起來,代碼互換,開源就是最重要的一種social coding。
也許你會說,這里省30%,那里省10%,到最后不是要閉著眼睛編程序了?
這個厲害了, 谷歌的盲人Hacker Raman,就是閉著眼編程序的。
it知識庫:Hacker傳說之不能說的秘密(2),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。