天天看點

做一件有利于所有前端工程師的事兒

任何一款開源軟體都不會是完美的。

使用過程中遇到問題,有的人會說,這是語言本身的限制;有的人會尋求臨時性的解決方案;還有的索性換個技術棧。

他不一樣,打從2013年開始,隻要是他遇到的庫,使用過程中遇到問題,他會執着地去社群提 pull request 。

一點一滴,就像一個拿着刻刀的工匠,逐漸打磨出完善精密的形狀。

那年被提名為 Node.js Colloborator 的時候,他還隻是個創業公司的小碼農。

如今,他已是前端智能化開源項目 Pipcook 的負責人。

雷姆表示:“前端是一群非常有想象力的開發者,我希望能更多幫助他們發揮這種能力。”

▐ 遊戲、留級與程式設計:誤打誤撞的前端

點進他的 GitHub 首頁,赫然會被頭像裡那個笑得謙遜而溫柔的動漫女孩吸引,淺藍色的頭發輕柔地飄揚開,仿佛給整個部落格頁面吹過一陣輕風。

那是他最喜歡的動漫角色,雷姆。也是他在阿裡的花名,寓意着堅強和溫柔。

做一件有利于所有前端工程師的事兒

成為一名前端工程師,是他從未想過的。

和天才少年從小接觸電腦和代碼的套路不同,雷姆是學無機非金屬材料與工程的,從大二起,他無心上課,沉迷遊戲,甚至因為學分不夠被留級了。從08級1班降到09級1班,以往甚少管學習的父母也急的展開了促膝長談。

故事依然沒有走向 GPA 爆表逆襲的一面。

雷姆喜歡上一個女孩,女孩想做一個網站開店。于是他開始自學 flash,然後學 DW,學 ActionScript 和 jQuery,學着學着有點上頭,他就把做網站的事情給忘了……

後來,他就做了前端。

▐ 左手公司,右手社群:不要給自己設限

雷姆的第一份工作在北京一家創業公司,去了之後才發現并不是前端崗位,主要職責是用 Node.js 寫伺服器,做郵件推送系統。

創業公司比較辛苦,變化也多,遇到的困難超出自己的領域是很常見的事情。

反而是在社群裡的雷姆,可以專心緻志寫自己喜歡的技術,所獲得的認同感和成就感遠高于工作。

雷姆所負責的項目,上線第一天由于缺少嚴謹的測試和稽核流程,在使用者端出現了比較嚴重的問題。“我覺得無論作為開發,還是測試,仿佛是墨菲定律的實踐典範,你覺得不會發生的,就真的會來。”

正逢沮喪的雷姆,機緣巧合在微網誌上認識了一位年齡 50+,在銀行做賬務類工作的老師。這位老師業餘愛好程式設計,同樣的工作,别人做 6 個小時,他自己通過程式設計的方式 2 個小時就能完成,進而有更多時間去學習更多的東西。

“從他的經曆,我感覺到平時的抱怨是自己沒有真的想方設法去解決自己的問題。”

遇到超出範圍的問題的時候,不要用“我隻是一個前端”來逃避。單純地聚焦在這個問題上,從0開始看它,不給自己設限,随時準備好在在程式設計領域學新的東西,慢慢地,就會越懂越多。

這是雷姆最早學會的程式員職場成長法則。

與此同時,他從未停歇在 GitHub、知乎等地的輸出和耕耘,作為 Node.js Collaborator 的貢獻者,他收獲了2.2k 深度使用者粉絲,是大家心中低調的大神。

(雷姆式習慣謙虛:不不不,我不是大神)

▐ “做一件有利于所有前端工程師的事兒”

雷姆的職業生涯兜兜轉轉,他曾抱着“一邊寫碼、一邊旅遊”的夢想做了兼職外包工程師,卻因為旅遊區 WIFI 和位置不好容易斷網,又回歸了全職;他曾因為“丈母娘喜歡大公司名氣”來到了阿裡巴巴機器人公司,又由于項目終止和轉崗,做出了新的職業選擇。

“那時候,我不知道自己應該做什麼。”離開了阿裡,這是雷姆一直在思考的事情。

這種困惑并不是他要不要成為一個前端,而是成為一個前端是為了什麼。

技術并非是一種冷漠的推動生産力的力量,它不僅解決了時代下的生産效率問題,财務利潤問題等,對于技術背後的個體而言,他們每推進的一行代碼,是如何與自身追求的理想價值相關聯的,這是技術背後的動力和溫度。

一開始,雷姆隻是把前端當做一份工作。漸漸地,他真真切切地在 coding 的領域收獲了樂趣。無論多晚下班,他每天都會花時間泡在社群和開發者交流。

“我發現,國内外的前端都是一群非常有想象力的開發者。因為前端的技術相對比較輕,更容易讓開發者實作自己想做的東西。”

彼時,谷歌的深度學習架構 tensorflow 正在流行,雷姆嘗試着在社群寫一個 Node.js 的版本。盡管這個版本的 tensorflow-nodejs 隻能做預測使用,但依然引起了 Node.js 創始人 Ry 以及 jQuery 的作者等不少大牛的關注。

但由于 tensorflow 膠水層的代碼是用 Python寫的,越往深,幾乎全部沉澱在 Python 這邊。雷姆發現,這樣寫下去,幾乎等同于重造,隻好擱置了。

2 年後,雷姆機緣巧合認識了阿裡淘系的甄子老師,甄子提出,“能不能直接從 JS 調用到 Python ?”

聽到這個想法的雷姆瞬間進入了亢奮狀态,當晚便開始自己的搗鼓嘗試。

“越寫越覺得正确,真的可以把這個生态打通!”

認同甄子老師理念的雷姆,再次回到了阿裡,加入了 FX Team,一支緻力于探索和實踐前端智能化領域的隊伍。

做一件有利于所有前端工程師的事兒

雷姆:左二

這一次,他已經非常知道自己的方向了。

“這就是我想做的事情,我希望架橋,我希望降低前端開發者的學習成本,以更低的門檻,去最大化地釋放他們的想象力。”

▐ 開源項目 Pipcook —— “前端工程師的智能化”

知乎上有人質疑,前端非要和 AI 綁定在一起,純屬異想天開的炫技。

“前端要和市場溝通,它是主觀的、動态的,非要搞個什麼智能化,就變得簡單而機械了。”

不同于理所當然可以智能化的後端,在這個新概念的領域裡,大部分人都無法了解,也覺得無法落地。

對于雷姆和開源項目 Pipcook 而言,我們不是做前端的智能化,而是前端工程師的智能化。

“它不是說這個前端頁面裡有多少智能化的東西在裡面,而是我們國家有多少人有使用機器學習去解決問題的能力,Pipcook 就是為此而存在的。”

前端社群可以通過複用 Python,來補充自己生态中的不足,實作從前端工程師向機器學習工程師的轉型的第一步。它是一座橋,連接配接了前端和機器學習。就像雷姆最喜歡的 Node.js 當年,為前端工程師搭起了一座通往服務端的橋。

現在的 Pipcook,依然不是最終最完美的連接配接方式,雷姆和他團隊的夥伴們依然在不斷嘗試,突破新的思考角度,突破新的程式設計方式,希望找到最适合前端進入機器學習的方式。

而前端智能化的落地場景,并不誕生于開源技術的圈定和規劃,而是社群所有充滿了想象力和創造力的前端開發者,将會如何利用這樣新的思考問題的角度,把二者生态連接配接起來,以更有效的方式,去解決更多的問題。

“就是這種慢慢找到目的和答案的感覺,讓我越來越興奮。”

除了 Pipcook 的項目,雷姆在阿裡淘系最有價值的收獲,是找到了技術的立足點。

在社群,技術要受歡迎,要黑科技,要酷,要的是大呼精妙的過瘾和爽感;在淘系,由于業務場景的複雜和豐富,有時候雷姆從技術角度出發覺得理所當然要做的 ABCD 4件事,會被甄子老師一遍又一遍問,目的是什麼,出發點在哪裡,如何讓業務提效或者減少人力……

技術不再是一顆螺絲釘,雷姆開始學着用體系化的視角去看待産品和技術問題,這種将思考的珍珠串成連貫線路的感覺,讓雷姆覺得自己的代碼不飄了,有了真切的立足點,是他工作中另一個亢奮的源泉。

▐ 結語

聊起社群和技術的時候,雷姆的語速總是不自覺地加快,氣息裡都是神采飛揚。

聊起生活裡的瑣碎,雷姆習慣性慢半拍,歪着腦袋想好一會兒才能依稀記起那些時間和地點。

一如他喜歡的動漫角色,妖尾裡的納茲,灼眼的夏娜,他們都是有着清晰理想目标的元氣少年少女,雷姆将自己滿滿的元氣和幹勁兒交給了 coding ,這樣的幸福無可比拟。

他的愛、細心和浪漫同樣交給了 coding 。他曾經将自己的名字和夫人的名字(Yorkie & Babeee),悄悄咪咪寫進測試用例裡,作為一種镌刻,長長久久将名字留在了 GitHub 裡,被無數志同道合的人不經意閱讀與祝福。

“真正的工程師,内心應該是開放而包容的,他們不會糾結于某些概念學不動、要不要學,而是通過實踐和參與,取百家之所長,讓自己的代碼或者軟體,能烙下曆史的烙印,無悔于工程師三個字。”

這是雷姆對 coding 的尊重和執着。

雷姆的 GitHub :

https://github.com/yorkie

附:Pipcook 項目介紹

1.項目位址:

https://github.com/alibaba/pipcook

2.項目介紹

可實作什麼:提供前端可用的視覺和 NLP 能力

可用于哪些場景:Design2Code

運作環境:mac、linux

開發語言:JavaScript、Python

開源協定:Apache 2.0

架構圖:

https://github.com/alibaba/pipcook/issues/30
做一件有利于所有前端工程師的事兒

關注「淘系技術」微信公衆号,一個有溫度有内容的技術社群~

做一件有利于所有前端工程師的事兒

繼續閱讀