18

做一件有利于所有前端工程师的事儿

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ%3D%3D&%3Bmid=2650412163&%3Bidx=1&%3Bsn=0ceac4bcd65335449ed6bf7b867fbd6c
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

A36R3e2.gif!mobile

任何一款开源软件都不会是完美的。

使用过程中遇到问题,有的人会说,这是语言本身的限制;有的人会寻求临时性的解决方案;还有的索性换个技术栈。

他不一样,打从2013年开始,只要是他遇到的库,使用过程中遇到问题,他会执着地去社区提  pull request 。

一点一滴,就像一个拿着刻刀的工匠,逐渐打磨出完善精密的形状。

那年被提名为  Node.js Colloborator 的时候,他还只是个创业公司的小码农。

如今,他已是前端智能化开源项目 Pipcook 的负责人。

雷姆表示:“前端是一群非常有想象力的开发者,我希望能更多帮助他们发挥这种能力。”

▐    游戏、留级与编程:误打误撞的前端

点进他的 GitHub 首页,赫然会被头像里那个笑得谦逊而温柔的动漫女孩吸引,浅蓝色的头发轻柔地飘扬开,仿佛给整个博客页面吹过一阵轻风。

那是他最喜欢的动漫角色,雷姆。也是他在阿里的花名,寓意着坚强和温柔。

EJ3aqan.png!mobile

成为一名前端工程师,是他从未想过的。

和天才少年从小接触电脑和代码的套路不同,雷姆是学无机非金属材料与工程的,从大二起,他无心上课,沉迷游戏,甚至因为学分不够被留级了。 从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,一支致力于探索和实践前端智能化领域的队伍。

YRveieA.png!mobile

雷姆:左二

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

“这就是我想做的事情,我希望架桥,我希望降低前端开发者的学习成本,以更低的门槛,去最大化地释放他们的想象力。”

▐    开源项目 Pipcook —— “前端工程师的智能化”

知乎上有人质疑,前端非要和 AI 绑定在一起,纯属异想天开的炫技。

“前端要和市场沟通,它是主观的、动态的,非要搞个什么智能化,就变得简单而机械了。”

不同于理所当然可以智能化的后端,在这个新概念的领域里,大部分人都无法理解,也觉得无法落地。

对于雷姆和开源项目 Pipcook 而言, 我们不是做前端的智能化,而是前端工程师的智能化。

“它不是说这个前端页面里有多少智能化的东西在里面,而是我们国家有多少人有使用机器学习去解决问题的能力,Pipcook 就是为此而存在的。”

前端社区可以通过复用 Python,来补充自己生态中的不足,实现从前端工程师向机器学习工程师的转型的第一步。它是一座桥,连接了前端和机器学习。就像雷姆最喜欢的 Node.js 当年,为前端工程师搭起了一座通往服务端的桥。

现在的 Pipcook,依然不是最终最完美的连接方式,雷姆和他团队的伙伴们依然在不断尝试,突破新的思考角度,突破新的编程方式,希望找到最适合前端进入机器学习的方式。

而前端智能化的落地场景,并不诞生于开源技术的圈定和规划,而是社区所有充满了想象力和创造力的前端开发者,将会如何利用这样新的思考问题的角度,把二者生态连接起来,以更有效的方式,去解决更多的问题。

“就是这种慢慢找到目的和答案的感觉,让我越来越兴奋。”

除了 Pipcook 的项目,雷姆在阿里淘系最有价值的收获, 是找到了技术的立足点。

在社区,技术要受欢迎,要黑科技,要酷,要的是大呼精妙的过瘾和爽感;在淘系,由于业务场景的复杂和丰富,有时候雷姆从技术角度出发觉得理所当然要做的 ABCD 4件事,会被甄子老师一遍又一遍问,目的是什么,出发点在哪里,如何让业务提效或者减少人力……

技术不再是一颗螺丝钉,雷姆开始学着用体系化的视角去看待产品和技术问题,这种将思考的珍珠串成连贯线路的感觉,让雷姆觉得自己的代码不飘了,有了真切的立足点,是他工作中另一个亢奋的源泉。

▐    结语

聊起社区和技术的时候,雷姆的语速总是不自觉地加快,气息里都是神采飞扬。

聊起生活里的琐碎,雷姆习惯性慢半拍,歪着脑袋想好一会儿才能依稀记起那些时间和地点。

一如他喜欢的动漫角色,妖尾里的纳兹,灼眼的夏娜,他们都是有着清晰理想目标的元气少年少女,雷姆将自己满满的元气和干劲儿交给了 coding ,这样的幸福无可比拟。

他的爱、细心和浪漫同样交给了 coding 。他曾经将自己的名字和夫人的名字(Yorkie & Babeee),悄悄咪咪写进测试用例里,作为一种镌刻,长长久久将名字留在了 GitHub 里,被无数志同道合的人不经意阅读与祝福。

“真正的工程师,内心应该是开放而包容的,他们不会纠结于某些概念学不动、要不要学,而是通过实践和参与,取百家之所长,让自己的代码或者软件,能烙下历史的烙印,无悔于工程师三个字。”

这是雷姆对 coding 的尊重和执着。

qEr2Iz.gif!mobile

雷姆 的 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

ymEjyau.png!mobile

✿    拓展阅读

aUrMrqa.png!mobile

qEJRNzN.png!mobile

aI3Mrm6.png!mobile

嘉宾| 雷姆

编辑| 橙子君

出品| 阿里巴巴新零售淘系技术

veE3IrM.jpg!mobile

uyQNNnZ.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK