軟體工程與程式員
為什麼要學軟體工程?很多人認為軟體工程是專案管理的學問。換而言之,就是說對一般程式員而言其意義不大,只是為了理解經理的管理而已(與政治何異?幾乎暗中有bs之嫌)。也有很多人便說程式員對於一個成功的人來說只是一個過渡性職業(秀才?),最終還需進入管理層,因此這門課程意義非凡(狀元之路?)。這裡有個核心問題:程式員可以成為終生職業嗎?
這個問題很奇怪,幾乎有點中國特色,其中有很重的科舉之味,陞官發財之心人各有之,本不足為怪,但偏選如此艱難之路,考那麼多的證,買那麼多的技術書,然後整天想著學這個“錢“途如何?凡是一點風吹草動,立馬登高望遠,觀其風向,而後轉道直追。苦不堪言,然後寫著幾行垃圾,見人必言”年過三十不升,必轉行!“。其狀真是慘不忍睹。
個人以為如果如上這樣,真不如儘早放棄,發財之路多的去了,何苦如此自虐?選終生職業,當問自己,我喜歡這個行業,嗎?我對他有熱情嗎? 我原意為他放棄一切休息? 為他放棄和朋友在一起對酒當歌的快樂嗎?乃至於可能放棄就在眼前的愛情嗎?如果能,那麼你就會感覺到這一切都是快樂的,儘管不免于思索之苦,但你樂在其中。除了學習本身你將根本沒有時間考慮別的,而在畢業之日,你會意外上帝對你的恩惠,工作的事情已經水到渠成了。而你也將十分熱愛這份工作。更可能會發現其實自己個性比起管理更適合於眼前的工作。國外的那些大師們與其讓他參與管理,他更原意回到實驗室去(比如lippman)。因為那裡有難以割捨的,他深深熱愛的東西,如果那樣你將毫不猶豫的將programmer(不是coder)作為自己的終生職業。
請注意,上面說的是programmer。不是coder,兩者是有本質的區別的,大多軟體工程的提到那個被動的被壓迫的沒有地位程式員其實應該指coder。他們沒有自己的思想,他們所能做的只是將已經設計好的偽碼翻譯成某種特定的programming language。這樣的工作無疑是痛苦的。軟體工程理論對他們來說的確如同政治。不不不,這當然不是我們想要的,如《人月神話》中所說的,編程的樂趣在於設計,在於創造,programmer在軟體工程裡可以擔任很多角色。比如系統分析師、系統架構師等等。軟體工程的理論對他們來說則是工作的必須。