1. 程式人生 > >【讀書筆記(八)】程序員的職業素養

【讀書筆記(八)】程序員的職業素養

ase 一個 時間 存在 也會 專註 的人 編寫 讓我

程序員的職業素養原名“The Clean Coder”,單看書名可能以為這是一本講解怎樣編寫簡潔代碼的技術書籍,實則不然。相比之下,中文譯名要更貼近主題一些,這本書是編程大師Bob大叔40余年編程生涯的心得體會, 他以自己以及身邊的同事走過的彎路、犯過的錯誤為例,為後來人引路。
這本書一方面闡述了作者對敏捷式開發的見解和建議,而更多的則是探討成為真正專業的程序員需要什麽樣的態度、原則,需要采取什麽樣的行動。而這些看似與技術無關的東西往往決定了一個程序員的上限。
比較讓我感到欣慰的是,雖然現在的我們與作者相差太遠太遠,但他本身也是跌跌撞撞一路走來,很多地方能產生共鳴,看到這些地方是對自己的一次次鼓勵。這無疑給以了我們以足夠的信心。

關於拒絕

關於拒絕,很多非技術性書籍都提到過這一點。作者在這裏以自己的經歷又做了一次完整的剖析。簡而言之,公司整天要加班,整天要通宵,每到叠代出口就拼死拼活,版本發布後客戶一個投訴,又通宵定位,這些,都是因為這支程序員團隊,不夠專業!
需求到底是什麽,僅靠一份需求說明書是無法澄清的,所以也就有了後面的客戶不滿意,重做;單元測試,是從來都沒有時間寫的;自動化?呵呵,就鼠標點一點就好了,做啥自動化?......軟件這麽玩,難怪程序員會很累了。
如果遇上的是這樣一個沒有團隊精神的leader,或者leader能力不濟,業務人員(更多的時候是leader)向客戶(更多的時候是leader的leader)承諾某某天要完成某某產品,然後壓著底層技術人員拼命的加班,這一切都是不專業導致的。作者以他的經歷,告訴了我們這樣是不對的,對於這樣的團隊,這樣的leader要能夠說“不”,但是如果自身能力不夠,卻往往沒有“底氣”去說。這是一個很矛盾的事,作者只是提出了一個很理想的解決方法,實際要復雜的多,但是能認識到這一點,並在合適的時候敢於拒絕,是避免程序員走入職場陷阱的很重要的一件事。

關於承諾

拒絕跟承諾是相對應的,拒絕是為了堅守承諾。不懂拒絕的人慢慢的就會淪為不守承諾的人,試想當承諾的太多太滿,即便自己有去實現承諾的心也往往沒有能力去完成。當然也有可能他從來就不曾把信守承諾當回事。一個真正專業的程序員應該在承諾之前深思熟慮,避免太草率的承諾,也不要害怕承諾而一點責任也不擔當。當然,這不僅僅是程序員的責任,一個良好的團隊也是特別重要的。但是可惜的是,在當代的中國就業市場,存在太多太多不專業的團隊,他們會要求你2天幹完3天的活,假如你不敢敢承諾可以完成,那麽這工作就沒你份了,但是假設你答應了,則往往導致延期的發生。但這不重要,因為他們已經習慣了延期。有些書籍裏批評了這種先應承下來,然後再延期完成的做法,但很不幸,市場上有太多這樣不專業的團隊。真希望這樣的團隊能越愛越少,因為只有有足夠專業的時間評估,有足夠的團隊精神的團體,才能創建一個信守承諾的環境。

關於編程

這一點或許與大多數人的經歷矛盾。作者告誡我們要盡量避免進入流態區。
所謂流態區,就是程序員進入一種意識高度專註但思維視野卻會收攏到狹窄的狀態。高度專註狀態是我深有體會的,也就是編程最暢快的時候,急於看到程序運行起來,急於去享受成就感的狀態,這樣狀態在大多數人看來,是一個良好的狀態,可以沈浸在編程的愉快中。然而,這卻是大師需要去防範的狀態,這時思維和視野會變得狹窄,往往編出來的代碼會影響整個架構。如何防止進入流態區,這讓我想到了TDD。很多人拒絕TDD,其實就是流態區在影響他們的判斷。TDD三條法則,讓他們不能“暢快”地編程。假設Bob大叔說的是事實,流態區確實不是編程最佳境界,那麽TDD真能解決這個問題,至少能解決大多數人這個問題。它讓程序員編程過程中,不定的在思考需求,寫測試Case,寫代碼,重構中循環,而不是讓程序員在編碼中任意馳騁。

這本書雖然我還沒有看完,但已經頗感受益,假若以後進入工作,我也會時不時想起Bob大叔的教導,參與一個專業的團隊,培養一個專業的態度,養成一個專業的習慣,做一個專業的程序員。

【讀書筆記(八)】程序員的職業素養