計算機科學家Erik Meijer眼中的Hacker Way工作方式
英文原文:Erik Meijer’s Hacker’s Way
九月份在 GoTo 2015 大會上,和函數式編程、反應式異步編程有著緊密關聯的,響當當的計算機科學家 Erik Meijer 在大會上與參會者分享了自己在接下來人生里最后幾年的規劃和打算,包括,他是如何看待自己的癌癥診斷的,如何改變自己的生活方式。此外,還不忘跟大家分享他所理解的“Hacker Way”。
Meijer 告訴在場的聽眾,他于 2013 年離開了工作 13 年的微軟,并懷揣著“讓世界異步起來、互動起來”的目標創建了自己的公司——Applied Duality。他第一次跟 非死book 合作也是跟 Hack 編程語言有關,他說這是一個 PHP 精簡版的編程語言,目的是賦予開發者一個函數式范式編程體驗。后來,Meijer 還在 2014 年的時候,幫助谷歌 Dart 編程語言添加了支持異步/等待和 stream 流媒體技術。
然而,不幸很快降臨到他的頭上,在 2014 年的圣誕節前夕,Meijer 被診斷為癌癥,這無疑是給他這充滿斗志的生命畫上了句號。一個多么令人扼腕的消息。由于治療需要,Meijer 在重癥監護病房里呆了五天。他說,在病房里的那幾天感覺很奇怪,如果可以的話,自己很想“就像一縷清風一樣飄離而去”。之后,離開重癥監護室回到家里,開始了他的腫瘤治療之路。
Meijer 后來回憶說,生活并沒有什么變化,變化的是自己的心態,他花了六個月的時間才將自己帶回到正常生活節奏中。在這段時間里,他把剩下的時間看的無比珍貴,并把這樣的機會留給自己重新審視自己的生活,徹底思考自己接下來該做什么,如何規劃自己的寶貴時間:
這件事之后,我一直在想一個問題:我能用我所掌握的技術真正的為人們做些什么?我需要一個真正的機會來幫助現實世界中最需要幫助的人。或者說,我特別想為這個世界留下自己的人生遺產。最近發生在歐洲大規模難民涌入事件我想很多人都已經看到了,這些難民通過 非死book 等一些社交工具來尋找自己的出路,來掌控自己的命運。我很震撼,這樣的舉動也是很驚人的,因為將這個世界連接起來的小工具已經真的影響到了正常人的生死攸關決定了。
所以,當扎克伯格邀請他加入 非死book 致力于從事將整個地球上每個角落連接起來的工作時,Meijer 欣然接受了。
連接世界這個任務給 Meijer 提供了一個很好的機會來進行他最喜歡的話題:是用“推”的方式,還是用“拉”的方式將人們連接到這個計劃里?他說,如果你真的想和世界保持同步,最好用 “推”的方式,即快速反應。而“拉”的方式是一種比較被動的方式,不管是在線上還是在線下,都會在程序里有很多阻塞點,從而使其效率降低。其實這兩者之間是存在相關性的,非死book 在用戶規模上已經足夠支持各種連接方式,換句話說,目前單日 10 億的交流用戶量可以說是里程碑式的效果。但是 Meijer 說,這只是個開始而已,要想獲得連接世界的目的,用戶數量必須有一個數量級的增長,唯一的手段就是“打動用戶的心!”
Meijer 說,在用戶量級的增長上有一個關鍵性的理念,那就是全面“推”出去,走出去,而不是“引”進來。當然,這需要對整個技術流程中的任何一個小的節點進行全面把控,以確保系統當中沒有哪個環節是起到“拉”的作用,因為這樣的環節肯定會成為一個致命的阻塞點。Meijer 說,其實 非死book 內部就有這樣的案例,這個例子始源于他們開源的 200 多項技術當中,從編程語言到數據庫,從虛擬機到前端框架等等。這說明,非死book 控制住了所有的堆棧。而另一個案例是微軟公司,微軟竭盡所能想要將在框架中取得重大意義的異步/等待技術應用在各個地方,以確保能夠起到“拉”效應的組件丟失。
Meijer 在演講結束之前主要談了一些編程方法論,以及 非死book 的 Hacker Way。在 Meijer 看來,像 Scrum 開發過程或敏捷開發這種方式,確實能將一些“低學歷的員工“留在公司框架中,所以他們創造出來的產品在質量上只能算是中等水平。相反,如果采用 Hacker Way 工作方法,也就是聘用有經驗的、能夠賦予特權的程序員的話,他們本身就知道如何在節省審批流程的情況寫創建有用的東西,這樣的人用起來很輕松。 Meijer 還引用了扎克伯格在 非死book 申請 IPO 的公開信中對“黑客咒語”的描述,“代碼比毫無意義的爭論更有說服力”。因為代碼的價值并不會因為你怎么討論它而改變,也不會因為你畫了一個 UML 圖就能對它所能產生的效果有所改變。Meijer 說,非死book 的 Hacker Way 工作方式有五個眾所周知的原理:
- 關注后果:你應該將你的聚焦點放在解決重大問題之后產生了哪些最大影響及結果。
- 行動要快速:為自己構建能夠快速學習的方法,特別是在嘗試采取一些有可能是唯一解決方法時,不管有用與否,都要快速決斷。
- 大膽冒險:有嘗試,就有失敗的可能性,接受失敗是最現實的做法。真正的風險是不敢去嘗試冒險。
- 保持開放:其實很多硅谷公司在這一方面做的都很好,例如谷歌和 非死book,一直努力的培養員工在信息上做到公開透明。
- 建立價值觀:你所做的工作應該在整個世界上都要有影響力,而不僅僅是為了創建一個公司而工作。
總的來說,Hacker Way 就是拿一個系統的局限性來做實驗,采取的方法當然不是公認的、大家都遵守的規則,而是自己的隨意所為。用 Meijer 的話說,黑客就是不喜歡官僚,不喜歡虛偽,更不喜歡無能、無聊之輩。
越是關鍵的、重要的東西,越容易被黑客盯上!
據 Meijer 的說法,Hacker Way 工作方式跟 Scrum 開發原則幾乎形成了鮮明的對照,首先是對產品所有者的定義就不一樣,Hacker Way 工作法就是在時間表上不斷的沖刺,用一種與時間賽跑的方式力求把事情完成。而 Scrum 強調的是高度規范,工作流程“讀起來就像一本法律書”,要求“用各種嚴苛的規范準則來確保程序員遵守開發要求”。Meijer 還說,Scrum 項目負責人看上去就像是一個牧羊人,并沒有充分挖掘出程序員的潛力,事實上,他們真的應該像養蜂人那樣讓程序員自主的執行他們的工作。這是創造代碼,所以要確保他們集中精力在重要的事情上,而不是被一些瑣碎的事情占用太多的腦力。