自我感覺還是蠻在乎效率的人。為了提高效率,我特別重視如下幾點:
工具化
我是個典型磨刀不誤砍柴工的人媒熊。
2011年的時候帽哑,在開發(fā)一個項目前谜酒,我先花了幾個禮拜自己開發(fā)了一套Web框架。
因為我之前做過一段時間的Ruby程序員妻枕,一對比僻族,我發(fā)現(xiàn),Java的Web框架都太不好用了屡谐,Java的ORM框架也不好用述么,Java 的MongoDB Client 也不好用。于是我決定開發(fā)一套一站式Web框架愕掏。
正好除了搜索的任務以外度秘,公司希望做一個全站通用的標簽系統(tǒng)。當時在選型上饵撑,老大說用Spring,我當時說剑梳,給我點時間,我自己開發(fā)一套開發(fā)框架出來滑潘,老大說垢乙,你有信心做好么,我說有语卤。老大給予了肯定的答案
這套Web框架就是ServiceFramework。自己現(xiàn)在很多開源項目也都是基于這套Web框架是做的粱侣。比如StreamingPro編譯的時候依賴的Web庫是ServiceFramework羊壹,配置引擎則是ServiceframeworkDispatcher,都是自己非常常用的工具齐婴。
其實都是造輪子油猫,然而這些輪子我們先不說它是否優(yōu)于其他相似的開源項目,至少我對它們是把控力的柠偶,而且解決的也是我工作中比較常遇到的問題情妖,所以用了起來特別的順手睬关,自然也就效率很高。
所以毡证,積累自己的工具庫电爹,是非常有必要的。再提下剛才的StreamingPro,它的誕生是為了解決我使用Spark的問題料睛。而為了解決運維相關(guān)的問題丐箩,我和同事也做了非常多的工具,有些我們花了一年以上的業(yè)余時間在持續(xù)完善恤煞。
預見和練習
雖然很多人似乎不Care所謂語系屎勘,不Care所謂工具,總覺得自己掌握了開發(fā)的真諦居扒,其他一切我只要用的時候?qū)W下就能搞定了概漱。
實際真不是這樣。我們還是以語言為例喜喂,我學Scala只用了幾天時間瓤摧。在等火車,以及在火車上把官方的tutorial 看完玉吁,覺得差不多了姻灶,然后寫了些簡單的程序后,就能寫一些業(yè)務了诈茧。然而我真正用順了,用的不堵了捂掰,卻花了幾年的時間敢会。對于一個不趁手的語言,代碼質(zhì)量是否能保證我們先姑且不論这嚣,其實也嚴重影響了開發(fā)效率鸥昏。
所以我工作中潛在的可能會用到的東西,我都會先花很多時間去調(diào)研和練習姐帚,等真正用到的時候吏垮,就能如魚得水,隨心所欲罐旗。比如Scala,我早先只是簡單用了下Spark,我完全可以用python或者Java去開發(fā)Spark 應用膳汪。但是我覺得Scala是有必要學習的,所以我花了很多時間去做練習九秀。所謂練習其實就是真的把他應用到項目上遗嗽。我之前有很多項目是java/Scala 混合的,這就為我后續(xù)對Spark Core的研究做好了鋪墊鼓蜒。
所以對于一個程序員痹换,對于自己工作技能的預見性能讓你未來越來越游刃有余征字,而高強度的練習,則保證你做事情可以做的很順手娇豫,不會用起來畏首畏尾匙姜。
打破慣性
所謂語言之爭其實某種角度是守舊勢力之爭。每個勢力都不愿意深入到別的地方看看冯痢,然后就說自己的地方是最好的氮昧。程序員是擁抱變化的,體現(xiàn)在程序員常說系羞,一天不學習郭计,就感覺自己進入了古代。然而程序員又是害怕變化的椒振,對于自己不熟悉的東西昭伸,總是會比較排斥,這或許也是人類的天性澎迎。
尤其是在時間比較緊張的情況下庐杨,我們會常說,用最笨的辦法先把這個解決了吧夹供,這其實是在用蠻力替代一個良好的思考灵份。好比命名可以用一個for循環(huán)解決的問題,你非要復制黏貼100遍哮洽。
所以填渠,喜歡調(diào)研和測試新技術(shù)的程序員,往往是具有打破慣性的特質(zhì)的群體鸟辅。他們在不斷的嘗試過程中氛什,不斷的更新?lián)Q代自己的武器,讓自己保持某種先進性匪凉。這就好比一個國家不斷更新自己的武器裝備枪眉,一家工廠不斷更新自己的機床車間。
讓你身邊的人也高效起來
這個是我直到今天才感悟到的再层。我一直努力讓自己更加高效贸铜,不讓時間虛度。然而當我們面臨越來越復雜聂受,越來越繁瑣的任務時蒿秦,我們不得不借助于團隊。道理我都懂蛋济,然而卻一直不上心渤早。我們一直說團隊是最重要的,然而我們終究并沒有把心思完全放在團隊上瘫俊,為了自己的那點小九九鹊杖。
只有身邊的人也如你般高效悴灵,才可能釋放出你來去做更多讓更多人高效起來的事。更多的人更加高效骂蓖,即節(jié)約了他們的生命积瞒,也反過來再次讓你變得高效。
當你能夠讓身邊的人也越來越高效登下,或許你就真的到了高效的最高境界茫孔。