導航:首頁 > 軟體知識 > 王垠如何掌握程序語言

王垠如何掌握程序語言

發布時間:2023-01-12 08:15:05

㈠ 看看一位清華計算機專業的學生怎麼看linux與windows的

看看一位清華計算機專業的學生怎麼看LINUX與WINDOWS的! (轉載)
本文是一位清華退學學生所寫!他的名字叫王垠,人很出名,不信GOOGLE一下就知道!
我已經半年沒有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。
GNU/Linux 不是每個人都想用的。如果你只需要處理一般的事務,打游戲,那麼你
不需要了解下面這些了。
我不是一個狂熱的自由軟體份子,雖然我很喜歡自由軟體。這篇文章也不是用來推
行自由軟體運動的,雖然我覺得自由軟體運動是非常好的。
這篇文章也不是用來比較 Linux 和 Windows 內核效率,文件系統,網路服務的。
我現在是作為一個用戶而不是一個開發者來說話的,我們的討論是基於操作,應用
層面的。是為了告訴大學里還不了解,或者不理解 UNIX 的科學工作者和大學生,
UNIX 比 Windows 更適合用於科學研究工作,請大家理解 UNIX 的工作方式,不要
用 Windows 的標准來要求 Linux,而要用一個科學工作者的標准來要求自己,用
UNIX 的思想來武裝自己。
我顯然是反對在大學,特別是理工科專業推廣 Windows 的。我也反對在對「娃娃」
們的計算機啟蒙教育中使用 Windows。因為 Windows 不論從技術上,經濟上,思想
風格上都是與我們培養高科技人才的目標格格不入的。Windows 的流行屬於歷史遺
留問題,爺爺一級的人當然已經不可救葯,但是我們不應該讓下一代繼續走上歧途。
UNIX 不是計算機專家的專利
當我建議一些非計算機專業的人用 Linux 的時候,很多人說:「UNIX 是計算機系
的人用的,我們不能理解。」 「UNIX 是男孩用的,我們女孩不用。」
但是其實世界上的大多數科學家和工程師幾乎用的都是 UNIX 作為他們的電腦工具。
就因為它簡單,可靠,穩定,強大,有趣。甚至很多時候 UNIX 就是唯一的選擇。
你說:「我們都會用 UNIX 的話,你們計算機專業的人還用來干什麼?」 很容幸的
告訴你,計算機專業的有一部分人就是專門為你們提供這樣強大而方便的計算機工
具的。如果他們製造的工具只有自己會用的話,那這個工具還有什麼用?
理解 GNU/Linux 不要用 Windows 的標准來要求 Linux。
由於GNU/Linux這個詞太長,下面如果沒有特別指明,「Linux」就是指「GNU/Linux」。
在這個年代,恐怕沒有人需要我來介紹 Linux 是什麼了吧?如果你覺得「Linux 只
不過是跟 DOS 差不多的東西」,那請問問你旁邊的 Linux 用戶,Linux 到底是什麼?
那為什麼我還要寫一篇這樣的文章?因為,我發現還有很多人不不理解 Linux 和
UNIX,雖然他們也在用它,但是他們有時會問:「為什麼 Linux 不能像 Windows 那
樣 ……?」,「怎麼Redhat Linux不能 mount NTFS 分區!」,「Linux 下用什麼
整理硬碟?」,「什麼時候OpenOffice才能完全兼容Word文件啊?」,「現在還有什
么Windows能乾的事情Linux幹不了的?」……
他們有40G的硬碟,卻只為 Linux 分配了2G空間,有時還抱怨「這個東西怎麼占這么
多硬碟!」 似乎 Windows 該佔用大部分硬碟。他們把重要的數據裝在Windows的分
區,似乎信不過Linux。他們總是到處尋找新奇的,好看的GUI程序,對命令行的東西
一概不屑一顧。他們對Drag&Drop,菜單配置,自動升級非常感興趣。他們如果找到
一個很像 Windows 程序的 Linux 程序,一定會很高興的說:「哈哈!Linux 也能……了!」
如果Linux在某種測試中勝過Windows,他們會高興得跳起來。他們沒有辦法用Linux
解決問題的時候,甚至用Wine來運行Windows程序。有時實在沒辦法,只好重起到
Windows,或者乾脆省得麻煩,在 Windows 下裝一個 VMWare 虛擬一個 Linux 玩。
你如果出現了上面的情況,說明你的思想受到了 Windows 的某種潛移默化的影響和
誤導。你沒有能夠從本質上理解存在於 Linux 身上的 UNIX 思想。你支持 Linux,
你喜歡 Linux,你能從中感覺到快樂,這非常好。你現在只需要明白的是:Linux 從
來就不是一個玩具,它是天才UNIX的後代。UNIX 是自晶體管發明以來最偉大的發明,
它從誕生那一天開始就比 Windows 的設計出色。
你要體會什麼叫做「設計」,一個糟糕的設計並不是到後來縫縫補補就可以變好的,
而一個出色的設計,不但可以以不變應萬變,而且可以影響到後來者。一個出色的設
計配上一個出色的實現,那就是非常出色的發明。Linux 就是這樣的一個出色的發明。
Linux 並不需要追趕 Windows,也不需要打垮微軟。它的最終目標是改變整個計算機
世界,還人們自由,給人們樂趣和方便。
Unix 是簡單的,你不需要成為一個天才也能理解這種簡單。
UNIX的設計者 Dennis Ritchie 說:「Unix is simple. It just takes a genius
to understand its simplicity.」 但是我不這么認為,因為我不是一個天才,但是
我卻勇敢的把 Windows 完全刪除掉,遇到不明白的事情的時候努力用 UNIX 的方式
去解決,而不是尋求 Windows 的幫助。現在我體會到了 UNIX 的思想和好處,我可
以用比 Windows 高效幾倍的效率工作。因為我相信這樣的信念:「Windows 能辦到
的事 Linux 一定能辦到,而且辦的更好。」
這小節開頭的話應該改成:「Unix 是簡單的,你不需要成為一個天才或是計算機專
家。但是在這個沖斥著 Windows 錯誤觀念的世界,你需要信念和勇氣才能理解它的
簡單。」 我下面就告訴你一些我理解到的東西。首先,你要知道的是微軟在國際科
學領域是根本沒有地位的。
微軟的地位
微軟的名聲在歐洲和美國的大學里,特別是在計算機系裡之壞,大家可能有所耳聞。
我認識的 MIT,Stanford 的教授,貝爾實驗室的專家,甚至一個歐洲小國的高中計
算機老師都絕口不提微軟的名字。在他們眼裡,微軟只是一個沒有真技術,專靠在落
後國家商業宣傳和壟斷經營的小公司。這個「小」並不是說它人少,錢少,而是說它
先進技術少。
我上次和王益合作寫了一個演算法演示程序,那個演算法是貝爾實驗室一位科學家Steven
Fortune很天才的發明,為了程序能夠被身邊大多數人使用,我們選擇了 VC+MFC 作為
平台。我在分析演算法時還得到 Fortune 很熱情的鼓勵,寄給我一份資料,還多次回信
耐心的給我講解了很多細節。但是程序完成之後,我把樣品發給 Fortune,他回信說:
「對不起。我機器上沒有 MFC。」 話說的很客氣,但是我已經感覺到了他對 Windows
的不屑。然後我把 MFC 靜態編譯進程序再發給他,他就沒有再回信了。他顯然不是瞧
不起我,而是確實有難處。
你能感覺到這位科學家對微軟和 Windows 是什麼態度了吧?不是反感,而是他心裡根
本沒有 Windows 這個東西!微軟在高科技領域沒有發展,那麼它怎麼生存呢?到發展
中國家去發展一下,他們的人民還對電腦一無所知,我說不定甚至可以打入大學的計
算機系呢。我送他們軟體,我捐錢蓋大樓,我出錢找圖靈獎獲得者來演講,讓他們覺
得我們都是科學家!
好了,現在全國的大學包括清華,幾乎所有人機器必裝盜版 Win2000,Office XP,學
校的選課系統是非IE不能正確瀏覽,論文用 Word 編輯,演示用ppt做,email 的通知
附件是 doc 文件,你不用 Word 打不開,連 863 項目都用 VC 寫程序了。我很久以
前就看到一份報紙說,「微軟為什麼不嚴厲打擊盜版?」 這篇文章說,微軟非但不打
擊中國的盜版行為,而且有放任之趨勢。放長線吊大魚,「以後我要你們加倍的來還
我!」 確實如此,它的目的快實現了。
Windows 籠罩下的中國計算機教育
說句丟臉的話,比爾蓋茨很久以前是我的偶像…… //blush
在中國,比爾蓋茨被很多人奉為神聖,「少年電腦天才」,甚至有的人提到他的名字
就做出「抱拳對天」的姿勢。很多人談到微軟的「新技術」,「高科技」 都是眉飛色
舞。各種「VC編程聖經」,「深入了解 Visual C++」之類的書,在開頭幾頁都會出現
非常肉麻的字眼,「在那團團的混沌中,一個開天闢地的精靈,Windows 1.0,誕生了……」
微軟的軟體被這么多人盜用,那麼人們是怎樣使用這些盜版程序的呢?先看看電腦培
訓班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文檔處理,Power
Point,高級班可能有 Excel,Access…… 參加各種微軟認證考試,MCSE,MSDE 的人
絡繹不絕。考試輔導班都貼出了「280元,考過為止」之類的字樣。考試參考資料更是
昂貴,有些電腦書店整整兩書架都是「Microsoft Press」的東西。我有個同學參加認
證考試,每門考試都要200多元。而且你一次考不過可以再考,又要交錢。他後來還津
津樂道跟我說,看我,花了XXXX(一個四位數)元考過了微軟認證,得到一張比爾蓋茨
親筆簽名的證書和價值6000元的 Windows XP 內部發行版。
「電腦要從娃娃抓起」,我們再來看看娃娃們學的是什麼。大部分家長給孩子買了電
腦之後,他們首先就會裝一個盜版的 Windows,然後買來盜版的游戲開始玩。如果哪
個孩子會用 Delphi 編程序,那可不得了。報社記者,電視台爭相報導,說,某某學
校的初中生某某,在別人都還在玩電腦游戲這種「初級階段」的時候就已經用 Delphi
寫程序了。鏡頭還瞄準了他顯示器上面的像框中的比爾蓋茨頭像!
我剛進入大學計算機系時還不懂得什麼是操作系統,因為我以前只用過「中華學習機」。
看到新入學的同學們各個談論的都是 「Windows 95」,「VC」…… 我簡直覺得我落
後了好幾十年一樣,整個一土人,根本跟他們答不上話。好不容易找到一個比較熟的
同學問了一下:「你們天天談論的瘟95是什麼啊?」答:「win95就是一個操作系統,
跟DOS是一類。」「朵死是什麼?」 「你連DOS都不知道是什麼?別在計算機系混了。」
學校上課當然不講VC編程之類的東西,但是上 Pascal 的老師有一次就說:「嗨,我
們學校真是落後。現在別人都用 C, C++,甚至 VC 了,我們還在講 Pascal。不知道
什麼時候才能有VC課啊。你們出去也是要用VC的,只好自學了。」 於是,有些同學很
多時候上課都捧著一本很重的「Windows 編程大全」之類的書,根本沒有聽課。吃飯
時就念念有詞的跟我說,「代碼的優化是無止境的」,「匈牙利命名法真是偉大的發
明」 …… 這就是中國很多大學計算機系的情況。
感覺到無知了?這不是偶然的,而是微軟長久以來埋下的伏筆。它要讓無知的大家都
把它奉為神聖,它要讓支持UNIX,Xwindow的人一旦說 UNIX 好,Xwindow 好的時候,
都被一群人圍著說教:「這個 Windows 也能做到」,「你對 Windows 有偏見」,
「微軟才是主流啊」,「你敢瞧不起 win2k?」,「.NET 就是世界潮流」,「微軟的
畢竟是新技術」,「有錢就是有技術」…… 甚至在一番論戰比較後敗下來還是要說:
「Windows 性能差點,但是易用性強」,「Windows 是老百姓用的,要求別那麼高」,
「微軟那麼有錢,以後想超過 UNIX 還不容易嗎?」……
發達國家的計算機教育
我前段時間在 USENET 發文問有關 Scheme 語言的問題時,認識了一位丹麥人。他解
決了我所有的問題,並且建議我閱讀一些很「深奧」的有關程序語言語法,文法的書,
他告訴我很多網站可以學習 LISP,Scheme,人工智慧,演算法。他叫我看 Jonathan
Rees 的論文 \"Syntactic Closures\"。他還打包給我寄過來一份 MIT 的 \"How to
Design Programs\"。他說他在自己的 PC 機上裝的是 Linux,他用 Emacs 編輯,運行
Scheme 程序。他對 Emacs 的了解和愛好真是使人驚訝。他大學本科畢業時做的畢業
設計是一個 Scheme 解釋器。這對於我來說是望塵末及了。
他是那麼的不厭其煩,我的每一個問題他都詳細的回答。我有時都覺得過於詳細了,
怎麼這么耐心啊?我覺得他似乎是我的高中老師。他是什麼樣的人呢?我好奇的打聽
了他的情況。原來,他是丹麥一所普通高中的計算機老師。
他說他在高中里講授程序設計和演算法,計算機語言文法。他說用 Scheme,他的學生不
用再為內存泄漏等程序語言本身的問題而煩惱,而專注於問題和演算法本身。有利於培
養學生解決問題的能力,特別是用計算機解決數學問題的能力。
天哪!為什麼歐洲出現那麼多數學家,幾何學家?你看看別人重視的是什麼!我們的
計算機教育如果繼續這樣下去,只會沿著彎路越走越遠!
微軟和它的朋友們的如意算盤
下面來看看微軟的收入是怎麼來的。首先,Windows 98系列操作系統,一個就是 100
多美元,每次升級又是幾乎同樣的價錢。Windows NT 還要貴幾倍,而且有用戶數目限
制,5個用戶的,10個用戶的…… 以後如果要增加用戶數目還要按比例付錢。
花了如此多錢買來的操作系統就能用了嗎?它竟然連壓縮程序都沒有提供!你裝上
Windows 之後一般第一件事就是去下載一個 WinZip 吧,「只要 29 美元」。Windows
會中病毒啊,馬上花 70 美元買一個 Norton AntiVirus 吧。還有黑客呢?再買一個
Norton Internet Security 好了,100 美元。系統需要優化,磁碟需要整理,買一個
Norton System Works 是你最佳的解決方案,100美元。
可是你現在還是不能幹正事啊!你想要一個 Word, PowerPoint?那就買一套 Office
XP 吧,一起買便宜些,$459.90。
那些程序不會用啊!那些菜單怎麼設置,到底有什麼功能啊?看「幫助」也學不會。
買本書看看吧,我推薦「Special Edition Using Microsoft Office XP」,不貴,
$27.99。這本書裡面大部分是屏幕抓圖,還是買一本舊的比較劃算,$17.85。
你如果只是當個秘書,上面的差不多還湊合了。可是你有更高的追求,你想成為 Windows
程序員。首先買一個 Visual Studio.NET 吧,要不然怎麼編譯程序。$494.95。
為了緊跟微軟動向,世界潮流,不能不注冊個 MSDN 什麼的吧?這個貴一點,不過物
有所值啊,$2,799。
嗯,你現在已經是上層階級,白領人士了。你現在可以像這樣「自由」的,「安全」
的生活了:
為什麼要反對使用 Windows
很多人都說不應該完全否定 Window,Windows 也有它的長處。不應該罵微軟。
對。Windows 容易操作,適合普通用戶。如果微軟把它自己定位在 P&G,Philips 那樣
的地位,能夠給我們的百姓提供周到的,完善的,價廉物美的服務。那我肯定是很喜歡
它的。
但是從上面的種種情況說明,微軟是一個野心極大的國際壟斷組織!它的產品沒有一個
是不出問題的:Windows 不穩定,容易中病毒,而微軟不為大家免費提供殺毒軟體。我
就是要讓你們花錢買我的朋友 Symantec 的殺毒軟體,誰叫你們已經上了我的賊船?這
叫什麼售後服務啊!
你買來微軟的程序,安裝的時候一般都有一個協議,說:「由於微軟的程序造成你的數
據損壞或丟失,微軟概不負責。」 我想很多人肯定覺得這個不合理,不想按那個 \"I
accept\"。但是你的軟體買都買來了,錢都花了,現在一按 \"I decline\",安裝程序馬
上就會退出。你只好被迫點擊了 \"I accept\"!這不是不平等條約嗎?
我已經目睹了好幾個朋友的文檔被 Microsoft Word 損壞,有的是編輯了十多天的30多
頁的論文,有的是費了很大工夫做出來的個人簡歷,那個朋友為此失去了到自己嚮往的
P&G 工作的機會。就在他要投簡歷的前一個晚上,就在那一瞬間…… 不知道他痛哭的
時候有沒有想起要投訴微軟,可是誰叫我們用的都是盜版呢,況且你還點擊了 \"I accept\"。
微軟仗勢已經佔有大部分PC市場,制定不符合國際標準的「微軟的標准」,以不合理的
方式壓制其它公司的軟體,這個問題已經在美國司法部鬧了很久了。他甚至在 Windows
系列操作系統中放置能夠通過網路泄漏用戶信息的代碼,以至於 Windows 剛進入澳大
利亞時被澳大利亞ZF禁止使用。
有些人說:「微軟畢竟開創了一個歷史,造就了今天的 IT 行業。」 但是,如果沒有
微軟,我們今天早就用上非常穩定,非常可靠,非常方便,非常「傻瓜」的軟體了!微
軟是阻擋信息技術發展的罪魁禍首。
微軟的程序的工作方式(注意,我只是說操作方式,病毒的事情另外算)確實適合於一般
家庭,上上網,發發郵件,打打游戲都不錯。可是微軟卻要把自己包裝成什麼「高科技」
企業,要在世界各地設置「研究院」,在大學計算機系贈送不適合用於科研的 Windows
產品,甚至出錢請圖靈獎得主來中國暢談「二十一世紀的計算」,還在大會上宣傳自己
的 .NET 技術。非要把別人認為自己是科學的,自己是領導世界高科技的。但是呢?它
什麼高科技也沒有。歐洲,美國,哪一個關鍵部門在用微軟的東西?NASA? DOE? CERN?
你仔細想一想,微軟的程序對人類到底有什麼重大作用?
什麼是 Windows 能幹而 Linux 幹不了的事情?---
「Windows 能幹而 Linux 幹不了的事情,那就是不需要乾的事情。」
有個朋友看我半年沒有用 Windows,有時就會問我:「你只用 Linux,有沒有發現有些
Windows 能處理的事情 Linux 幹不了?」---
我回答說:「Windows 能幹而 Linux 幹不了的事情,那就是不需要乾的事情。」
Windows 能做的有益的事情 Linux 都能做---
Windows 下的某些功能確實是我們需要的,那麼 Linux 的開發者們和用戶也需要這種功
能,他們就會去實現這種功能,而且比 Windows 的方式好得多。由於大多數科學家,工
程師用的都是 Linux 或者某種商業 UNIX, 所以幾乎所有商業的科學工程程序,比如
Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有
UNIX 的版本(包括Linux),然後再考慮移植給 Windows,甚至根本不移植給 Windows,
因為 Windows 的機器一般沒有足夠的能力運行這樣的程序。你不要以為只有 Windows
才有 PSpice, UNIX 的 HSpice 要好得多,而且可以運行在大型主機上。當然它們不是免
費的,但是它們值那個價錢。
但是 Windows 下有些東西在 Linux 下沒有很相似的,或者你找到很多類似的,但是它
們每一個比起 Windows 的那個程序都要差很多,那麼原因有兩種可能性:
有一個完全類似的程序,但是由於它乍一看不漂亮,被你忽略了。而其它程序雖然看起
來很漂亮,但是它們是一些初學編程的人寫的。現在由於 Gtk, Qt 的誕生,Linux 下開
發圖形界面程序極其簡單,很多初中生甚至小學生都可以隨手編出一些漂亮不中用的程
序。如果你整天尋找這樣的程序挑來挑去,永遠也找不到你滿意的。當然也有一流的程
序用 Gtk 和 Qt,比如 GVIM 就可以用 Gtk 作為圖形界面,我還知道 Synopsys 一些
程序用了 Qt。
我曾經也犯過這樣的錯誤,從外表區分一切。結果優秀的 FVWM, lftp, Mutt, wget 都
被我忽略過。當我找回它們的時候,我是那麼的羞愧不已,它們現在都是我的朋友 我
第一次看到 FVWM 覺得它只不過是一個有很厚很難看邊框的東西。可是現在,我的同學
看到 FVWM 都說:「哇!真漂亮。」
有另一種完全不同的方式可以達到相同的目的,甚至更好。
很多人很關心 Open Office, Star Office, AbiWord, ... 他們多麼盼望有一天某一個
Linux 程序能夠完全兼容的打開一個復雜的 doc 文檔。但是你永遠也不可能有那一天。
為什麼呢?因為微軟為了佔有市場,必定不會讓其它系統的程序能夠完全兼容它的文檔
格式。它一定會不斷變化 doc 文檔的內部結構,隱藏一些秘密,讓其它公司的程序打
開 doc 文檔時總是有某種問題,從而你必需購買 Microsoft Office 和 Windows。
你應該想一下,那麼多的高智商的大學教授,科學家,學生,他們用的都是 Linux 或
者其它類型的 UNIX,他們沒有 Word 可用,怎麼處理文檔呢?這么多年沒有一個像
Open Office 的程序出現,難道大家沒有辦法寫文檔嗎?
顯然不是這樣。你看看那些高水平的學術雜志,論文,那些大學教授的網頁,那些漂亮
的幻燈片,它們是什麼做的?原來 UNIX 用戶早就有非常方便的 troff, LaTeX, SGML
等東西可以處理文檔,而且它們比起 Word 都要高明的多。Word 顯然被這些大拿忽略
了,以至於很久以來沒有人想在 Linux 下開發一個類似 Word 的程序,除非某些公司
想搶微軟的飯碗。
很多人留著 Windows 在硬碟上的原因無非是為了用 Word 和 PowerPoint。我見過一個
教授,他的 Windows 筆記本電腦上除了 PowerPoint 什麼都沒有。有一天演示的時候,
他指著堆亂字元說:「對不起,這是一個公式……怎麼每次都是這樣……」 其實有比
PowerPoint 好幾百倍的東西可以製造幻燈片,你可以用最簡單的方法製造世界一流效
果的論文和幻燈片。你待會兒可以看看我的TeX網頁,你就會知道為什麼我可以完全離
開 Windows。
Windows 能做的那些沒用的事情 Linux 永遠做不好
電腦游戲
有些人說 Linux 下不能玩 Windows 下所能得到的所有游戲。的確,Linux 下雖然也
有少量的游戲,比如 Quake。但是它沒有 Counter Strike, 沒有 Star Craft, ……
並不是說電腦游戲不該玩,但是應該適可而止。電腦是用來處理事務,幫助你學習,解
決問題的工具,而不是一個玩具!整天沉迷於電腦游戲中,而不出去感覺外面的世界,
你會變得越來越冷酷,越來越缺乏人情味。你與真實的世界越來越遠。
你可以在 CS 里殺人,你可以在 Tomb Raider 里探險,你甚至可以在 Tony Hawk』s Pro
Skaters 里滑板…… 但是 It』s not real!你雖然有很高的「反恐技巧」,但是遇到
歹徒的時候,你是那麼的怯懦;你雖然控制 Laura 伸手敏捷,但是你打籃球的時候怎
么總是被人斷球?你雖然可以輕易的在 THPS 里作出一個 \"360 kickflip to hangten
grind to fakie\",但是你踩在自己的滑板上的時候還不會 ollie!
說回來,如果你偶爾玩一下電腦游戲未嘗不可。但是世界上有遠比 Windows + PC 更好
的游戲方式。

㈡ 如何評價王垠的《數學和編程》

王垠的《數學和編程》這本書還是不錯的,而且這本書借鑒了很多前人的經驗,以及教學還有他們的成果,還有我做著自己的借鑒這些都融合了起來所以這本書真實還是不錯的,如果說有需要的人看會得到很大的幫助

㈢ 求高人給個計算機學習指導。

一、廣泛了解,從科普書籍開始

選擇計算機專業的同學,也許是因為原先有一定的基礎,也許是因為一時的激情,但更多的人,可能對自己的選擇沒有深刻的認識,或多或少對計算機專業有一些神秘的感覺。自己究竟是否喜歡這個學科?才華能夠在哪個分支領域有所施展?抑或是真的不適合這個專業?諸多疑問,解決的方法首先便是了解和認識我們的學科。濃厚的興趣是學好任何學科的源泉;而廣泛的了解則是獲得興趣的途徑。當今我們對於信息的獲取已非難事,其中「閱讀」是一個簡潔而有效的方法。

也許你認為閱讀專業書籍對於剛剛步入大學的自己來說有點困難,也很枯燥,那麼不妨先從科普書籍看起。科普書籍是了解理論、獲得應用知識最好的途徑。相信不少理工科的同學被量子物理和相對論搞得頭昏腦脹過。究其原因,是我們的現實生活與抽象的數學模型之間存在思想意識上的鴻溝。然而要是讀讀斯蒂芬•霍金的《時間簡史》,你就會被書中有趣的故事和例證所吸引,從而對抽象的理論有了感性的認識——即使仍然沒有讀懂,你也至少了解了這個學科研究的領域和目標是什麼,也必然有所收獲。所有理工學科都有這樣的性質,計算機專業也不例外。

我們知道,計算機理論是建立在數學基礎之上的。大學計算機專業對數學的要求較高,其重要性不必多言。數學令不少同學頭痛,除了其「繁」與「難」外,很大程度上是因為他們沒有理解這些抽象理論的實際應用方向。與本科數學專業的課程設置相比,計算機專業的數學課程大都偏重實用性。比如我們的離散數學課程中涉及到的邏輯代數奠定了計算機一切運算的基礎,形式語言構成了計算機程序編譯的模型,代數系統則是當前各類資料庫系統的理論依據等等。因此,如果能夠提前地了解到並簡單地學習一下這些數學知識的具體應用,對理解理論是很有益處的。此外,電子學、信號與系統、控制理論等也是計算機專業學生必修的公共課,然而不少同學往往認為它們與計算機專業的關系不大,從而放鬆了學習。事實上這些學科是計算機硬體與網路通信的基礎,學好這方面知識的前提是認識它們的現實應用及其與計算機的密切聯系。

也許你將來學習圖論的時候,對「歐拉路」的概念會很清晰,這是因為你在小時候的圖畫書上玩過「一筆畫」的游戲;然而「二分圖」、「生成樹」這些概念又是怎麼回事呢?你的理解可能就不是那麼深刻了——因為你一時難以找到一些生活中的實例,並從中抽取出特性。在這種情況下,翻閱一些涉及這些知識的科普書籍就十分有必要了。我曾讀過一套《數學游戲》(《科學美國人》雜志匯編,中文版:科學技術文獻出版社),它將圖論、邏輯代數、自動機理論等領域的抽象的概念具體化為一個個有趣的故事,引導讀者了解這些知識的現實應用,啟發讀者將抽象思維與感性生活有機結合。我還讀過一本《編碼的奧秘》(《CODE》,中文版:機械工業出版社),它則將邏輯代數、數字電路、匯編語言等知識以實物和簡單電路的形式進行類比,揭示其中的原理,並引導讀者動手實踐。事實上這類與計算機專業相關的科普書籍還有很多,在學習課本的間隙閱讀一下,絕對能起到催化劑的作用。

談到科普書籍,相關的另一個問題便是計算機科學與計算機技術之間的關系。也許不少同學選擇計算機專業,是源於對計算機令人眼花繚亂的應用的認識。所謂計算機技術,一般是指包括文字處理、信息管理、多媒體、網站建設等在內的計算機應用技術;而所謂計算機科學,一般指數據結構、組成原理、操作系統、編譯原理等計算機內部實現機制。前者是計算機在各行各業提高生產力的體現,屬於各類職業教育和專科教育的范疇;而後者是研究是計算機本身的理論,是本科計算機教學的重點。市面上大多數計算機書籍與雜志是計算機應用技術方面的,屬「技術普及型」,從受眾角度來看與科普書籍有著類似的性質。適當地涉獵一些自己感興趣的應用技術,對培養學習興趣、增強實踐能力、了解業界行情是很有好處的。不過如果確實想在計算機行業長期做下去,仍然應當將主要精力放在對計算機科學的學習方面。畢竟用科學的理論指導實踐是大學教育的意義所在。

總之,廣泛了解計算機學科基礎科普知識,在今後學習具體理論的時候才會少一些盲目,多一些頓悟。

二、把握全局,學習計算機導論

當你對計算機學科涉及的領域有所了解後,就應該著手展開專業學習了。初讀本專業的教學計劃與課程設置,你或許會被諸如離散數學、編譯原理、介面技術等生疏的課程名稱弄得一頭霧水。這些課程都是研究什麼的?它們各自與我們面前的計算機有哪方面的聯系?要回答這類問題,首先需要把握全局,從整體上認識計算機科學。

國內高等院校一般都為大一學生開設計算機基礎課程。這類課程的受眾面廣,主要涉及計算機基礎應用知識。各種版本的計算機基礎教程幾乎都以計算機科學導論作為開篇。對於把計算機作為應用工具的其他專業的學生而言,導論只算是「內容概要」,他們往往更注重後面的應用型知識;而對於把計算機作為研究對象的我們,則決不能忽略這類指導性的內容。專門地、有意識地學好計算機科學導論,能夠使你對計算機科學有一個大局觀,清楚地認識到每一個分支學科的研究領域與重要意義,從而在今後的具體學習中明確方向,加深理解。

依我個人的學習經驗,建議初學者閱讀一些國外優秀計算機基礎與導論教材。與國內大多數講解軟硬體具體使用的同類教材相比,國外教材更偏重以應用為切入點,深入淺出地闡述計算機科學原理。諸如《計算機文化(第8版)》(《New Perspectives on Computer Concepts》,中文版,機械工業出版社)、《計算機科學導論》(《Foundations of Computer Science: From Data Manipulation to Theory of Computation》,中文版,機械工業出版社):前者適合於各種信息類專業的學生或計算機愛好者閱讀。該書圖文並茂,語言生動,從應用角度出發,廣泛涉及計算機軟體、硬體、網路的基本原理,同時概述了計算機學科的歷史背景與行業現狀。隨書的光碟中給出了不少影音材料,在學習的同時還可以提高計算機專業英語聽說能力。後者在風格上與前者類似,但內容更適合計算機專業學生閱讀,被美國不少高校定為計算機專業學生的入門課。它以實例作為出發點,系統地講解了計算機組成、計算機網路、操作系統、數據結構、演算法設計等分支學科的研究領域、基本原理和應用方向,而幾乎不涉及晦澀的數學模型與實現細節。閱讀此類書籍,可以在潛移默化中理清初學者對於計算機科學學習的思路。

計算機科學是一個有機聯系的整體,每個分支都或多或少地與其它分支存在依賴關系。如果死板地依照教學計劃線性地進行學習,往往會遇到知識理解上的問題。例如演算法分析課程與程序設計課程分屬理論與實踐;組成原理課程與體系結構課程是對計算機系統不同層面的剖析。我們不能簡單地找出它們的先修、後修關系,這樣難以建立完整的知識體系。因此在把握大局之後,我們仍有必要簡單了解一下每個分支學科的基礎知識。在這方面,推薦大家閱讀《編程卓越之道(第一卷):深入理解計算機》(《WRITE GREAT CODE: Volume 1:Understanding the Machine》,中文版,電子工業出版社)這本書。分開來看每一章節,其內容編排結構與國內高校計算機課程體制相近,涵蓋了邏輯代數、數字電路、機器指令、體系結構、存儲器管理等方面的基礎知識和實現方法,特別是闡明了各個分支學科之間的本質聯系。有了這些基礎之後,在遇到更高階的問題時,你至少會明白這個問題應該在哪個分支學科中尋找答案了。

當你有了一定的計算機理論基礎,尤其是程序設計基礎後,想更加深入地把握計算機科學的脈絡,不妨看看這本書:《深入理解計算機系統(修訂版)》(《Computer Systems A Programmer's Perspective》,中文版,中國電力出版社)。它與《編程卓越之道》系列的共同特點是從程序員的視角觀察計算機系統。而這本書作為國外數十所高校的計算機系統導論教材,其組織更加嚴密,風格更加嚴謹。它以「程序在計算機中如何執行」為主線,全面闡述計算機系統內部實現的諸多細節。當你在學習數據結構、組成原理和體系結構等課程和時候,翻閱一下此書的相應章節,同時編程實現其中的例子,一定會對課本上單純的文字型理論有更加感性的認識——原來它們是這樣活生生地存在於我的計算機里的!

正所謂「會當凌絕頂,一覽眾山小」,從計算機科學全局的高度整體把握其分支學科,在頭腦中率先構建計算機科學的整體框架並為其夯實最基層的結構,就能夠為你在未來每一步的學習中掃清迷霧,指明方向。

三、運籌帷幄,掌握編程的思想

程序設計與開發是計算機學習的一個關鍵環節,編程能力是衡量一名計算機專業人員素質的重要考核點。這是因為程序是連接理論與實踐的紐帶,是計算機科學與計算機技術相交融的領域。作為一名計算機專業學生,我們一方面有別於其它專業將計算機作為工具的應用型人才,不能僅僅利用計算機,而要為他人利用計算機提供平台;另一方面我們暫時達不到計算機科學家的水平,不能做出理論研究成果,但能為理論學習鋪墊實踐基礎。因此,只有具備足夠的程序設計與開發能力,才能真正體現我們的智慧,同時充分發揮計算機的潛力。

學習編程,首先應掌握至少一門程序設計語言。C語言作為一種語法清晰、功能強大、應用廣泛的高級語言,長期以來被國內大多數高校的定為程序設計必修課。全面理解和掌握C語言的脈絡的重要意義這里毋庸多言。市面上C語言的教程多如牛毛,但最經典的當數C語言的設計者Kernighan與Ritchie合著的權威白皮書——《C程序設計語言(第2版)》(《The C Programming Language》,中文版,機械工業出版社)。書雖不厚,但絕對全面而准確。其語言簡潔,例證通俗,實用性強。相比之下國內的一些C語言教材在學習曲線可能比前者平滑,但它們往往以考試為導向,過多地糾纏語法死角,同時大都未遵從ANSI標准。對於計算機專業學生來說,前者能夠讓我們看到更加嚴謹與實務的態度。當你的語言功底達到一定程度後,就需要從一個更高的視角來探察語言的本質,不妨看看這本:《計算機程序的構造和解釋(第2版)》(《Structure and Interpretation of Computer Programs》,中文版,機械工業出版社)。它闡述了編程語言本身的機制與實現,同時引入了一門對於大多數中國學生來說不甚了解的語言——LISP。LISP是很多美國高校計算機專業的入門語言,也是一種結構上與C、Pascal、Java、Basic等完全不同的非馮•諾依曼語言。研讀SICP,體味LISP,給你耳目一新的感覺之後更多地可以加深對編程思想本質的理解。

大學的各類程序設計與開發課程旨在培養我們兩方面的能力——演算法設計能力與應用開發能力。前者偏重計算機科學,後者偏重計算機技術。演算法是用計算機思維解決現實問題的理論,具有較強的數學性。演算法學的曠世巨著應數Knuth的《計算機程序設計藝術》(《The Art of Computer Programming》,中文版,清華、機工、國防等出版社皆有授權),不過要徹底讀懂這個大部頭需要相當的數學理論基礎與編程實踐經驗積累。對於初學者,建議首先培養使用常規演算法解決小規模問題的能力,並行地提高駕馭語言的水平與抽象問題的思維。針對這個目的,結合程序設計實踐一類的課程,可以讀讀這幾本書:《編程珠璣(第2版)》(《Programming Pearls》,中文版,中國電力出版社)、《程序設計實踐》(《The Practice of Programming》,中文版,機械工業出版社)、《代碼閱讀方法與實踐》(《Code Reading: The Open Source Perspective》,中文版,清華大學出版社)、《C專家編程》(《Expert C Programming》,中文版,人民郵電出版社)。它們的側重點各有不同,但對於通過實踐來學習演算法與數據結構都是很有益處的。

應用開發方面,實踐是第一要務,然而高效的實踐是建立在科學的程序設計方法之上的。以C語言為代表的結構化程序設計方法是規范的程序邏輯的基礎,目前主要使用在系統級開發中,前面所提到的諸多書籍都或多或少有所涉及。而以Java、C++為代表的面向對象程序設計方法廣泛應用於實用項目開發,這方面的經典之作中,推薦閱讀Bruce Eckel的《Java編程思想(第3版)》(《Thinking in Java》,中文版,機械工業出版社)與《C++編程思想(第2版)》(《Thinking in C++》,中文版,機械工業出版社)。此外軟體架構設計、編碼規范與風格、代碼除錯與質量管理以及軟體工程的各類原則在實際項目開發中都是及其重要的,在具備了一定的編程經驗、准備投入一些實際項目開發的時候務必要了解。建議閱讀《代碼大全(第2版)》(《Code Complete》,中文版,電子工業出版社)這本大而全的軟體構建綜合性寶典,它在從總體上指導軟體開發的各個環節的同時也引入了一些細節問題(諸如goto的使用)的討論,引導我們對一些司空見慣的程序設計理念不但要知其然,而且要知所以然。

有一位熱衷於游戲的同學告訴我,游戲給予他滿足控制欲的空間。但是請放眼看看,游戲的控制范圍不外乎一個特定進程中他人預先設定好的一系列數據,並以有限的圖像與聲音形式體現出來。然而如果你掌握了編程這一強大的武器,就能夠面對眼前的計算機游刃有餘,在硬體條件允許的情況下盡你所能將控制欲升華為創造力,方便自己的同時造福他人。運籌帷幄,掌握編程的思想,無論走向科學研究或是應用開發,這都將為你奠定堅實的基礎!

四、理性思辨,體味計算機哲學

Bill Gates對計算機事業充滿激情——「每天早晨醒來,一想到所從事的工作和所開發的技術將會給人類生活帶來的巨大影響和變化,我就會無比興奮和激動。」自由軟體運動的精神領袖Richard Stallman幾十年如一日,將打破知識壟斷、共享人類智慧作為己任,帶領著數以萬計的軟體志願者推動著開源世界的發展。但並非每個計算機業者都能有Gates那樣豪邁的氣度和Stallman那種堅定的信仰,計算機及其相關技術對於大多數業者來說僅僅是興趣愛好或者謀生的工具。計算機行業半個多世紀以來形成了其獨有的文化氛圍,作為一名計算機專業學生,了解專業文化,體味專業哲學,對於學習和從業都是具有指導意義的。

首先必須承認,計算機世界中存在著形形色色的意識理念差異。諸如微軟帝國與開源世界的明爭暗鬥,不僅僅是一場商戰,更多的是兩種哲學的搏擊。當代大學生多數是在微軟Windows光環照耀下認識計算機的。在這種環境下,多接觸一些開源世界的事物,對於理解計算機的本質不無裨益。《共創未來:打造自由軟體神話》(《Free for All: How Linux and the Free Software Movement Undercut the High-Tech Titans》,中文版,上海科技教育出版社)是一本講述開源世界發展史的書,你可以從中了解自由軟體運動及其領袖人物的傳奇故事,從而對GNU、Linux、OpenSource這些概念蘊生人性化的理解。清華大學王垠的《完全用GNU/Linux工作,擯棄Windows——你我共勉》、蘭州大學黃平的《自由,你忘記了嗎?》等長篇文章則是國人對開源運動的慷慨陳辭。盡管這些文章常常被指為「偏激」,但沒有調查就沒有發言權,無論支持還是反對,客觀的認識是第一位的。

其次,我們應該用平和的心態對待知識與技術,衡准專業學習在生活中的位置。一些同學出於種種原因,成為了「先進技術」的追隨者:通曉各類流行的編程語言,一有新版本的工具推出立即安裝學習,一有新的技術論戰立即關注其走向。還有一些同學成為了某些技術的忠實信徒:看準了Java就對.NET的東西置之不理。這些追隨者和信徒們往往為突飛猛進的技術所累,以至於有感於學習的空虛。過分追捧技術可謂捨本逐末,死扣某一知識也顯得目光短淺。一方面百變的技術離不開計算機科學的本源,在實踐過程中深入理解基礎知識是關鍵;另一方面任何技術都有統領其實現細節的思想精髓,觀其形不如知其神。我們不妨甩開冗繁的技術,換個角度靜下心來讀幾部計算機文化與哲學作品:

程序人生方面:《編程之道》(《The Tao of Programming》,雙語版,電子工業出版社)一書出自一位對東方道家與禪宗思想有著獨特理解的美國軟體工程師之手,全書由一則則短小而富有哲理故事組成,以類似寓言的形式生動地反映了程序員群體的生活以及計算機文明的演進。閑暇時隨手翻閱,即使不能立刻體會到每個故事的真諦,但隨著自身閱歷的增長,相信你會領悟程序人生的「道法自然」。

設計理念方面:開源軟體界的「鬥士」級元老Eric Raymond所著的《Unix編程藝術》(《The Art of Unix Programming》,中文版,電子工業出版社)一書,以Unix系統的設計原則為主線,展示了Unix所開啟的「KISS」(Keep It Simple, Stupid!)編程文化與思維方式。對於很多干啃千篇一律的課本、禁錮於Windows開發的計算機專業學生來說,這本書一定能夠使你眼界大開——「結構化」並非真理,「面向對象」也不是王道;而對於有一定Unix/Linux使用或開發經驗的同學,這本書也一定會使你豁然明朗——原來一個程序的設計竟可以如此精巧!

管理哲學方面:對於有志於軟體工程,想涉足項目管理的同學,《人月神話》(《The Mythical Man-Month》,中文版,清華大學出版社)這本書就有必要讀一讀了。它拿真實案例說事,彷彿一部實例化的軟體工程課本。如果你在團隊開發的道路上陷入了困境,不如參考一下前輩們是如何處理「人」與「月」二者之矛盾的吧。事實上不僅是軟體工程,任何事業的成功,往往技術不是關鍵,社會科學的因素才是埋頭技術的朋友們更應當關注的。

歸根結底,計算機的哲學依舊是人的哲學。拋開理念之爭議,超越技術的形式,以人為本地認識我們的行業與自身的地位,或許會使將來的發展道路走得更舒心一些。

㈣ [王垠系列]「解決問題」與「消滅問題」

一直以來,人們都重視「解決問題」的能力,卻忽視了另一種重要的能力:「消滅問題」的能力。各種各樣的競賽,分數和排名,讓很多人從小就片面的認為,能「解決問題」的人,就是最厲害的人。拿到一個問題就埋頭求解,很少考慮這問題到底有什麼意義。這種呆板的思維方式,不僅存在於低級的「應試」和「解題」過程,而且蔓延到了很多艱深的研究領域。

如果你仔細觀察就會發現,很多「難題」,其實是「人造」出來的,而不是「必然」的。它們的存在,往往是由於一些早期的「設計錯誤」。人造的東西裡面往往有設計上的錯誤,如果你把這些東西看成是不可改變的東西,那你就會遇到很多不必要的問題。打個比方,如果當初輪子被設計成方形的,而沒有人質疑這樣做的「必要性」,那麼也許人類早就因為「能源問題」而滅絕了。有點誇張,但它卻形象的說明了,為什麼錯誤的設計會導致不必要的難題。

其實如果我們轉換一下思路,或者改變一下「設計」,很多問題就可以不解自消。這就是我所謂的「消滅問題」的能力。這種「消滅問題」的能力,表面上容易其實難,有點像腦經急轉彎,所以經常受到人們的忽視。看到一個問題輕而易舉的消失了,總有人滿不在乎的說:「這個容易。我也能做到。」 可問題就在於,你怎麼沒想到?說這種話的人,完全沒有意識到,他們的思維裡面其實缺少了非常重要的東西。由於喜歡炫耀自己的「頭腦暴力」,他們經常解決(甚至製造)錯誤的問題。

所以,在解決問題之前,我們應該先問自己三個問題:

這問題是否真的「存在」?

也許你已經看出來了,很多問題,即使眾人都認為它存在,其實也可能是不存在的。在這一點上不能相信任何人或者機構,不管他有多麼的「權威」。就像小馬過河的道理,只有靠自己的實踐。

如果解決了這個問題,會給我和他人帶來什麼實際的好處?

世界上不存在「永遠」,也不存在「無窮」。如果一個「科學算命家」花100年才能算出我的未來,那我還不如坐等「未來」的到來。所有的人,都不過是來這世界上做短暫的旅行。所以,問題的答案,應該能在合理的時間之內給人帶來實際的好處。

這問題是否可以在簡單的改變某些「設計」或者「思路」之後,不復存在?

很多問題的「存在」,其實是因為人們的「思維定勢」。他們看不到問題的「根源」和因果關系,而是經常在下意識里假定某種「先決條件」(A)的存在,然後堅定不移的相信由此「導致」的問題(B)的存在,如下圖:

A-----> B

然後,他們開始呆頭呆腦的解決 B,完全忘記了質疑 A 存在的必要性。他們從來沒有想過,如何消除 A,或者切斷 A 與 B 之間的關系。他們沒有發現,一旦這前提 A 不復存在,問題 B 就可以不解自消。

對這一點,我想起一個有趣的故事。有人在飯桌上給大家出了一道「難題」,要他們把自己盤子里的雞蛋立起來,最後只有一個人做到了。這個人把蛋殼打破了。所有其他人都沒有想到這個做法,卻說他「犯規」。可是應該檢討的其實應該是他們自己,因為出題的人根本沒有說不能打破蛋殼,他們卻對此做出了錯誤的假設。

我經常發現計算機科學界存在這樣的問題。研究了幾十年,結果到最後才發現,辛辛苦苦解決的問題,其實包含了錯誤的假設。如果換一個角度來看,或者稍微改一改設計,這問題就基本不存在了。其中一個例子,就是編譯器裡面的「語法分析」(parsing)問題。

語法分析成為一個問題的原因,就在於很多人錯誤的以為程序語言應該有復雜的語法。正是這些復雜的語法,造成了這個問題研究了很多年,仍然沒有一個很好的解決方案。可是一旦語法設計被簡化(比如像 Lisp 那樣),語法分析就變成一個非常容易的問題。實際上計算機系統(比如 Unix)里的很多問題都是由此引發的,想要利用字元串來進行數據交換,卻又設計了一些非常不方便的「數據格式」。簡單的語法設計,會讓這些問題一並消失掉。關於這個問題,我不想重復發文,細節請見另一篇博文《 談語法 )》。

愛因斯坦說「想像力比知識更重要」,也許就是這個道理。沒有想像力的人經常鑽牛角尖,走死胡同,忘記了自己其實還有另外的路可走。

㈤ 神童的沒落:放棄攻讀3所頂尖大學博士,後被微軟全球封殺

他真的是一塊讀書的料,從小被稱之為「神童」,是家長嘴裡「別人家的孩子」。

他憑借自己超高的智商,在大四那年獲得了保送清華大學碩博連讀的機會。

之後,他又連入兩所世界頂尖名校——美國康奈爾大學和印第安納大學攻讀博士。

然而,他在這3所頂尖名校讀博,卻沒有拿到一本博士畢業證書。


盡管這樣,依然阻止不了他進入三大世界巨頭公司工作。

只是,他加入谷歌,加入微軟,加入英特爾後,三大世界巨頭公司都為他大動肝火,最後微軟更是直接對他進行了「全球封殺」。

一手好牌硬是被他打得稀巴爛。

他就是在2005年洋洋灑灑寫下了1.7萬字《清華夢的粉碎》的王垠。

神童沒落——放棄攻讀3所頂尖大學博士

王垠考上3所世界頂尖名校讀博,卻沒拿一本博士畢業證書,真可謂驚呆眾人!

原因都是他沒有堅持讀完,就退學了。

並非是他天資不夠,無法畢業,相反在讀書生涯中,他一直是「天才」般的存在。

1997年,王垠參加高考,原本志取清華北大,因為在高考中發揮失常,屈才進了四川大學。

但這並沒有打擊到他的自信心,讀到大四時,他完美逆襲成功,獲得了保送清華大學碩博連讀的機會。


並且,在清華求學期間,王垠展現自己超人的計算機天賦。

他提出了計算機的兩大系統語言,因為獨到的見解,他宣揚linux操作系統,痛斥windows的弊端,成為當時偶像級人物,收獲了許多忠實粉絲。

只可惜,風光過後的王垠並沒有按大家的預期那樣完成博士學業。

2005年,就離博士畢業只差一年時間,王垠寫下了那篇1.7萬字的文章——《清華夢的粉碎》,徹底宣布從清華退學。

他《清華夢的粉碎》文中寫道:

就這樣,他離開了眾人夢寐以求的清華大學。

天才的世界裡,確實讓人難以理解,可人家依然「天才」般存在。


一年後,王垠如願考上了美國頂尖的計算機高校——康奈爾大學。

他原本以為在康奈爾大學可以進行真正的研究了,沒想到該校給他的印象更糟糕。

他直接罵:美國的教育是商業性的應試教育,外國研究生基本上是導師廉價的勞動力,「真正的研究」的環境是很難存在。

王垠失望地離開康奈爾大學後,又考上了印第安納大學伯明頓分校,繼續攻讀博士。

其實從王垠離開清華開始,就註定了沒有任何一種教育制度能夠在他心中占據理想的位置。

所以,他最後還是以一篇《對博士學位說永別》痛罵了一通印第安納大學的教育制度,徹底結束了自己的「求學生涯」。

放棄攻讀3所頂尖大學博士,沒能拿到一本博士畢業證書,似乎對王垠沒有什麼可惜的,卻留給了家人無盡的遺憾,也留給了世人一聲聲的扼腕嘆息。

神童的沒落——被微軟全球封殺

沒有博士畢業證書,並沒有影響王垠進入世界頂尖公司工作。

憑借對計算機領域獨特的見解,讓他在2012年敲開了谷歌的大門,獲得了一個實習的工作機會。


盡管只是一個實習生,他卻可以參與製作一個重要的項目——跨語言的「服務式」編程工具,不應該是他獨立完成的。

直到現在,他完成的這個項目,仍然在谷歌運行,每天檢索和分析谷歌內部所有項目代碼。

盡管如此優秀,但是,王垠當時項目剛開始沒多久,便與這個項目的負責人有不同的意見。

一個領導,一個倔強的實習生,互不相讓,鬧到了不可開交的地步。

王垠拒絕團隊合作,獨自完成了項目中檢索部分。

最終,負責人才對王垠另眼相看,承認他的項目技術十分領先。

只是,負責人對他180度的態度扭轉,也無法挽留住他。

反而讓王垠更加孤傲,認為這個Python的東西是至今技術最牛的項目,而他卻得不到應有的報酬。

結果,他寫下一篇文章痛罵谷歌,便摔門而出,瀟灑地離開了谷歌。


接下來,王垠躊躇滿志地加入微軟公司,以為自己可以在這里「一技」稱雄,不曾想公司的規章制度又令他水土不服,只好又選擇了退出。

這次和上次一樣,王垠對微軟也毫不留情,開口便罵這樣的公司遲早會倒閉。


不同的是,微軟沒有選擇隱忍,而是下達文件: 不允許王垠加入微軟旗下任何一家子公司,就算是合資企業也不行。

2019年,失意離開微軟的王垠抱著一線希望來到英特爾,最終也是失意而去。

從那以後,這個昔日的計算機天才,再也沒有爆出更驚人的消息了。


他的人生本不該如此

對於王垠而言,他想要拿到一本頂尖高校的博士畢業證並不難,只可惜他總是認為「教育界不存在一所適合我的高等學校」,並用退學來反抗這些教育制度。

對於王垠而言,他想要應聘到世界500強的一份好工作不難,只可惜他總是在罵——「IT業界不存在適合我生長的公司環境」,並用辭職和謾罵來彰顯自己的獨特個性。

這個世界永遠不會公平,也永遠不會因個人而發生改變,並存在著各種不合理不規范的規則,而且想要挑戰規則的人不止王垠一人。

對於教育制度的不滿,歷來就有好幾人,河南的蔣多多、安徽的徐孟南和陝西的張皎,他們都是在高考時用零分來表示對現行教育制度的不滿。

最終,他們付出了很大的代價,高考落榜,無書可讀,四處打工。


可是,事情過去那麼多年,教育制度依然如舊,沒有太大的改變,為什麼?

如果我們從上層的視角看問題,就會比較容易理解:任何制度不可能只適用於個別人,而是要服務於大多數人;而且制度不可能十分完善,也沒有最好,只有更好。

也就是說,盡管現行的教育制度有諸多弊端,但是能讓大多數學生受益,讓學生只要通過努力讀書就可以得到自己想要的生活。

然而遺憾的是,王垠們表現出對教育的諸多不滿,不是去尋求解決方法,反而是用自己的前途來賭氣,「你不改變到讓我順心,我就不讀了」,最終把一手好牌打得稀巴爛。


其實,王垠的人生本不該如此。

要知道,對教育的不滿,不是馬上就可以改變得了的事情。

既然這樣,王垠應以個人前途為主,讀完博士,實在是有心去改變現行的教育,就努力進教育部工作,努力當上領導,憑他的毅力是可以做到的,那時候想怎麼改教育制度就怎麼改,改到自己順心為此。

但相信,他到那個時候就會理解教育的種種「無奈」了。

而對於工作制度和公司行事作風的不滿,王垠也有兩種更為妥當的處理方法:

首先,他可以選擇辭職,但也需要留些餘地,留些退場的體面,既然已經離開了,罵再多也無益。

其次,憑借自己的天資聰明,他只要肯努力和堅持,無論在谷歌、微軟,還是在英特爾,都可以闖出一片屬於自己的天地,當上一個舉足輕重的領導。此時,他不僅創造了自己的價值,還可以對現行制度進行完善,何樂不為?

只可惜,直到如今,王垠對任何事情的不滿,依然是以抱怨,以自己的前途來抗爭。

據了解,他回國後,也沒有找到更適合自己的工作,而是開了一個網站,繼續宣傳自己的想法和思想。

為此,他還做了一個事業計劃,建立一個世界最高水準的教育機構,沒有條條框框的束縛,學生的創造力不會被世俗教育束縛。

他會實現嗎?

我想,難!無規矩不成方圓,除非每個人天生都能自覺做事情!

㈥ 如何看待王垠 如何掌握程序語言

教了多年《C程序設計》課程,大多學生覺的這門課程難學。其實,按照我們現在的教學大綱和教學要求,只要同學們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學好的。 《C程序設計》的內容很豐富,按照我們現在的教學大綱

㈦ 王垠,40行代碼,JAVA吧的大神怎麼評論

1.這段 40 多行代碼是給 Scheme 程序脫糖的程序,屬於解釋器的代碼,而不是應用代碼。對其的客觀評價顯然只有設計解釋器的人才能給出。

2.這代碼不是一般人看的,本身他用的語言就是極客向的語言,而且這搞的又是很專業的東西,主要是與解釋器相關的領域。CPS的功能是很明確的,但其價值只有對編譯器解釋器很有研究的人才能判定。

3.以自然語言寫作比喻,編寫自解釋器級別的代碼,就像你在寫一本小說,而小說的主角也在寫一本小說,這位主角在描寫你,對你的刻畫會影響到你,你受到影響之後又會改變小說中的主角,從而影響到他對你的描寫。你倆要相安無事,情節合符邏輯地發展,直到最後圓滿的結尾。這比寫一本普通小說可難多了。

㈧ 大家覺得王垠對空指針的處理怎麼看待

我覺得這個思想看起來非常簡單粗暴,但很有效。


世界上有兩種有才華的人,一種熱愛自己的事業,願意為之付出一切;另一種熱愛自己的才華,任何的事業只是展示才華的舞台。

編程語言仍然是個很重要的話題,這種情況在用戶不知情情況下擅自降低在兩個維度談兩個問題:第一個維度:預計這空指針可接受的第二個維度:我們討論軟體之前或之後的版本嗎?顯然,如果這個空指針是一個這幾起訴訟金額可能會達到可接受的預期的輸入,程序必須正確地處理它,不管第二維度的價值;如果是意外輸入,則需要繼續查看第二個維度。

總結:我們在根據自己最熟悉的場景給出對我們而言最可控的方案。

閱讀全文

與王垠如何掌握程序語言相關的資料

熱點內容
貴州貴陽市場在哪裡 瀏覽:719
柔性磁電技術有限公司怎麼樣 瀏覽:53
幣客迎是什麼交易所 瀏覽:264
西昌蟲草交易市場在哪裡 瀏覽:145
手機數據授權怎麼設置 瀏覽:447
上課數據如何保存 瀏覽:65
美團交易解鎖是什麼意思 瀏覽:803
什麼叫信息化校園環境 瀏覽:714
商品st數據是什麼意思 瀏覽:218
水肌澳分享如何招代理 瀏覽:607
單一農產品如何配送 瀏覽:40
海鮮市場上哪些雜魚好吃 瀏覽:824
釘釘群如何刪除漫遊信息 瀏覽:944
如何通過技術學習賺錢 瀏覽:598
武夷山哪裡招聘信息 瀏覽:810
非洲賣什麼數碼產品好 瀏覽:662
濟南二手房多久可交易 瀏覽:537
投保信息第三者投保在哪裡查 瀏覽:247
達芬奇16資料庫為什麼建不了 瀏覽:567
正規的代理記賬如何找 瀏覽:791