本文作者:蔡學鏞 XY.CAI@MSA.HINET.NET

發表日期2005-04-15

文章出處:天資訊圖書/蔡學鏞/書評專欄

 

 

小時候,總覺得讀書辛苦。我還記得讀國中時,一度壓力大到提筆寫信給張老師,而且還「把郵票貼成蝴蝶的樣子」(張清芳和張曼娟顯然是copy我的作法)。沒想到這封信被嗅覺敏銳的媽媽截獲,張老師自然無緣認識我這個辛苦的小孩(寫給你的信還在我媽口袋,郵差根本就不會來)。我懷疑我媽是川島芳子的嫡傳弟子,不然怎麼會這麼厲害?

 

 

長大之後,我看看現在的小孩,我覺得他們比我當年辛苦許多,慘的是,效果更差。學的科目雖然變多,但是內容變淺,容易造成「樣樣通、樣樣」的結果。有錢的小孩更努力補習,造成小孩子程度兩極化,分佈狀況呈現 該說是苦笑曲線吧!

 

 

現在的台灣小孩很辛苦,光語言就得學好幾個,包括了:

l          方言:政治人物認為:愛台灣就是要說台語(儘管所謂的台語其實就是大陸福建的閩南語),所以特別在國小加入鄉土語言課程。台灣的小孩要在上課的時候學方言,讀一些「火金姑」之類的詩歌。常常被別人誤認為外省人的我,不禁直呼「好險,我已經小學畢業了!」

l          英語:這是通行世界的語言,現在又是國際化的時代,所以必須學習好英文,以「和國際接軌」。據說現在小孩流行用文革時代樣板戲的方式演講英文,語言雖異,做作如常。可惜我不讀國小了,不然以我做作的程度,無人能及,肯定是要常常拿英文演講冠軍了。

l          國語:時代變遷,有時候讓人哭笑不得。例如:台灣地圖躺平,上方是太平洋;國文課本不教國文,反倒要教預防風災;甚至,在台灣連國語都不流行了。但是根據某些政治人物的說法是「餘孽尚存」,所以還是要學習國語,只是腔調已經經過「改良」,不必字正腔圓,不必舌,也不需要使用兒化音,現在流行的是台灣腔的國語,越「聳」越道地。讓我很難理解的是,許多人國語明明講得標準,還會刻意在某些字詞用標準的腔調,模仿:許純美+董月花+阿扁的口音,這些「倫」「俗」在「素」「粉」奇怪!

 

 

方言、英語、國語,不只這些,我知道現在還流行學習「第二外國語」,特別是日文,這股風潮悄悄地延伸進校園,所以有些家長會送小孩去學日文。心機比較重的家長,偷偷摸摸地讓孩子學日文,秘而不宣,免得讓隔壁人家的小孩也跟進。

 

 

現在的小孩需要學這麼多語言,程式員也是。程式員已經無法靠著一個程式語言打遍天下了,只熟悉一套語言,根本不足以應付多元化的應用。多語言已經是時勢所趨,連.NETParrot這兩VM平台都標榜跨語言。程式員必須要精通多種語言,互相搭配使用。對於大多數的程式員來說,最好的程式語言組合可能是:

l          JavaC#:這是最重要的語言,足以應付百分之八十的需求。從PCPDA、手機、Web Server、企業應用,不管是寫哪一類的應用程式,幾乎都用得到JavaC#。現在的客戶根據被洗腦的方式不同,分成兩派,一派會指定要用Java技術,另一派會指定要用微軟的技術,所以我的觀點是,JavaC#都要會。至於Visual Basic .NET,由於資源比C#大多數.NET書籍使用C#語言,而且Visual Basic .NET不會比C#更接近.NET的思維,所以只要學習C#即可,沒有必要同時會Visual Basic .NETC#。事實上,目前就業市場上,對於Visual Basic的需求比Visual Basic .NET更大得多。

l          C:這是會長期存在的語言,用來應付百分之十的需求。有時候,在系統開發的過程中,JavaC#無法完全滿足某些功能,這些部分必須用C來實現。這些部分雖然通常不多,但是往往關鍵,還真是非用C語言不可,別無選擇。

l          PerlPython2P)或RubyREBOL2R):用來應付剩下百分之十的需求。通常用來快速地寫出工具程式。不要小看這類的語言,一旦你熟悉這類語言,許多程式的生產力會提高許多,建議你從此2P+2R語言中挑一個好好學習。我的選擇是REBOL(這真是一個好語言)。

l          JavaScriptNetscape當初在設計JavaScript語言時,只是著眼於Web Browser的應用,但是經過演化,JavaScript的應用變得非常廣,特別是變成ECMA Script之後,更成為Script語言的霸主。現在許多地方都看得到JavaScript以及其衍生的語言,包括了網頁設計、Flash動畫(ActionScript)、SVGWAP。我其實很後悔當初沒有早一點學JavaScript,導致我後來在許多地方遇到需要JavaScript時,都會心生恐懼。

l          C++C++的重要性遠不如C,因為多數平台或程式庫所提供的API都是C語言介面,而不是C++介面。C++高度的複雜性也會讓人卻步。但是不可否認的,C++還是有一部份的影響力,有些系統是以C++為標準的開發方式,所以C++的編程能力依然值得保有。

 

 

語言有她的最佳使用時機,互相搭配,挑正確的語言來做正確的事,才能省下許多功夫:C語言做得到的事,彙編語言都做得到,這個時候我們選擇使用C語言是因為方便;Java/C#做得到的事,C語言都做得到,這個時候我們選擇使用Java/C#是因為方便;Perl/Python/Ruby/REBOL做得到的事,Java/C#語言都做得到,這個時候我們使用Perl/Python/Ruby/REBOL是因為方便。方便與否,是選擇語言的考量。每語言設計的宗旨不同、特性不同,都有適合使用的時機。牛刀(殺牛)、菜刀(切菜)、水果刀(削水果)、拆信刀(拆信)、武士刀(砍人),都是刀,但是使用時機和對象就是不一樣。

 

 

除了上述的語言之外,程式員也需要會下面的語言,雖然這些語言並非「程式語言」,但終究是語言,且重要性不亞於上述的諸多語言:

l          SQL(結構化查詢語言):現在用來存取資料庫的API幾乎都是Call-Level Interface,需要以SQL字串當參數。我認為,這才是真正的「餘孽尚存」!

l          XML(可擴式標記語言):各種新的檔案格式以及高階通訊協定都已經大量採用XML。儘管有些地方可能不見得適合用XML,但是只要用了XML,就會得到老闆的稱許。XML雖然是好東西,但是現在似乎使用過頭了,我對這一點很感冒!

l          UML(統一塑模語言):利用UML來將系統設計用圖形的方法表示出來,可以讓大家更方便溝通。如果沒有用UMLnotation畫上幾張圖,別人就會覺得你遜。所以不管是有沒有實際的意義,也不管能不能實際表達出正確的系統設計,UML圖是一定要畫的啦!

 

 

下面是TIOBE Programming Community所做的20054月程式語言市場需求調查,提供這個排行榜供大家參考:

 

 

l          C 18.630%

l          Java 16.981%

l          Perl 10.197%

l          C++ 10.191%

l          PHP 8.724%

l          (Visual) Basic 6.789%

l          Delphi/Kylix 3.682%

l          SQL 3.491%

l          C# 2.820%

l          Python 2.697%

l          JavaScript 1.642%

l          SAS 1.354%

 

 

為了要具備足夠的生存技能,未來的程式員最好要會JavaC#CC++2P2RJavaScriptSQLXMLUML。需要學會這麼多語言,你可能覺得很辛苦,沒關係,你還是有別的選擇。你應該讀過我寫的「程式與香雞排」三部曲吧!我一直大力地鼓吹程式員轉行去賣香雞排,至今依然不改其志。

-----
創作者介紹
創作者 Justin's Blog 的頭像
peida

Justin's Blog

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