學編程,決不可心浮氣燥

注:該文章話語雖然有些偏激,但是也並不是全無道理,值得一讀.
     對於這個問題,我的基本觀點是:任何實踐都是理論的載體或表現形式。而理論也是由實踐上升而來的。兩者是辨證的。今天,我們只關注它的前一部分:任何實踐都是理論的載體和表現形式。
     我不是想故弄玄虛,但真理的外表看上去往往就是這麼奇形怪狀、難以理解。讓我來給你解釋一下吧。比如:戰爭是軍事理論的實踐,也是它的表現形式。戰爭的勝負取決於指揮者軍事理論的掌握程度(別給我舉趙括這類“紙上談兵”的反例,他們根本算不上掌握了軍事理論,充其量只算是“背”下了軍事理論。“掌握”和“倒背如流”這是兩個概念。)
     1、VC、VB、Delphi …… ,你該學哪個?
     具體到編程而言,我要告訴你:任何一種計算機語言,都是計算機科學理論的載體或表現形式。C++很神嗎?Java很酷嗎?它們差距很遠嗎?是的。但從理論的層面上講,它們沒有區別,都是“面向對象”理論的一個具體形式而已。
     現在的程序員們被髮行編譯軟件(通常我們將其稱爲“系統軟件”)的商家不斷推出的產品搞得眼花繚亂,頭痛欲裂。不斷地跟在新語言後面跑,這條路還沒跑到頭,那邊的“新路”又鳴鑼開張了,於是再跟着跑……漸漸地有些人開始感嘆:學海無涯、學無止境,或什麼“程序員是青春飯,過了三十別想幹”……
     在此我不得不嘆息:中國的教育真是一種“形而上學”的教育。早在高中時代我們就學過“辨證唯物主義”的基本理論:做事情要抓主要矛盾。這一條恐怕誰都知道,卻鮮見誰能在實踐中把這一理論運用得“爐火純青”的。把這一理論運用到編程上來講就是:
     理論是主要矛盾,語言是次要矛盾,學會了理論,再具體到學一種語言時,你只不過是在進行某種消遣而已。
     現在學VC的普遍看不起學VB的或學Delphi的。但如果一個用Delphi的人,在需要寫web程序時,用TCP/IP做了一個構架,嵌入到應用程序中;而另一個用VC的人卻只會把一個又一個的組件拖來拉去的做些個“例子程序”的翻版。你說他們兩個誰歷害?Delphi和VC誰歷害?
     真應了這樣一段話,問:紐約好還是上海好?答:有錢哪兒都好,沒錢哪兒都不好。上海的富人並不比紐約的富人少多少的優越感,而紐約的乞丐也不比上海的乞丐多多少幸福感。
     現在你還會說學VC的人就一定比學Delphi的人水平高、“錢景”好嗎?
     2、“淺薄”絕不該是中國程序員的性格特徵!!!
     想問一句:中國程序員這麼多,你們真地把基礎理論學好了嗎?別用你現有的編程經歷告訴我:編程不需要數學,不需要數據結構,不需要編譯原理…… ……說話得負責任,您知道嗎?我之所以發表這篇文章,就是因爲再也看不下去這種在中國編程界漫延的歪理邪說了!邪教害死的是人的個體,你們害死的是中國軟件業的未來!如果再讓這種理論繼續毒害編程新手的思想,中國將在計算機領域失去民族的尊嚴!!!
     請問,操作系統、編譯軟件、數據庫系統…… 這些被稱爲“系統軟件”的東東,中國有幾樣拿得出手的產品?也許是我孤陋寡聞,據我所知:我們國家一件像樣的也沒有。
     不錯,我們是有一些網站的股票在西方上市了,我們是有一些人被國外公司請去做高級職員了,我們也有一些人把西方的官方網站給黑了……但是,我們用的編譯工具是誰的產品?我們微機裏裝得是誰做出的操作系統?我們的程序跑在誰的芯片上?
     愛之深,恨之切。我愛的是中國,但我痛恨不是中國,而是在中國編程界普遍流行的“淺薄”和“自以爲是”,這是我們民族軟件業的一顆毒瘤!
     是的,現在編程方面快速入門的書滿天飛,讓程序員的門檻越來越低。我這個外行就得益於這個“低門檻”,跑了進來。但進來後,我們就不能再這樣淺薄下去了——我的兄弟們!
     用他國提供的工具做幾個網站,寫幾個應用程序,弄出幾個病毒…… 是振興不了民族軟件業的。順便說一句:我尊敬求伯君,但我不認爲金山公司和其系列產品配得上被稱爲“民族軟件業”的大旗,相對這個稱號,它差得太遠了。
     …… ……
     寫flash軟件的人會認爲用flash做動畫的人比他歷害嗎?Adobe公司真的認爲考取Adobe證書的人是“人才”嗎?MSCE、MSCD…… 通過這類考試得到微軟徽章的人,在微軟眼裏是“人才”還是“義務推銷員”?持這類證書以及其他一些大軟件公司認證的人,你們還在以爲自己是“中國軟件業的精英”而感嘆“懷才不遇”、工資太少嗎?
     醒醒吧,朋友。別再用編程不需要理論的話來自欺欺人了,別再用自己的淺薄來教導別人像自己一樣淺薄了。我想問問那些稱數學、數據結構等基礎課程對編程沒用的人:
     請你們搞清一個概念:是這些理論“沒用”,還是你們“沒用到”;是你們“沒用到”,還是你們的水平根本“用不到”;是你們“不需要用”,還是你們根本“不會用”?
     舉個例子,操作系統中的工作調度,若工作優先權相同,用什麼方法進行調度?當然是“先到先做”——這就是數據結構中“隊列”的應用。你們說“用不到”,只怕是因爲到目前爲止還沒機會接觸這類“高端編程”的挑戰吧?這樣的話,那就算了,掙你的錢去,但別再來這裏誤人子弟,吹噓什麼優秀的程序員不需要理論。
     是誰說系統軟件發展的黃金時代已經過去了?Linux不就是在MS操作系統雄霸多年的情況下一舉成名的嗎?中國難道就找不到這樣一個機會? 不,如果我們的程序員克服了現在的浮燥與急功近利,我們一樣可以在“系統軟件”這一軟件業的“高端”樹立自己的品牌!所以請看下面——
     3、年輕人應該有宏偉的志向。
     用別人的產品做自己的東西,你永遠只是個“高級客戶”,成不了真正的開發者。不管你用他國的系統軟件開發出多少好的產品,掙了多少錢,只要人家一升級、或一推出新產品,你口袋裏的銀子連同最後一條小褲叉也會被剝奪得一乾二淨。你,只不過是一個高級打工仔。
     我希望打算進入編程界的朋友們,特別是現在還很年輕的朋友,能有一個比較高的志向。更希望已經進到這行的朋友們能有以“振興民族軟件業”爲己任,力爭成爲中國軟件業的“旗手”。
     我不贊同方東興把微軟罵得一無是處。更不贊同年輕人學他那樣,一賭氣而拒絕用微軟的產品,拒絕Windows、拒絕VC 、拒絕IE ……
     我認爲方東興只是個狹隘的民族主義者。他看到了中國軟件業民族的一面,卻不願承認我們落後的一面。毫無根據的“自尊”等於自取滅亡。清朝末年,我們的科技並不落後於西方多少,但我們過分“自尊”的“大國思想”卻使我們失去了向其他國家學習的機會。當我們嘲笑西方人的藍眼睛、大鼻子的時候,他們的堅船利炮,卻把我們“央央大國”的皇帝、太后打得滿世界逃難。慈禧太后被打得滿地找牙的時候,不得不說出“量中華之物力,博與國之歡欣”的齷齪話,此時,她“大國皇太后”的自尊何在呢?前面自尊過了頭,事後必遭報應。這報應一持續,就是幾百年,直到現在。難道我們還要繼續閉門造車,再走老路嗎?
     我們現在承認微軟比我們強,向微軟學習,並不等於我們永遠要跟在他後面跑!在我們低下頭的時候,我們就應該想到,何時能再擡起這顆高貴的頭顱!!!而且是“一定”!!!!!自尊不是錯,錯是錯在“太盲目”——妄自尊大,你就要和慈禧一樣被打得滿地找牙。做爲一個大國,一個明智的民族,我們不能諱疾忌醫。
     年輕人,志當存高遠。相信我,當你以民族振興爲己任的時候,封王稱帝、富貴榮華,都只不過是千秋偉業的一個副產品。在這個尊重知識、崇尚科學的年代,志向高遠的人,永遠不必擔心自己的“錢途”。
     不必諱言,我承認我當初進入編程領域不完全出於興趣,也有“錢途”方面的考慮。但就好像當年參加八路的戰士當中,有些只是報着能吃上軍糧或打鬼子報家仇的思想入伍的,但後來卻學習了馬列,提高了覺悟,轉爲以興國救民爲目標一樣,當我一步步深入到這行以後,當我決定考研並慢慢提高了認識以後,我的目的變了。我覺得應該有個更高的人生目標,更高志向和追求來支持我的行動。這個目標就是:爲民族軟件業盡一把自己的力。
     真心希望你與我同行。
     4、幾點建議:
     建議大家耐下心來先學好理論,然後再選擇具體的工具或語言。不過,在所有這一切開始以前,先打好C語言和彙編基礎。
     能不能得道,就看你在見到別人做出一些花裏胡哨的東西時,是不是能堅定信心、耐住寂寞、抵禦誘惑了。
     一個和我一起學習C語言的人,學完就直接開始玩VC,而我則潛下心來學了些C++和理論方面的東西。早早地,他就能仿照書上用VC做些界面似的東西在我面前炫耀,可後來,當我基礎理論的學習告一段落,做個圖書管理程序賣了800大洋時,他還只是停留在做“例子程序”的水平上。現在我們談論起編程,深度早已不可同日而語了。他起跑領先,卻落在了後面。
     我不敢自以爲是,只是想用這個親身經歷告訴大家:學編程,決不可心浮氣燥。
     5、結束語
     我的話觸到許多人的痛處,而且由於寫時心中氣憤難平,有些出言不遜,可能要遭人罵了。不過,既然寫了,就不怕罵。因爲:以上所言全是忠告,識不識貨,就看您的眼光了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章