程式設計師學習的方向(2)分類:職場
在十年前的任何一家公司,總認為程式設計師是所有電腦的主人,只要是操作電腦的任何小問題,都會呼叫程式設計師來解決問題,表面上程式設計師雖然是電腦的主人,實際上表示了電腦應用程式的操作介面與實際的應用有很大的出入,這些問題讓永遠關在辦公室的隔板內的程式設計師永遠想不透,為什麼使用者的頭腦一直不能轉過來呢?
問題並不完全在與使用者,大部分的問題是在獨立寫系統的程式設計師,因此團隊合作與討論,是程式設計師必要面對的重大問題,也是能不能往上發展的關鍵之一。
保持開放學習的心態
程式設計師總認為自己是最能學習的一群人,其實是要看角度而論,某些人在學習新的技術而言,是最快最能應用沒有錯,但是在與系統工程師的實際每日作業或者與客服人員,甚至使用者,往往沒有去深層的感受他們的需要,或是他們的操作習慣,想想看電話從撥盤式到按鍵式中間有多少的過渡期間,就知道操作介面習慣對使用者的重要性,而程式設計師往往面對複雜的系統架構,想改的更完美更結構化,往往會改變大量的操作介面,這一件事就是必須多多了解使用者的地方。
一個專業領域的程式設計師,也必須了解該項產業的專業常識,這個跟念傳播科技的記者有一點像,總不能跑醫藥新聞完全不了解醫院組織制度與醫藥術語,跑立法院總統府不知道政治角力與地方勢力吧?如果你要寫圖書館的管理系統,你就不能不知道,圖書分類與資料收集的基本常識吧!寫會計系統的程式設計師,就要了解應收應付帳款與財務報表的種種細目。
任何行業的專業領域常識不是一年就能完全熟悉的,大學的基礎教育都是四年,更何況實際在業界應用的比大學的理論應該學習的還要更多,如果你選定了一個專業行業要往下紮根,千萬不要一年兩年就轉換不同專業的程式設計,這樣會讓你的程式設計永遠在做一個循環,表面上你學到了不同行業的專業領域,實際上只學習到皮毛,而學習到的只是不同的系統平台與程式設計方法,或許有人會願意做到不同行業的學習,然後在選定一個行業來衝刺,這樣也是可行,但是時光就這樣淡淡地流逝了。
真正的團隊合作意義
團隊合作並不是把自己分配到的事情完成就好了,其他的事務就是別人的事情,雖然軟體開發有專案經理或是主任、組長的分配,但是程式設計師面對的不只是專案書面定義的介面而已,還有人與人的介面,把自己與別人定義好的介面做好只是做到六十分而已,軟體系統在整合測試,甚至是上線的時候,都會因為考慮的不夠周全而出現問題。
甚至是經驗良好的專案經理都會遺忘重要的過程,更何況一個專案一項產品的推展,永遠都是世界上唯一無二的系統,一個團隊進行的合作不是一個會重複的專案,所以只要每一個人多用一點心了解別人在做的事情,互相Cover對方的事情,這樣才能做到一百分的境界。
不要限制自己的未來
任何行業最怕的就是限制自己的未來,程式設計師目前看起來前途一片光明,一般公司最不會裁員的就是程式設計師,但是就是因為這樣,程式設計師往往就在自己的習慣領域裡面做事情,例如有人用C++寫程式,他就不會用ASP或者是資料庫的方式來解決問題,反過來說,有些人非常熟悉資料庫,往往他就不知道檔案系統或者是自行記憶體的配置來加速系統處理的效能,而這些事情往往決定了一個程式設計師的未來,人往往是把自己的未來限制在某一個領域。
廣義的來看,程式設計師也不一定要一直寫系統,他也可以有機會規劃一個系統,從各個角度去完成一件工作,系統工程師維護系統的角度,客服人員面對客戶的角度,業務人員與客戶銷售的技巧,這些都是要多方接觸的,不要認為角色的定位而不去接觸,如果程式設計師只是寫程式,那麼這一段路除非你有你夠專業的技能。不然,路會愈走愈窄,風險也愈來愈高,我認識的人也有如此的,但是要自得其樂並不是非常容易。"