程序員的十個層次,你屬於哪一層?

自西方文藝復興以來,中國在天然科學方面落後西方不少,軟件領域也不例外。固然如今中國的許多程序員們對此可能有許多不一樣的意見,有些人認爲中國的程序員水平遠落後於西方,有些則認爲中國的程序員我的能力並不比西方的程序員差,只是整個軟件產業落後而已。html

那麼,到底中國的程序員水平比西方程序員水平差,仍是中國有許多優秀的程序員達到或超過了西方程序員同等水平呢?要解決這個問題,必須先知道程序員有多少種技術層級,每一個層級須要什麼樣的技術水平,而後再比較中國和西方在各個技術層級的人數,就能夠知道到底有沒有差距,差距有多大。程序員

固然,對於如何劃分程序員的技術層級,不一樣公司或不一樣人會有不一樣的劃分標準,下面的劃分僅表明我的的觀點,若有不當之處,還請砸板磚予以糾正。web

第1層  菜鳥算法

第1層樓屬於地板層,邁進這層樓的門檻是很低的。基本上懂計算機的基本操做,瞭解計算機專業的一些基礎知識,掌握一門基本的編程語言如C/C++,或者Java,或者JavaScript,...,都可入門邁進這層。數據庫

在這層上,中國有着絕對的優點,除了從計算機專業畢業的衆多人數外,還有大量的通訊、自動化、數學等相關專業的人士進入這一行,此外還有衆多的其餘專業轉行的人士,人數絕對比西方多出甚多。而且還有一個優點就是咱們這層人員的平均智商比西方確定高。編程

沒有多少人願意一生作菜鳥,由於作"菜鳥"的滋味實在是不咋的,成天被老大們吆喝着去裝裝機器,搭建一下測試環境,或者對照着別人寫好的測試用例作一些黑盒測試,好一點的能夠被安排去寫一點測試代碼。固然若是運氣"好"的話,碰到了國內的一些做坊式的公司,也有機會去寫一些正式的代碼。設計模式

因此,菜鳥們老是在努力學習,但願爬更高的一層樓去。數組

第2層 大蝦服務器

從第1層爬到第2層相對容易一些,以C/C++程序員爲例,只要熟練掌握C/C++編程語言,掌握C標準庫和經常使用的各類數據結構算法,掌握STL的基本實現和使用方法,掌握多線程編程基礎知識,掌握一種開發環境,再對各類操做系統的API都去使用一下,搞網絡編程的固然對socket編程要好好掌握一下,而後再學習一些面向對象的設計知識和設計模式等,學習一些測試、軟件工程和質量控制的基本知識,大部分人通過2~3年的努力,均可以爬到第2層,晉升爲"大蝦"。網絡

中國的"大蝦"數量和"菜鳥"數量估計不會少多少,因此這層上仍然遠領先於西方。

大蝦們一般仍是有些自知之明,知道本身只能實現一些簡單的功能,作不了大的東西,有時候還會遇到一些疑難問題給卡住,因此他們對那些大牛級的人物一般是很是崇拜的,國外的如Robert C. Martin、Linus Torvalds,國內的如求伯君、王志東等一般是他們崇拜的對象。其中的有些人但願有一天也能達到這些大牛級人物的水平,因此他們繼續往樓上爬去。

第3層 牛人

因爲"大蝦"們常常被一些疑難問題給卡住,因此有了"大蝦"們只好繼續學習,他們須要將原來所學的知識進一步熟練掌握,好比以熟練掌握C++編程語言爲例,除了學一些基礎性的C++書籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等以外,更重要的是須要了解C++編譯器的原理和實現機制,瞭解操做系統中的內部機制如內存管理、進程和線程的管理機制,瞭解處理器的基礎知識和代碼優化的方法,此外還須要更深刻地學習更多的數據結構與算法,掌握更深刻的測試和調試知識以及質量管理和控制方法,對各類設計方法有更好的理解等。

學習上面說的這些知識不是一揮而就的,不看個三五十本書並掌握它是作不到的。以數據結構算法來講,至少要看個5~10本這方面的著做;以軟件設計來講,光懂結構化設計、面向對象設計和一些設計模式是不夠的,還要了解軟件架構設計、交互設計、面向方面的設計、面向使用的設計、面向數據結構算法的設計、情感化設計等,不然是很難進到這個樓層的。

固然除了上面說的知識外,大蝦們還須要去學習各類經驗和技巧。固然這點難不倒他們,如今出版的書籍衆多,網絡上的技術文章更是不勝數,而後再去各類專業論壇裏泡一泡,把這些書籍和文章中的各類經驗、技能、技巧掌握下來,再去學習一些知名的開源項目如Apache或Linux操做系統的源代碼實現等。此時對付通常的疑難問題一般都不在話下,菜鳥和大蝦們會以爲你很"牛",你也就爬到了第3層,晉升爲"牛人"了。

看了上面所講的要求,可能有些大蝦要暈過去了,成爲牛人要學這麼多東西啊!要求是否是過高了?其實要求一點也不高,這麼點東西都掌握不了的話,怎麼能讓別人以爲你"牛"呢?

須要提一下的是,進入多核時代後,從第2層爬到第3層增長了一道多核編程的門檻。固然要邁過這道門檻並不難,已經有不少前輩高人邁進了這道門檻,只要循着他們的足跡前進就能夠了。想邁進這道門檻者不妨去學習一下TBB開源項目的源代碼(連接:http://www.threadingbuildingblocks.org/),而後上Intel的博客(http://softwareblogs-zho.intel.com/)和多核論壇(http://forum.csdn.net/Intel/IntelMulti-core/)去看看相關文章,再買上幾本相關的書籍學習一下。

在國內, 一旦成爲"牛人",一般能夠到許多知名的公司裏去,運氣好者能夠掛上一個架構師的頭銜,甚至掛上一個"首席架構師"或者"首席xx學家"的頭銜也不足爲奇。有很多爬到這層的人就覺得到了樓頂了,能夠眼睛往天上看了,開始目空一切起來,覺得本身什麼均可以作了,什麼都懂了,常常在網絡上亂砸板磚是這個羣體的最好寫照。由此也看出,國內的牛人數量仍然衆多,遠多於西方的牛人數量,在這層上仍然是領先的。

也有很多謙虛的"牛人",知道本身如今還不到半桶水階段。他們深知爬樓的遊戲就像猴子上樹同樣,往下看是笑臉,往上看是屁股。爲了多看笑臉,少看屁股,他們並無在此停步不前,而是繼續尋找到更上一層的樓梯,以便繼續往上爬。

第4層 大牛

從第3層爬到第4層可不像上面說過的那幾層同樣容易,要成爲大牛的話,你必需要能作牛人們作不了的事情,解決牛人們解決不了問題。好比牛人們一般都不懂寫操做系統,不會寫編譯器,不懂得TCP/IP協議的底層實現,若是你有能力將其中的任何一個實現得象模象樣的話,那麼你就從牛人升級爲"大牛"了。

固然,因爲各個專業領域的差異,這裏舉操做系統、編譯器、TCP/IP協議只是做爲例子,並不表明成爲"大牛"必定須要掌握這些知識,以時下熱門的多核編程來講,若是你能比牛人們更深刻地掌握其中的各類思想原理,能更加自如的運用,並有能力去實現一個象開源項目TBB庫同樣的東西,也能夠成爲"大牛",又或者你能寫出一個相似Apache同樣的服務器,或者寫出一個數據庫,均可以成爲"大牛"。

要成爲"大牛"並非一件簡單的事情,須要付出比牛人們多得多的努力,通常來講,至少要看過200~400本左右的專業書籍並好好掌握它,除此以外,還得常常關注網絡和期刊雜誌上的各類最新信息。

當"牛人"晉升爲"大牛",讓"牛人們"發現有比他們更牛的人時,對"牛人"們的心靈的震撼是可想而知的。因爲牛人們的數量龐大,而且牛人對大蝦和菜鳥階層有言傳身教的影響,因此大牛們一般能得到很是高的社會知名度,幾乎能夠用"引無數菜鳥、大蝦、牛人競折腰"來形容,看看前面提過的Linus Torvalds等大牛,應該知道此言不虛。

雖然成爲"大牛"的條件看起來彷佛很高似的,可是這層樓並非很難爬的一層,只要經過必定的努力,素質不是不好,仍是有許多"牛人"能夠爬到這一層的。由此可知,"大牛"這個樓層的人數其實並不像想像的那麼少,例如比爾·蓋茨之類的人好像也是屬於這一層的。

因爲"大牛"這層的人數很多,因此也很難統計除究竟是中國的"大牛"數量多仍是西方的大牛數量多?我估計應該是個旗鼓至關的數量,或者中國的"大牛"們會更多一些。

看到這裏,可能會有不少人會覺得我在這裏說瞎話,Linus Torvalds寫出了著名的Linux操做系統,我國並無人寫出過相似的東西啊,我國的"大牛"怎麼能和西方的比呢? 不知你們注意到沒有,Linus Torvalds只是寫出了一個"象模象樣"的操做系統雛形,Linux後來真正發展成聞名全球的開源操做系統期間,徹底是由於許多支持開源的商業公司如IBM等,派出了許多比Linus Torvalds更高樓層的幕後英雄在裏面把它開發出來的。

可能有些菜鳥認爲Linus Torvalds是程序員中的上帝,不妨說個小故事:

Linus,Richard Stallman和Don Knuth(高德納)一同參加一個會議。

Linus 說:"上帝說我創造了世界上最優秀的操做系統。"

Richard Stallman天然不甘示弱地說:"上帝說我創造了世界上最好用的編譯器。"

Don Knuth一臉疑惑的說:"等等,等等,我何時說過這些話?"

由此能夠看出,Linus Torvalds的技術水平並不像想像中那麼高,只是"牛人"和"大蝦"以爲"大牛"比他們更牛吧了。在我國,有一些當時還處於"大蝦"層的人物,也能寫出介紹如何寫操做系統的書,而且書寫得很是出色,並且寫出了一個有那麼一點點象模象樣的操做系統來。我想中國的"大牛"們是不會比西方差的,之因此沒有人寫出相似的商業產品來,徹底是社會環境的緣由,並非技術能力達不到的緣由。

"大牛"們之因此成爲大牛,主要的緣由是由於把"牛人"給蓋了下去,並非他們本身以爲如何牛。也許有不少菜鳥、大蝦甚至牛人以爲"大牛"這層已經到頂了,但大多數"大牛"估計應該是有自知之明的,他們知道本身如今尚未爬到半山腰,也就勉強能算個半桶水的水平,其中有些爬到這層沒有累趴下,仍然能量充沛,而且又有志者,仍是會繼續往更上一層樓爬的。

看到這裏,也許有些菜鳥、大蝦、牛人想不明白了,還有比"大牛"們更高的樓層,那會是什麼樣的樓層?下面就來看看第5層樓的奧妙。

第5層 專家

當大牛們真正動手作一個操做系統或者相似的其餘軟件時,他們就會發現本身的基本功仍然有不少的不足。之內存管理爲例,若是直接抄襲Linux或者其餘開源操做系統的內存管理算法,會被人看不起的,若是自動動手實現一個內存管理算法,他會發現如今有關內存管理方法的算法數量衆多,本身並無所有學過和實踐過,不知道到底該用那種內存管理算法。

看到這裏,可能有些人已經明白第5層樓的奧妙了,那就是須要作基礎研究,固然在計算機裏,最重要的就是"計算"二字,程序員要作基礎研究,主要的內容就是研究非數值"計算"。

非數值計算但是一個很是龐大的領域,不只時下熱門的"多核計算"與"雲計算"屬於非數值計算範疇,就是軟件需求、設計、測試、調試、評估、質量控制、軟件工程等本質上也屬於非數值計算的範疇,甚至芯片硬件設計也一樣牽涉到非數值計算。若是你尚未真正領悟"計算"二字的含義,那麼你就沒有機會進到這層樓來。

可能有人仍然沒有明白爲何比爾·蓋茨被劃在了大牛層,沒有進到這層來。雖然比爾·蓋茨大學未畢業,學歷不夠,可是家有藏書2萬餘冊,進入軟件這個行業比絕大部分人都早,撇開他的商業才能不談,即便只看他的技術水平,也能夠算得上是學富五車,頂上幾個普通的計算機軟件博士之和是沒有問題的,比起Linus Torvalds之類的"大牛"們應該技高一籌纔對,怎麼還進不了這層樓呢?

很是遺憾的是,從Windows操做系統的實現來看,其對計算的理解是很膚淺的,若是把Google對計算方面的理解比作大學生,比爾·蓋茨只能算作一個初中生,因此比爾·蓋茨永遠只能作個大牛人,成不了"專家"。

看到這裏,也許國內的大牛們要高興起來了,原來比爾·蓋茨也只和我等在同一個層次,只要再升一層就能夠超越比爾·蓋茨了。不過爬到這層可沒有從"牛人"升爲"大牛"那麼簡單,人家比爾·蓋茨都家有2萬多冊書,讓你看個500~1000本以上的專業書籍並掌握好它應該要求不高吧。固然,這並非主要的條件,更重要的是,須要到專業的學術站點去學習了,到ACM,IEEE,Elsevier,SpringerLink,SIAM等地方去下載論文應該成爲你的按期功課,使用Google搜索引擎中的學術搜索更是應該成爲你的平常必修課。此外,你還得常常關注是否有與你研究相關的開源項目冒出來,例如當聽到有TBB這樣針對多核的開源項目時,你應該第一時間到Google裏輸入"TBB"搜索一下,將其源代碼下載下來好好研究一番,這樣也許你的一隻腳已經快邁進了這層樓的門檻。

當你象我上面說的那樣去作了之後,隨着時間的推移,總會有某天,你發現,在不少小的領域裏,你已經學不到什麼新東西了,全部最新出來的研究成果你幾乎都知道。此時你會發現你比在作"牛人"和"大牛"時的水平不知高出了多少,可是你一點也"牛"不起來,由於你學的知識和思想都是別人提出來的,你本身並無多少本身的知識和思想分享給別人,因此你還得繼續往樓上爬才行。

我不知道國內的"專家"到底有多少,不過有一點能夠確定的是,若是把那些專門蒙你們的"磚家"也算上的話,咱們的磚家比西方的要多得多。

第6層 學者

當"專家"們想繼續往上一層樓爬時,他們幾乎一眼就能夠看到樓梯的入口,不過令他們吃驚的是,樓梯入口處豎了一道高高的門檻,上面寫着"創新"二字。不幸的是,大多數人在爬到第5層樓時已經體能消耗過分,無力翻過這道門檻。

有少數體能充足者,能夠輕易翻越這道門檻,可是並不意味着體力消耗過分者就沒法翻越,由於你只是暫時尚未掌握恢復體能的方法而已,當掌握了恢復體能的方法,將體能恢復後,你就能夠輕易地翻越這道門檻了。

怎麼才能將體能恢復呢?咱們的老祖宗"孔子"早就教導過咱們"溫故而知新",在英文裏,研究的單詞是"research",其前綴"re"和"search"分別是什麼意思不用我解釋吧。或許有些人以爲"溫故而知新"和"research"有些抽象,很差理解,我再給打個簡單的比方,好比你在爬一座高山,爬了半天,中途體力不支,怎麼恢復體力呢?天然是休息一下,從新進食一些食物,體力很快就能夠獲得恢復。

由此可知,對體能消耗過分者,休息+從新進食一般是恢復體能的最佳選擇。惋惜的是,國內的老闆們並不懂得這點,他們的公司裏不只連正常國家規定的休息時間都不給足,有些公司甚至有員工"過勞死"出現。因此國內能翻越"創新"這道門檻的人是"少之又少",和西方比起來估計是數量級的差異。

再說說從新進食的問題,這個從新進食是有講究的,須要進食一些基礎性易消化的簡單食物,不能進食山珍海味級的複雜食物,不然很難快速吸取。以查找爲例,並非去每天盯着那些複雜的查找結構和算法進行研究,你須要作的是將二分查找、哈希查找、普通二叉樹查找等基礎性的知識好好地複習幾遍。

以哈希查找爲例,首先你須要去將各類衝突解決方法如鏈式結構、二次哈希等編寫一遍,再試試不一樣種類的哈希函數,而後還須要試試在硬盤中如何實現哈希查找,並考慮數據從硬盤讀到內存後,如何組織硬盤中的數據才能快速地在內存中構建出哈希表來,...,這樣你可能須要將一個哈希表寫上十幾個不一樣的版本,並比較各個版本的性能、功能方面的區別和適用範圍。

總之,對任何一種簡單的東西,你須要考慮各類各樣的需求,以需求來驅動研究。最後你將各類最基礎性的查找結構和算法都瞭然於胸後,或許某天你再看其餘更復雜的查找算法,或者你在散步時,腦殼裏靈光一現,忽然間就發現了更好的方法,也就從專家晉升爲"學者"了。

學者所作的事情,一般都是在前人的基礎上,進行一些小的優化和改進,例如別人發明了鏈式基數排序的方法,你第1個發現使用必定的方法,能夠用數組替代鏈表進行基數排序,性能還能獲得進一步提升。

因爲學者須要的只是一些小的優化改進,所以中國仍是有必定數量的學者。不過和國外的數量比起來,估計少了一個數量級而已。

也許有人會以爲如今中國許多公司申請專利的數量達到甚至超過西方發達國家了,咱們的學者數量應該不會比他們少多少。所以,有必要把專利和這裏說的創新的區別解釋一下。

所謂專利者,只要是之前沒有的,新的東西,均可以申請專利;甚至是之前有的東西,你把他用到了一個新的領域的產品裏去,也能夠申請專利。好比你在房子裏造一個水泥柱子,只要之前沒有人就這件事申請專利,那麼你就能夠申請專利,而且下次你把水泥柱子挪一個位置,又能夠申請一個新的專利;或者你在一個櫃子上打上幾個孔,下次又把孔的位置改一改,...,都可申請專利。

這層樓裏所說的創新,是指學術層面的創新,是基礎研究方面的創新,和專利的概念是徹底不一樣的,難度也是徹底不一樣的。你即便申請了一萬個象那種打孔一類的專利,加起來也夠不到這層樓裏的一個創新。

當你爬到第6層樓時,你也許會有一種突破極限的快感,由於你終於把那道高高的寫着"創新"二字的門檻給翻過去了,實現了"0"的突破。這時,你也許有一種"獨上高樓,慾望盡天涯路"的感受,可是很快你會發現看到的都是比較近的路,遠處的路根本看不清楚。若是你還有足夠的體力的話,你會想爬到更高一層的樓層去。

第7層 大師

從第6層樓爬到第7層樓,並無多少捷徑可走,主要看你有沒有足夠的能量。你若是能象Hoare同樣設計出一個快速排序的算法;或者象Eugene W. Myers同樣設計出了一個用編輯圖的最短路徑模型來解決diff問題的算法;或者象M.J.D. Powell同樣提出了一個可以處理非線性規劃問題的SQP方法;或者你發現基於比較的排序算法,它的複雜度下界爲O(NLogN);或者你發現用棧能夠將遞歸的算法變成非遞歸的;或者你設計出一個紅黑樹或者AVL樹之類的查找結構;或者你設計出一個象C++或Java同樣的語言;或者你發明了UML;...,你就爬到了第7層,晉升爲"大師"了。

上面舉的這些例子中,其中有些人站的樓層比這層高,這裏只是爲了形象說明而舉例他們的某個成就。從上面列出的一些大師的貢獻能夠看出,成爲大師必需要有較大的貢獻。首先解決問題必須是比較重要的,其次你要比前輩們在某方面有一個較大的提升,或者你解決的是一個全新的之前沒有解決過的問題;最重要的是,主要的思路和方法必須是你本身提供的,再也不是在別人的思路基礎上進行的優化和改進。

看了上面這些要求,若是能量不夠的話,你也許會以爲有些困難,因此不是每一個人都能成爲"大師"的。中國軟件業裏能稱得上是"大師"的人,用屈指可數來形容,估計是綽綽有餘。值得一提得是,國外的"大師"就象咱們的"大牛"同樣滿天飛的多。

我把我猜想本國有可能進到這層樓的大師列一下,以起個拋磚引玉的做用。漢王的"手寫識別"技術因爲是徹底保密的,不知道它裏面用了什麼思想,原創思想佔的比重有多少,所以不知道該把它劃到這層樓仍是更高一層樓去。原山東大學王小云教授破解DES和MD5算法時,用到的方法不知道是否是徹底原創的,若是是的話也可進到這層樓來。

陳景潤雖然沒有完全解決哥德巴赫猜測,但他在解決問題時所用的方法是創新的,所以也能夠進到這層樓來。固然,若是能完全解決哥德巴赫猜測,那麼能夠算到更高的樓層去。

求伯君和王志東等大牛們,他們在作WPS和表格處理之類的軟件時,不知是否有較大的原創算法在裏面,若是有的話就算我錯把他們劃到了大牛層。因爲所學有限,不知道國內還有那些人可以得上"大師"的級別,或許有少許作研究的教授、院士們,能夠達到這個級別,有知道的不妨回個帖子晾一晾。

鑑於"大師"這個稱號的光環效應,相信有很多人夢想着成爲"大師"。或許你看了前面舉的一些大師的例子,你會以爲要成爲大師很是困難。不妨說一下,如今有一條通往"大師"之路的捷徑打開了,那就是多核計算領域,有大量的處女地等待你們去挖掘。

之前在單核時代開發的各類算法,如今都須要改寫成並行的。數據結構與算法、圖像處理、數值計算、操做系統、編譯器、測試調試等各個領域,都存在大量的機會,可讓你進到這層樓來,甚至有可能讓你進到更高一層樓去。

第8層 科學家

科學家向來都是一個神聖的稱號,所以我把他放在了「大師」之上。要成爲科學家,你的貢獻必須超越大師,不妨隨便舉一些例子。

若是你象Dijkstra同樣設計了ALGOL語言,提出了程序設計的三種基本結構:順序、選擇、循環,那麼你能夠爬到第8層樓來。順便說一下,即便拋開這個成果,Dijkstra憑他的PV操做和信號量概念的提出,一樣能夠進到這層樓。

若是你象Don Knuth同樣,是數據結構與算法這門學科的重要奠定者,你也能夠進到這層樓來。固然,數據結構和算法這門學科不是某我的開創的,是許多大師和科學家集體開創的。

若是你象巴科斯同樣發明了Fortran語言,並提出了巴科斯範式,對高級程序語言的發展起了重要做用,你也能夠進到這層樓來。

或者你象Ken Thompson、Dennis Ritchie同樣發明了Unix操做系統和功能強大、高效、靈活、表達力強的C語言,對操做系統理論和高級編程語言均做出重大貢獻,那麼你也能夠進到這層樓來。

或者你有Frederick P. Brooks同樣機會,能夠去領導開發IBM的大型計算機System/360和OS/360操做系統,並在失敗後反思總結,寫出《人月神話》,對軟件工程做出里程碑式的貢獻,你也能夠進到這層來。

或者你提出了面向對象設計的基本思想,或者你設計了互聯網的TCP/IP協議,或者你象Steven A.Cook同樣奠基NP徹底性的理論基礎,或者你象Frances Allen同樣專一於並行計算來實現編譯技術,在編譯優化理論和技術取得基礎性的成就,…,都可進入這層。

固然,若是你發明了C++語言或者Java語言,你進不到這層來,由於你用到的主要思想都是這層樓中的科學家提出的,你本身並無沒有多少原創思想在裏面。

看了上面列出的科學家的成就,你會發現,要成爲「科學家」,一般要開創一門分支學科,或者是這個分支學科的奠定者,或者在某個分支學科裏做出里程碑式的重大貢獻。若是作不到這些的話,那麼你能象Andrew C. Yao(姚期智)同樣在對計算理論的多個方向如僞隨機數生成,密碼學與通訊複雜度等各個方向上做出重要貢獻,成爲集大成者,也能夠進入這層樓。

成爲「科學家」後,若是你有幸象Dijkstra同樣,出如今一個很是重視科學的國度。當你去世時,你家鄉滿城的人都會自動地去爲你送葬。不過若是不幸生錯地方的話,能不挨「板磚」估計就算萬幸了。

從上面隨便舉的一些例子中,你可能能猜到,西方科學家的數量是很是多的,因而你會想中國應該也有少許的科學家吧?我能夠很負責任地告訴你一個不幸的結果,中國本土產生的科學家的數量爲0。目前在國內,軟件領域的惟一的科學家就是上面提過的姚期智,仍是國外請回來的,並非本土產生的。

可能你不一樣意我說的本土科學家數量爲0的結論,由於你常常看到有許多公司裏都有所謂「首席XX科學家」的頭銜。我想說的是,這些所謂的「首席XX科學家」都是遠遠夠不到這層樓的級別的,有些人的水平估計也就是一個「牛人」或「大牛」的級別,好一點的最多也就一個「學者」的級別。尤爲是那些被稱做「首席經X學家」的,基本上能夠把稱號改成「首席坑你們」。

雖然我國沒有人能爬到這層樓上來,可是西方國家仍然有許多人爬到了比這層更高的樓上。若是要問咱們比西方落後多少?那麼能夠簡單地回答爲:「落後了三層樓」。下面就來看看咱們作夢都沒有到過的更高一層樓的祕密。

第9層 大科學家

進入這層樓的門檻一般須要一些運氣,好比某天有個蘋果砸到你頭上時,你碰巧發現了萬有引力,那麼你能夠進到這層樓來。固然,萬有引力幾百年前就被人發現了,若是你如今處處嚷嚷着說你發現了萬有引力,恐怕立刻會有人打110,而後警察會把你送到不正常人類的彙集地去。所以,這裏舉萬有引力的例子,只是說你要有相似的成就才能進到這層樓來。

牛頓發現萬有引力定律開創了經典物理運動力學這門學科,若是你也能開創一門大的學科,那麼你就從科學家晉升爲「大科學家」。好比愛因斯坦建立了相對論,從一個小職員變成了大科學家。固然大科學家可遠不止這兩人,數學界裏比物理學界更是多得多,如歐幾里得建立了平面幾何,笛卡爾開創解析幾何,還有歐拉、高斯、萊布尼茨等數不清的人物,跟計算相關的大科學家則有圖靈等人。

從上面列出的一些大科學家能夠發現,他們的成就不只是開創了一個大的學科,更重要的是他們的成就上升到了「公理」的層面。發現公理一般是須要一點運氣的,若是你的運氣不夠好的話,另外還有一個笨辦法也能夠進到這層樓來,那就是成爲集大成者。例如馮·諾伊曼,對數學的全部分支都很是瞭解,許多領域都有較大的貢獻,即便撇開他對計算機的開創貢獻,成爲大科學家照樣綽綽有餘。

固然,程序員們最關心的是本身有沒有機會變成大科學家。既然計算機這門大學科的開創性成果早就被馮·諾伊曼、圖靈等人摘走了,那麼程序員們是否是沒有機會變成大科學家了呢?咱們的古人說得好:「江山代有才人出,各領風騷數百年」,如今在計算機這門學科下面誕生了許多很是重要的大的分支,因此你仍是有足夠的機會進到這層樓的。

若是你可以完全解決天然語言理解(機器翻譯)這門學科中的核心問題, 或者你在人工智能或者機器視覺(圖像識別)方面有突破性的發現,那麼你一樣能夠輕易地晉升爲「大科學家」。這樣當某天你老了去世時,或許那天國人已經覺醒,你也能享受到如Dijkstra同樣的待遇,有滿城甚至全國的人去爲你送葬。

如今還剩下另一個你們感興趣的問題沒有討論,那就是這層中已經出現了牛頓、愛因斯坦、高斯等咱們日常人都認爲是頂級的科學家,是否是這層已是樓頂了呢?相信還記得本文標題的人應該知道如今僅僅是第9層,還有第10層沒有到達呢。可能很多人如今要感到困惑了,難道還有人站在比牛頓、愛因斯坦、高斯等人更高的樓層上?

這個世界上確實存在能夠用一隻手的手指數得清的那麼幾我的,他們爬到了第10層樓上。所以,第10層樓不是虛構的,而是確實存在的。若是對此有疑惑或者認爲我在胡謅一番的話,那麼不妨繼續往下看下去,窺一下第10層樓的祕密。

第10層 大哲

看了這層樓的名字「大哲」,可能很多人已經猜到了這層樓的祕密,那就是你的成果必需要上升到哲學的高度,你纔有機會能進到這層來。

固然,上升到哲學高度只是一個必要條件,牛頓的萬有引力彷佛也上升到了哲學的高度,由於不知道引力究竟是怎麼來的,可是牛頓沒有被劃到這一層,由於進到這層還有另外的條件,那就是你的成果必須引發了哲學上的深度思考,並能讓人們的世界觀向前跨進一大步。竊覺得牛頓、愛因斯坦等人的成就還達不到讓人們世界觀向前跨進一大步的程度。

因此,這層樓中的人的成就對咱們普通人認識世界很是重要,你能夠不學相對論,可是你不能夠不對這層樓的人所做出的成就不瞭解,不然你的世界觀就是極其不完整的,會犯許多認識上的錯誤。不幸的是,中國的科普知識普及還不夠到位,知道這層樓成就的人好像並很少,程序員中恐怕更少。下面就來看看這些用一隻手的手指數得清的大哲們,到底有什麼成就,能比萬有引力定律和相對論還重要。

一、希爾伯特 (1862~1943)

第1位進到此樓層是一位名叫「希爾伯特」的大數學家,若是你學過《泛函分析》,那麼你在學習希爾伯特空間時可能已經對這位大數學家有所瞭解;若是你不是學數學出身的,又對數學史不感興趣的話,恐怕你歷來沒有據說過這個名字。不過若是我問一下,知不知道二次世界大戰前世界數學中心在那裏,你確定會有興趣想知道。

不妨說一下,二戰前整個世界的數學中心就在德國的哥廷根,而咱們這位大數學家希爾伯特即是它的統帥和靈魂人物。即便在二戰期間,希特勒和丘吉爾也有協定,德國不轟炸牛津和劍橋,做爲回報,英國不轟炸海德堡和哥廷根。

整個二十世紀上半期的超一流數學家,幾乎都出自其門下。這裏不妨舉幾個咱們熟悉的人物,例如馮·諾伊曼就曾受到他和他的學生施密特和外爾的思想影響,還到哥廷根大學任過希爾伯特的助手,錢學森的老師馮·卡門是在哥廷根取得博士學位的。順便提一下,這位大數學家發現當時物理學上出了不少大的成果如相對論和量子力學,可是這些物理學家的數學功力明顯不足,所以有一段時間帶領他的學生們研究過物理學,並獨立發現了廣義相對論,只是很差意思和物理學家爭功勞,將廣義相對論的功勞所有讓給了愛因斯坦。

廣義相對論相對於這位大數學家在數學上的貢獻,實際上是算不了什麼的,只是由此可看出這位大數學家品格的高尚之處。若是再去看看牛頓之流的人物的品行,成天和萊布尼茨、虎克等人爭功勞,利用本身的優點地位打壓他人,甚至鬧得上法庭,和這位希爾伯特先生比起來,簡直就是個小丑。

說到這裏,你可能對這位大數學家「希爾伯特」有了一些初步映象,感受到了他的重要性,不過他在數學上的主要成就可不是幾句話說得清楚的。首先,他是一位集大成者,精通當時數學全部分支領域,在數學的各個領域都有較大的貢獻,固然這些成就只能讓他成爲一個大科學家,不能帶他進入這層樓。事實上這位「希爾伯特」解決的任何一個數學問題都夠不到這層樓的高度,那麼他怎麼混到這層樓來了呢?

話得從1900年提及,當時還很年輕的希爾伯特在當時的世界數學大會上作了一個報告,高屋建甌地提出了著名的23個未解決的數學問題,而後整個二十世紀上半期,全世界的數學家們都在這23個問題的指導下展開研究,直到如今仍然有許多數學家受這23個問題的指導在進行研究。例如咱們熟知的哥德巴赫猜測,就屬於其中第8個問題素數分佈的一個子問題。

若是用「高瞻遠矚」來形容這位大數學家的話,那麼這個世界上恐怕沒有第二我的再配得上「高瞻遠矚」這四個字,不管是歐拉、高斯、牛頓、愛因斯坦仍是被譽爲最有才華的數學家伽羅華,概不例外。

雖然那23個問題是概括總結出來的,並不全是原創,可是其中有很多問題是能夠上升到哲學的高度,引發深度思考的。可能大多數人都會以爲希爾伯特是進不到這層樓的,咱們知道提出問題的人和解決問題的人是同樣偉大的,況且他提出的問題是如此之多,基於這點,我的以爲應該讓希爾伯特跨進這層樓的門檻裏。

看完這位希爾伯特的成就,你可能會以爲對你的世界觀並無產生任何影響。確實如此,他提出的問題不是用來影響你的,而是用來影響其餘大科學家和大哲的,下面再來講說另外一位對他提出的23個問題中的第2個問題有傑出貢獻的大哲,你就會感受到大哲們的成果的威力了。

二、哥德爾 (1906~1978)

這位大哲的名字叫「哥德爾 (G?del) 」,你可能歷來也沒有據說過這個名字,即便你讀了一個數學系的博士學位,若是你的研究方向不和這位大哲對口的話,你也不必定了解這位大哲的成就,更不知道他的成果對咱們這個世界有何意義。

簡單地說,這位大哲20多歲時就證實了兩個定理,一個叫作「哥德爾徹底性定理」,另外一個更重要的叫作「哥德爾不徹底性定理」。你也許會以爲奇怪,第9層樓的成就就已經上升到了公理的高度,這種證實定理的事情不是學者和大師們作的事情嗎?怎麼能比第9層樓的成就還高呢?下面就來簡單說一下這兩個定理的含義,你就會明白這屬於系統級的定理,毫不是普通的定理和公理所能比擬的。

「哥德爾徹底性定理」證實了邏輯學的幾條公理是完備的,即任何一個由這些公理所產生出的問題,在這個公理系統內能夠斷定它是真的仍是假的,這個結論代表了咱們人類所擁有的邏輯思惟能力是完備的。這條定理並不能將其帶入這層樓來,帶其進入這層樓的是另外一條定理。

「哥德爾不徹底性定理」是在1930年證實的,它證實了現有數學的幾條公理(ZF公理系統)是不完備的,即由這些公理產生出的問題,沒法由這幾條公理判斷它是真的仍是假的。例如希爾伯特23個問題中的第1個問題,也就是著名的康托爾連續統假設,哥德爾在1938年證實了現有公理系統中不能證實它是「假」的,科恩(Cohen,或許也能夠稱得上是「半」個大哲)在1963年證實了現有公理系統不能證實它是「真」的。最有趣的是,即便你將某個不可斷定的問題,做爲一條新的公理加入進去,所組成的新的公理系統仍然是不完備的,即你沒法構造一個有限條公理的系統,讓這個公理系統是完備的。

也許你仍然沒法理解上面這段話的含義,不妨先說一下它對咱們現實世界的影響。你可能知道1936年出現的圖靈機是現代計算機的理論模型,若是沒有哥德爾不徹底性定理的思想,圖靈機何時能出來是很難說的,因此這位哥德爾能夠算做計算機理論的奠定者的奠定者。計算機對咱們這個世界產生的影響比原子彈大了多少,我想不用我說你們也都清楚。固然,對現實世界的影響只能把哥德爾同圖靈等人同樣劃到大科學家那一層去,能進入這層乃是另有緣由。

可能你看過《將來戰士》、《黑客帝國》、《I,Robot》之類的科幻電影,因而你產生製造一個和人同樣或者比人更高一級的智能機器人的想法,這就引入了一個達到哲學高度的問題,「人到底能不能製造出具備和人同樣的思惟能力的機器來?」。

我只能告訴你,「你的願望是良好的,但現實是殘酷的」。若是你仔細思考一下不徹底性定理的含義,並結合現代計算機所具備的能力分析一下,你會發現這個問題的答案暫時是否認的。若是你想造出和人同樣思惟能力的機器,那麼你須要去好好學習這位大哲及其後續研究者的成果,並在他們的基礎上有新的突破才行。

爲了說明這位大哲所研究領域的重要性,這裏順便再討論一個咱們平常爭議不休的問題,那就是孔夫子的「人之初、性本善」以及西方認爲「人之初、性本惡」的觀點孰優孰劣的問題。可能有許多人發現西方社會如今領先咱們,因而就認爲「性本惡」是對的,「性本善」是錯的,中國應該拋棄之前的舊思想,改用西方的思想。固然也有一些老學究們,認爲中國的人文思想是領先於西方的,天然而然地認爲「性本善」是對的,「性本惡」是錯的。

若是你學過大哲用過的公理化的分析方法,你就知道一套系統的多條公理間只要不會推導出矛盾的地方,便可以自圓其說,那麼它能夠看做是對的。這樣你能夠很輕易地給這個問題下一個結論,即「性本善」和「性本惡」是對等的,不存在孰優孰劣的問題,更不存在誰對誰錯的問題。只要你不一樣時將「性本善」和「性本惡」放入一個系統內,那麼是不會有問題的,甚至你也能夠認爲「人之初、既無善、亦無惡」,或者認爲「人之初、部分善、部分惡」,都是能夠自圓其說的,因此咱們的老祖宗提出的思想並無問題,之因此落後乃是其餘緣由形成的。這個問題其實在高斯所處的時代就有告終論,那時有人提出了非歐幾何,即平行線公理問題,有人認爲過一點能夠做多條平行線,還有人認爲平行線在無窮遠點是相交的,和歐氏幾何關於過一點只能做一條平行線的公理都是矛盾的,可是他們各自的系統內推導出的結論都是正確的。

上面說的只是對哥德爾不徹底性定理的一些粗淺解析,實際上若是深刻思考一下它的含義的話,你會發現它對物理學等許多學科有重大影響,包含的道理實在是深入,遠非通常的思想所能比擬,有興趣者不妨「google」或「百度」一下「哥德爾」。或許只有咱們的老祖宗「老子」提出的哲學思想,深度能夠有得一比。

哥德爾不徹底性定理也給那些認爲科學是嚴謹的人當頭一棒,原來連數學這樣的純理論學科都是不嚴謹的,其餘學科就更不用說了。

至此,已經說完數學上的大哲,下面不妨再看看物理學上的大哲,物理學上好像只出過一位叫「海森堡」的大哲(注:因爲本人對物理學不甚瞭解,不知道「霍金」夠不夠得上大哲的稱號)。

三、海森堡 (1901~1976)

海森堡這個名字相信沒有幾我的不知道的,大部分人在學習物理時都學過他的「測不許關係」,也就是由於這個「測不許關係」,海森堡爬到了第十層樓。

若是你看過《時間簡史》和《霍金講演錄-黑洞、嬰兒宇宙及其餘》,你也許已經瞭解測不許關係的威力,因此這裏不想作過多的討論,只談一些和本土產生的哲學思想相關的東西。

首先看看爭論了幾千年,而且如今仍然有人在爭論不休的「宿命論」問題。霍金認爲,只要這個宇宙有一個初始狀態,粒子的運動是按照必定物理定律進行的(好比相對論、量子力學屬於這些物理定律的一部分),那麼全部的粒子運動軌跡將是肯定的,而後只要你認可惟物論,即精神是由物質決定的,那麼宿命論就是「對」的。固然因爲測不許關係的存在,對人而言,又是沒法準確預測的,所以也能夠將其看做是「不對」的。簡單的說,能夠認爲宿命論是「對」的是絕對的,宿命論是「不對」的是相對的。

可能上面這段話你如今仍然難以理解,或許你又以爲你的命運並非上天註定的,而是能夠經過本身的努力能夠改變的。我要告訴你的是,你在想什麼也是事先已註定的,包括你在預測自己也是事先註定的,由於大腦思考問題最終是基本粒子運動的結果,而這些粒子的運動必然要遵循物理定律進行,因此你會不會努力,想不想努力,包括你在想你該不應努力這件事自己也是事先註定的。順便說一下,你如今正在看這篇文章,可能正在想這個宿命論問題值得懷疑,或者以爲寫得不夠好,準備砸個板磚上來;或者你在想這篇問題寫得有點意思,準備看完後轉給朋友看一看;又或者你看到這裏,以爲很累了,準備休息一下;…;這些都是上天事先就註定的。從你自身的相對角度看,由於你事先不知道後來會發生什麼,也能夠認爲不是事先註定的,可能這句話有些很差理解,不妨好好理解前面說過的公理化思想。

若是你沒看過《霍金講演錄-黑洞、嬰兒宇宙及其餘》,你可能會以爲很驚訝,宿命論從來不都被認爲是惟心論嗎,怎麼由惟物論推導出了宿命論呢?現實就是這樣和你開了一個大的玩笑,不過這個玩笑也是事先註定的。若是你再仔細用公理化的方法思考一下惟物論和惟心論的矛盾性,就像前面分析性善論和性惡論同樣,你會發現惟物論、惟心論不必定就是衝突的,矛盾的雙方是能夠統一的,只要你不要同時將惟物和惟心放進同一個系統中就行。

固然也有聰明者仍然會懷疑宿命論問題的正確性,由於這裏有一個前提條件,即宇宙要有一個初始狀態。宇宙有沒有初始狀態,咱們並不知道啊,雖然有大爆炸學說,但那也只是假說而已,並無獲得確證,有些人就認爲宇宙是一直都存在的。這樣看來彷佛你又有合理的理由在懷疑宿命論了,不過我仍然要告訴你,你如今在懷疑宿命論仍然是事先註定的,不相信的話就來看看下面的分析。

雖然宇宙的初始狀態值得懷疑,可是這個宇宙至少已經存在了一段時間,這點我想是毋庸置疑的。咱們能夠在咱們已知的宇宙存在的這段時間內,任意取一個時間點t0,那麼在這個時間點t0上,全部的粒子都有一個運動狀態。在時間點t0以後的時間裏,因爲粒子運動是按照物理定律進行的,所以粒子運動軌跡由時間點t0的狀態決定。說白一點,若是取100年前的一個時間點做爲t0,那麼如今的全部粒子運動狀態100年前就已經肯定了,若是取10000年前一個時間點做爲t0,那麼最近10000年內全部粒子運動的軌跡在10000年前就肯定了,固然,你能夠取更早的時間,好比100億年前的時間點。

總之,如今你會發現宇宙有沒有初始狀態並不會影響宿命論的正確性,因此這個世界的一切都是註定的。只不過因爲粒子間相互影響過於複雜,咱們沒法知道這些粒子的運動軌跡而已。固然,若是將測不許關係用上的話,那麼就是這個運動軌跡對人來講是沒法準確預測的,因此不妨開個玩笑:「算命先生常常算得不許大概是測不許關係的緣故吧」。

若是你再深刻思考一下測不許關係,你會發現這是一個測量系統的問題。因爲宿命論的存在,這個世界自己其實是肯定的,是「準「的,之因此測不許乃是咱們人類所具備的測量能力依賴於基本粒子形成的。因此我在前面說宿命論是「不對」的是相對的,它是相對於咱們人類的測量能力而言的。根岑(Gentzen,曾任希爾伯特的助手)在一個更強的系統內證實了ZF系統內的問題都是可斷定的,從一個側面說明這個世界自己是肯定的。(注:它和哥德爾不徹底性定理並不矛盾,因爲數學上的複雜性,這裏就不詳細解釋了)

不妨再想一想咱們老祖宗提出的「是莊周夢見了蝴蝶?仍是蝴蝶夢見了莊周?」,「風動?幡動?仍是心動?」之類的問題,固然之前你都認爲這是純粹的惟心主義,甚至認爲是封建糟粕,可是若是結合測不許關係的內涵,再結合前面所說的公理化分析方法進行分析,估計你如今不敢輕易地下結論。

也許到如今你仍然沒法理解爲何把大哲們劃在了大科學家的上一層,你可能仍然以爲萬有引力、相對論等成果是最偉大的。下面就來談談爲何大哲比大科學家高一層。

若是把人類在現有能力狀況下,未來所可以擁有的知識總集當作是一個集合A,人類如今已有的知識總集當作是集合B,顯然,集合B只是集合A的一個子集,而且是很小的一個子集。牛頓力學、相對論這些理論只能算做集合B裏的一個子集,相對於集合A,只能算做是滄海一粟。 換句話說,在人類現有能力可作的事情集合中,牛頓力學和相對論等理論給出了詳細的辦法讓你能夠作其中的一些事情,固然剩下的更多的事情是牛頓力學和相對論所沒法解決的。

哥德爾不徹底性定理和測不許關係的意義在於,它指出集合A的範圍,即將人類現有能力發揮到極限的狀況下,那些事情是你能作到的,那些是你不能作到的。固然,它並無給出具體的方法讓你去作你能作到的事情,它只是告訴咱們咱們人類如今發現的能力所能達到的極限。或許未來發現人類有其餘新的未發現的能力,那麼這個極限就被打破了。好比未來能發現不依賴於基本粒子的其餘測量方法,而且測量過程當中不會改變其餘粒子的狀態,那麼測不許關係就被打破了。

看到這裏,估計你已經發現了一些祕密,科學兜了一大圈,最終仍是回到了哲學,也就是咱們所認爲的玄學上。同時你也會發現,咱們老祖宗提出的所謂玄學,原來和現代科學是相通的,並不是象某些人想像的那樣全是糟粕。若是有人認爲西方現代暫時領先咱們,進而就認爲西方古代就已經超越咱們,咱們老祖宗就已經落後西方,他們的思想都是糟粕的話,那麼我認爲他可能犯了崇洋媚外的毛病。我不得不化用一句周杰倫在春晚上的歌詞送給他:「你不妨抓一副咱們祖傳的中醫良方,治一治你那崇洋媚外的內傷」。順便告訴他一下,中醫用的陰陽五行理論,它的前提假設就是宿命論。

上面說的這幾位大哲的成果,可能對你的世界觀會有很大的影響,因而你可能會羨慕起這些大哲們的成果來。若是你有大志的話,你會但願有朝一日你也能變成大哲,可是你發現上面的大哲是研究數學和物理學的,而你是學計算機的程序員,那麼是否是沒有機會變成大哲呢?

若是你能將NP難題給完全解決掉,意味着計算機內的計算的奧祕基本被揭開,或許你能夠進到這層樓來;或者你能發現另一套計算機能夠理解的數學公理系統,而且這個公理系統是完備的,那麼計算機取代人類進行思惟的一個必要條件就知足了,計算機將具備真正意義上的「邏輯思惟和推理能力」,你能夠輕鬆地進到這層樓來。若是你發現了新的方法能夠打破測不許關係,一樣你也能夠輕鬆地進到這層樓來。

若是你能完全揭開人類抽象思惟的奧妙,並讓計算機懂得了如何建立抽象,具有抽象思惟能力,那麼也就具有了「設計能力」,能夠取代人類進行各類設計了,你也能夠輕鬆地進到這層樓來。順便說一下,若是你對軟件設計有真正深入理解的話,就會明白這不是在寫科幻小說。對此感興趣者,不妨好好地研究一下程序切片方面的技術,會讓你對軟件設計和測試等方面的理解有質的提升,或許有一天你能打開這扇大門。

固然,計算機要徹底取代人還有其餘必要條件,後面還會說起。

值得一提的是,雖然第10層樓是本文中所寫的最高層,可是大哲們並無以爲他們到了頂層,他們一般都還會努力尋找通往更高一層的樓梯。若是你也有成爲天下第一的想法,那麼你或許會想要作什麼事情才能超越大哲們的成就,固然,這都得依賴於找到更高一層樓的樓梯。

我的認爲,再往上一層樓的樓梯是通往天堂的道路,也就是說第11層樓的名字叫「天堂」,是「上帝」住的地方,而不是人住的地方。若是未來某天有人能爬到天堂的話,那麼他已經不是人了,而是由人變成了「上帝」。

你也許會懷疑這個世界到底有沒有「天堂」,「上帝」是否根本就不存在,我也頗有同感。所以有必要再寫上一段文字,討論一下「上帝」的問題。若是你想了解天堂的奧妙,有沒有辦法讓你變成「上帝」,不妨看看繼續往下看看第11層樓的玄妙。注意我這裏用的是「玄妙」二字,由於上帝在大部分人眼裏估計都是「玄之又玄」的東西。

第11層 上帝

看了上面的小標題,你可能會以爲奇怪,這篇文章不是講「程序員的十層樓」嗎?怎麼冒出了第11層來了?

其實這並不矛盾,程序員確實只有十層樓,由於爬到第11層時,已經變成上帝,再也不是程序員了;因此超出10層樓自己並不重要,關鍵的問題是看你有沒有能力變成上帝。

一、誰是上帝?

菜鳥們認爲Linus Torvalds是程序員中的上帝,看完了前面各層樓的介紹,此時再看到這句話,相信你要忍不住在內心笑起來。固然,你會不會笑起來是事先註定的。Don Knuth也不是上帝,他離上帝還有三層樓的距離。即便是大哲們,他們離天堂也還差一層樓,所以這個世界上有史以來尚未任何一我的變成過上帝。

咱們感興趣的是,未來會不會有人爬到比大哲們更高的樓層上,變成了上帝。

要變成上帝,你得有上帝同樣的能力,上帝會造人,你會嗎?

你也許會怯生生地問:「我能夠和愛人生小孩,算不算造人?」,你可能還會義正詞嚴地說:「如今生物學上均可以克隆人了,早就有人掌握了造人的方法」。

事實上克隆人須要有人的體細胞,必需要先有人才會有體細胞。上帝造人時,這個世界上並無人,是從無生命的物質「塵土」中創造出的人。所以,用最原始的方法生人和克隆人都是從有生命信息的物質中生人,不能算做造人。

這樣看來,你根本不會造人,不過我能夠告訴你一個「玄方」,讓你有機會學會如何造人。

若是你揭開了人類情感的奧祕,讓計算機也能夠擁有和人類同樣的情感,那麼計算機將能夠理解人類的需求,具備了「情商」,將具備完整的和人同樣的能力。此時,人類進化到了機器人,科幻小說將變成現實,也就是說你已經掌握了真正的造人能力,晉升爲「上帝」了。

將來到底有沒有人能變成「上帝」,人能不能進化到機器人,這是宿命論中事先註定了的。說到這裏,不妨再告訴你一個打破宿命論的方法,這個方法就是你要爬到比上帝還要高的樓層。

「還有比上帝還高的樓層?」,你可能會第1時間內冒出這個問題,其實我也有一樣的懷疑。所以在寫第12層樓前,有必要弄清楚它到底存不存在,即你可不能夠騎到上帝的頭上的問題。

2. 騎到上帝的頭上?

爲了解決是否能夠騎到上帝的頭上這個問題,不妨先假設存在比上帝高的樓層,也就是存在打破宿命論的方法。

宿命論的本質緣由是由於時間是單向運行,不可逆轉形成的。若是你找到一種能夠使時間逆轉的方法,那麼你就打破了宿命論,爬到了比上帝還高的樓層。

看到這裏,你也許會擺脫剛纔陷於宿命論的困惑情緒,變得充滿但願般高興起來。不過,若是你的邏輯思惟能力足夠好,仔細思考一下,會發現存在一個邏輯上的悖論。

在你找到時間逆轉的方法以前,顯然這個世界仍然是須要服從宿命論的,也就是說你能不能找到打破宿命論的方法是事先註定的。假設你在某個時間點t0處找到了打破宿命論的方法,你在打破宿命論後,想利用時間逆轉的方法回到某個時間點t2。下面來看看你到底能不能回到時間點t2。

取位於t0和t2之間的任意一個時間點t1,你在回到時間點t2以前,必須先通過時間點t1,考慮你到達t1的那一時刻,因爲t1比t0要早,這個時間點上你尚未找到時間逆轉的方法,因此到了時間t1點後,你沒法再使用時間逆轉的能力回到時間點t2去,因此你永遠也回不到時間點t2,因爲時間點t2是任意取的,所以,你永遠也沒法使時間逆轉,或者說你根本就沒打破過宿命論,這與你在時間點t0打破了宿命論產生了矛盾。

上面這段話看起來彷佛有點像「人永遠邁不出一步」的詭辯同樣,你可能會想返回到時間點t1時,仍然能夠擁有時間逆轉能力啊。不過你又會發現一個新的問題,時間點t1原本是沒有時間逆轉能力的,如今又認爲時間點t1又有時間逆轉能力,那時間點t1究竟是有仍是沒有時間逆轉能力呢?或者說在時間點t0前,宿命論註定了時間點t1是沒有時間逆轉能力的,如今你又認爲時間點t1具備時間逆轉能力,那麼這兩個時間點t1到底是不是同一個時間點?若是不是同一個時間點,說明你沒有回到過去;若是是同一個時間點的話,豈不是自相矛盾嗎?

爲了說得更形象一些,不妨假設你坐一艘超光速飛船,準備從時間點t0回到時間點t2去,假設你回到t2後,隨着時間的流逝,又達到了時間點t0,若是這時你又再次坐超光速飛船返回時間點t2,那麼一個值得思考的問題就出現了,「你在時間點t2能不能看到上次返回時間點t2的飛船?」

若是回答不能看到飛船,那麼上次返回的飛船那裏去了呢?顯然很難解釋通。若是回答能看到飛船,那麼你能夠到達時間點t2後,下次時間到達t0時,你又坐飛船返回t2,此次你將能夠看到上兩次的兩艘飛船。若是這樣一直循環下去,最後你會發現你能夠在時間點t2看到無窮多的飛船。用程序員的術語說,叫作「程序陷入了死循環」,最後系統必然會出現「Out of Memory」現象而崩潰。

固然,你也能夠認爲有其餘的方法,不須要飛船,能夠一次性從時間點t0直接跳躍到時間點t2,並不須要通過時間點t1。下面不妨來分析一下這個方法是否可行。

既然是直接跳躍到時間點t2,那麼你必然是在一個無窮小的時間裏出如今時間點t2的某個空間裏,例如你要在時間點t2回到某個廣場上。首先說明一下爲何是無窮小的時間裏出現的,由於若是不是無窮小的時間裏出現的話,那麼必然能夠取到一個時間點t1,會致使前面所說的時間點t1上出現悖論。

你在廣場上出現的時,廣場上的空氣必然要爲你讓開空間,而這是在無窮小的時間裏完成的,那麼很容易推導出你周圍的空氣得到的加速度和速度都是無窮大,於是它具備的動能也是無窮大,無窮大的能量和無窮大的速度意味着什麼?一隻鳥均可以將飛機撞下來,若是宇宙是有限大的話,它可讓這個宇宙炸燬無窮次;即便宇宙是無限大,它也足以讓宇宙炸燬一次。宇宙都毀滅了,又何來的時間?還能說你回到了時間點t2嗎?

也許上面說的這些你仍然難以相信,不妨再說得更現實一些,假設你要回到100年前的一個時間點,這100年中,天上有多少流星湮滅了?有多少新星生成了?宇宙膨脹了多少?你有能力讓湮滅的流星復原、生成的新星從新返回未生成前的狀態,膨脹的宇宙收縮回去嗎?若是這些東西的狀態沒有回覆到100年前,又怎麼能說明你回到的是100年前的時間點呢?

根據上面的推導和分析,我的認爲使時間逆轉的方法是不存在的,因此第12層樓是不存在的,天然沒有人能夠騎到「上帝」的頭上。

宿命論將在有時間的時間裏永遠統治這個世界。

相關文章
相關標籤/搜索