(轉(zhuǎn))阿里巴巴陳皓: 技術(shù)是工程,我是技術(shù)的信徒

最近看了幾篇他寫的文章,感覺還可以,查了一下他的經(jīng)歷,分享一下。
2016-07-18 17:44

人物簡介:陳皓 前亞馬遜、阿里巴巴技術(shù)專家超過15年軟件開發(fā)相關(guān)工作經(jīng)驗,8年以上項目和團隊管理經(jīng)驗。擅長底層技術(shù)架構(gòu),團隊建設(shè),軟件工程,軟件研發(fā)咨詢,以及全球軟件團隊協(xié)作管理。曾在Amazon中國任研發(fā)經(jīng)理,負責(zé)電子商務(wù)全球化業(yè)務(wù)(全球開店)和全球庫存預(yù)測系統(tǒng)的研發(fā)。曾在阿里巴巴北京研發(fā)中心、商家業(yè)務(wù)部曾任資深專家一職,負責(zé)電商云平臺、開放平臺,云監(jiān)控和電商多媒體平臺。曾在阿里巴巴核心系統(tǒng)專家組從事阿里核心系統(tǒng)和阿里云ECS相關(guān)虛擬化平臺的開發(fā)工作。

image

2011年陳皓在亞馬遜工作期間

在接受采訪的前一天,陳皓剛剛在他的科技博客上更新了一篇文章,主題是“性能測試應(yīng)該怎么做?”文章下面有幾十條留言評論,大半都是探討交流文章中的技術(shù)問題。

在這個微信泛濫的時代,陳皓仍然堅持在博客上定期撰寫專業(yè)技術(shù)文章,他更愿意使用blog這樣的方式分享文章。他希望自己的文章能成為生態(tài)圈的里的一部份,所謂生態(tài)圈是相互融合,不是唯我獨尊,而微信公眾號并不能很好的支持。“這和做開源軟件的道理一樣,開源軟件不是把源代碼開出來就好了,而是要去和已有的其它軟件互相融合,互相兼容,互相支持,這本就是軟件設(shè)計的真諦。所以我想,寫文章也一樣。”

與博客里的都是程序員之間交流不同,在新浪微博上,他是一個有將近20萬粉絲的大V,除了技術(shù)問題,他還會對很多公共議題發(fā)表自己的看法,經(jīng)常語出驚人。他因為旗幟鮮明的反對某家互聯(lián)網(wǎng)大型企業(yè),還被業(yè)內(nèi)戲稱為“黑XX第一人”。他的微博ID是“左耳朵耗子”,卻經(jīng)常被同業(yè)晚輩和粉絲尊稱為“耗子哥”乃至“陳叔”。

雙子座的陳皓評價自己是“一個既沉穩(wěn)、也粗野的人”,“我做事情會比較沉穩(wěn),但是有的事情我做的卻很瘋狂。”工作將近20年,陳皓是一個技術(shù)的信徒。他在那篇性能測試的博文中詳細講述了金融系統(tǒng)響應(yīng)時間的性能測試要求:99.9%的請求必須小于1ms,所有的平均時間必須小于1ms。

文章最后他反問道:“是不是很繁鎖?是的,只因為這是工程,工程是一門科學(xué),科學(xué)是嚴謹?shù)摹!弊鹬乩硐耄?4歲就知道自己想要什么

陳皓是地地道道的昆明人,為了離家近考上了云南大學(xué),那還是在90年代中期。因為動手能力強,學(xué)計算機專業(yè)的他在上學(xué)的時候就幫著老師做項目。大三的一天,系主任找到他說:現(xiàn)在你有兩個工作機會,一份在北京的一家IT公司,一份是在昆明的工行。區(qū)別在于,去了工行你的技術(shù)會越來越差,但公司不會倒;而北京的工作會讓你技術(shù)越來越好,但可能有風(fēng)險。

當(dāng)時除了幫老師做項目外,陳皓連正式實習(xí)的經(jīng)驗也沒有,也沒有人可以問。因為家庭和父母的原因,最終他很自然的選擇去了工行。

在銀行工作是簡單甚至有些單調(diào)的,做IT技術(shù)保障的大部分事情都是讓外面的人來做,而他們只需要像包工頭一樣做實施和運維,這讓他感覺很不習(xí)慣。與此同時,陳皓每天都能看到很多震撼而刺激的科技新聞:新浪搜狐搜狐三大互聯(lián)網(wǎng)門戶,以及微軟、雅虎、惠普、甲骨文等這樣的大公司的新聞不斷出現(xiàn)在各種媒體上。

當(dāng)然,互聯(lián)網(wǎng)對于他的沖擊是更是無法想象的,直到今天他還是清楚的記得第一次上網(wǎng)是通過14k的貓(調(diào)制解調(diào)器)撥號進入一個聊天室,以及認識的第一個網(wǎng)友來自湖南。

當(dāng)時在銀行陳皓有一位讓他特別佩服的同事,比他大概大10歲左右,業(yè)務(wù)能力特別強,但由于一些歷史原因只是一名臨時工,頗有些《天龍八部》里掃地僧的感覺。一天他們倆吃飯時聊天,談到理想時,那位同事說:為了實現(xiàn)理想而奮斗,就算失敗了,就算很慘,也不后悔。這句話給陳皓的震撼特別大,那天晚上他躺在床上想:“我覺得自己生活在了一個正確的時代,也選對了專業(yè),那一定要去一個正確的地方實現(xiàn)理想。”那一年他24歲。

于是,陳皓毅然選擇了離開,離開銀行、離開昆明,放棄單位剛剛分到的房子。陳皓坦誠當(dāng)時這個決定受到家人朋友以及外界的強大阻力,但是,“當(dāng)時不做這個決定,我就沒有今天。拿得起是比放得下更難的事情,很多人是拿不起,但更放不下。你愿不愿意放棄現(xiàn)在的工作去爭取未知的東西,你不確定能不能拿到,就會懷疑自己。”

多年后陳皓看到羅爾夫·多貝里(Rolf Dobelli)所著《清醒思考的藝術(shù)》一書,里面一個觀點和他的想法不謀而合:絕大多數(shù)人會思考他失去的東西而大過于得到的東西,在做選擇的時候,也通常會花更多的時間去考慮自己失去的東西。

多年以后,已經(jīng)成為業(yè)界專家的陳皓經(jīng)常會收到很多年輕人的郵件,甚至打來電話,請他做職業(yè)選擇輔導(dǎo),以及要不要來北京、要不要轉(zhuǎn)行等等這些問題。“我聽到的全部都是會擔(dān)心失去,他們從來沒有想到自己的得到。而我更多的是考慮我會得到的東西,而不是考慮會失去什么,所以我做任何選擇從不糾結(jié),這在我24歲的時候就清楚的明白了,我要的是有意義的刺激的經(jīng)歷。”

[圖片上傳中...(image-31238e-1535686252133-2)]

在Platform工作時的陳皓

外企很棒,但對中國公司更有信心

2000年陳皓離開昆明時恰好趕上了第一次互聯(lián)網(wǎng)泡沫,這讓一直心儀互聯(lián)網(wǎng)公司的他只能暫時回到傳統(tǒng)行業(yè),在上海一家做銀行業(yè)務(wù)的大型IT公司做軟件技術(shù)開發(fā)。2年后,一直想去外企歷練的陳皓,進入了加拿大知名軟件開發(fā)商Platform。

剛進入Platform時讓陳皓備受打擊,才入職第一個月領(lǐng)導(dǎo)就不讓他寫代碼了。“因為之前沒有受過專業(yè)的訓(xùn)練,人家一眼就看出你是野路子、業(yè)余水準,于是他就被安排做測試。”做測試的時候陳皓閑不住,在系統(tǒng)出故障的時候會自己去找BUG,看到底是什么原因。找出來后還把故障原因和可能出現(xiàn)的相關(guān)問題寫在內(nèi)網(wǎng)里。這引起了加拿大總部的重視,正巧客服部門由于滿足不了客戶專業(yè)的需求,于是陳皓被派往客服部做技術(shù)支持。

做客服的這段經(jīng)歷陳皓受益頗多。他當(dāng)時聽到了不同國家各種各樣口音的英語,其中印象最深的是德國客戶和日本客戶,德國人會一個單詞一個單詞極其慢速的說英語,這也讓陳皓慢慢的把每個單詞說清楚,從而也練好了英語。而日本客戶會在過程中不斷問新的問題,這使得陳皓必須看更多的東西,而對方會因為知道了這些再問更多的問題。一次在解決一個日本客戶的問題后,陳皓看了其間的往來郵件,他在一個月的時間竟然把整個軟件100萬行代碼讀了2/3。

2007年,陳皓加入了湯森路透,4年多時間從一名普通技術(shù)人員做到了部門主管,最多的時候他負責(zé)北京研發(fā)中心八個項目組的技術(shù)管理和產(chǎn)品研發(fā)工作。陳皓相信“技優(yōu)則管”,技術(shù)優(yōu)秀了自然就可以管理指導(dǎo)團隊。“我不覺得管理別人非要放在一個職位,管理是一種現(xiàn)象,是別人遇到問題會來問你,而不是高高在上的權(quán)威。”。

離開路透后,陳皓去了自己一直很心儀的一家公司——亞馬遜。這家看起來在賣書、實際上做出世界上第一個推薦算法和云服務(wù)的公司,深深的吸引了他。多年之后通過對比幾家服務(wù)過的外企,陳皓覺得每一家都有自己的特點,Plateform和路透有著完善的培訓(xùn)體系,“尤其是路透的有些培訓(xùn),我覺得跟讀一個MBA是一樣的。”路透會請國外一些高級機構(gòu),經(jīng)常就是5天的workshop,把全球各個國家的員工集中在一起,會學(xué)習(xí)到很多東西。

而亞馬遜的經(jīng)歷陳皓更是坦言自己是被“洗腦”了,“因為亞馬遜聰明人很多,和這些聰明人在一起的時候,你就會明白這個世界會變的非常簡單,這實際上并不是一件簡單的事情。”所以每年去亞馬遜西雅圖總部出差的時候陳皓都會約幾位Principle SDE(資深技術(shù)專家)吃飯,“我跟他們在一起,不管他們說什么我都愿意聽,哪怕就講一道菜。”

在外企自認為已經(jīng)待了足夠長的時間后,陳皓選擇加入了阿里巴巴,原因很簡單,“就是想?yún)⒓与p11、明白本土企業(yè)是怎么成功的”。幾個月的觀察,讓陳皓覺得阿里這個公司和外企有很大區(qū)別,“阿里的員工很有熱情,也很有積極性,那種精神狀態(tài)是我很喜歡的精神狀態(tài)。”尤其是到了雙11之前,所有參與的同事沒有周末沒有節(jié)假日連續(xù)工作三個月。到最后一個月倒計時,氣氛緊張到自己必須要加班,時間感覺完全不夠用。像陳皓這個級別每周都要熬三四個通宵。

陳皓負責(zé)的是天貓云服務(wù)平臺“聚石塔”的技術(shù)保障工作,之前每到雙11,淘寶和天貓的服務(wù)器宕機都是困擾阿里的一個大問題。在陳皓加入的2013年,他和同事提前連續(xù)做了四個月的測試,確保系統(tǒng)萬無一失。

2013年的雙11,阿里幾千名員工連續(xù)好幾天都待在一起,就像打仗一樣。當(dāng)零點一過的第一分鐘,陳皓看著服務(wù)器壓力一下上百倍地沖了上去,接近峰值,也如之前的反復(fù)測試的結(jié)果一樣,很快又降下來了,之后系統(tǒng)便順暢無恙。陳皓和同事反而沒有了事做,于是他們找了一個會議室喝酒,看著在大屏幕上不斷創(chuàng)新高的銷售額數(shù)字,看著不同部門同事們亢奮的精神狀態(tài),看著馬老板請來的各種明星,“像過節(jié)一樣”。

“你覺得外企會干這個事?他們根本不懂這些。中國人要努力的多,我對中國的未來很有信心。” 從1998年到現(xiàn)在,陳皓眼見著中國的互聯(lián)網(wǎng)公司發(fā)展起來,可能會有這樣那樣的問題,但很明顯看到它們有一個非常強勁的成長勢頭。

[圖片上傳中...(image-9f9d93-1535686252133-1)]

陳皓在湯森路透工作時最多負責(zé)北京研發(fā)中心八個項目組的技術(shù)管理和產(chǎn)品研發(fā)工作

技術(shù)是門工程,工程是門科學(xué)

在加入第一家外企Platform后,陳皓就明白了技術(shù)需要一個非常系統(tǒng)的訓(xùn)練。“那個時候我才知道什么叫工程,就像蓋房子,寫代碼只是在砌磚,而真正的技術(shù)是一項工程。”這種感受在之后的幾家公司中都在不斷加深。

由于要照顧父母,陳皓離開阿里后沒有再從事一份全職工作,但由于上門求助的公司很多,陳皓也會偶爾做一些技術(shù)管理的咨詢工作。通過接觸眾多大大小小的公司,陳皓發(fā)現(xiàn)中國已經(jīng)跟美國一樣,創(chuàng)業(yè)公司越來越多的同時,但技術(shù)人才卻越來越缺乏,這成為很多公司發(fā)展的一大瓶頸。

有很多知名的企業(yè)家和創(chuàng)業(yè)者找到陳皓,希望他能夠幫助搭建和管理技術(shù)團隊。一次一位知名的創(chuàng)業(yè)者請他吃飯,陳皓問他:“你們請我過去可以,但你們尊不尊重技術(shù)?尊不尊重技術(shù)人員?”對方一愣,說已經(jīng)給了技術(shù)人員很好的配置。陳皓搖頭:“技術(shù)是門工程,工程是門科學(xué),科學(xué)有它的規(guī)律,就像懷孕十個月就是十個月,馬虎不得,尊重技術(shù)就是尊重科學(xué)。”

在陳皓看來,一般創(chuàng)業(yè)公司的發(fā)展都會經(jīng)歷三個階段:一是想法變成產(chǎn)品,這個時間很快,就像在一條小河上架一個木板就可以過去了。二是獲取用戶,這時候就開始需要搭建技術(shù)架構(gòu),會面臨獲取用戶的渠道變得很容易的同時,河的寬度也擴大了,之前搭的木板需要不斷擴大來滿足用戶需求。這個時候經(jīng)常會出現(xiàn)兩個問題,系統(tǒng)掛掉,人才跟不上。因為以前欠的債越來越多。三是業(yè)務(wù)擴張,這個時候,企業(yè)需要的是非常龐大的系統(tǒng)架構(gòu)和工程能力。很多人都覺得技術(shù)就是找?guī)讉€人來寫代碼這么簡單,這就好像他們覺得在家里安個自來水安個電燈很簡單,他們忘了水籠頭后面的那個自來水廠那個發(fā)電廠有多復(fù)雜。

這個時候很多公司的辦法是請牛人來解決,但陳皓認為這根本不是解決辦法,“是把牛人拉下來玩之前這套不尊重技術(shù)的玩法?還是把公司拉上來用工程的方法發(fā)展?工程的方法可能會公司發(fā)展慢下來,但未來會越來越快。而把牛人拉下來,還要牛人有什么用呢,就像中國足球,是不是把馬拉多納、羅納爾多、C羅、梅西請來,中國足球就能成功了?不會的,結(jié)果是這幾個人廢了。”

陳皓堅信體制更重要,他認為90%的技術(shù)問題都是管理問題,而且試錯的成本很大。“羅馬不是一天建成的,亞馬遜、阿里也不是一天建成的,但現(xiàn)在整個創(chuàng)業(yè)龐大的環(huán)境很浮躁,很多公司抓不住重點,技術(shù)管理就變得很混亂。”

陳皓認為自己不是一個聰明人,唯一覺得可取的地方是基礎(chǔ)打的牢,因為基礎(chǔ)知識一通百通。陳皓有一個比他小10歲的朋友,他很羨慕這個年輕人,“他對于很多技術(shù)知識都懂,我花了18年,他就花了不到10年。不是所有的人都是聰明人,笨的人要多花點時間,如果笨的人再浮躁,就什么都沒有了。”

“因為技術(shù)是門工程,工程是門科學(xué),而且技術(shù)更新很快,很多10年前學(xué)的東西都沒有用了,必須活到老學(xué)到老。”

image

來源:華創(chuàng)資本

文章配圖由陳皓提供

(轉(zhuǎn)載)

一、個人簡歷

陳皓,coolshell.cn博客博主。
14年以上軟件開發(fā)相關(guān)工作經(jīng)驗,8年以上項目和團隊管理經(jīng)驗。
擅長底層技術(shù)架構(gòu),軟件工程。
對高性能,高可用,分布式,高并發(fā),大規(guī)模數(shù)據(jù)處理系統(tǒng)有一定研究。
技術(shù)擅長C/C++/Java和Unix/Linux/Windows。

二、軼事和思考

2.1、毅然辭掉銀行工作

我當(dāng)時在銀行做銀行網(wǎng)絡(luò)、銀行的電子郵件系統(tǒng)和辦公自動化系統(tǒng)。當(dāng)時正處在銀行信息化的階段,加上當(dāng)時互聯(lián)網(wǎng)和IT業(yè)剛剛火起來,得到這份工作其實是很幸運的。銀行正值擴張電子信息化業(yè)務(wù)的時候,其實應(yīng)該有很多事可做,但是當(dāng)時的主要工作都是由廠商來干。比如說IBM或Cisco拿下單子來,會把工作外包給系統(tǒng)集成商。作為一位技術(shù)人員,其實可以發(fā)揮的空間并不大,多數(shù)時間我只是出了問題打電話的角色。沒有人會教你任何事,出了問題,就是打電話,然后按照他們的指導(dǎo)來完成工作。但這個還不是促使我離職的最主要原因,我離開是因為互聯(lián)網(wǎng)和IT業(yè)的興起讓我有些心向往之,有想去看一看的沖動。我還記得當(dāng)時的辭職書是這么寫的:“本人對現(xiàn)有工作毫無興趣,申請辭職”。處長說,“你可以這么寫,但是要加上‘經(jīng)調(diào)解無效’,另外,分給你的房就不能要了”。我說好啊。就這樣就辭去了工作,去了上海。老實說,這個決定真不好做,因為幾乎所有的朋友和親人都很反對。

2.2、選擇上海闖蕩的原因

當(dāng)時選擇上海是有原因的,我覺得在當(dāng)時的環(huán)境(2000年)下,上海的發(fā)展比較不錯。沒有選擇深圳的原因是個人感覺那是因為政治原因憑空冒出來的一座城市,我不是很喜歡。北京我有很多同學(xué),而我想去一個陌生的地方。但是后來發(fā)現(xiàn)上海也不是做技術(shù)的地方,過得有些壓抑,初來到上海的時候經(jīng)常會被人瞧不起,畢竟是剛剛來到大城市。
我當(dāng)時感覺銀行束縛了我,想看看自己可以跑多遠,能發(fā)揮出多大的價值。于是決定出來闖一闖,主要就是要去經(jīng)歷一些應(yīng)該去經(jīng)歷的事情,不希望老了以后會后悔年輕的時候沒有去。當(dāng)時IT產(chǎn)業(yè)的發(fā)展是一個大趨勢,我感覺我必須要去一座大城市,去經(jīng)歷一些東西。在小地方基本沒有這些機會。要學(xué)會游泳就必須要跳到水里去嗆兩口水,所以我就義無反顧地出來了。

2.3、工作挫折和自省

我仍然記得自己拎著皮箱站在上海火車站的樣子,舉目無親。原來在老家的時候覺得自己還挺厲害的,自以為不愁找不到好工作。不過事實卻不是這樣的。
我還記得第一次去面試時,(面試官)問了很多和C相關(guān)的問題,問了我半個小時,我一個問題都答不上來。我一直低著頭,好像被審問的犯罪分子一樣。我從大學(xué)畢業(yè)出來就沒經(jīng)歷過什么面試,再加上自己內(nèi)向的性格,所以,整個過程我都在低著頭,不敢看別人一眼。最后,面試官問了我一個問題是“有不懂的問題你會怎么辦”,這樣的問題我都不敢回答,其實這道題的答案不過就是“問別人”或是“自己看書”或是“上網(wǎng)查資料”什么的。很顯然,這場面試我肯定是被滅掉了。但這還沒完,最后面試官對我說:“你出來干什么,像你這種性格根本不適合到大城市來”。
我當(dāng)時被嚴重地打擊了,感覺到自己確實有一些東西很差。第一個是性格差,不知道怎么與人交往;第二個是技術(shù)差,很多問題不知道;第三個就是視野狹窄,沒見過世面。后面的幾家公司的面試都大同小異。一個人在異地他鄉(xiāng),經(jīng)歷了這些事情,心里會非常地恐慌,“我這條路是不是走錯了?”,我經(jīng)常這樣問自己。
面對這樣的情況,我被逼迫著一定要改變自己。因為,離開銀行時,我的家人、同學(xué)和朋友都很反對我出來,如果這樣灰溜溜地回去,我面對不了他們。而前面的人還看不起我。我當(dāng)時的處境真的很難堪,就像爬在懸崖中間,上不去也下不來。所以,當(dāng)時只有一個想法,就是要證明自己不是那么差的人。人被逼到那個份上,活得就比較簡單,哪有什么職業(yè)發(fā)展規(guī)劃,只想拼命地多學(xué)技術(shù),提高自己的能力。這個經(jīng)歷有點像是一劑興奮劑,同時也相當(dāng)陣痛。但是回頭想想,第一個面試官應(yīng)該是我最感謝的人。

2.4、瘋狂成長

在同學(xué)的幫助下我找到了在上海的第一份工作。南天公司,這是一家給銀行做系統(tǒng)集成軟件的公司,大學(xué)畢業(yè)時本來也可以進去,現(xiàn)在繞了一圈而且還是靠同學(xué)幫助進去的,所以那時的心態(tài)還很不平穩(wěn);另一方面因為以前是做銀行的,是甲方,現(xiàn)在成了乙方了,兩邊的人都用異樣的眼光看我,心態(tài)非常不好。
不過,這是個技術(shù)不錯的企業(yè),國內(nèi)早期很多搞Unix/C的高手都是從這個公司培養(yǎng)出來的。我當(dāng)時的技術(shù)還是不行,比如說到了用戶站點以后,不知道怎么做,我曾經(jīng)誤操作把用戶的數(shù)據(jù)刪掉了。經(jīng)常犯低級錯誤,不但沒做好自己的工作,反而還給別人添了麻煩。這些經(jīng)歷都讓我有一種“技術(shù)焦慮感”,或者叫“技術(shù)憂郁癥”。我覺得自己這也不行,那也不行。這也是我今天仍然在拼命學(xué)習(xí)的原因。這就好像我們經(jīng)常在參加工作多年后還會夢見自己的英語四級沒過,或者是期末考試沒過一樣。我經(jīng)常會夢見的是項目又做砸了,又把用戶的系統(tǒng)搞亂了,一大堆人要審我、要訓(xùn)斥我。
因為技術(shù)差,溝通差,不會面試,所以,我決定經(jīng)常出去面試,基本上每周都要去,不管懂不懂,也不管是什么公司,也不管別人鄙不鄙視我,反正一有機會就去面試,多見見人這樣可以讓我的性格有所改善,同時,也可以知道社會上需要一些什么樣的技能,把別人面我回答不上來的東西都記下來,然后回頭找答案。那個時候我會經(jīng)常去上海書城看書,看很多很多的書。我學(xué)的東西很雜,什么做網(wǎng)頁,Windows,Unix,Java,.NET,flash,連3DMax/Photoshop我也學(xué),還去考CCNA的認證等等。這樣散亂地學(xué)習(xí)兩年后,我才慢慢確定了要走C/C++/Unix/Windows系統(tǒng)底層的路子。而這樣撲天蓋地學(xué)習(xí)的結(jié)果有一個好處就是,我成長的速度相當(dāng)之快。我自己摸索到了適合我的學(xué)習(xí)方法(從基礎(chǔ)和原理上學(xué)習(xí)),從而不再害怕各種新的技術(shù)。那時,所有人都在休黃金周出去玩的時候,我還呆在辦公室或住處看書學(xué)習(xí)。
等到一年半之后,用句趙本山的臺詞說,我在面試中學(xué)會搶答了。面試官的問題沒問完,我就能說出答案了。其實,基本上是面一個公司過一個(當(dāng)然都是一些小公司),此時,我就開始挑公司了。
感到技術(shù)能力不行就去學(xué)技術(shù),交往能力不行我就去面試,這兩個問題都可以通過大量地實踐和努力來彌補,但是眼界這個東西沒有辦法通過努力來彌補。所以,當(dāng)時非常想去一些更大的公司看看,如果能去外企更好。

2.5、變得不一樣

我還記得,有一天,有一個和網(wǎng)絡(luò)相關(guān)的技術(shù)問題,同事們搞了三四個通宵,也沒弄明白,后來想起我好像在看這方面的書,他們就讓我去看看、試試,結(jié)果我只用了20分鐘就搞定了。基礎(chǔ)真的很重要,這受益于我看了《TCP/IP詳解》這套書。
后來,我去了一家做電信軟件的公司,他們讓我做PowerBuilder,盡管我當(dāng)時想做的是C++,但是因為當(dāng)時各種原因很需要這份工作,就去了。進了那里的第一天發(fā)現(xiàn)公司里有一個論壇,上面都是一些技術(shù)上懸而未決的問題,都是關(guān)于Windows/C++的。我一看,都是些很簡單的問題,一下午的時間就被我全部解決掉了,我的基礎(chǔ)知識發(fā)揮了作用。于是,當(dāng)天下午我一下子就被調(diào)到了核心組。不過,我只在那里呆了兩個多月,因為那時我已經(jīng)不愁找工作了,這期間有兩家北京的公司錄用了我,于是,02年我就來到了北京,去到一家做分布式計算平臺軟件的公司。
在上海的這兩年的時間,從什么都不是,到得到工作上的全面肯定。那段時間感覺自己牛得不得了,有些狂妄和驕傲了,經(jīng)常上網(wǎng)和不認識的人爭論一些很傻的問題,后來發(fā)展到對當(dāng)時的領(lǐng)導(dǎo)以及銀行客戶的領(lǐng)導(dǎo)不敬,總覺得這些人太二。現(xiàn)在回頭看過去,我覺得那是我人生特定時期的記號,人生的痕跡。

2.6、建立coolshell.cn的原因

我2002年在CSDN開了一個blog,當(dāng)時叫專家專欄。開個專欄很簡單,只要發(fā)6個帖子。我也不是什么專家,只是喜歡看書、喜歡學(xué)習(xí)而已,也喜歡做一些學(xué)習(xí)筆記。那時候沒有筆記本也沒有臺式機,市面上好像也沒有U盤和移動硬盤。正好有CSDN這么一個地方,就去CSDN的站點上把自己的一些學(xué)習(xí)筆記放在了上面。后來03年的時候技術(shù)專欄轉(zhuǎn)到了博客,因為CSDN對其博客經(jīng)營得不好,我09年就離開了csdn,創(chuàng)建了酷殼。花了4500塊錢,租了一個server。我離開那里主要有兩個原因,一個是因為當(dāng)時CSDN博客有一些性能上的問題,.NET架構(gòu)嘛,大家都懂的。另外一個原因就是當(dāng)時出現(xiàn)了很多博客營銷的站點,有點像今天的36氪。好像那時候出現(xiàn)最早的叫煎蛋,那上面會有一些報紙上不會出現(xiàn)的國外的趣聞,是以博客的方式形成的媒體。這和常規(guī)的以日記形式出現(xiàn)的博客大不一樣。煎蛋、有意思吧等這些博客讓我看到了博客還能這樣寫,我覺得很好玩兒。而我當(dāng)時也經(jīng)常會去國外社區(qū)看一些文章,也能看到一些有意思的東西(因為我當(dāng)時有了學(xué)習(xí)瓶頸,國內(nèi)的網(wǎng)站已經(jīng)滿足不了我了)。心想,既然這些東西這么有意思,我為什么不自己開一個博客呢?
我老婆是學(xué)新聞編輯的,她鄙視我說,你的博客雖然有很多人讀,但是只能算是個書呆子的博客,全是一些書呆子式的文章。我有些不服,我覺得技術(shù)人員不全是書呆子,我們這個圈子里也有很多有趣的東西,只不過是你不知道而已。于是我想弄一個有意思的、有娛樂性質(zhì)的東西,里面都是技術(shù)圈里面有意思的事兒,但是很多技術(shù)圈以外的人也能看懂。一開始酷殼和CSDN博客的風(fēng)格完全迥然,如果有技術(shù)性的文章我還會在CSDN上貼,但是后來我就完全拋棄了原來CSDN上的博客。酷殼的初衷是希望很多人都可以來上面發(fā)表一些東西,但是可能是我寫得太多了,別人就被壓制住了。

現(xiàn)在博客更新頻率是一周一篇,一開始的時候一周三篇。磨刀不誤砍柴工,總是有時間來做這些事的。我經(jīng)常看書,需要把學(xué)到的東西整理成學(xué)習(xí)筆記。自從在CSDN上寫博客的時候,就有這樣的習(xí)慣了,而且又有“技術(shù)焦慮癥”,害怕跟不上,所以維護博客的事對我來說是很自然的。
現(xiàn)在我已經(jīng)不用自己再租服務(wù)器了,由于酷殼的訪問量比較有保證,我提供了廣告位,就免費得到服務(wù)器了。

2.7、對于新技術(shù)的態(tài)度

遇到新技術(shù)我會去了解,但不會把很大的精力放在這。這些技術(shù)尚不成熟,我只需要跟得住就可以了。我的團隊自己想學(xué)什么我都不干涉,但是用到項目里的技術(shù),必須是很成熟的,(技術(shù)應(yīng)用)十年以上可能是一個門檻。有人說技術(shù)更新?lián)Q代很快,我一點兒都不這樣想。雖然有不成熟的技術(shù)不斷地涌出,但是成熟的技術(shù),比如Unix,40多年,C,40多年,C++,30多年,Java也有將近20年了……,所以,技術(shù)并不多啊。還有很多技術(shù)比如Ruby,Lisp這樣的,它們沒有進入主流的原因主要是缺少企業(yè)級的應(yīng)用背景。
如果要捋一個脈絡(luò)下來,70年代Unix的出現(xiàn),是軟件發(fā)展方面的一個里程碑,那個時期的C語言,也是語言方面的里程碑。當(dāng)時所有的項目都在Unix/C上,全世界人都在用這兩樣?xùn)|西寫軟件。Linux跟隨的是Unix,Windows下的開發(fā)也是C。這時候出現(xiàn)的C++很自然就被大家接受了,企業(yè)級的系統(tǒng)很自然就會遷移到這上面,C++雖然接過了C的接力棒,但是它的問題是它沒有一個企業(yè)方面的架構(gòu),否則也不會有今天的Java。C++和C非常接近,它只不過是C的一個擴展,長年沒有一個企業(yè)架構(gòu)的框架。而Java出現(xiàn)之后,IBM把企業(yè)架構(gòu)這部分的需求接了過來,J2EE的出現(xiàn)讓C/C++捉襟見肘了,后面還有了.NET,但可惜的是這只局限在Windows平臺上。這些就是企業(yè)級軟件方面語言層面這條線上的技術(shù)主干。

另外一條脈絡(luò)就是互聯(lián)網(wǎng)方面的(HTML/CSS/JS/LAMP…)。這條脈絡(luò)和上述的那條C/C++/Java的我都沒有放,作為一個有技術(shù)憂慮癥的人,這兩條軟件開發(fā)的主線一定不能放棄。無論是應(yīng)用還是學(xué)術(shù),我都會看,知識不愁多。何必搞應(yīng)用的和搞學(xué)術(shù)的分開陣營,互相看不起呢?都是知識,學(xué)就好了。
技術(shù)的發(fā)展要根植于歷史,而不是未來。不要和我描述這個技術(shù)的未來會多么美好,用這個技術(shù)可以實現(xiàn)什么花哨的東西。很多常青的技術(shù)都是承前的。所以說“某某(技術(shù))要火”這樣的話是沒有意義的,等它火了、應(yīng)用多了咱們再說嘛。有些人說不學(xué)C/C++也是沒有問題的,我對此的回應(yīng)是:如果連主干都可以不學(xué)的話,還有什么其他的好學(xué)呢?極端一點,我要這么說:這些是計算機發(fā)展的根、脈絡(luò)、祖師爺,這樣的東西怎么可以不學(xué)呢?大部分學(xué)校雖然都會教授C,但是教得都不好。學(xué)校喜歡教微軟的東西,老師好教學(xué)生好學(xué)。我不是說Windows不好,但那不是計算機文化的主干,那只是微軟的主干、PC的主干。整個計算機文化的主干肯定是源起于Unix/C這條線上(注意,我說的是文化不是技術(shù))。我也寫過很多與Unix文化相關(guān)的文章,大家可以看看我寫的“Unix傳奇”。

2.8、對于學(xué)校計算機科學(xué)教育的看法

學(xué)校教的大部分都是知識密集型的技術(shù),但是社會上的企業(yè)大部分都是勞動密集型的。什么是勞動密集型的企業(yè)呢?麥當(dāng)勞炸薯條就是勞動密集型的工作,用不到學(xué)校教授的那些知識。如果有一天你不炸薯條了,而要去做更大更專業(yè)的東西,學(xué)校里的知識就會派上用場。有人說一個語言、一個技術(shù),能解決問題能用就行了,我不這樣認為。我覺得你應(yīng)該至少要知道這些演變和進化的過程。而如果你要解決一些業(yè)務(wù)和技術(shù)難題,就需要抓住某種技術(shù)很深入地學(xué)習(xí),當(dāng)成藝術(shù)一樣來學(xué)習(xí)。

我在“軟件開發(fā)‘三重門’”里說過,第一重門是業(yè)務(wù)功能,在這重門里,的確是會編程就可以了;第二重門是業(yè)務(wù)性能,在這一重門里,技術(shù)的基礎(chǔ)就很管用了,比如:操作系統(tǒng)的文件管理,進程調(diào)度,內(nèi)存管理,網(wǎng)絡(luò)的七層模型,TCP/UDP的協(xié)議,語言用法、編譯和類庫的實現(xiàn),數(shù)據(jù)結(jié)構(gòu),算法等等就非常關(guān)鍵了;第三重門是業(yè)務(wù)智能,在這一重門里,你會發(fā)現(xiàn)很多東西都很學(xué)院派了,比如,搜索算法,推薦算法,預(yù)測,統(tǒng)計,機器學(xué)習(xí),圖像識別,分布式架構(gòu)和算法等等,你需要讀很多計算機學(xué)院派的論文。
總之,這主要看你職業(yè)生涯的背景了,如果你整天被當(dāng)作勞動力來使用,你用到的技術(shù)就比較淺,比較實用,但是如果你做一些知識密集型的工作,你就需要用心來搞搞研究,就會發(fā)現(xiàn)你需要理論上的知識。比如說,我之前做過的跨國庫存調(diào)配,需要知道最短路徑的算法,而我現(xiàn)在在亞馬遜做的庫存預(yù)測系統(tǒng),數(shù)據(jù)挖掘的那些東西都需要很強的數(shù)學(xué)建模、算法、數(shù)據(jù)挖掘的功底。
我覺得真正的高手都來自知識密集型的學(xué)院派。他們更強的是,可以把那些理論的基礎(chǔ)知識應(yīng)用到現(xiàn)在的業(yè)務(wù)上來。但很可惜,我們國內(nèi)今天的教育并沒有很好地把那些學(xué)院派的理論知識和現(xiàn)實的業(yè)務(wù)問題很好地結(jié)合起來。比如說一些哈希表或二叉樹的數(shù)據(jù)結(jié)構(gòu),如果我們的學(xué)校在講述這些知識的時候能夠結(jié)合實際的業(yè)務(wù)問題,效果會非常不錯,比如:設(shè)計一個IP地址和地理位置的查詢系統(tǒng),設(shè)計一個分布式的NoSQL的數(shù)據(jù)庫,或是設(shè)計一個地理位置的檢索應(yīng)用等等。在學(xué)習(xí)操作系統(tǒng)的時候,如果老師可以帶學(xué)生做一個手機或嵌入式操作系統(tǒng),或是研究一下Unix System V或是Linux的源碼的話,會更有意思。在學(xué)習(xí)網(wǎng)絡(luò)知識的時候,能帶學(xué)生重點學(xué)一下以太網(wǎng)和TCP/IP的特性,并調(diào)優(yōu),或是能做一個網(wǎng)絡(luò)上的Pub/Sub消息系統(tǒng)或是做一個像Nginx一樣的web server,那會更好。如果在學(xué)圖形學(xué)的過程中能帶領(lǐng)學(xué)生實踐開發(fā)一個作圖工具或是一個游戲引擎,那會更有意思。
總之,我們的教育和現(xiàn)實脫節(jié)太嚴重了,教的東西無論是在技術(shù)還是在實踐上都嚴重落后和脫節(jié),沒有通過實際的業(yè)務(wù)或技術(shù)問題來教學(xué)生那些理論知識,這是一個失敗。

2.9、如何在壓力下,享受技術(shù)帶來的快樂

中國人中庸的思想,入世和出世,每天的工作就是入世。舉個例子,在上海的時候,給交通銀行做項目的時候,每周休息一天,早九點到晚十點,每天工作12個小時,這樣的工作持續(xù)了一整年,沒有節(jié)假日,項目上的技術(shù)也沒什么意思。當(dāng)時我晚上十點回到住處,還想學(xué)一些C++/Java和Unix/Windows的技術(shù),于是就看書到晚上11:30,每天如此,一年下來學(xué)到很多東西,時間沒有荒廢,心里就很開心。我覺得當(dāng)時是快樂的,因為有成長的感覺是快樂的。

現(xiàn)在的我,工作、寫博客、養(yǎng)孩子,事情其實更多。我早上7:30起床,會瀏覽一下國外的新聞,hacker news,tech church,reddit,highavailability之類的站點,9點上班。晚上6、7點鐘下班,開始帶孩子。十點鐘孩子睡了覺,我會開始重新細讀一下這一天都發(fā)生了些什么事情。這個時間也有可能會用來看書。學(xué)習(xí)的過程我是不喜歡被打斷的,所以從十點到十二點,家人都睡了,這正是我連續(xù)學(xué)習(xí)的好時間。可能從晚上11:30開始,我會做點筆記或者寫博客。我現(xiàn)在對酷殼文章的質(zhì)量要求比較高一些,所以大概積累一個星期的時間才可以生成一篇文章。每天我大概都在一兩點鐘才會睡覺。沒辦法,我有技術(shù)焦慮癥。但是覺得這樣的生活很充實,也很踏實。
另外,任何一門技術(shù)玩深了,都是很有意思的。有些人形成了一個價值取向,“我只做什么,絕不做什么”。前段時間有一個剛來亞馬遜的工程師,他原來做的是數(shù)據(jù)挖掘推薦系統(tǒng),后來公司重組要他做前端,他不肯。我覺得,前端后端都是編程,Javascript是編程,C++也是編程。編程不在于你用什么語言去coding,而是你組織程序、設(shè)計軟件的能力,只要你上升到腦力勞動上來,用什么都一樣,技術(shù)無貴賤就是這個意思。
回到問題,怎么才能享受到快樂呢?第一,入世和出世要分開,不要讓世俗的東西打擾到你的內(nèi)心世界,你的情緒不應(yīng)該為別人所控,也不應(yīng)該被世俗所污染,活得真實,你才會快樂。第二點就是要有熱情,有了熱情,你的心情就會很好,加班都可以是快樂的,想一想我們整個通宵用來打游戲的時光,雖然很累,但是你也很開心,這都是因為有了熱情的緣故。

2.10、做自己是最難的

我承認我活在我的精神家園里面。我推薦大家看一下王小波的《我的精神家園》,這篇文章對我的影響非常大。看了這篇文章,你就會明白我為什么要躺在自己的池子里,如果不想被這個社會所污染,就必須要躺在自己的池子里。做大眾是很容易的,做自己是最難的。當(dāng)你老了的時候,回想過去,如果你是為自己而活的,你總會覺得很踏實。可能有人會覺得我偏激,沒關(guān)系,為什么要所有人看法都一致呢?世界因為不同而美麗,多元化的價值觀并不沖突。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 生而為人,我們都在同樣的小事中掙扎過活;即便面臨生命的盡頭,人生課題也是大同小異。這本書就是來自我們的日常生活,是...
    艾斯克林姆閱讀 986評論 0 0
  • 一個修行的和尚在河邊打坐時,聽到掙扎的聲音。睜開眼睛一看是,一只蝎子正在水里掙扎。他伸手把它撈上來,被蝎子...
    松間明月閱讀 2,449評論 0 1
  • 我老是三心二意的做事情,卻一心一意的在喜歡你。 看你兩秒,喜歡上你一分鐘,三天跟你說喜歡。當(dāng)初想著喜歡你多不過一周...
    三水奚閱讀 191評論 0 0
  • 掌上羅田活動多,老師玩樂笑呵呵。釆風(fēng)文章寫得好,天天網(wǎng)上唱新歌。(秋老鼠有感創(chuàng)作)
    秋老鼠閱讀 517評論 0 0