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

简介: 遇到超出范围的问题的时候,不要用“我只是一个前端”来逃避。单纯地聚焦在这个问题上,从0开始看它,不给自己设限,随时准备好在在编程领域学新的东西,慢慢地,就会越懂越多。

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

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

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

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

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

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

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

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

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

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

image.png

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

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

image.png

雷姆:左二

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

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

▐ 开源项目 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

image.png

关注「淘系技术」微信公众号,一个有温度有内容的技术社区~

image.png

相关文章
|
16天前
|
前端开发 JavaScript 测试技术
前端工程师的必修课:如何写出优雅、可维护的代码?
前端工程作为数字世界的门面,编写优雅、可维护的代码至关重要。本文从命名规范、模块化设计、注释与文档、遵循最佳实践四个方面,提供了提升代码质量的方法。通过清晰的命名、合理的模块划分、详细的注释和持续的学习,前端工程师可以写出高效且易于维护的代码,为项目的成功打下坚实基础。
28 2
代码之美:从混乱到秩序的编程旅程
在编程的世界里,代码不仅仅是冷冰冰的文字和符号的组合。它们是思想的载体,是解决问题的工具,更是艺术与科学的结晶。本文将带你领略编程过程中的美学,从最初的混乱无序到最终的清晰有序,探索如何通过良好的设计原则、清晰的逻辑结构以及持续的重构来提升代码质量,从而使得代码不仅能够高效运行,还能成为令人赏心悦目的艺术品。
|
缓存 弹性计算 前端开发
对前端性能优化的一些小看法
对前端性能优化的一些小看法
178 0
对前端性能优化的一些小看法
|
NoSQL Java 程序员
要学的东西太多,自己能力不足,很焦虑怎么办
总有人问我,兔哥,现在java要学的知识点这么多,记不住,怕学不精很焦虑怎么办? 这是很多初学者都有的痛点。 其实吧,你可以试试贪多而不必嚼烂。
182 0
|
移动开发 监控 前端开发
作为一名前端工程师,说一说我眼里的用户增长
作为一名前端工程师,说一说我眼里的用户增长
250 0
作为一名前端工程师,说一说我眼里的用户增长
谈谈讲清楚这件事的重要性
如何讲清楚一件事我相信很多人都很困惑也很无助,尤其是在晋升场合,在向上汇报或者是做大范围分享的时候,恨不得找个地缝钻进去。很多时候我们常常是这样安慰自己,我是实干派技术人,不需要那些花里胡哨的东西,我技术过硬比什么都重要。曾经一度我也是这样认为,最后改变我这个想法的是一句话:如果你讲不清楚多半是想不清楚,如果你都想不清楚如何能够带领更多人拿到结果?
1600 8
|
架构师 城市大脑 开发者
为什么大部分人做不了架构师?这2点是关键 | 开发者必读(106期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
1153 0
|
开发者 前端开发 运维
据说搞算法的在尝试让影视后期人员“下岗”| 开发者必读(038期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
1483 0
|
测试技术 程序员
那些会阻碍程序员成长的细节[1]
罗马非一日建成,软件系统也不是一天能够写出来的,在经年累月的编码生活中,总会有那么些个不经意的瞬间暴露出来,而这些不经意的外在表现日积月累,犹如水滴石穿,会产生巨大的力量反作用于程序员的成长。我简单列了几条,你来看一看,兴许就在身边实实在在发生过。
1135 0
|
前端开发 JavaScript 大数据
【前端开发】前端架构与具体的应用的矛盾,最终的简单才是王道。
写在前面   年关将近,这年味愈加的浓烈了哈,似乎无心工作,似乎家乡的叨念从远远的方向传进了你的心里,坚持住哈,马上,就回家了。        进入正题,首先,我需要先解释下这个标题所表达的意思,以及它背后引出的具体的问题,前端架构与具体的应用的矛盾 这句话为什么要这么说,相信大部分公司,不论你...
1362 0