程序員2013新年計劃
我的同事朋友Chris Eargle寫了一篇關(guān)于新年計劃的有趣文章。他讓我想到了,沒有出現(xiàn)那場世界末日是我們多么大的幸運呀(還有其他我這45年中躲過的天災(zāi)),于是,我也有了一些我自己的以程序員為主題的新年計劃。
找到一名導(dǎo)師/成為一名導(dǎo)師
在你的職業(yè)生涯中,你能做的會給你帶來最多麻煩的事就是成為屋里最聰明的人。我說的并不是你堅信自己你就是屋里最聰明的人。我的意思是你成為團隊里真正的萬事通。問題終結(jié)者。***疑難解答者。
于是,這就有了另外一個問題:你有疑問了去問誰呢?
如果你的回答是“谷歌”,那你是不思進取。去到那些你認識的(或不認識的)最聰明的人中間去。參加你們的本地社團。去你們本地的編程活動中發(fā)言,去和其他的講演者一起喝酒聊天。找那些你可以接觸到的人,讓他們成為你的導(dǎo)師。
找到一名導(dǎo)師
我在生活中有好幾位導(dǎo)師。他們是我尊敬的人和能讓我輕松問問題的人。有些人甚至非常的專業(yè)!沒錯,這些是我軟件開發(fā)圈外的導(dǎo)師。
如何去請教你的導(dǎo)師?這取決于你。我是在有問題時找他們。我對他們說喝杯咖啡吧,找個地方坐下來,聊聊天。如果我們能同一個城市的某個研討會上遇到,我會和他們一起出去喝酒吃飯。早些年,我很注重形式禮節(jié),特別是我作為團隊的消防隊員的時候。如今,我已經(jīng)不再有任何形式拘束了。更多的是隨心所欲的求教。
成為一名導(dǎo)師
同樣,我們也應(yīng)該成為生活中的某些人的導(dǎo)師。如果你有孩子,你已經(jīng)承擔起了一名導(dǎo)師,父母,朋友,老師的職責(zé)。當然,對于一些同齡人的指導(dǎo),我們需要去掉父母那部分的角色。對他們你是不能發(fā)號施令的。
如何讓自己成為其他人的導(dǎo)師?當然,如果有人來請教你,那是***了。這就有些名正言順了。但你也可以在不聲明“我是你的導(dǎo)師”的情況下成為某人的導(dǎo)師。看看是否有人在為一些事情愁眉不展,你可否幫助他們?對他們說喝杯咖啡吧(如果是九零后就喝紅牛)。去跟他們一起吃飯。跟他們聊天。更重要的是,傾聽。指導(dǎo)并不是宣揚你的智慧或你的經(jīng)驗。導(dǎo)師是要成為一個耳朵,一個肩膀,一個指點方向的手指——在他們需要的時候。
2010Feb08_0123.jpg/Jerome T/CC BY
KISS
“貝絲,你在呼喚我,但我只是想去底特律搖滾城市里每天沒日沒夜的搖滾”![歌曲KISS的歌詞]。似乎這個社會在召喚你制定一個加入這種KISS大軍,去吃喝玩樂,去體驗生活的新年計劃。但我在這里說的可不是這些。
我說的是Keep It Simple, Stupid!作為程序員,我們絕大部分時間都是花在了維護代碼上,只有少部分的時間用來創(chuàng)造代碼。事實也證明,維護代碼要比寫新代碼要難的多。所以,按照這種邏輯,如果我們在創(chuàng)造代碼時極盡所能寫出最巧妙的代碼,那么我們就沒有足夠更高的能力來維護它們了。
Blaise Pascal在他的第16封省府信件中說“這份信件很長,原因很簡單,我沒有時間使它更短”。抽出時間,重構(gòu)你的代碼,讓它們更短小。讓它們更容易閱讀。盡所可能的在所有地方遵循SOLID原則。
如果你不能把它向一個9歲的小孩解釋明白,這說明它太復(fù)雜了。公司雇你不是讓你來表現(xiàn)腦瓜好使的,如果你寫的代碼沒有任何人能接手維護,你不會因此而得到加薪或晉升。
Keep it simple, stupid (and short)/Jegi/CC BY
去讀該死的手冊(RTFM)
這是我的***次圣誕節(jié)里不需要在平安夜里去做一些東西。在以前,我會做小腳踏車,布娃娃房子,布置廚房,以及所有類似的東西。當然,做這些東西都不需要參考手冊,只是需要在孩子們上床睡覺后才能開始,而且第二天早上天蒙蒙亮就會被三個孩子跳上床來吵醒。噢,這些美好的回憶!
當然,所有的這些不眠之夜都有一個相同的主題。我知道我不需要讀操作手冊就能做這些。可工作中更常見的是,文檔上的圖表畫的一團糟,文字是經(jīng)過了三種不同語言翻譯過來的,我對這些文檔的質(zhì)量的意見一致很大。我認為只要埋頭去做,我能做出任何東西,所以為什么要讀那些無聊的手冊呢?這是不是好像是在說你上一個項目的需求文檔?
不管你相信與否,人們通常大量的時間用在寫需求上。他們并不是有意的要寫這些東西來讓我們困惑。需求很難寫的面面俱到,讓每個人都理解。但它們卻是你的項目的基礎(chǔ),包含了大量的項目上的知識。所以說,讀讀它們吧。如果是先讀它們,然后到它們的作者那里問一些問題,這是更好的做法了。用心聽!聊一聊。每一次有感悟都要重讀它們。再去聊一聊。
[127/365] Immersed/pasukaru76/CC BY
不要重復(fù)自己
一個朋友對我說“如果你寫出一些代碼,你應(yīng)該把它做成一個方法。如果你寫了它兩次,你應(yīng)該把它做成一個方法。如果你寫了它三次,那你就別去編程了!”
我舉雙手贊成。如果你把自己的代碼從一個項目拷貝到另一個里,你是在給自己未來的道路上挖坑。沒錯,你能記得修改手頭上這個項目里的這段代碼,但其它項目里的這段代碼呢?假設(shè)你在調(diào)試bug,幸運的是你能清楚的知道如何糾正這段代碼里的邏輯問題。但不幸的是,這段代碼在其它項目里的拷貝卻成了問題的根源。
像JustCode這樣新式的重構(gòu)工具能輕松的讓代碼片段變成方法,從而減少重復(fù)代碼,提高程序的可維護性。
DRY – Don’t Repeat Yourself – Motivator/Ardalis/CC BY