(圖/shutterstock)
圖片來源:Shutterstock
作者:Arthur Liao
除了專業技術能力,
我再補充一些非關技術的心得。
克制砍掉重練的衝動
在開發過程中,
程式員很容易對既有程式碼產生一種
「這誰寫的?砍掉重練比較快」的衝動,
包括我自己在內。
我想可能的原因有:
●砍掉重練其實比較容易
(拆掉舊屋蓋新屋很快,
保留這面牆、那扇窗的反而更困難)
●在自己的地盤當山大王很開心
(人都喜歡按照自己的意思來)
●在系統發展的過程中,
很多需求後來才出現,
使當初的架構顯得捉襟見肘,
但在當時其實是很合理的設計
●上線多年來,
程式員處理了很多狀況、修復很多bug,
因此程式顯得沒那麼乾淨優雅
●寫程式比讀程式容易
●文人相輕
●(排除以上各種因素之後)當初的程式碼真的寫很爛
不管怎樣,砍掉重練(rewrite)的代價,
通常比乍看之下高許多,
而且日後維護你的程式碼的人,
心裡可能同樣嘀咕
「這誰寫的,砍掉重練比較快」。
Joel Spolsky在2000年寫的一篇
“Things You Should Never Do, Part I”,
今日讀來依然犀利。
小幅重構(refactor)是沒問題的,
而且可以經常做。
理解不同人的立場
當我們在某一方面懂得比別人多時,
容易產生一種傲慢,技術人員也是。
在專案開發的過程中,除了技術團隊,
還有產品/專案經理、主管、客戶、
使用者等不同角色的人介入。
在技術方面懂得比別人多,
並不妨礙我們理解他人的立場。
當我們能站在別人的角度看問題,
常常一下子就能了解為甚麼事情會這樣。
例如:需求改來改去、一開始不講清楚、
進度卡在別的team上面、
「請你用最快方式完成」、
「先支援這件緊急要求」、
沒人把我講的話當一回事……
做到理解他人或是同理心(empathy),
其實並不容易,因為每個人都有自己的立場,
而人們傾向站在自己的立場看問題。
我費了很大功夫,
一直在努力修正自己技術傲慢的心態。
如果你技術很厲害,
又能做到理解別人,
那真的很不簡單,
你所在的團隊運作一定更為順暢。
參與社群,吸收新知,寫點東西
不管公司大小,
資深程式員若只把觸角侷限在公司內部,
會越來越封閉。
接觸外面的社群、吸收專業領域的新知、
寫點東西累積自己的專業 credit,
會讓自己成長得更快。
現在參與社群的管道很多了,
從專業聚會研討、
開源碼專案到各種社團,五花八門,
不過還是得衡量一下自己能投入的時間。
單身的人比較有空,
有家庭有小孩就只能斟酌參與了。
吸收新知是為了讓自己保持在敏銳狀態,
不要變成滅絕的恐龍,
但也不用太過焦慮。
軟體領域變化快速,
各種語言、框架、技術不斷冒出來,
要追新知永遠追不完。
如果你時間充裕,可以到處追新知,那很好。
若你時間有限,我的經驗是:
等到很多人都在談論的時候
再去了解一下,也就夠了。
跟工作有關的,
根據自己在團隊中的角色,適度學習即可。
另外,我建議有幾年工作經驗的程式員,
都應該考慮寫點技術文章,
累積自己的專業 credit。
這種事情沒有看起來那麼可怕,
一回生二回熟,
包括找主題、寫文章,多試幾次就會上手。
也不用給自己太大壓力,
一、兩個月寫一篇都可以,
長短不拘,日積月累,會有收穫的。
(插播一下:如果不想花力氣架部落格,
歡迎來Twincl網站發表文章;
這裡還有我獨家開發的「所見即所得」
Markdown Editor,寫文章蠻方便。)
相關文章》
程式員求生指南》關於寫程式的二三事:程式員 須具備哪些 基本能力?
程式員求生指南》關於寫程式的二三事:程式員 須具備哪些 進階能力?
未經授權,請勿轉載侵權!
(責任編輯:CMoney編輯 / Alodia)
菁英軟體工程師戰鬥營
第六屆 熱烈招生中!
想學程式、成為工程師
卻怕自己沒基礎、學不好嗎?
這裡有史上最專業的魔鬼訓練課程,
讓你有機會 朝夢想前進
全程免費、不用基礎從頭開始、培養就業競爭力!
填寫報名表,將有專人與您聯絡
名額有限>>馬上報名
詳細活動介紹>>點我查看!
有問題歡迎私訊粉專:從0開始學程式!