程序員是吃青春飯嗎?

程序員是個高壓高強度工作,技術日新月異每天都要學習,到了三四十多歲體力、腦力都跟不上了。
程序員是吃青春飯嗎?
10 個回答
舞墨71983415
2017-05-30

互聯網我不好說,但是傳統IT行業我覺得是青春飯!

我所在的傳統It行業大多以外包居多,我在過的項目組編碼的我還真沒見過超過三十五歲的程序員!這個年紀大多都是項目經理或者偏諮詢顧問 即便編碼也很少。不是說不能繼續去敲代碼了,而是敲代碼這種事在他們眼裡已經變的很low,為啥?因為傳統I行業It都是成熟技術居多,不要求有太多的技術創新,所以敲代碼就變成熟能生巧的事了,這個和互聯網IT不太相同!

你這種問題都爛大街了,對於技術能力強的程序員,特別是互聯網方面,他們自尊心一般都極強,你問這種問題不是傷他們自尊嘛!不說了,需求又改了,我去搬磚了。

YY胡
2017-11-22

對於這個問題,答案顯然是否定的。對於一家科技公司,不管是程序員,還是銷售人員、人力資源人員等,如果停留在按部就班的熟練工水平,任何職業都是青春飯。換而言之,掌握核心技術能力,有系統規劃能力,特別是向更高的管理層面學習,任何職業都是越積累越吃香。

在這一點上,可舉的例子太多了。比如騰訊創始人兼CEO馬化騰,小米科技創始人雷軍,京東集團創始人劉強東等,起初都從事過程序員之類的工作。雖然他們的程序寫得非常棒,比如雷軍在大學的時候,雷軍和一個名叫王全國的人合作了開發了一個產品叫BITLO,沒有想到的是,就是這個軟件,讓雷軍賺得了第一桶金,而且還是上百萬。不過,這些人中不少都成為了科技企業的管理者。

程序員是吃青春飯嗎?

對於上個世紀90年代的程序員,如果說要青春飯的話,現在肯定沒有20多歲的程序員精力旺盛。所以,非常明顯的是,轉型管理層,當然,不是說一定要做科技企業的董事長或者CEO,比如產品經理、技術總監等等,都是程序員的發展方向。此外,跳出技術行業,向著市場、運營等方向,也可以是方向之一。

總的來說,對於程序員,隨著年齡的增長,人的各種精力都會下降,但是經驗也會隨之增加。打個不恰當的比方,要說吃青春飯,運動員是典型的代表性。但是,不管是NBA還是英超、德甲的,運動員雖然年齡增長會導致各種精力的下降,但是經驗的積累,促使很多運動員步入到教練這一職業中。同理,對於程序員來說,經驗的積累,也能幫助其在科技公司走得更遠。

程序員是吃青春飯嗎?

最後,之所以有人會說程序員是吃青春飯這個問題,主要還是該行業的加班問題比較嚴重。不管是阿里巴巴、騰訊等互聯網巨頭,還是滴滴出行、美團點評等新興互聯網公司,加班是程序員必須要面臨的問題。而這,給人一種程序員就是用青春來加班,從而獲取高收入的感覺。但是,對於競爭激烈的科技和互聯網領域,加班也是適應競爭的需要。

悫于朽之爱
2017-11-21

看到這個話題,我想說:絕!對!不!是!

什麼叫青春飯?性服務者算,純賣力氣的也是,程序員這種一直有技術積累的為什麼算?加班?996?反正我作為一名平凡的程序員,加班不多週末雙休,不覺得是在燃燒生命,如果每天坐在電腦前就算是青春飯,那太多的行業都是。

真的,這真是太大的誤解,營銷人員喝酒應酬不傷身體?會計事務所一接項目這一個月你都別想歇一天,航空業的機務晝夜顛倒的上班,銀行職員每天直勾勾的坐著,這些算不算青春飯?

你要是說程序員都只見年輕人,容不下老人,這點我還是比較同意的。程序員作為一個職業,不過20年,在中國時間應該更短一點,所以年紀大的應該的確不多。而且程序的工作年限跟工資關聯很大,你工作了五年,該拿五年程序員的工資但又沒什麼能力,那估計是要被淘汰。程序員的技術更新的這麼快,不保持學習是做不下來的。

十年以上經驗的程序員真的少,很多都被淘汰了,但是留下來的這部分人,拿的絕對是不輸管理層的工資。

最後,如果考慮當程序員的,只是看到工資比較高,那我奉勸一句,這種真是青春飯。

程序員不要求天賦,但要求興趣

娱乐八卦三百六十度
2017-11-21

關於程序員,特別是中國的程序員,是個吃青春飯的職業,似乎已經達成共識。 

收入來說,不用說很高水平的,一個普通的工作用心的軟件從業人員,在現在這個社會,而且在可以預計的一個長時間裡,收入水平也會遠高於社會平均水平的,大家說的所謂天花板,基於一個觀念就是越老似乎就應該收入越高。請問憑什麼?收入不是應該和貢獻相關的嗎?現在除了在官場熬年頭似乎有點用,其他哪個職業會單純因為你年紀大就給高工資的?軟件行業其實是個標準挺清晰的行業,你努力點,水平高點,一定收入會高點,完全不用靠關係靠忽悠之類的歪門邪道。都說一般公司不找35歲以上的人,真的嗎?我想所有的軟件公司,實際上都想要有經驗的程序員,和年齡完全沒關係,大部分的小公司,老闆哪敢挑人,只有請不起人,一般都是無數的流水一樣的很水的程序員來來去去,核心的稍微算高手一點的,老闆都像爺一樣供著,當然因為實力原因,待遇可能比頂級公司會差一點,但在工薪階層也還算高收入的,但就因為這小老闆們經常被程序員要挾或者甩掉,剩一堆爛攤子。這樣的情況在中國屢見不鮮,如果你是個有水平的,負責任的程序員,年齡會是問題嗎?所以只要你認真做事,換取適當的報酬,這路可以走的很長很長。  

至於特別強調中國的程序員苦,其實基本點在中國現在一切向錢看的社會價值觀,因為程序員的職業特點,最高手的程序員,也比那些當老闆或者金融行業呀的收入也差很遠,所以大家都說要轉型。其實美國的程序員,賺那點錢也就是個小康,沒華爾街的大佬們一個毛粗,但人家做得開心又自尊,我們沒也必要妄自菲薄,給自己找痛苦了。

栖身你的岸
2017-11-23

這個問題兩年前我也在考慮,也同時在幫助一些入門者解決困惑,現在也有了一些答案,從你的文字中我感覺到你或者是你的朋友最根本的原因在於認識和見識,與職業無關,接下來我來解釋這兩個詞彙:
三十歲很迷茫,咋辦?迷茫的原因在於哪裡?是因為程序員這個職業嗎?還是為了給自己找個說辭,如果你覺得程序員沒有出路,那你做了其他嘗試沒有?嘗試過轉職沒有?程序員這個職業並不適合所有人,如果你發現不適合你找到了解決辦法沒有?所以當你還在考慮程序員是青春飯的問題,說明你並沒跨過程序員的第一道坎:程序員職業的抉擇。
上面的這些疑惑或許你還不能清楚的回答自己,那帶著疑問我來剖析一些現象:
一、程序員這類人的特徵。程序員有很多外號IT民工、碼農、攻城師……,他們是一群高智商的體力勞動者,他們給人的印象木訥、嚴肅、嚴謹、正直、理性……也難怪他們了,每天繃著臉對著電腦能不嚴肅麼?每天跟不會說話的計算機打交道能不木訥嗎?程序裡只有yes和no不也正是程序員正直的象徵嗎?職業性質決定程序員男性居多,能見到一個女程序員很不容易,男程序員則缺少交流圈,寂寞、空虛、悶騷成了代名詞,而黑客最苦逼了,所以程序員有大部分人是大齡單身男性,程序員是感情上的弱勢群體,尤其被動。工作中的程序員,今天客戶改個需求,明天客戶又說這個需求還要改改,好不容易實現了,客戶又說我還要加個功能模塊,為了趕進度每日加班,日夜操勞,終於客戶滿意了,產品上線了,不幾天出BUG了,於是程序員又站出來不斷修補BUG,好不容易你學有所成,你在朋友面向炫耀一番,這時又有人噴口水了:“就是個搞技術的,沒有出息。”程序員在職業中的低位等同於技工,呼之則來揮之則去,而這種現象在國外也依舊存在。你現在認為你能堅持下來嗎?程序員轉職的現象很普遍,做銷售、做項目經理、做產品經理,甚至毫不相關的職業。你要轉職嗎?這裡先留個疑問,我們再來分析IT行業的前景。
二、迅速成長的IT行業。說到互聯網很多人都能聯想到電腦,而電腦在大部分人眼中都只是玩遊戲、看電影、聊天的象徵,大部分非計算機專業人士也只會一些簡單的電腦操作和一些辦公了。所以在很多人的印象當中除非你的職業是程序員,要不然電腦就是不務正業的象徵,想出息就得遠離電腦。我認識的很多非計算機專業的朋友都是電腦小白。互聯網改變生活,以後的幾十年是信息化的時代,電腦小白們的未來在哪裡?他們可以選擇傳統行業裡闖出他們的天地,但傳統行業在電子行業的衝擊下也變得岌岌可危,普及計算機常識時不我待。

三、IT行業不只有程序員。當提及IT行業很多人都會把程序員掛在嘴邊,在很多人看來進入互聯網公司就一定是程序員,多麼無知的認識?項目經理、產品經理、職業經理人、架構師、技術總監、程序設計師、前端工程師等等,這些是和技術有些許聯繫的職業,還有顧問、策劃、銷售、財務、人力資源等等,難道IT行業都不需要了?當你認為IT行業只是在為程序員敞開大門時,我只能說你很無知。所以,不要太侷限於程序員這個稱呼。在我們淺顯的計算機常識裡,程序員成為了IT行業技術人才的統稱,甚至修電腦的人都會被人稱為程序員,不懂得編程的人不是程序員,懂得編程的人也並不一定就是程序員,但一定是程序員出生。大名鼎鼎的例子太多了,我就不扯淡了,這是一句很理論的說法,沒有例子。
四、互聯網改變世界。在網上認識了一些技術圈的朋友,一些人正在創業,發現他們的夢想驚人的一致:“為改變世界而生。”且不說是否NC,至少在大家看來“互聯網改變世界”,一方面,互聯網拉近了陌生人與陌生人之間的距離,改變了傳統的交友模式,我們可以很快的和陌生人進行溝通,即使互不相似也可以針對一個話題談論不休。另一方面,通過互聯網可以查詢資料和閱讀資訊,電腦是通向世界的窗口,在某種程度上做到了足不出戶,遍知天下事。
總結、豐富自己的經歷比胡思亂想更有用。有些人“他選擇職業”,有些人“職業選擇他”,你是前者還是後者,如果你還在猶豫,那就試著去做些能夠解決你心中困惑的事情,還是因為你覺得你老了沒有勇氣?嘗試做一些你認為適合你的職業,當你有一定的經歷之後,你自然就知道你該怎麼做了。不要太在意職位的稱呼,你才會走得更遠。青春的字眼只是給自己找個不上進的說辭,即使換了一個行業,你同樣還是困惑。

如果你40歲了,你還像20歲一樣寫代碼,那隻能說明20年來你並沒進步,20歲和40歲區別不在於幾行代碼,而是在境界和思想上的差距。

程序員吃不吃青春飯?不要被世俗的言論禁錮了你的思想,走自己的步伐才不會被社會淘汰。那你現在為什麼還有這種認識呢?回到開篇的回答,認識(境界)和見識(思想)決定了你的未來。

天焱
2017-04-26

1.計算機也是越老越吃香(吃經驗飯)——√ ;

2.技術類專業都是吃青春飯(年輕到中年時段是成為技術勞動力做dirty work的黃金時期)——√;

所謂後勁不足可不止是碼農的事情,太多人因為聽信大媽的話沒報計算機而報點(傳統)工科(比如機械、土木之類的)以為老了以後還有後勁搞技術,除非你對那些工科行當有強烈的興趣甚至熱愛,再帶點天賦,否則也帶不動,精力和身體不允許。
程序員是吃青春飯嗎?

唯獨不能把計算機拉出來黑“純吃青春飯”而自己專業是“倚賴經驗越老越吃香”來騙人(自我安慰居多)。

娱乐讲坛
2017-11-21

問題1: 什麼是程序員?

在本文中程序員的定義為: 擁有編程技能,在IT、互聯網公司打工的IT從業人員。程序員與很多行業最大的不同是該行業的形成時間短:1954年第一臺計算機才誕生,而中醫從神農嘗百草就有了,小姐從春秋齊桓公時期就有了。

問題2:什麼叫”青春飯“?

對於青春飯,有兩個極端行業可以作為參考: 中醫和小姐。

  • 中醫: 越老越吃香,50、60歲老中醫和20歲、30歲年輕中醫,大多數人會果斷選擇老中醫。
  • 小姐: 越年輕越吃香,50、60歲老小姐(如果還有的話)和20、30歲的年輕小姐,大多數人會果斷選擇年輕小姐。

所以程序員是否為”青春飯“的問題,可以轉換為如下問題:50、60的老程序員和20、30的年輕程序員,大多數老闆會做何選擇?

於是很快我們會得到一個悖論:無法回答該問題,因為IT行業產生和發展的時間太短,中國目前基本上還沒有50、60歲的程序員 —— 有也是鳳毛麟角,可遇而不可求,所以絕大多數老闆不會面臨這樣的選擇。 (關於程序員青春飯的問題僅限於在國內討論 )所以,在中國,程序員職業是不是所謂“青春飯”,我們只能去合理探討,得出結論,並留給時間去驗證。

2. 我的經歷

03年我大學畢業時,流行著一句話: 30歲之前不轉管理的程序員就會失業的! 於是在畢業之後的幾年中,我跟大學同學聊起天,總會關切地問他們: 怎麼樣,轉管理了嗎?

如今我在讀完碩士、博士並進入某央企研究中心工作兩年後,我反覆思索著我的職業道路,並且得出了我不想繼續搞科研的結論。此時我發現網上已經在開始流傳這麼一句話了:35歲之前不轉管理的程序員就會失業的!並且,在這種帖子的後面,總會有35+甚至是40+的程序員站出來反駁這一論調。

於是我得出一個結論:

原來紅線十年間已經上升了5歲,原來好多40+碼農也還好好的在一線編程啊!10年漲5歲,那麼2025年時的紅線應該再漲5歲,即40歲,而隨著時間推移,這條紅線還應該會慢慢增長。何況既然2015年的時候有好多40+程序員工作在一線,那麼10年後的2025年也應該會有好多50+程序員啊!

3. 歷史角度

以史為鏡,可以知興替。

問題1: 中國何時大規模地出現所謂“私企”員工?

中國取消大學生包分配工作是在1996年(來源網絡),又一種說法是98年開始大規模實施取消分配,而到2000年才完全廢止。無論哪種說法,都可以得出結論:無論何種行業,中國大陸是在1995-2000這一階段開始大規模地量產所謂“私企”員工的。

問題2: IT類私企、外企何時大規模地出現?

微軟是較早進入中國市場的跨國企業之一(來源網絡),微軟亞洲研究院於1998年成立,而微軟亞洲工程院成立是在2003年。另一IT巨頭IBM則是在1995年就在中國成立了中國研究中心。而另外的ERP軟件巨頭SAP,則分別於1996年和1997年在上海和廣州設立了分公司。

讓我們再看一下互聯網公司:

99年入學後,學校後面陸續出現了網吧,那時候網絡絕對是新鮮事物,qq(那時還叫oicq)那時也成立剛幾年時間。沒記錯的話sohu是98年成立,新浪是96?chinaren也是那幾年。可見95-2000年也是互聯網公司第一次蓬勃發展的時期。

因此不難得出結論:IT類“外企”與“私企”大量進入中國也是在1995-2000這一階段,跟中國大規模出現所謂“私企”員工的時間是一致的。

問題3: 中國何時大規模地產生程序員?

我記得我初中聽說一個老師家裡有一臺286(或者是386?)時,那種感覺無異於聽說xx男同學和xx女同學好上了那麼刺激。高中時開始接觸了電腦遊戲,95年有了《仙劍奇俠傳》(我99年第一次玩),98年有了《星際爭霸》。我99年高考,印象中那時計算機專業才熱門4、5年的時間。可以思考一下為什麼熱門呢?多半是大學畢業後找的工作比較好唄,然則啥工作在當時是比較好的呢?我謹慎估計是IT通信外企和通信民企。按照大學四年然後開始工作推算,可以推測出90年前後上大學,95年前後畢業的那一批人應該是第一批進入IT行業的程序員,以23歲大學畢業計算,他們的出生年代大致應該是在1970年前後。

綜上可以得出結論:

在當前的2015年,中國年齡最大的那一批(注意,不是一些特例,是一大批)程序員應該是40-45之間,但絕對不會超過50。而這個年齡段,恰恰是在網上能看到的那些最大齡程序員的年齡階段:40+高度吻合的!

也就是說,從中國第一批程序員開始,到目前為止,並沒有出現因為年齡問題而大面積失業的問題!當然,不排除很多程序員升上去了,不在一線了;還有些程序員轉行了,等等。但應該不存在喜歡編碼、能編碼的程序員因為年齡而大面積失業問題!

4. 行業特點

哪些行業真的是青春飯? 青春飯行業有哪些特點?

大家當前公認的青春飯行業有哪些呢?舉個栗子:空姐、運動員、演員、歌手、小姐、AV男優。

那麼青春飯行業有哪些特點呢?或者說為啥大齡從業者普遍選擇不幹了呢?

運動員:足球、籃球之所以是青春飯,是因為上了年紀的運動員體力跟不上了。具體來講是爆發力,速度等跟不上了。電子競技我估計是反應速度隨著年齡增長會有所下降。

歌手:特點是掙錢多,看臉蛋。大齡以後錢掙夠了,人老珠黃了,改行做生意或者投資,當老闆,不是特別倒黴的話就可以去享受人生了。

小姐:此處省略500字。

AV男優:請自行腦補 (加藤鷹這種神人不討論)。

總結: 凡青春飯者,必是年齡的增長奪去了從事這一行業所必須具備的基本條件:美貌、肌肉爆發力,xxx,等等。

5. 謬誤

程序員與哪個行業最類似?我以為是圍棋。圍棋手和程序員有以下共同點:

  • 都是腦力密集型;
  • 都對體力有一定的要求:長時間保持坐姿,搞的爽了還會額頭微微冒汗。體力不好的搞不了。

而圍棋是青春飯嗎?我認為不是。先看看棋聖聶衛平:聶衛平,生於1952年,1985-1988年為其事業巔峰期,在1996年他還獲得了第5屆中日圍棋天元戰優勝的戰績,那時他已經44歲了。再看看韓國高手 曹薰鉉:曹薰鉉,生於1953年,1994年第7屆富士通杯冠軍使他成為席捲各項世界大賽所有桂冠的世界第一人。達到其職業生涯的巔峰。之後一直活躍,並在2002年第6屆三星杯和2003年第7屆三星杯中奪冠。而那時他已經50歲了。曹老爺子至今活躍在圍棋界。

結論:圍棋手和程序員一樣,40+都正是其年富力強的時候,處在職業生涯的巔峰期。50歲以後狀態會逐步下降。但可以退居二線搞搞架構設計和指導年輕人。

6. 趨勢探討

現在的85後、90後程序員都會選擇互聯網行業,因為他們組成了互聯網程序員的主體,而他們又大部分沒有結婚或者沒有小孩,同時也由於互聯網現在處在一個高速發展期,所以大部分互聯網公司都是加班比較多的。

但是,不妨設想一下10年以後的場景,互聯網、移動互聯網還會像現在一樣高速發展嗎?就算是,也更多地是那些創業公司,那些已經在業界取得一定地位的大公司應該不會再像現在這樣這麼多的加班了,因為現在的85後90後逐漸掌握了話語權,他們會對那些大齡程序員更加包容,而那些新程序員們將會更多地流入到初創公司。

關於這一點,可以參考美國的FLAG和那些硅谷的startup公司。FLAG裡面40+程序員很多,加班也沒有那麼多(來自互聯網)。我想美國互聯網的現在,就是中國互聯網的將來。

7. 行業前景

程序員是否是青春飯,還取決於一點,就是IT行業的發展,行業的發展決定了有多少就業崗位。小時候聽到過一句話:21世紀上半葉是信息技術的時代,下半葉是生命科學的時代。於是我那些學生物的同學就紛紛悲劇…… 在當下的2015年往前展望,數據挖掘、物聯網、智能硬件、可穿戴設備等等,都可能是IT行業的下一個增長點。移動互聯網時代才剛剛拉開序幕,互聯網+的概念方興未艾。現在的我們,坐車不看公交站牌,打車不站街揮手。找大廚到家裡做飯不用打電話,一個app搞定。也許就在不遠的將來,下一個BAT將在中國誕生。IT行業的規模還將呈現數量級的增長,在未來的20年內,IT的高速增長都將持續,能夠保證新程序員的就業崗位,同樣老程序員的就業崗位也不容易流失。

8. 寫在最後

程序員是不是青春飯,現階段無法確定。但我認為,技術過硬的程序員,工作到50歲問題不大。信息時代的革命化變革中,你願意做弄潮兒還是急流勇退?我覺得:管它是不是青春飯,如果喜歡,就去做吧。

沙包僧
2017-12-07

程序員吃青春飯的說法,應該源自2000年初,正是中國it行業迅猛崛起的時候,大多公司都在起步階段,也啟用了很多高校的畢業生,所以程序員群體的平均年齡都在25歲左右,社會的印象自然是:這是年青人的行當。

然爾現在it行業仍在高速發展,新技術新產品曾出不窮,程序員這個稱呼已然有了一個全新的名詞:xx工程師,當然不是改一個稱呼這麼簡單,很多軟件、程序也從之前的單機模式進化出了雲模式,這意味著不同產品間、不同團隊間的合作越來越重要,經驗豐富的工程師此時的價值就更加能突顯出來。這些人一般都在30歲以上了,甚至40歲左右的都大有人在,他們的職責也不再是寫程序這麼簡單。他們要用自己的經驗為團隊開發提供指導,關鍵的技術指標需要親自操刀。需要把握代碼的質量等。

很多小公司仍會把工程師稱作程序員,且大都是剛入行的新手,整個公司能有一兩個技術過硬的工程師當總監或者帶團隊就很不錯了,主要是小公司沒那麼多本錢去招太多經驗豐富的老工程師;哪能像bat一般中堅工程師團隊幾乎都是超豪華陣容,沒個七八年經驗能放心把重要的事情交給你做?當然也不乏年少有為的天才工程師,但那畢竟是少數了。

所以就目前看來,工程師並不是一個靠青春吃飯的行業

hashbang
2017-12-25

我覺得不是。

比如扎克伯格。他碼領夠大了吧,但越來越成功。最近鼓搗出一個“Jarvis”。

作為一家科技巨頭的CEO,扎克伯格卻依然保持寫代碼的習慣。可怕的自制力,超強的執行力,當比你有錢的人還比你更聰明更勤奮的時候,,,

以下文章來自扎克伯格的筆記“Building Jarvis”。

程序員是吃青春飯嗎?
2016年我給自己制定了一個挑戰:打造一個像鋼鐵俠裡 Jarvis 那樣的家庭AI助手。

我的目的是瞭解人工智能發展的現狀。雖然人工智能已經比人們能察覺到的要先進得多,但是依然還有很長的路要走。通過完成這些挑戰,我不僅熟悉了Facebook的工程師們使用的內部技術,而且還對智能家居有了全面的瞭解。

在這一年裡,我打造了一個可以通過手機和電腦進行對話的AI系統。它能夠控制我家裡的燈光、溫度、電器、音樂和安防系統,而且這個AI還能瞭解我的品味和習慣,可以學習新的詞彙和概念,甚至可以逗我的女兒Max開心。Jarvis是由Python、PHP和Objective C編寫的,運用了包括自然語言處理、語音識別、面部識別以及強化學習在內的人工智能技術。

在本文中,我將會解釋我創建的Jarvis到底是什麼,以及我從中學到了什麼。

程序員是吃青春飯嗎?
一、開始,把家變成互聯網

從某些方面來說,這個挑戰比我預想的要容易。實際上,我給自己制定的跑步計劃(2016年跑365公里)累計花費的時間比這還更多。不過,將我家裡所有的系統全部連接起來,並讓系統之間互相通信,卻比我預想的要難得多。

在可以構建AI之前,我必須首先編寫代碼將使用不同語言和協議的系統連接起來。我們的電燈、恆溫器和門使用的是Crestron系統,音樂流媒體Spotify搭配的是Sonos音箱,還有一臺三星電視機,以及為Max準備的Nest Cam攝像頭,當然,我的工作室連接的是Facebook的系統。為了能夠通過我的電腦發佈諸如開燈、播放歌曲之類的指令,我不得不對其中一些系統的API進行逆向開發。

此外,大多數的電器甚至都不能連接到互聯網。雖然通過支持連接到互聯網、可遠程控制的電源開關能夠控制其中的一些電器,但是這還遠遠不夠。比如,如果你希望烤麵包機能在接通電源的時候自動開始烤麵包,但你很難找到能夠讓你在斷電的情況下將麵包按下去的烤麵包機。最終,我最終找到了一個1950年代的古董烤麵包機,然後把它插在了智能插座上。同樣的,要想連接Beast(扎克伯格的寵物狗)的自動投食器,則需要涉及到硬件改造工作。

對於Jarvis這樣的助手來說,要想能夠幫助更多的人控制家裡的一切,我們需要將更多的設備連接起來。而業界也需要開發通用的API和標準,讓設備與設備之間能相互通信。

二、自然語言

程序員是吃青春飯嗎?
當我寫完能夠讓我的電腦控制我家的代碼之後,下一步就是讓我和電腦之間的溝通變得像日常對話那樣自然。這裡的過程分為兩步:首先實現通過文本信息來對話,然後增加將語音轉錄成文本的功能。

從尋找關鍵詞開始,比如通過“臥室”、“燈”、“開”這幾個關鍵字,它可以知道我是在告訴它把臥室的燈打開。很快,我就發現它需要理解同義詞,“family room”和“living room”在我們家裡指的是同一個房間,這就需要建立一種能教它學習新的詞彙和概念的方法。

理解語境對任何AI來說都非常重要。例如,當我告訴它打開我辦公室裡的空調時,這和Priscilla說同樣的話的意思完全不同。這造成了一些混亂。比如,當你在沒有指定房間的情況下讓它把燈調暗一點或者播放一首歌的時候,如果它不知道你在哪個房間,那麼很可能打開Max房間裡的播放器,然後在我們希望她能打個小盹的時候把她吵醒。

音樂是一個更有趣也更復雜的自然語言領域。對於一個識別關鍵字的系統來說,有太多的藝術家、歌曲、專輯,因此你可以問的東西也非常寬泛。電燈只能關閉或打開,然而當你說“play XX(播放XX歌曲)”時,即使細微的差別也可能意味很多不同的意思。比如,“play someone like you(播放歌曲someone like you)”,“play someone like Adele(播放和Adele風格相似的歌手的歌曲)”,“play some Adele(播放Adele的歌)”,這些聽起來很相似,但其實是完全不同的指令。第一個指令是播放一首特定的歌曲,第二個是推薦一位歌手,第三個則是創建一個Adele最好聽的歌曲播放列表。不過,通過一個有反饋的系統,AI可以學習到這些差異。

一個AI系統對語境的瞭解越多,就能越好地處理開放式問題。我經常只對Jarvis說“play me some music(播放音樂)”,它會查看我過去的聽歌習慣,大部分情況下它播放的都是我想聽的歌。如果它播的歌不符合當時的氣氛,我可以直接告訴它,比如,“這不是舒緩的,播放一些舒緩的音樂”,它就會學習到那首歌的分類,並立即做出調整。而且它也知道是我在跟它說話,還是Priscilla(扎克伯格的妻子)在跟它說話,這樣它就可以根據我們的口味推薦不同的歌曲。相比非常具體的指令,我發現我們更常使用開放式的命令。就我所知,目前還沒有哪個商業化的產品在做這個,這應該是一個巨大的機會。

三、視覺和麵部識別

程序員是吃青春飯嗎?
人類三分之一的大腦都負責視覺,而AI在理解圖像和視頻方面也有很多難題。這些難題包括追蹤(比如Max在嬰兒床中移動是不是說明她醒了?),對象識別(例如房間裡的是Beast還是一塊毯子(注:Beast是一條長得很像地毯的寵物狗)),以及面部識別(例如誰在門口?)。

面部識別是對象識別中一個特別難的問題,因為大部分人的長相是很相似的,相比之下,區分任意兩個不同的物體,比如一個三明治和一座房子,就簡單得多。但是Facebook在面部識別方面的技術能力很強,它能夠很輕易地識別你照片庫中的朋友。當你的朋友站在你的門前的時候,通過面部識別,AI系統就能決定是否讓他進來。

為了做到這一點,我在門口裝了好幾個攝像頭,確保各個角度都能夠捕獲圖像。AI系統目前還不能識別後腦勺,因此多裝幾個攝像頭可以確保我們可以看到那個人的臉。我設置了一個簡單的服務器,可以持續檢查攝像頭的傳回的圖像,並執行以下兩個程序:

  • 首先,通過面部檢測,來查看是否有人出現在攝像頭的視野之中,如果它發現人臉出現在畫面之中,就會執行面部識別程序來確定這個人是誰。

  • 一旦確定這個人是誰,就會檢查一個列表來確定他是不是我正在等的人。如果是,就會讓他進來並通知我,客人已經到了。

這種類型的視覺AI系統在很多地方都非常有用:比如知道Max什麼時候醒,這樣就可以開始播放音樂或者普通話課程;知道我們在哪個房間裡,這樣就可以在不提供位置的情況下,正確地執行沒有上下文的類似開燈這樣的指令。和AI其他的方面一樣,當把視覺提供的信息與其他能力結合起來時就能發揮最大的功效。比如知道哪些是你的朋友,以及如何在他們到你家的時候給他們開門。當AI系統擁有的信息量越多,它就會變得越聰明。

四、Messenger Bot

程序員是吃青春飯嗎?

雖然我在電腦上編寫Jarvis,但為了讓它更有用,我希望不管在任何地方都能和它對話。這意味著我必須通過我的手機,而不是放在家裡的某個設備來和它進行通信。

我開始建立一個Messenger Bot來和Jarvis對話,這比開發一個單獨的App要容易地多。Messenger為開發自動程序提供了一個簡易的框架,它可以自動幫你完成很多事情,比如可以跨平臺(iOS和Android)工作,支持文字、圖像和語音內容,推送通知,管理不同人的身份和權限等等。

我可以通過Messenger Bot發送任何的文本信息,發送的文本會被立即傳送到Jarvis服務器上並被處理。我也可以發送語音片段,服務器會將語音準換成文本,然後執行指令。如果在我不在家的時候有人到訪,Jarvis會給我發送一張圖片,然後告訴我是誰來了。

有一點我沒想到的是,雖然我既可以通過語音也可以通過文字來和Jarvis對話,但是我使用文字的機率比我預想的多得多。大多數情況下,打字不會干擾到我身邊的人。如果我做的事涉及所有人,比如為大家播放音樂,那麼我會選擇語音,但是大多數時候用打字更合適。同樣的,當Jarvis和我溝通的時候,我更希望收到文本信息而不是語音。因為聲音有時候會突然打擾到你,而文本則讓你可以在想看的時候再看。就算是我對著Jarvis發佈語音指令,但是如過我正在使用手機,我會更喜歡它通過文本信息來回應。

這種選擇文字而不是語音交流方式的偏好,其實跟Messenger和Whatsapp上文字消息比語音消息更收歡迎這一現象是吻合的。這表明,未來的AI產品不能只專注語音交互,私人消息界面也應該是標配。如果你想讓AI能夠通過文本溝通,那麼選用像Messenger這樣的平臺比你從零開始開發一個App要容易的多。我一直以來都對AI機器人持樂觀態度,當我開發了Jarvis之後,這種交互的體驗讓我更相信智能家庭的未來應該是像Jarvis這樣的

五、聲音和語音識別

程序員是吃青春飯嗎?
儘管我認為文本在與AI溝通方面比人類意識到的更加重要,但是語音也仍將佔據非常重要的地位。語音最大的好處是它的速度。你不需要掏出你的手機,打開App,然後開始打字,你需要做的僅僅是說話。

為了能夠讓Jarvis能夠擁有語音識別功能,我需要為Jarvis建一個能在後臺採集語音信息的的App。雖然Messenger Bot能夠做很多事,但是要實現語音交互對它來說還是比較困難的。我設計的Jarvis專用App能夠讓Jarvis在我把手機放在桌上的時候,聽我說話。我可以在各個房間裡都放上手機,這樣我就可以在每個房間都可以和Jarvis對話了。雖然這和亞馬遜的Echo很相似,但是根據我的經驗,當我不在家的時候會經常用手機和Jarvis對話。因此把手機當作主要的交互入口比家庭設備更可靠。我已經開發了iOS版的Jarvis App,下一步計劃開發安卓版的App。從2012年起我就沒有開發過iOS的App了,在這次的開發過程中,Facebook為開發App和語音識別提供的工具鏈讓我印象非常深刻。

雖然語音識別系統最近已經有了很大的進步,但是目前還沒有哪一個AI系統在理解會話語言方面做的足夠好。語音識別依賴於聽懂你的話並預測你將要說什麼,因此相比非結構化語言,結構化的語言要容易理解的多。

語音識別系統,或者更廣泛的機器學習系統,都有其限制,它們往往更適用於特定的問題。比如理解人和機器的對話與理解人和人之間對話是不同的。當你用來自谷歌的人機對話數據來訓練機器學習系統,那麼這個機器學習系統在理解Facebook上人與人之間對話的表現將會相對較差。訓練一個能夠只需要近距離對話的AI,和訓練一個在更大的空間範圍內使用的AI(比如Echo),也有很大的不同。這些系統的限制很多,這意味著我們離更通用的AI系統還有很大的距離。

從心理學層面上來說,一旦你對著一個AI說話,那麼就會比你使用文本或者圖形界面與計算機交互要投入更多感情。我觀察到的很有意思的一點是,當我為Jarvis 植入聲音之後,我會希望它能更幽默一些。其中一部分原因是因為它現在可以與Max對話,我希望對話有趣一些,能夠逗Max開心。另一部分原因感覺它一直在我們身邊。我教了他一些有趣的小遊戲,比如我和Priscilla可以問它我們應該撓誰的癢癢,他會隨機告訴我們一個名字:Max或者Beast。我還會增加一些經典臺詞,比如“對不起,Priscilla。恐怕我做不到”。

在語音這一領域還有很多需要探索。AI技術剛剛變得能夠成為一款偉大產品的基礎,在未來的幾年它會變得越來越好。同時,我認為最好的產品應該可以隨身攜帶而且可以進行私密性對話的。

六、Facebook的工作環境

作為Facebook的CEO,我並沒有多少時間寫代碼,但我從未停止過編程。不過這些日子以來我主要是在創建我的個人項目Jarvis。我本來只希望今年能夠了解一些AI的現狀和進展,但是我發現學到的遠遠超出了我的預期,感覺自己就像是Facebook的一個工程師。

我在Facebook的代碼庫中升級的經驗可能和大多數新的工程師類似。我們的代碼結構組織非常好,不管是臉部識別、語音識別、Messenger Bot框架(messenger.com/platform)還是iOS開發。你很容易找到你想要的。為了能夠在GitHub的Atom文本編輯器上使用,我們創建了開源包——基於Atom的Nuclide(github.com/facebook/nuclide),這讓開發工作變得更容易。我們也創建了Buck系統(buckbuild.com)來開發大型項目,這節省了我很多時間。我們開源的文本分類工具FastText(github.com/facebookresearch/fastText) 也值得一看。如果你對開發AI也有興趣的話,也可以看看Facebook Research(github.con/facebookresearch)在Github上的所有開源項目。

”快速行動“是我們的價值觀之一。這意味著到Facebook來的人創建App的速度必須比在其他任何地方都快,包括自主開發。到我們這來的員工可以使用我們的基礎設施和AI工具來創建那些依靠自己需要很長時間的東西。創建讓工程更高效的內部工具對任何的科技公司來說都是非常重要的,而Facebook在對待這一問題上更加重視。在這裡,我要給我們的團隊一個大大的贊!

七、接下來的工作

儘管這個挑戰已經結束了,但我仍將繼續優化Jarvis,因為我每天都在使用它,而且常常發現我想添加的新功能。

近期,下一步工作應該是創建安卓App,在更多的房間裡放置Jarvis語音終端,連接更多的家電。希望未來能夠用Jarvis來控制我的Big Green Egg碳爐。

未來,我還會探索如何教會Jarvis如何自主學習的技能,而不是讓我去教它執行特定的任務。如果我要花費一年的時間來應對這個挑戰,那麼我會專注於理解學習本身這個過程是如何運作的。

最後,隨著時間的推移,如果能夠找到方法讓Jarvis可以讓全世界的人都使用將會更有趣。我考慮過開源我的代碼,但是目前Jarvis跟我自己的家、家裡的電器以及網絡設置的聯繫太緊密了。如果我能創建一個能夠將更多通用的智能家庭功能集合起來的layer,或許那時候我會開源。當然,那可能回事創建新產品的好的基礎。

八、結語

創建Jarvis是一個有趣的智力挑戰。它給了我在創建AI工具方面的直接經驗,而AI對我們的未來非常重要。

我曾經預測,在未來的5-10年內,我們的AI系統將比人類的感官更加準確——視覺、聽覺、觸覺,以及其他的領域,比如語言等。

與此同時,我們距離了解學習的本質仍然很遙遠。我今年所做的一切,包括自然語言、面部識別、語音識別等等,都是基於基礎模式識別技術的變體。我們知道如何給一臺計算機很多例子來讓它的識別更精確,但是我們仍然不知道將從一個領域中獲得的想法應用到另一個完全不同的領域中去。

今年,我在構建Jarvis上花了差不多100個小時。現在我有了一個能理解我而且能為我做很多事的系統。但是就算我花1000個小時,估計也打造不出一個能完全自主學習新技能的系統。除非我在AI技術上取得了基礎性的突破。

在種程度上,AI離我們很近,也離我們很遠。但是AI未來能夠能夠做的事會超出很多人的預期:駕駛汽車,治療疾病,發現行星,理解媒體。這些都會對我們所處的世界產生重大影響,但是我們仍然需要弄清楚,到底什麼才是真正的智慧。

總之,這是一個很棒的挑戰。它教會我的東西比我預期的要多得多。我不僅瞭解了AI,還了解到了家居自動化和Facebook內部技術的知識。這正是這些有這些挑戰有趣的地方。在未來的幾周裡,我會分享我給自己制定的2017年的挑戰。

沉睡的火
2017-02-06

什麼是青春飯呢?青春飯很多都是在四十歲左右,能力和職位未達到一定高度,導致本身缺乏競爭力,進而導致中年危機出現。這個不專屬於程序員,很多行業都會有中年危機的問題。那麼是不是程序員更容易中年危機呢?理論上有這個可能,IT行業變化太快,可能等到中年的時候,知識已經跟不上了。可是感覺這又是一個偽命題,從美國來看,有經驗的好程序員還是稀缺資源,很多時候,公司需要的不只是有能力做事情的人,更需要能把事情做成的人,這個經驗很關鍵。

相關推薦

推薦中...