我在菊場這一年

王下邀月熊發表於2018-04-10

尚未入職的時候我就會想,這篇文章的標題會是怎樣,一年?兩年?更短,或者更長。塵埃落定,雖只有大半年的時間,四捨五入下,還是寫成了一年。2016 年中,彼時尚未畢業,也尚未入職,耳聞一些訊息,寫下了懷著被拋棄的恐懼在奮鬥中前行;現在看來,也不過是人云亦云罷了。我讀書少,卻也是發自內心的敬佩公司和團隊;這是一個偉大的公司,有著一致的目標與堅韌的團隊,能成他人不能之事。不過其模式確實也難以複製,特別是對於初創團隊,某些優秀的特性反而會是致命毒藥。

入職之前,斷斷續續也有個幾年不成氣候的數十人的創業型技術團隊協調經驗,也算是帶著許多的疑問與求教的心加入;大半年下來,印象或者說感悟最深的,當屬“研發效能”與“組織氣氛”這兩個詞。不同公司的模式,價值觀可能是截然不同的,個人淺見,菊場能夠以其強力的目標管理與組織氣氛,磨平稜角,將不同能力、背景的人綁合在一起,形成強大戰鬥力。而一些公司則是會更強調選擇合適的人,充分發揮個人的主觀能動性,最終形成快速突擊的能力。汝之蜜糖,彼之砒霜,不同背景、能力、想法的人的最佳選擇自然也是不一樣的,適合的場所也是不一樣;對於大部分普通人而言,儘量讓自己順勢而行,莫逆流而上。

技術人員可能會陷入自己的理想國,從四年前初創團隊開始,不斷地與真實進行磨合,認識到世界,或者說是人的多樣性。很多時候並無法做最好的選擇,只能做最合適的選擇;存在即有其合理性,面對現實,忠於理想,命運還是要掌握在自己手裡。

研發效能是廣泛而又直觀的概念,筆者目前以該詞來度量某個研發團隊的真實價值,在下文有詳細闡述。而組織氣氛,卻是筆者之前尚未認真考慮或面對過的;從學校裡出來,沒經歷過正規軍,可能會覺得大家每天開開心心就足夠了。與經歷過物質較為匱乏年代的 80 後相比,對於 90 後一代管理的複雜性也在不斷增加;物質生活的相對富裕使得並不能簡單的物質激勵就能解決一切問題,我們可能會考慮個人的興趣,考慮未來的空間等等。這也就意味著針對合適的崗位,招聘合適的人也愈發困難;才不配位,對團隊與個人都有壓力,太多優秀則又難以安定,往往也會給團隊帶來噪音,使得難以力出一孔。從工作本身,無論喜歡或者排斥,幹好本職工作都應該是程式設計師的基本素養。我也看到了些許因為環境的不合適,或者期望落空導致的消極與抵抗,不利於自己,也不利於團隊。人生苦短,及時發洩,不喜歡就轉換方向,何必怨天尤人,即委屈了自己,也委屈了他人。

時間尚短,感慨不多,本文也聊為註腳,提醒自己莫忘所得。下文是筆者的 Awesome Coder 的導讀語,加在此處也作為筆者對於研發效能的淺述。

在這個知識爆炸與終身學習/碎片化學習為主的時代,我們面臨的問題之一就是如何進行有效學習,不僅能有效平衡廣度與深度,並且能真正的積澱下來,提升自己的研發效能。筆者個人淺論,技術能力的培養主要分為三個方面:知識廣度,程式設計能力與知識深度。

所謂知識廣度,即是為實際問題選擇合適的解決方案的能力,廣義來說也是眼界與格局的表現。它並不拘泥於某個技術方向或者行業領域,而需要對傳統/流行的各類語言、工具、框架、庫、服務等有一定的認識;能夠明晰各個方案的優劣,並在較高的層次(High Level)描述相關原理。知識廣度的擴充與保持需要建立在龐大的閱讀量與知識沉澱能力上,筆者習慣利用碎片時間瀏覽 HN, Reddit, Medium, Twitter 來了解資訊文章,在維護 Frontend Weekly, 每週閱讀清單與前端開發週報的過程中也不斷強迫自己去閱讀與探究。另一方面,筆者堅定地即認為,唯有建立符合自己認知方式的知識圖譜,才能有效地沉澱知識,明晰知識邊界並進行不斷地探索。上車伊始,筆者即致力於構建自己的 MindMap, IT 技術圖譜與知識架構,並在數年來不斷維護與重新整理;同時,筆者將日常閱讀、學習與實踐中發掘的優秀的資料,按照知識圖譜中定義的各個領域的知識體系分門別類地存放在 Awesome Links : Guide to Galaxy 中,以方便快速地檢索與查詢。

知識廣度的擴充也並非一蹴而就之事,需得循序漸進,從初窺門徑,到登堂入室,最後融會貫通;筆者這幾年技術視野與能力的變遷,亦可以參考倉庫中的 TechRoad, 技術之路系列文章。另一方面,亂花漸欲迷人眼,太多的碎片化知識反而會使人迷失方向;此時便需要不斷閱讀 Awesome-CS-Books-Warehouse 中收錄的優秀書籍/系列。

所謂程式設計能力,其外在表現之一即是能夠隨時隨地用合適的語言無阻塞地實現某些功能需求,對於常見的語法,介面,演算法,設計模式等能夠做到心隨意動,信手拈來。程式設計能力是提升研發效能的重要保障,於筆者而言也是畢生應該追求的目標與愛好之一。筆者的程式設計能力較弱,日常開發,特別是在多語言多框架並用的場景下,往往會需要不斷地中斷,查詢以繼續工作,也是令我頗為苦惱。筆者目前是致力於完善 Awesome Cheatsheet: 語法速覽, 實踐備忘,從零到一,上手即用,對於日常開發中用到的相關知識的備忘錄/清單進行總結, 快速掌握或者回顧某個語言/框架/工具的語法或使用要點。同時將常用的,有借鑑或者鍛鍊價值的程式碼片,沉澱到 coding-snippets: Code Snippets, DataStructure, Algorithm and DesignPattern Implementations for Several Programming Language, Web, etc. 中。

所謂知識深度,即是能夠對某個方面做到深入瞭解,並且達到融會貫通,洞若觀火,可以隨心所欲地加以擴充套件、優化、創新等改造或變換。這方面則更加的見仁見智,不同的領域與方向對於深度的定義與挖掘方向也是千差萬別。筆者自知能力有限,也不敢妄加評判,根據自己淺薄的認知將常見的工程師成長路徑總結在了 RoadMap, 成長路線圖 中,此外若有興趣可以前往筆者的 Github 筆記倉庫瀏覽指正某些領域的淺薄探究。

感謝,菊場;你好,未來幾年的夥伴們。

相關文章