一個“老”程式設計師的技術及非技術個人回顧 (轉)

amyz發表於2007-08-14
一個“老”程式設計師的技術及非技術個人回顧 (轉)[@more@]

一個“老”員的技術及非技術個人回顧

 

有一次出差途中,幸遇一位程式設計師。初觀其貌,約30有餘,姑且稱其為“老”程式設計師。這位老兄初看不善言辭,但同他侃起他開發的經歷時,其人滔滔不絕。我雖非幹這個行當的,但據我的社會他絕不是在誇誇其談,藉機吹噓自己。所以照其原話一字不差,摘錄下來,供有興趣的人們讀一讀解悶:

“從1989年進入大學開始,到而今攻讀博士學位已經有12年有餘。雖然我的專業一直都是軟體,但並非一進入這個專業便可以算作從事了這個專業。假如認為大學期間幼稚有餘,從碩士真正算是進入了軟體開發領域,至今也有9年之多。然而,這些年來我都作了些什麼呢?

領域的發展之快令人目不暇接,自不待言。九十年代初期,國內仍然是DOS盛行的時代。那時,我在試圖分析這個實在不能稱之為操作的小系統。經常為能夠隨意控制DOS而洋洋自得。先學習BASIC,然後是PASCAL、、C等語言。也曾經對系統中的二進位制碼的進行過一些分析。有時狂妄地想,只要是能夠形式化的東西,都可以用軟體表達出來。而且把一個整個的PC都為我所用也絕非難事。

這時,我又接觸到了實實在在的計算機。說是網路,其實多數人指的不過是。更有甚者,那時NOVEL網實際上就是區域網的代名詞。如果你在那時的計算機書店看到一本講計算機網路工程和方面的書,不管書名裡有沒有NOVEL這幾個字母,十有八九就是講NOVEL網的。此時,我便忙於學習和研究NOVEL網的通訊原理。學BIOS、IPX/SPX等,學會了在區域網上如何進行點對點以及廣播通訊。還為自己寫了一個在區域網上進行的工具而沾沾自喜。另外,大約是在九十年代初期,有很多人認為網路程式設計就是SOCKET程式設計,私下認為實在是誤解。

然而,細想起來,那些日子都在忙於學習語言和用最低階的工具反彙編系統的程式碼。對於網路,也一下子陷進了使用具體協議的程式設計細節。對整個軟體系統的大局方面並無瑕顧及。一句話,整日是在程式碼中摸爬滾打,完全沒有時間對計算機系統的大局方面進行任何的考慮和思索。

進入時代後,雖然也對WIN3.1在心裡以及行動上進行過諷刺與抵制,然而由於外界需求以及陸續推出的WIN95/NT,還有對技術的狂熱,又開始投身於WINDOWS系統的分析與開發。這時,又學習了SDK、VC、VB以及。經常為自己能在一兩個星期內迅速掌握DELPHI這樣的工具高興不已。也為自己用DELPHI在幾個月的時間裡開發出了一個類似於DELPHI的某領域內的開發工具而興奮。

這時,我也早已認識到開發語言的相似性以及工具性。各種語言只不過是有一些獨特的語法以及關鍵字組成。再進一步,採用各種語言的開發工具也不過只是提供了各自的一些庫/類庫。學習起來並非難事。所以,這時(大約為1995年)我也停止了購買單純講解如何使用某種語言或開發工具(如VB、VC等)的書。

接觸系統是在上班之後的事情了。UNIX系統的命令列設計之精緻和X WINDOW的巧妙結構使我感嘆不已。然而由於工作和興趣的關係,以及WINDOWS系統之普及性,使我又很快的離開了陽春白雪的UNIX。即使如此,我總是幻想著為UNIX開發一套類似於DELPHI/VB的工具。然而由於各種原因始終未能付諸實施,而今已有類似產品,使我心痛不已,有點自己的孩子卻由別人帶了的那種‘大膽的’酸楚。

大約是95年,橫空出世。這種不能簡單地稱之為程式語言的語言,使我愛不釋手。由於它的簡單性、可移植性以及健壯性和迎合了當時INTERNET的發展,便又使我投身其中。幸好我沒有僅僅關心其語法的細節,從那種在語法上帶了若干多餘修飾的‘近乎煽情’一般的C++轉向‘嬌小秀氣’的Java,使得我有餘興考慮到底什麼是面向的風範這個問題了。

物件導向的思想我是從1993年便開始接觸到的。然而,直到今日我仍不能宣稱自己掌握了它的精髓。廣義而言,使用物件導向的語言設計與開發並不一定進行的就是物件導向的設計與開發;再大膽地進一步講,使用非物件導向的語言設計與開發並非一定就不是進行的物件導向的設計與開發。不客氣地講,目前物件導向的開發者大多數情況下只是把資料和函式簡單地以類為單位組織起來而起。我是直到接觸了設計,才真正領略了物件導向風範的初步輪廓。

新技術、新系統和新語言層出不窮,極度程式設計(XP)、重構(Refactoring)、設計模式、反模式(AntiPatterns)、分析模式、UML、RUP、、、 、.NET 、、WinCE、、Java、(有些看似很新,其實只不過同大眾尤其是沒有INTERNET時的國人資訊來源不暢有關);就是一些老的但至今仍流行不衰的系統和技術如、、物件導向等我們也不能不提。

雖然在跟進新技術方面,我做的不算太差,然而仔細想想,為什麼我沒有推出有力的作品呢?另外,好像我太強調個人問題了。所以必須補充一點的是,現如今人力資源炒作的’團隊精神’。這種炒作使得人們有一種誤解,認為國人從來沒有考慮過人與人合作方面的問題。其實,我們的祖先早已留下‘一個和尚挑水吃,兩個和尚抬水吃,三個和尚沒水吃’的經典評論。他們也考慮了這個合作問題。私下認為,‘團隊精神’絕非僅僅是能力問題,而在很大程度上是個人品問題。再說遠一點,先前有一本叫做《誰動了。。。》的洋書不幸暢銷,又讓國人忘了祖先早已留下的至理名言‘亡羊補牢’、‘未雨綢繆’等寓言故事和成語的存在性。

回到技術正題:除了狂熱地跟進新技術,作為一個軟體從業人員的我們還需要做些什麼呢?這是任何一個意欲長期從事這個技術的人必須思索的一個大問題。我雖然也回答不了這個問題,但我的經歷告訴我,不能再在程式碼裡摸爬滾打了!當然,我不是指不程式設計了。而是要時刻記住從更高的角度審視自己的程式碼。同時,應該不斷地分析成功系統的體系結構,如、MFC、VCL等。”

稍微沉悶了片刻,他頗有點懷才不遇地說:

“哎,現如今的社會說是需要有推銷自己的能力,其實他們說的是還要有點賣弄自己的本事。不過這也是我的一家之言。我也不知道怎麼回事,至今也沒有碰到合適的機會。雖然現在軟體業不景氣,面試倒是也有一兩回。但不知為什麼,都沒有下文。”

正如我的經驗判斷,其人不善言辭。但還是頗有幾分內秀,所以我和他了聯絡方法。正當我要鼓勵他幾句時,我們已經到達了目的地,大家一陣匆忙地打點行裝,便在擁擠中各奔前程了。真希望他能得到好的機會,儘早發揮自己的才能。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-956559/,如需轉載,請註明出處,否則將追究法律責任。

相關文章