① 豆瓣的評分都是手動算出來的吧
首先要說,豆瓣的評分不是手動計算的。豆瓣的評分應該用了不只一個演算法,而不是通過累加打分星數乘以百分比來算。
阿北在《豆瓣電影的分數和排序是怎麼算出來的?》中是這樣回答的:
豆瓣250里排序是綜合分數和人數產生的,這個和IMDB總的想法類似。
每一部電影的分數,確實主要是平均分數,但不簡簡單單是。因為偶然要和影托或者其他非正常個人意見PK,演算法考慮了很多因素,包括時間和打分者自身的情況。細節不便公開,而且經常在細調。原則是盡演算法范疇的所有能力去接近和還原普通觀眾最原汁原味的平均觀影意見。
有一個因素從來沒有考慮過,就是商業合作。只要我在豆瓣,商業合作和分數不會有任何關系。
陳皓也在他的博文《騰訊,競爭力 和 用戶體驗》中提到:
對於豆瓣來說,豆瓣的每個用戶都有個權威值,這個值通過用戶的在線時間,發貼數量,訪問次數,有沒有高質量的文章,有沒有參加社區活動,等等等因素,得出一個權威值。剛注冊的用戶權威值為0,如果有了一些負面的東西還有可能是負數,有些被社區所推崇的牛人級的用戶的權威可能高達幾千幾萬。這樣,當水軍和五毛們對一本書或是一個電影投票的時候,就算是數量大,但基本上沒有什麼作用。這就是為什麼豆瓣里有的電影有70%的人投了三分或四分,但那個電影還是在快5分的樣子。這就是為了維護社區的權威和質量的體現。淘寶的好評差評也是一樣,但是如果可以被水軍去沖的話,那就很沒有意思了。看看大眾點評網里的那些評論,很多都完全失去了權威。因為他們沒有vote的機制。
② 豆瓣電影的評分標準是什麼有何演算法
豆瓣的注冊用戶看完一部電影,心情好的話會來打個一到五星的分(有時候心情不好也會來)。比方說一部電影有42萬用戶打分。我們的程序把這42萬個一到五星換算成零到十分,加起來除以42萬,就得到了豆瓣評分。
這個評分會自動出現在豆瓣各處,中間沒有審核,平時也沒有編輯盯著看。每過若干分鍾,程序會自動重跑一遍,把最新打分的人的意見包括進來。
那42萬用戶里可能包括資深電影評論家,可能包括你、你的親戚、你的小學同學、早晨賣你油條的那個人,也可能包括阿北我個人。但每個人都是一票。這個是「大眾評審團」應該的含義:不是說團里的人全都大眾,而是說和大眾一樣一人一票。
豆瓣的工作人員偶然收到「我明明給這個片子打了五星,為什麼評分一點沒變」的投訴的時候,除了心裡嘀咕一下「哎,你拿這些紅人/獨生子女/八零後/九零後/零零後/數學不好的人怎麼辦」以外,會(或者應該)這樣耐心解釋:評分實際是變了,只是在小數點後四位,被四捨五入掉了。
但如果有幾千個人和你一樣都打五星的時候,分數就會變。
「一人一票」唯一的例外,是豆瓣的程序判斷是「非正常打分」的帳號。這些打分會被排除在外。具體下面會說到。
豆瓣電影評分的主旨和原則,是「盡力還原普通觀影大眾對一部電影的平均看法」。這個主旨過去十年沒變過,將來也不想變。
它並不是專家、影視從業人員或者資深人士對電影的看法,雖然這些看法會被豆瓣算在「普通觀影大眾」之內。所以有次聽到「豆瓣電影評分不專業」的說法的時候,我的反應這是在說「大眾不專業」,應該怪語文才是。個人認為匯總專家意見會是另一個很有價值的服務,但這個確實不是豆瓣評分的宗旨。
豆瓣簡介
豆瓣(douban)是一家社區網站。網站由楊勃(網名「阿北」)[3]創立於2005年3月6日。該網站以書影音起家,提供關於書籍、電影、音樂等作品的信息,無論描述還是評論都由用戶提供,是中國Web 2.0網站中具有特色的一個網站。
網站還提供書影音推薦、線下同城活動、小組話題交流等多種服務功能,它更像一個集品味系統(讀書、電影、音樂)、表達系統(我讀、我看、我聽)和交流系統(同城、小組、友鄰)於一體的創新網路服務,一直致力於幫助都市人群發現生活中有用的事物。2012年,豆瓣閱讀上線,開始進入網上電子書版權領域。
(2)演算法豆瓣擴展閱讀:
豆瓣其他產品
1.豆瓣FM
豆瓣FM是你專屬的個性化音樂收聽工具,打開就能收聽,可以用「紅心」、「垃圾桶」或者「跳過」 告訴豆瓣FM你的喜好。豆瓣FM將根據你的操作和反饋,從海量曲庫中自動發現並播出符合你音樂口味的歌曲,提供公共、私人和紅心三種收聽方式。在紅心兆赫離線也能收聽。
2.豆瓣讀書- 豆瓣讀書自2005年上線,已成為國內信息最全、用戶數量最大且最為活躍的讀書網站。我們專注於為用戶提供全面、且精細化的讀書服務,同時不斷探索新的產品模式。到2012年豆瓣讀書每個月有超過800萬的來訪用戶,過億的訪問次數。
3.豆瓣閱讀
豆瓣閱讀是豆瓣讀書2012年推出的數字閱讀服務,支持 Web、iPhone、iPad、Android、Kindle等桌面和移動設備,自2012年5月7日作品商店上線以來,商店作品達600餘部,用戶評論3000餘篇,有50萬用戶購買過付費或者免費作品。
豆瓣閱讀的現有內容涵蓋了小說、歷史、科技、藝術與設計、生活等多種門類,定位為短篇作品和圖書於一體的綜合平台。
4.豆瓣音樂
豆瓣音樂是中國最大的音樂分享、評論、音樂人推廣社區,擁有最完整的全球音樂信息庫、最權威的用戶音樂評論,和最具創造力的獨立音樂人資源。匯集90多萬音樂條目,包括小凡say、幼稚園殺手、MC光光、呆寶靜等21000多位獨立音樂人入駐,2011年全年平均每5分鍾誕生一首原創音樂,覆蓋粉絲超千萬。
5.豆瓣同城
豆瓣同城是國內最大的線下活動信息發布平台,包括音樂/演出、話劇、展覽、電影、講座/沙龍、戲劇/曲藝、生活/聚會、體育、旅行、公益……專注於一線城市業餘生活方式。
6.豆瓣小組
豆瓣小組於2005年上線,定位於「對同一個話題感興趣的人的聚集地」,至今已有30多萬個小組被用戶創建,月獨立用戶超過5500萬。內容包括娛樂、美容、時尚、旅行等生活的方方面面。用戶在這里發布內容,同時也通過互動或瀏覽,發現更多感興趣的內容。
③ 推薦一些關於演算法的書籍
1、數據結構與演算法分析:C語言描述(適合入門)
這本書相對於演算法導論要簡單一些,更適合入門。演算法導論其實有比較強的理論性,看起來比較吃力。
《數據結構與演算法分析:C語言描述》內容簡介:書中詳細介紹了當前流行的論題和新的變化,討論了演算法設計技巧,並在研究演算法的性能、效率以及對運行時間分析的基礎上考查了一些高級數據結構,從歷史的角度和近年的進展對數據結構的活躍領域進行了簡要的概括。由於《數據結構與演算法分析:C語言描述(原書第2版)》選材新穎,方法實用,題例豐富,取捨得當。《數據結構與演算法分析:C語言描述》的目的是培養學生良好的程序設計技巧和熟練的演算法分析能力,使得他們能夠開發出高效率的程序。從服務於實踐又鍛煉學生實際能力出發,書中提供了大部演算法的C程序和偽碼常式。
2、演算法設計與分析基礎(適合入門)
作者基於豐富的教學經驗,開發了一套對演算法進行分類的新方法。這套方法站在通用問題求解策略的高度,能對現有的大多數演算法都能進行准確分類,從而使本書的讀者能夠沿著一條清晰的、一致的、連貫的思路來探索演算法設計與分析這一迷人領域。本書作為第2版,相對第1版增加了新的習題,還增加了「迭代改進」一章,使得原來的分類方法更加完善。
3.0、演算法引論:一種創造性方法(適合入門)
和普通的演算法書不同,這本書從創造性的角度出發——如果說演算法導論講的是有哪些演算法,那麼演算法引論講的就是如何創造演算法。結合前面的演算法設計與分析基礎,這本書把能解決的演算法問題數量擴大了一個數量級。
3.1 演算法競賽 | 信息學奧賽一本通(算競入門)
AlphaWA同學推薦的入門書籍,網上沒有PDF版本,自己去淘寶買嘍。
3.2 演算法競賽 | 演算法競賽進階指南(算競進階)
④ 關於編程,練習演算法的書籍,高手進
不知道你所說的對編程比較深入是什麼概念,關於你的這個問題別人也問過,我之前已經回答過一遍了,請看這里:
http://..com/question/508446844.html?oldq=1
再次轉帖一下,這里貼的書每一本都很靠譜,即使你學到博士畢業了還是值得一讀再讀。具體買這些書,請到豆瓣網上去找鏈接,如果買不到了,淘寶上有復印本。
計算機世界的經典著作猶如浩瀚的海洋,了不起的編程書籍還有很多。
Kernighan的《程序設計實踐》是讓你全面了解編程該做些什麼的經典著作,盡管這書非常地薄。
cormen的《演算法導論》和Skiena 《演算法設計手冊》是比《數據結構與演算法分析》更大部頭的巨著,內容極為豐富。
Bentley的《編程珠璣》(1,2卷)將帶你領略演算法的力量。
侯捷的《STL源碼剖析》,深入講解C++標准庫的實現細節,讓你真正見識頂尖高手的傑作。
stevens 的《unix環境高級編程》《unix網路編程》是程序員的進階寶典,應當一讀再讀,因為你最終會明白,你的程序是運行在操作系統上的,是需要和網路交互的,你需要了解他們,和他們友好相處。
C++之父Bjarne Stroustrup的三本大作:《 C++程序設計語言 》、《C++程序設計原理與實踐 》、《C++語言的設計和演化 》是C++語言的最權威的指南,同時也是經典編程著作。
Bryant的《深入理解計算機系統》都是能告訴你計算機底層做了什麼工作,讓你更好地理解計算機,更好地利用CPU的天書。
關於軟體開發方面的經典著作有《程序員修煉之道》《代碼大全》《重構》《設計模式》,在任何一個編程論壇的推薦表裡,這些都是程序員必看圖書。
還有一本書叫《計算機程序的構造和解釋》,神一樣的著作,它可以顛覆你的編程思維。
當然,計算機演算法的頂尖之作要算knuth的《計算機程序設計藝術》(1-4卷),其內容極深極廣極難,那真是如浩瀚之海洋,嘆為觀止了。
所謂術業有專攻,每個領域都有其經典的著作,這就要根據你個人的興趣去進一步探究了。例如程序設計語言與編譯器、操作系統內核、硬體設計、人工智慧與機器學習、自然語言處理、資訊理論與信號處理、網路編程、機器人等等。
⑤ 網易雲音樂的私人FM和豆瓣FM的推薦演算法,哪個更好
後者,「帶用戶發現一首好歌帶來的喜悅遠遠大於自己搜索所得」,走的是電台的路線,這比播放器就多了一份驚喜。推薦演算法可不是網易雲音樂的重點,只不過是附屬功能而已。想的方向有偏差,就音樂領域而言,根據用戶畫像推薦只能是大方向,比如各個年齡層的不同偏好。前期最關鍵的應該是根據歌曲之間的關聯度進行推薦,比如喜歡李健的歌,那就給你多推薦相似歌手的音樂。後期的推薦這個比重也會占很重要的位置,這樣一來就成了誰家的音樂資料庫更全更好了。推薦是匹配的活,不僅要考慮人,也要考慮音樂、商品,這是雙方相互磨合的過程。
⑥ 豆瓣FM 的推薦演算法是怎樣的
豆瓣FM的推薦演算法沒有停止,反而是在不斷演進當中,伴隨著它成長的用戶,會慢慢發現越來越多的驚喜與滿意。豆瓣FM是中國互聯網實踐個性化服務的一個很好的土壤,其中糅合了包括演算法、ui/ue、數據清洗與整合、音頻分析技術、用戶行為分析、編輯與運營、後台架構等等大量的因素,即便是推薦演算法也只是演算法技術中的一部分。單論推薦演算法,就最簡單的演算法,也會極大地受到其它因素的影響,比如單曲推薦功能、新版的上線,對於演算法的學習與積累都會起到極大的正面作用。
⑦ 如何為豆瓣設計一種公平的電影評分演算法
第五名:《無間道》9.0分
《無間道》整片敘述兩位身份復雜的男人之間的故事,他們分別為黑幫和警界各自派到對方陣營的卧底。兩人命運是如此相似,反應、機智也勢均力敵、相差不遠。就在如此詭譎多變的氣氛下,彼此互相拿生命去作為賭注,誓死揪出對方,不是你死,就是我亡。片中兩位影帝飾演的兩位主角,各自在隨時需要應變的環境與緊湊的劇情下,所展現出的機智,也是並駕齊驅、不分伯仲的。
陳凱歌說他的每一部電影里都會有一個他在精神上完全認同的人,在《霸王別姬》里,這個人就是程蝶衣,他是「瘋子」一樣的藝術家,一旦走下舞台,走進現實的人群,註定是孤獨的,但也因為如此,他的誠實和天真,甚至是嫉妒和偏執都很美,很真實。
不瘋魔不成活,程蝶衣是一個戲痴,戲迷,戲瘋子,因為沉溺於自己所扮演的角色,他變成了真虞姬,而他的師哥段小樓,只不過是他以為的霸王,人物的悲劇性緣起一出霸王別姬,也緣滅於一出霸王別姬,真虞姬和假霸王,早已註定是一場蒼涼的結局。
⑧ 如何在豆瓣上評分
收集豆瓣用戶對這部電影的打分,通過豆瓣的一種演算法,最終得出分數。
演算法屬於綜合評估,平均分是其中一項而已,但並不是絕對,不然,電影僱傭水軍,就可以讓電影變成接近滿分了,沒有意義了,所以豆瓣演算法中其中一項涉及到權重。
舉個例子
一部電影剛上映,很爛,正常打分可能都是一分,但是發行方僱傭了大量水軍打分,直接把分數打到很高,因為這時候豆瓣用戶還沒有多少人看過電影呢,不過,之後慢慢很多人都看過了電影,知道很爛,尤其很多豆瓣的老用戶,這些人權重很高,可能,你一千個水軍新號,未必有一個老用戶的權重高,他大個一分,就能拉回到一半,隨著權重高的人看過電影的越來越多,分數必然就會大幅度下降,直至趨於穩定,最終得出還算科學的得分。
無論多少嚴謹的演算法,都無法做到絕對科學和公平,畢竟,每個人的口味還不一樣呢,電影的好壞也沒有絕對標准,分數只能說是參考,可能這部片子在你心中五星,在別人心中三星,甚至一星呢。
當然豆瓣的演算法也不是成不變的,也會不斷微調,盡量做到更完美,讓大多數用戶滿意。
⑨ 豆瓣評分是怎麼計算出來的
眾所周知,在中國的電影觀看者心中,豆瓣電影的評分是很強大的一個參考標准。一些有文藝情懷的青年可以在此閑話國際新浪潮,批判一些超現實主義,而迷妹們可以為自己心中的偶像所,參演的影片點贊,支持……更多的人,可能根本對電影沒有太多研究,甚至只憑喜好或者「聽別人說」而去觀影的同時也會選擇在買票之前參考一下豆瓣電影的評分。
可以說,豆瓣電影的評分一度成為大家評價電影質量的標桿,甚至可以影響一部電影的票房高低,那麼豆瓣電影的評分標准到底是怎樣的呢?
上訴圖片是2015 年的時候豆瓣總經理阿北發表的一篇長文中所說的,意思很明確,豆瓣電影的評分就是基於用戶打分:把豆瓣用戶的打分(一到五星換算為零到十分)加起來,再除以用戶數。就是豆瓣電影的評分,這個分數完全來自程序的計算,中間沒有編輯審核,每隔幾分鍾就自動更新一下,以便快速的展現出及時的評分。
可以說,這是一個「簡單粗暴」的評分機制。觀眾的評價將以非常直接的方式反映在電影的分數上,心情好時打的「五星」和心情不好時的「一星」都將被加入到簡單的計算公式中,最終變成其他人的參考標准。
但同時,阿北也說到,豆瓣也是有「非正常打分」規避機制的。作為一個擁有一億多用戶的「大眾評審團」,每個用戶都是「一人一票」制,而且隨著打分人數的增加,單人評分對整體評分走向的影響其實是在不斷被稀釋。因此,評分計算方法很簡單,但「刷分」基本上是不可能的。
所以,總體來說,豆瓣的電影評分是參與評分人群的意見「平均值」,雖然有很多的規避以及防範措施,但總體上受評分人個人喜好的影響較大。但我們都知道,豆瓣的用戶,更多的是在全國一二線城市,而且受眾群體大多數都是人們口中所謂的文藝青年們,所以,對於擁有相對「高端」用戶群體的豆瓣,其評分還是偏「小眾」的
⑩ 懂演算法的人應該知道怎麼做人生選擇
每年一到要找工作的時候,我就能收到很多人給我發來的郵件,總是問我怎麼選擇他們的offer,去騰訊還是去豆瓣,去外企還是去國內的企業,去創業還是去考研,來北京還是回老家,該不該去創新工場?該不該去thoughtworks?……等等,等等。今年從7月份到現在,我收到並回復了60多封這樣的郵件。我更多幫他們整理思路,幫他們明白自己最想要的是什麼。
我深深地發現,對於我國這樣從小被父母和老師安排各種事情長大的人,當有一天,父母和老師都跟不上的時候,我們幾乎完全不知道怎麼去做選擇。
幾個例子
當我們在面對各種對選擇的影響因子的時候,如:城市,公司規模,公司性質,薪水,項目,戶口,技術,方向,眼界…… 你總會發現,你會在幾個公司中糾結一些東西,舉幾個例子:
某網友和我說,他們去上海騰訊,因為騰訊的規模很大,但卻發現薪水待遇沒有豆瓣高(低的還不是一點),如果以後要換工作的話,起薪點直接關繫到了以後的高工資。我說那就去豆瓣吧,他說豆瓣在北京,污染那麼嚴重,又沒有戶口,生存環境不好。我說去騰訊吧,他說騰訊最近組織調整,不穩定。我說那就去豆瓣吧,慢公司,發展很穩當。他說,豆瓣的盈利不清楚,而且用Python,自己不喜歡。我說,那就去騰訊吧,……
還有一網友和我說,他想回老家,因為老家的人脈關系比較好,能混得好。但又想留在大城市,因為大城市可以開眼界。
另一網友和我說,他想進外企,練練英語,開開眼界,但是又怕在外企里當個螺絲釘,想法得不到實施。朋友拉他去創業,覺得創業挺好的,鍛煉大,但是朋友做的那個不知道能不能做好。
還有一網友在創新工場的某團隊和考研之間抉擇,不知道去創新工場行不行,覺得那個項目一般,但是感覺那個團隊挺有激情的,另一方面覺得自己的學歷還不夠,讀個研應該能找到更好的工作。
還有一些朋友問題我應該學什麼技術?不應該學什麼技術?或是怎麼學會學得最快,技術的路徑應該是什麼?有的說只做後端不做前端,有的說,只做演算法研究,不做工程,等等,等等。因為他們覺得人生有限,術業有專攻。
等等,等等……
我個人覺得,如果是非計算機科班出生的人不會做選擇,不知道怎麼走也罷了,但是我們計算機科班出生的人是學過演算法的,懂演算法的人應該是知道怎麼做選擇的。
你不可能要所有的東西,所以你只能要你最重要的東西,你要知道什麼東西最重要,你就需要對你心內的那些慾望和抱負有清楚的認識,不然,你就會在糾結中度過。
所以,在選擇中糾結的人有必要參考一下排序演算法。
首先,你最需要參考的就是「冒泡排序」——這種演算法的思路就是每次冒泡出一個最大的數。所以,你有必要問問你自己,面對那些影響你選擇的因子,如果你只能要一個的話,你會要哪個?而剩下的都可以放棄。於是,當你把最大的數,一個一個冒泡出來的時候,並用這個決策因子來過濾選項的時候,你就能比較容易地知道知道你應該選什麼了。這個演算法告訴我們,人的雜念越少,就越容易做出選擇。
好吧,可能你已茫然到了怎麼比較兩個決策因子的大小,比如:你分不清楚,工資>業務前景嗎?業務前景>能力提升嗎?所以你完全沒有辦法進行冒泡法。那你,你不妨參考一個「快速排序」的思路——這個演算法告訴我們,我們一開始並不需要找到最大的數,我們只需要把你價值觀中的某個標准拿出來,然後,把可以滿足這個價值的放到右邊,不能的放到左邊去。比如,你的標準是:工資大於5000元&&業務前景長於3年的公司,你可以用這個標准來過濾你的選項。然後,你可以再調整這個標准再繼續遞歸下去。這個演算法告訴我們,我們的選擇標准越清晰,我們就越容易做出選擇。
這是排序演算法中最經典的兩個演算法了,面試必考。相信你已爛熟於心中了。所以,我覺得你把這個演算法應用於你的人生選擇也應該不是什麼問題。關於在於,你是否知道自己想要的是什麼?
排序演算法的核心思想就是,讓你幫助你認清自己最需要的是什麼,認清自己最想要的是什麼,然後根據這個去做選擇。
所謂貪婪演算法,是一種在每一步選擇中都採取在當前狀態下最好或最優(即最有利)的選擇(注意:是當前狀態下),從而希望導致結果是最好或最優的演算法。貪婪演算法最經典的一個例子就是哈夫曼編碼。
對於人類來說,一般人在行為處事的時候都會使用到貪婪演算法,
比如在找零錢的時候,如果要找補36元,我們一般會按這樣的順序找錢:20元,10元,5元,1元。
或者我們在過十字路口的時候,要從到對角線的那個街區時,我們也會使用貪婪演算法——哪邊的綠燈先亮了我們就先過到那邊去,然後再轉身90度等紅燈再過街。
這樣的例子有很多。對於選擇中,大多數人都會選用貪婪演算法,因為這是一個比較簡單的演算法,未來太復雜了,只能走一步看一步,在當前的狀況下做出最利於自己的判斷和選擇即可。
有的人會貪婪薪水,有的人會貪婪做的項目,有的人會貪婪業務,有的人會貪婪職位,有的人會貪婪自己的興趣……這些都沒什麼問題。貪婪演算法並沒有錯,雖然不是全局最優解,但其可以讓你找到局部最優解或是次優解。其實,有次優解也不錯了。貪婪演算法基本上是一種急功近利的演算法,但是並不代表這種演算法不好,如果貪婪的是一種長遠和持續,又未嘗不可呢?。
但是我們知道,對於大部分的問題,貪婪法通常都不能找出最優解,因為他們一般沒有測試所有可能的解。因為貪婪演算法是一種短視的行為,只會跟據當前的形式做判斷,也就是過早做決定,因而沒法達到最佳解。
動態規劃和貪婪演算法的最大不同是,貪婪演算法做出選擇,不能在過程優化。動態規劃則會保存以前的運算結果,並根據以前的結果對當前進行選擇,會動態優化功能。
動態規劃演算法至少告訴我們兩個事:
1)承前啟後非常重要,當你准備去做遍歷的時候,你的上次的經歷不但能開啟你以後的經歷,而且還能為後面的經歷所用。你的每一步都沒有浪費。
2)是否可以回退也很重要。這意思是——如果你面前有兩個選擇,一個是A公司一個是B公司,如果今天你選了A公司,並不是你完全放棄了B公司。而是,你知道從A公司退出來去B公司,會比從B公司退出來去A公司要容易一些。
比如說:你有兩個offer,一個是Yahoo,一個是Bai,上述的第一點會讓我們思考,我以前的特長和能力更符合Yahoo還是Bai?而Yahoo和Bai誰能給我開啟更大的平台?上述的第二點告訴我們,是進入Yahoo後如果沒有選好,是否還能再選擇Bai公司?還是進入Bai公司後能容易回退到Yahoo公司?
最短路徑是一個Greedy + DP的演算法。相當經典。這個演算法的大意如下:
1)在初始化的時候,所有的結點都和我是無窮大,默認是達不到的。
2)從離自己最近的結點開始貪婪。
3)走過去,看看又能到達什麼樣的結點,計算並更新到所有目標點的距離。
4)再貪婪與原點最短的結點,如此反復。
這個演算法給我們帶來了一些這樣的啟示:
有朋友和我說過他想成為一個架構師,或是某技術領域的專家,並會踏踏實實的向這個目標前進,永不放棄。我還是鼓勵了他,但我也告訴他了這個著名的演算法,我說,這個演算法告訴你,架構師或某領域的專家對你來說目前的距離是無窮大,他們放在心中,先看看你能夠得著的東西。所謂踏實,並不是踏踏實實追求你的目標,而是踏踏實實把你夠得著看得見的就在身邊的東西干好。我還記得我剛參加工作,從老家出來的時候,從來沒有想過要成為一個技術牛人,也從來沒有想過我的博客會那麼的有影響力,在做自己力所能及,看得見摸得著的事情,我就看見什麼技術就學什麼,學著學著就知道怎麼學更輕松,怎麼學更扎實,這也許就是我的最短路徑。
有很多朋友問我要不要學C++,或是問我學Python還是學Ruby,是不是不用學前端,等等。這些朋友告訴我,他們不可能學習多個語言,學了不用也就忘了,而且術業有專攻。這並沒有什麼不對的,只是我個人覺得,學習一個東西沒有必要只有兩種狀態,一種是不學,另一種是精通。了解一個技術其實花不了多少時間,我學C++的目的其實是為了更懂Java,學TCP/IP協議其實是為了更懂Socket編程,很多東西都是連通和相輔相成的,學好了C/C++/Unix/TCP等這些基礎技術後,你會發現到達別的技術路徑一下縮短了。
這就好像這個演算法一樣,演算法效率不高,也許達到你的目標,你在一開始花了很長時間,遍歷了很多地方,但是,這也許這就是你的最短路徑(比起你達不到要好得多)。
你根本沒有辦法能得到所有你想得到的東西,任何的選擇都意味著放棄——當你要去獲得一個東西的時候,你總是需要放棄一些東西。人生本來就是一個蹺蹺板,一頭上,另一頭必然下。這和我們做軟體設計或演算法設計一樣,用時間換空間,用空間換時間,還有CAP理論,總是有很多的Trade-Off,正如這個短語的原意一樣——你總是要用某種東西去交易某種東西。
我們都在用某種東西在交易我們的未來,有的人用自己的努力,有的人用自己的思考,有的人用自己的年輕,有的人用自己的自由,有的人用自己的價值觀,有的人用自己的道德…… …… 有的人在交換金錢,有的人在交換眼界,有的人在交換經歷,有的人在交換地位,有的人在交換能力,有的人在交換自由,有的人在交換興趣,有的人在交換虛榮心,在交換安逸享樂…… ……
每個人有每個人的演算法,每個演算法都有每個演算法的purpose,就算大家在用同樣的演算法,但是每個人演算法中的那些變數、開關和條件都不一樣,得到的結果也不一樣。我們就是生活在Matrix里的一段程序,我們每個人的演算法決定著我們每個人的選擇,我們的選擇決定了我們的人生