close

 

 

程式設計工作者的職場必勝術

 

文/iThome (記者) 2008-12-17

 

頂著「科技新貴」光環的程式人,撇開薪資、證照等條件,其實興趣及能力才是成功的最重要因素。

 

 

 

程式人是一個很奇特的行業,在這行之外的人們,多半認為程式開發是一門不錯的職業,既有科技新貴的光環罩頂,又有外界視為還不錯的收入水平。

有趣的是,我們卻又時常聽到這行裡頭的人們,抱怨所從事的工作。例如自認是廉價的苦力勞工,或者「優沃的金錢回報,也換不回長期熬夜造成的爆肝」之類的怨言。

我認為程式人不是廉價勞工,待遇是因能力而調整的。而證照只是進入這一行的敲門磚,要能堅持下去,需要高度的興趣及喜歡變化的心。

同樣是撰寫程式,待遇卻會因能力而有天壤之別
我時常在一些以程式人為主的網路論壇上,看到許多程式人發問關於薪資的問題,內容不外乎是詢問程式人的薪資水平。不過,程式人這一行,就和其他的行業一樣,同樣是撰寫程式的工作,待遇也有可能天差地遠。

這是因為程式人之間的能力高下,可能有著天壤之別,例如一流的程式人,生產力能以一抵十。尤其充滿技術難度的程式設計工作,靠人海戰術很難奏效,因為它充滿著高度的技術不可替代性,某個程式人能完成的工作,換成其他人,可能不論用上多少人都無法達到。

如果你只是人體程式碼產生器,終日撰寫著重複性質的程式碼,卻又無法藉此累積經驗、昇華到另一個境界,那麼自然處在容易被取代的位置上。

如果說,最好的投資是投資在自己的知識及技能上,那麼程式設計工作,絕對是這句話的最好印證之一。與其斤斤計較些微的薪資差異,不如花心力鍛練自己,才是提升薪酬的最重要關鍵。

程式設計工作需要興趣支撐,否則會很痛苦
談到了薪資,不免要談到為什麼要踏入程式設計、軟體開發這一行。有些人之所以成為程式人,是因為這一行最起碼有著尚可的薪資水準,甚至還會被外界誤以為是所謂的「科技新貴」。但是,倘若只是為了這個原因而選擇踏上這條路,我認為這條路將會走得十分辛苦。

這類工作需要以喜愛程式設計為支撐,有兩個理由。第一個是,當你喜歡撰寫程式時,寫程式本身就是樂趣,有時候,你甚至不認為自己是在工作,而是在玩樂。對天生的程式人來說,玩樂與工作是程式設計的一體兩面。撰寫程式的同時,既在玩樂,也在工作。

但是,相反的,倘若你並不是真心喜歡程式設計,只是單純地為了獲得金錢上的回報,而進入這一行,那麼這份工作很有可能為你帶來許多痛苦。或者,即使你很喜歡程式設計工作,也能樂在其中,但它有時也不免會為你帶來痛苦的感覺(例如急迫的時程、頻繁的需求變更……等),但是,如果你喜愛程式設計工作,以及完成程式時的成就與滿足感,就能舒緩痛苦的感覺。

第二個原因是,程式設計能力的精進和投入的時間,有很大的正相關。我之前曾經提過,程式設計有時就像練功夫一樣,在平凡無奇、日積月累的蹲馬步中,方能領會進一步出力、使力的法門。

倘若你並不喜歡程式設計,那麼就比較不可能投入較多的時間,自然很難獲得持續成長的動力。而無法持續鍛練自己的能力,再連接到金錢回報的問題上,自然又更難取得優沃的薪資。這成了雞生蛋、蛋生雞的問題。

證照是一個敲門磚,證明我原本就擁有的實力
現在坊間有許多關於程式設計證照的課程,許多人會著眼證照在職場上所能帶來的加分,而報名相關的課程,並且參加證照考試。的確,對用人主管來說,證照是對於你能力的簡單評斷標準。

但是,只要是考試,就很容易流於紙上談兵的情況。因為,在準備證照考試的課程學習中,你可能會將重心放在出題方向,而不是放在真正學好某項程式語言或技術的核心本質之上。這麼一來,即使通過了證照考試,也因為證照的關係,取得程式設計工作領域的入場券。但是,程式設計是一門完全講究實戰的工作,要面對實際的各種考驗,如果你只有紙上談兵的能力、只能對付證照考試的題庫,是很難在實際的工作中有所發揮的。

證照,變成了一種倒果為因的產物。但任何程式設計技術的學習,都應該把焦點擺在它的核心本質上。正確的觀念應該是──「我要學會這樣的技術,幫我解決真正的開發問題」、「證照只是一個敲門磚,證明我原本就擁有的實力」,而不是「我要學會這些題目的解答,以便通過證照考試,讓人以為我有實力」。

現今,許多擁有證照的程式人,無法解決實際的開發問題,使人對證照的可信度,在心裡預先打了折扣。

最好有一顆喜歡變化的心
許多人會談程式設計需要什麼樣的思維能力。但除了這項條件外,我覺得程式設計者在性格上最好喜歡變化。有些人的個性就是喜歡穩定,不喜歡工作有太多的變化,最好每天處理的工作是日復一日、年復一年的相同模式。

但是,從事軟體設計工作很難如此。你所面對的,是會不斷推陳出新、持續變化的技術世界,以及不易掌握又善變的使用者需求。我們可以說,軟體開發就是一門掌握變化、面對變化的領域。倘若你喜歡變化,不喜歡每天面對高度規律性的工作,那麼就很適合進入這個領域。

對一個喜歡變化的人來說,從事程式設計形同如魚得水。有些人厭惡苦苦追趕新技術,但有人認為鑽研新技術,能帶來無比的樂趣。
相較而言,後者的性格更適合擔任這項工作。程式人不能對陌生的事物感到恐懼,因而抗拒面對。應當要把持續發生的新事物當做是挑戰,並且學習去駕御它。因為新事物不是痛苦的來源,而是玩樂的對象。

建立階層性體系,有助高階程式人展現價值
最後,我想探討程式人的下個工作階段該做什麼。許多人有「寫程式是廉價勞工」的刻版印象,所以他們會希望轉換到管理職。雖然我也認為由程式人出身的管理者,在管理技術團隊上,存在更多的優勢。但我不認為,所有的程式人都應該朝向管理職發展。

程式設計應當是可以做為一生的志業,而這樣的例子在國外是很常見的,只不過在臺灣,程式設計似乎是一門只適合年輕力壯的小伙子來幹的「青春飯」,程式人們得在年華老去前,提前想好其他出路。

很重要的關鍵之一,是因為我們沒有形成一個階層性的程式人體系,讓高階的程式人去處理重要而關鍵的程式碼,而使低階、剛入門的程式人,去處理比較平凡無奇、重覆性高的程式碼(事實上,這也是蹲馬步的功夫)。

在我們的軟體開發產業中,程式人大多沒有層級的差異,時常被簡稱為PG(意指Programmer),做的工作都一樣,就是產出程式碼。
這樣的體系,較難讓高階程式人的經驗與技術妥善發揮。

建立起程式人的階層體系,不僅讓程式人在工作上有明確的晉升路徑,不會一味尋求轉換至管理職務,也能讓高階程式人可以將力量發揮在最關鍵的地方。

寫程式是快樂的一件事,當做終生的志業更棒。即便你已經是位居架構師的角色,偶而轉換工作目標,扮演一下程式人的角色,寫寫程式、試試新的技術,不至於與新技術脫節,不只可以深入了解新技術的細節,自然也會有助於你建立、設計出更好的架構。

作者簡介:
王建興
清華大學資訊工程系的博士研究生,研究興趣包括電腦網路、點對點網路、分散式網路管理、以及行動式代理人,專長則是Internet應用系統的開發。曾參與過的開發專案性質十分廣泛而且不同,從ERP、PC Game到P2P網路電話都在他的涉獵範圍之內。

arrow
arrow
    全站熱搜

    Chery0805 發表在 痞客邦 留言(0) 人氣()