寫程式,在資訊業的行話來說,是指 Programming,意思是將事物程式化,透過程式來達成我們需要或想要的功能,而寫程式的這個人,通常被稱為程式員 (Coder),台灣多半稱它為程式設計師 (Programmer)。
寫程式,在資訊業的行話來說,是指 Programming,意思是將事物程式化,透過程式來達成我們需要或想要的功能,而寫程式的這個人,通常被稱為程式員 (Coder),台灣多半稱它為程式設計師 (Programmer),但這兩個詞差很多,一個是工業的用詞,代表寫程式是一種苦工,只會依照上面所交代的功能與架構,利用既有的快速程式碼產生工具來產生程式;而另一個則是比較像是具有自我思考能力的工作,因為設計 (Design) 這件事,本來就沒有什麼一定的標準,只要能夠達成該有的功能或目的,用什麼樣的作法都可以,不過通常設計師會以最好的作法來做,所以經過設計的程式,不論是功能和效能以及該有的特性 (ex: Security, Extensibility 等) 都有一定的水平。
再由實際工作的性質來看,寫程式這件事通常不會是太有活力的工作 (我指的有活力是指花很多時間在人際互動上,例如沒事就去和別的同事聊天,或是不時的往外跑的外務工作如業務人員等),通常寫程式是需要思考的工作,當思緒完全放在寫程式上的時候,通常不會有太多的時間可以去和別人聊天或打鬧,程式開發也是需要邏輯概念的工作,當寫程式寫到一定程度時,腦中自然而然的就會浮現程式的 layout 以及輸廓,而寫程式就是將腦中的這些 layout 將它以程式語言的方式輸入到電腦,並且由電腦執行以完成在腦中的 layout 所做的工作 (當然如何在腦中產生這些 layout 也是需要一段時間的訓練,這個日後我會談到)。
由這兩點來看,寫程式的工作會有下列特性:
- 寫程式是需要在電腦前坐長時間的工作。思考程式的 layout 不是兩三分鐘就可以想出來的,除錯的工作會遠比開發花更多的時間。
- 寫程式會需要集中心力。因此通常在寫程式時都希望能夠專心,而且不要有太多的噪音 (最好是都沒有噪音,但這太難了)。
- 寫程式需要充份的耐心。尤其是當程式碼怎麼寫都有問題,或是正在進行除錯或測試的過程時。
除了這三點以外,寫程式這件事和資訊行業其他具有技術性質的工作一樣,必須要時時的學習,通常一個技術的有效期限大約也只有兩三年,最近的技術則更短 (例如 Silverlight,一年就出一個新版本),因此追逐新技術也是資訊行業特有的要求之一,不過如果是做寫程式的,這個特性會更加明顯,因為程式開發往往是資訊技術引入企業或是發展企業應用 (ex: ERP, Workflow, CRM, …) 時必備的,如果你打算成為 RD (Research and Development) 的話,不斷的學習更是基本要件,這代表大概每三個月就要重新盤點自己的技術能力,針對新的技術和具有潛力的技術 (ex: 雲端運算) 進行先期的 survey 或測試,以搶得市場先機。同時 RD 也要因應公司的行銷需求來研發新的程式或系統,此時對領域知識 (domain knowledge) 與技術的廣度就非常重要。
因此,如果你有前面所說四種特性中的三種以上,你可以考慮將寫程式的工作納入進入職場的選項之一,但其實靠寫程式成功發展的人都有一項最重要的特性,就是對技術的熱情 (passion),熱情是可以在這一行持久發展的最重要特性。我和一些軟體公司的主管聊過,他們一致都認為熱情是持續在這個行業打滾的核心特質,因為有了熱情,你可以在半夜不睡覺只為了寫出一個小小的功能;有了熱情,你可以將追求新技術視為很平常的事;有了熱情,你會將程式寫的更好,或是在程式中注入更新的能力或活水以活化程式的能力。對工作充滿熱情不只適用於寫程式,在所有行業幾乎都適用。
如果你是資訊類科系 (資管,資工,資科,資傳,電通,… 這些科系) 的學生,而你對上面四項特性的兩項以上感覺很厭惡的話,建議你最好快點轉行,否則在這一行會過的很痛苦,寫程式會毫無樂趣可言,變成只是糊口的工具而已。千萬不要認為寫程式這件事很容易,當你的本質並不適合做這一行又硬要進來的時候,不久就會吃到 “寫程式很容易”所帶給你的大虧了。
參考資料:
- 人月神話:軟體專案管理之道。
- 約耳趣談軟體:開發人員完全守則。
- 與許多同好與軟體公司主管交流的經驗。