2011年10月17日 星期一

程式開發者之不要過度依賴別人解決問題

Standard
常有人說,資訊產業變化太快,如果不及時跟上,馬上就落伍了。事實上不全然如此,應該說在這產業是不進則退,至於要不要跟著潮流走,不一定。其實講明了,電腦科學並不是真正的科學,而是種社會學,由於大家的方向和需求多半是一致的,可以很容易預測到未來需要用到的各種技術,或是常有別人已經完成的工具或技術可直接使用,而且研發新技術也不需要像真正科學一樣,我們不需要長篇幅的理論基礎,只要能解決當前問題即可,如何不斷的解決需求和問題才是我們所在意。

在之前舊文『程式開發者之萬事起頭難』有提過,開發軟體相當依賴經驗。所以,不管是如何找到解決問題的辦法,都必需要經過實作執行然後吸收,並轉化成程式人員的經驗才有意義。也因此,只要能獲得新的經驗,拓展視野,什麼方法都可以。不過,筆者認為『追著最新的外來技術』和『自己發展技術』兩種途徑最為重要,而且缺一不可。如果用武俠小說的角度來說,就是招式和心法的配合,增加內力的累積。

自己發展技術就不用多說,我們能從實地的演練,獲得大量經驗和想法,而且會得到實務考量的觀念。比較需要注意的是『追著最新的外來技術』,因為很多時候,我們面對這些技術的態度,會讓自己無法分辨自己所得到的是『招式』還是『武功』。

或許很多人以『學了很多招式』而自豪,但面對真正的需求和挑戰時,便無法應對自如,招式套不上去,此時才抱怨『書到用時方恨少』,殊不知是學習新知的態度有問題所造成。因為缺少了質的招式,並不具有太大的意義,而且永遠要追求更新更有用的招式,才不會有招用老的一天。可是,一旦碰到 Google 大神或書裡沒有答案,就完蛋了。記得,學會很多招式或工具,只是『幫助提升工作效率』,相當於大學生會剪剪貼貼罷了,缺少深入的理論和資訊定位分析,或沒有學習問題的根本,並無法累積解決問題能力。

所以時時都要準備哪一天『如果沒有 Google』,也不要再只是窮追新的 Library 或 open source project。導致一旦沒有其他人供獻這些東西,自己便沒能力完成專案。雖然說要全部都懂是很困難或不可能達成,但要盡量做到,才能得到屬於自己的關鍵技術。以前人說的:『站在巨人肩上』,指的就是追到最新技術後,再發展技術,如果只是使用而沒有再發展,就等於沒有進步可言,遲早會被騎在更高巨人身上的人所打敗。

程式人員要盡可能快速從『請 Google 幫忙』職業學校畢業,才能當一個稱職的開發者。