什么是技术情怀
都說編程是一門藝術,優秀工程師寫的代碼往往賞心悅目,好代碼源于好情懷,好東西自然需要分享出來。回想阿里內部曾組織過一個很有情懷的大型代碼分享活動——“向代碼致敬,尋找你的第83行代碼”,對外以《碼出高效》的稿費成立的第83行計劃,旨在幫助盲人工程師和山區優秀學生。今天是8月3日,也是《Java開發手冊(嵩山版)》發布的日子,在這個數字高度匹配的日子里,我們開懷暢聊一下技術情懷。
工程師是什么樣的人?
工程師是一個特殊的群體,在阿里巴巴的占比越來越高,預估即將超過50%,在未來的企業競爭格局中,技術發揮著越來越重要的作用,向技術要紅利,向技術要未來。個人以為在技術拓展商業邊界之外,需要額外加一條:技術拓展價值邊界。這個價值邊界的內延是指技術的進無止境,讓工程師的人生價值不斷升華,不斷挖掘自己內心深處的Power,不斷提升內心對這份事業的執著感和成就感。價值邊界的中延是指打造個人的技術影響力,形成獨特的技術品牌,影響到身邊的人。價值邊界的外延是指有一天你突然發現,不斷開拓創新的技術已經影響到世界的每一個角落,甚至是引導一代人的成長。
那工程師又是什么樣的用戶畫像?悶騷、男性為主、理性思維、人不狠,話不多、更愿意人機互動、自我中心感偏強烈、對代碼有著強烈的自尊感、對于別人的代碼偶爾會有著發自內心的鄙視感。入職一家新公司并在電腦面前看別人的代碼時,大部分人的第一反應:臟、亂、差,很少有人覺得別人的代碼寫得妙筆生花,通俗易懂。所以重構往往是技術同學的情結,重構的理由能夠講得天花亂墜,重構的頻率隨著人員頻繁更替越來越高。
如何讓工程師們成為更好的自己,成了一個繞不開的話題。在阿里巴巴,把人的文化想象成一個同心圓,對于每個人的最內核價值要求是公司的六脈神劍,次外層是人才觀,即:樂觀、皮實、聰明、自省,其中我最看重的是聰明和自省。聰明指的是打開自己的能力和閱讀別人的能力,計算機專業的畢業生智商自然不低,甚至是天賦異稟,但是恃才傲物,不打開自己,不共享優秀的經驗和代碼,無法使個人的優秀產生集體化學反應;不閱讀別人,無法高效地與他人合作,從而影響到組織的效能。至于自省,如果你覺得肯定、一定、絕對是對的,一般是錯誤的開始,懂得自省,不是否定自己,而是下一個成功的開始。單純的價值觀和人才觀不足以驅動工程師這個群體更好地進步與創新,那么我們需要一種更立體的技術情懷來驅動個體、團隊、組織繼續前行。
技術情懷是什么?
情懷是近年的熱詞,可是誰也沒有清晰地解釋過情懷是什么。個人認為情懷是一種難舍難分的感情,即使風雨兼程,依然故我,堅信雨后彩虹會更美。退一步說,即使沒有彩虹出現,享受雨后帶著泥土芬芳的清新空氣,享受追求夢想的歷程就好,用武俠文化來說,情懷是行俠仗義之于江湖,快意瀟灑之于恩仇,大江南北,俠之大者,為國為民;俠之小者,為紅顏,為知己。
技術情懷是一種匠心,是一個偏務虛的詞語,工程師是偏向于數據驅動的群體,希望能夠用數據來量化定義,能夠明確符合什么特質,達到什么程度的人,才是具有技術情懷的。我嘗試從三個維度來解讀一下技術情懷,總結成三個關鍵詞:熱愛、思考、卓越。熱愛是一種源動力,思考是一個過程,卓越是一個結果。如果要給這三個詞加一個定語,以使技術情懷更加立體、清晰地被解讀,那這個定語就是:奉獻式的熱愛,主動式的思考,極致式的卓越。對于工程師來說,即使他熱愛架構設計,熱愛寫代碼,并且能寫好代碼,但是他不奉獻不分享,同樣會使技術視野變得很窄。思考如果是被動式的,是主管、業務方叫你思考,那么這種思考有時候往往是缺乏想象力和創新力的。卓越如果有頂點,那么容易固步自封。
奉獻式的熱愛
熱愛,是一種興趣,一種愛好。奉獻,這種興趣和愛好,能夠普惠他人,造福社會,有著吃虧是福的豪氣。有時候技術總是孤獨的,我寫了幾千頁的總結,這些總結都是深夜、周末、假期中,一個人走過來的。有時候被挑戰、被否定、自己難受的時候,蹲下來,抱抱委屈的自己,便能有所緩和,繼續自己的追求和熱情。因此,有人說我的花名是孤獨的盡頭,簡稱孤盡(真正釋義是風清揚的“獨孤九劍,破盡天下武功”的說法)。
人們通常有兩個常見的毛病:患得,患失。而熱愛一件事情,除了執著,不會在得失上顧慮太多。很多人覺得《Java開發手冊》是阿里巴巴KPI的產物,我并不反對KPI,但內心的熱愛,與這些暫時的得失又有什么關系呢?馬總說除了智商,情商,還有一種叫愛商——愛家人、愛戀人、愛朋友。擴展一下,熱愛自己的事業,并且這種熱愛不會因為短期的質疑、否定而放棄。
經常有人問我,編寫和推廣《Java開發手冊》如此費心費力,什么樣的信念讓我如此執著?陸川的電影《可可西里》印象非常深刻,很多事情因為堅持而有希望,而不是有希望才堅持。為可可西里自然保護區的設立做過巨大貢獻的索南達杰,畢生都獻給了藏羚羊的保護,放棄了很多,甚至獻出了他寶貴的生命,人因為信念而堅持體現出人類的偉大。忽悠是把我不相信的東西說給大家聽,但是信念是把相信的東西用行動傳遞給大家。手冊的愿景是碼出高效,碼出質量,碼出未來,幫助到更多的人,推進世界的規約文化進步,能夠覺得協同開發是一件幸福的事情,開發是一件有創造力的事情,開發是一件能夠改變世界的事情,而不是為了瑣碎規則的意見相左而消耗巨大的能量,影響了算法效率和架構設計的優雅性。
主動式的思考
很多人以為,《Java開發手冊》只是信息收集整理后的文檔而已,代碼規約的70%內容完全出自平時個人的總結和技術提煉。冰凍三尺,絕非一日之寒,展示給大家的小板凳,已經是第n只,并且還在不斷地改進中,不斷地自我思考中,去提升自己對知識的認知層次和抽象水平。
我習慣去做摘記,從入職第一天開始,總共沉淀了近2300頁的筆記,分為四個文檔,搜集、整理、專題、哲學。知識快速進入搜集區,包括聽到的、看到的、疑惑的,不斷地去思考,不斷地去清理、復核、總結之后,沉淀于整理區,這是點維度的總結。把這些點的知識串成一個專題是線維度的總結。而最后的知識上升到哲學方法論級別,是面維度的總結。有一些至今沒有搞清楚的知識點,在搜集區已經沉淀了多年,依然會不斷地去Review一下。所以,我對于知識的記憶非常清晰,因為那是不斷進行主動式思考的結果。經過一段時間的整理之后,形成某個知識體系,比如,高并發處理、Docker技巧、函數式編程等,會形成一個新的文檔——體系化總結。而最后的思考就是把知識體系抽象成哲學思維,任何問題上升到高層抽象就是哲學知識。主動沉淀、主動思考、主動提煉,才能使我們的技術境界不斷升華。
極致式的卓越
對客戶我們要求Stay humble,對技術我們提倡Keep ambitious,敢于卓越,敢于極致。極致與卓越,似乎是一個意思,即出類拔萃,超出期望。極致式的卓越,是把卓越再往前提升一個等級。如果一個人處在一個無人可以比擬的高度上,那么他要學會自我驅動,持續進步,不但卓越,還要追求個人內心極致的追求。“自信人生二百年,會當水擊三千里”,堅持成就更好的公司,更好的未來,自然會成就更好的自己。
對于寫代碼有極致追求的人,總會不斷地去Review自己的代碼,并且和同事進行Code Review,極致式地追求代碼的清晰、可讀性。追求到極致,就是能夠有9行完成的代碼,堅決不寫10行;能夠寫出50ms的接口,堅決不寫成100ms。常常Review一下自己的代碼是否符合開閉原則,是否有利于維護和擴展。
希望《Java開發手冊(嵩山版)》是陪伴大家的床頭書,地鐵中翻一下神清氣爽的工具書,內功修煉的武功秘籍。因為卓越,所以經典,只有這樣百尺竿頭,才能更進一步。有人曾經留言說到這個手冊與星爺的電影一樣經典,我真的非常感動。追求卓越,追求極致式的卓越,是技術情懷的核心。
《碼出高效》的寫作是在深度拷打我的情懷和使命感,中間的痛楚與質疑,讓自己的內心一度懷疑寫書是一件錯誤的事情,忽略了時間和空間,忽略了家人,忽略了身體。如果一定要給技術情懷加一個續的話,那么我希望大家響應毛爺爺1952年的號召:發展體育運動,增強人民體質。把知識傳播給大家,幫助到一代程序員的成長,需要奉獻、需要不斷地精進、需要不斷地深度思考。
嵩山歸來
天龍八部給我最深的印象是掃地僧從容淡定地在彈指之間制服兩大絕世高手,功力之高深莫測,清幽現云山,虛靜出內功,是一種武學情懷。《Java開發手冊》從華山到泰山,一路星夜兼程,今天的嵩山版經過不斷地精進與苦練,已經日臻完美,它的內功提升之處在于:
- 第一、增加前后端規約。打通前后端的任督二脈,形成前后端協作開發的共識。
- 第二、重畫分層圖例。新圖更加突出分層的清晰度,并且去掉圖中有歧義的向上箭頭。
- 第三、修正BigDecimal的equals錯誤。3.0與3.00在我們的常規認知里是相等的,但是equals比較的結果由于考慮到精度因素,所以返回為false。
- 第四、修正泰山版的部分文字描述錯誤。
下載《Java開發手冊(嵩山版)》 “點擊這里”,立即下載吧!
原文鏈接:https://developer.aliyun.com/article/769408?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
- 上一篇: 图灵“亲自”给你讲人工智能
- 下一篇: AI技术已达如此高度:去码、上色6到飞起