我認為有些人的觀點錯了。錯得一塌糊涂。 對于這個問題,我的基本觀點是:任何實踐都是理論的載體或表現形式。而理論也是由實踐上升而來的。兩者是辨證的。今天,我們只關注它的前一部分:任何實踐都是理論的載體和表現形式。 我不是想故弄玄虛,但真理的外表看上去往往就是這么奇形怪狀、難以理解。讓我來給你解釋一下吧。 比如:戰爭是軍事理論的實踐,也是它的表現形式。戰爭的勝負取決于指揮者軍事理論的掌握程度(別給我舉趙括這類“紙上談兵”的反例,他們根本算不上掌握了軍事理論,充其量只算是“背”下了軍事理論。“掌握”和“倒背如流”這是兩個概念。) 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、結束語 我的話觸到許多人的痛處,而且由于寫時心中氣憤難平,有些出言不遜,可能要遭人罵了。不過,既然寫了,就不怕罵。因為:以上所言全是忠告,識不識貨,就看您的眼光了. |