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