添加時間:2013/11/21 11:00:26 編輯:奇億網(wǎng)站建設(shè)公司
那些拔尖的程序員都到哪里去了?這個問題,恐怕只有在需要招聘相關(guān)人員或者是對于自己的網(wǎng)站建設(shè)感到不滿意的企業(yè)才會問,畢竟,程序員不是一個熱門的職業(yè),而程序員到底是如何分布的,也沒有人會去關(guān)注。但我可以告訴你的是:絕大部分的拔尖的程序員都不會在看起來為數(shù)眾多的網(wǎng)站建設(shè)公司中。
那么他們在哪里?莫非都與世外高人一樣,屬于神龍見首不見尾的人物?如果你有看過知乎上那個關(guān)于“為什么很多看起來不是很復(fù)雜的網(wǎng)站,比如 Facebook、淘寶,都需要大量頂尖高手來開發(fā)?”的討論話題,你大概就能從中找到答案。是的,那些頂尖的程序員都在一些看似普通看似平淡無奇的大公司中,在為最新科技的發(fā)展做最早的探路者。
這樣籠統(tǒng)的回答你或者無法理解,我們還是來具體的說明一下好了。借用子柳對這樣話題的一些回答,你大概能夠理解為什么程序員會是這樣一個的存在,以淘寶為例:
【搜索商品】——這個功能,如果你有幾千條商品,完全可以用select 這樣的操作來搞定。但是——當(dāng)你有10000000000(一百億)條商品的時候,任何一個數(shù)據(jù)庫都無法存放了,請問你怎么搜索?這里需要用到分布式的數(shù)據(jù)存儲方案,另外這個搜索也不可能直接從數(shù)據(jù)庫里來取數(shù)據(jù),必然要用到搜索引擎(簡單來說搜索引擎更快)。好,能搜出商品了,是否大功告成可以啵一個了呢?早著呢,誰家的商品出現(xiàn)在第一頁?這里需要用到巨復(fù)雜的排序算法。要是再根據(jù)你的購買行為做一些個性化的推薦——這夠一幫牛叉的算法工程師奮斗終生了。
【商品詳情】——就是搜索完畢,看到你感興趣的,點擊查看商品的頁面,這個頁面有商品的屬性、詳細(xì)描述、評價、賣家信息等等,這個頁面的每天展示次數(shù)在30億以上,同樣的道理,如果你做一個網(wǎng)站每天有10個人訪問,你絲毫感覺不到服務(wù)器的壓力,但是30億,要解決的問題就多了去了。首先,這些請求不能直接壓到數(shù)據(jù)庫上,任何單機(jī)或分布式的數(shù)據(jù)庫,承受30億每天的壓力,都將崩潰到完全沒有幸福感,這種情況下要用到的技術(shù)就是大規(guī)模的分布式緩存,所有的賣家信息、評價信息、商品描述都是從緩存里面來取到的,甚至更加極致的一點“商品的瀏覽量”這個信息,每打開頁面一次都要刷新,你猜能夠從緩存里面來取嗎?淘寶做到了,整個商品的詳情都在緩存里面。
【商品圖片】——一個商品有5個圖片,商品描述里面有更多圖片,你猜淘寶有多少張圖片要存儲?100億以上。這么多圖片要是在你的硬盤里面,你怎么去查找其中的一張?要是你的同學(xué)想拷貝你的圖片,你需要他準(zhǔn)備多少塊硬盤?你需要配置多少大的帶寬?你們的網(wǎng)卡是否能夠承受?你需要多長時間拷貝給他?這樣的規(guī)模,很不幸市面上已經(jīng)沒有任何商業(yè)的解決方案,最終我們必須自己來開發(fā)一套存儲系統(tǒng),如果你聽說過google的GFS,我們跟他類似,叫TFS。順便說一下,騰訊也有這樣的一套,也叫TFS。
【廣告系統(tǒng)】——淘寶上有很多廣告,什么,你不知道?那說明我們的廣告做的還不錯,居然很多人不認(rèn)為它是廣告,賣家怎么出價去買淘寶的廣告位?廣告怎么展示?怎么查看廣告效果?這又是一套算法精奇的系統(tǒng)。
【BOSS系統(tǒng)】——淘寶的工作人員怎么去管理這么龐大的一個系統(tǒng),例如某時刻突然宣布某位作家的作品全部從淘寶消失,從數(shù)據(jù)庫到搜索引擎到廣告系統(tǒng),里面的相關(guān)數(shù)據(jù)在幾分鐘內(nèi)全部消失,這又需要一個牛叉的后臺支撐系統(tǒng)。
【運維體系】——支持這么龐大的一個網(wǎng)站,你猜需要多少臺服務(wù)器?幾千臺?那是零頭。這么多服務(wù)器,上面部署什么操作系統(tǒng),操作系統(tǒng)的內(nèi)核能否優(yōu)化?Java虛擬機(jī)能否優(yōu)化?通信模塊有沒有榨取性能的空間?軟件怎么部署上去?出了問題怎么回滾?你裝過操作系統(tǒng)吧,優(yōu)化過吧,被360坑過沒,崩潰過沒?這里面又有很多門道。
你大概能夠了解為什么了嗎?是的,最頂尖的程序員都在那些我們認(rèn)為平淡無奇的網(wǎng)站背后默默耕耘著。谷歌與百度只是一個簡單的搜索引擎,但是其中單單是網(wǎng)站排名的算法就涉及上千種,更不用談他們的其他產(chǎn)品如郵箱、殺毒軟件之類的,還有Facebook、Twitter、亞馬遜之類的。做一個普通的商城網(wǎng)站對于普通的程序員來說完全不是一個問題,但問題是,當(dāng)網(wǎng)站的訪問數(shù)量從1000人上升到1000000000人甚至更多的時候,任何一個細(xì)小的問題都會變成一個巨大的問題了。
拔尖的程序員在為我們所認(rèn)為的理所當(dāng)然的流暢的方便的生活與工作服務(wù)而努力著。