[碎碎念] 程式開發領域由菜鳥到老鳥的成長歷程 (12) - 菜鳥階段-要做工人還是設計師?

在程式開發領域,工人和設計師相差其實不像其他產業那麼大,但大家都一樣寫程式,為什麼總是有人要人家指揮才要做,而有些人卻是不需交代太多就可以把程式寫的比你想像中還好?這就是工人和設計師的差別。

程式設計師雖然掛了 "設計師" 三個字,但未必會和設計師一樣,因為更多的情況是照本宣科,規格寫一就做一,寫二就算二,其他的就看著辦。筆者不是說做專案,因為專案確實是不用多做,那和錢有關係,但筆者說的是在公司內的程式設計師,怎麼樣就是不肯多做一些,但卻和其他肯多做一些的人領一樣的薪水。這種只會按藍圖寫程式,連一丁點構思都不會的,頂多只能叫程式工人。剛好相反,真正的程式設計師是會在寫程式時思考的,像是怎麼寫才會有易讀性,怎麼寫才可以保留彈性,註解怎麼加,變數怎麼命名 (除了命名規範以外更具親和力的命名) ,或是會拋出思維給SA/SD 做一些討論,把系統做的更好等,這種會思考的人,才可真正稱為設計師。

在菜鳥階段,做工人的機率會比做設計師高很多,不過態度卻會影響未來是停在工人階段,還是可晉升到設計師,差別只在寫程式時有沒有多想一點,不管是針對程式碼結構,可讀性,或是對系統的影響面向,都可以是思考的範圍之一,少了思考,寫程式就容易淪為文抄公,以及照章辦事的後遺症,不利於未來的職涯發展,另外一個影響的因素是,思考是需要有多方知識作基礎的,設計師也需要廣泛的知識,像是要知道 UML, OOP, Testing, Prototype, ... 等軟體開發的相關知識,有了這些知識,再加上寫程式時的思考,將會活化寫程式的思維,讓程式寫起來時會不自覺得變靈活,而且一些好習慣的養成,在菜鳥階段很重要,它們會讓未來個人的發展性變強,也是作為以後從事更高階工作時的重要基石。

所以在菜鳥階段時,累積一些重要的好習慣 (例如良好的程式結構,有意義的變數命名法,註解清楚易讀,切割程式以提高可重覆使用性等等),以及練習在寫程式時思考是很重要的。它會決定個人的未來,是工人還是設計師。