最近在讀 The Clean Coder, 對於其中所講到的專業程式設計師的素養及應具備的能力, 以及台灣現階段軟體工程師的困境, 是有些感觸的。
單純以完成被交付程式任務的能力, 相信台灣的工程師的能力, 並不遜色于國外的工程師, 但很多時候, 完成被交付的任務, 應該是在開發產品的過程中, 最為簡單跟被系統化的一環。
(假設)好吧!?我們(工程師宅宅)都有能力完成你說的出來、或者有人做的出來的軟體功能, 有了一定功力的程式設計師, 應該都有這樣的自我感覺, 或者說自信!?
大師
他們是已經領導過許多重要軟體專案的程式設計師。 一般來說, 他們擁有10年以上的從業經驗, 曾在多個不同類型的系統、語言和作業系統上工作過。 他們懂得如何領導和協調多個團隊, 是熟練的設計師和架構師, 能遊刃有餘的進行程式設計。
熟練工
他們還處於受訓期當中, 不過以能勝任工作,而且精力充沛。 在職業生涯的這個階段, 他們將會學習如何“在團隊中卓越工作” 和 “成為團隊的領導者”。 他們對當下的技術十分了解,但是對於其他許多系統尚缺乏經驗。 平均經驗水準在五年左右, 但彼此間的經驗水準差異可能很大。
學徒/ 實習生
畢業生會從學徒這一步開始他們的職業生涯。 學徒沒有自治權, 他們需要在熟練工的緊密督導下工作。 他們不會單獨承接任何任務, 只能作為助手或熟練工的小幫手。 這個時期是學習紀律並強化各項實踐的階段 (ex. TDD、 Design patterns、 refactoring等)。
必須很坦白的說, 在這個階段以Uncle Bob的定義來說, 可能我也只能被歸類在學徒/ 實習生的那區。
如果有人可以在我剛踏入職業生涯時, 能以帶學徒的方式將專業程式設計師的素養, 用身教言傳的方式讓我知道何謂專業,那麼也許Lenny今天又是另外一片光景也說不定 (笑)。
然後今天這篇文章, 好像敲醒了我 低薪?沒人才? 台灣哪裡沒人才了 人材多的是
它讓我想起了 曾君宇 (Chun-Yu Tseng) 跟我說過的一段話 “同樣都是三年的工程師, 有的程式設計師有了半年的經驗, 然後重複用了三年, 也有的工程師扎實地用對的方式, 這三年經驗, 一樣嗎?”、
“不要再寫Dirty code了!”
現在想想, 他真的沒說錯! 感嘆的是, 在台灣這個環境, 工作上你很難遇到真的大師, 多的是文章中說的用錯誤方式在做事的人, 就算專業素養到一定程度, 會不會帶人跟領導團隊似乎又是另一件事。
一個人自以為很厲害, 永遠組不了一個團隊!
專業的工程師的素養:
1. 擔當責任
2.對自己所犯的錯誤負責
程式難免會出現Bug, 但這並不意味著你不用對它負責; 沒人能寫出完美的軟體, 但這並不表示你不用對不完美負責。
專業人士要練習的第一件事就是道歉, 道歉是必要的, 但這還不夠。 你還必須能不會一而再、再而三地犯相同錯誤。 失誤率永遠不可能為零, 但你有責任讓它極接近零。
3.要確信程式碼正常工作
4.不要破壞結構
專業的工程師的職業道德
這些都是你自己的事。
摘錄自The Clean Coder: 僱主出了錢, 你必須付出時間和精力。 以一周工作40小時的美國標準, 這時間應該用來解決僱主的問題, 而不是你自己的問題。 你應該計劃每週工作60小時, 前40小時是給僱主的, 後20小時是給自己的。 在這剩餘的20小時裡, 你應該看書、練習、學習, 或者做其他能提升職業能力的事。
專業的工程師應該堅持學習, 不懂就學, 不要畏難。
在大師的眼中的專業, 真的跟我自以為的專業有相當大的落差! 有空的程式設計師的朋友們, 可以找時間翻翻這本書!
覺得這篇文章好嗎? 請分享給您的朋友
探索更多來自 懶泥陳的閱讀書房 的內容
訂閱後即可透過電子郵件收到最新文章。