转眼已经离职半年多了,早就想写一篇工作总结,但由于一直在准备英语考试,又需要处理结婚和房子装修,没想到一拖拖了半年。在淘宝做前端是我第一份签了劳动合同的工作,在这个人才济济的大公司里,接触了非常多的人和事物,也学到了非常多的东西、开阔了眼界。所以还是有必要做一个回顾和总结,一是自己备忘,二是或许对一些前端新人有所帮助,因为这篇文章会涉及到一些入职、职业规划、招聘、晋升、离职等方面的信息。
由于篇幅过长,三年总结将会分三篇发布,当前是第三年:
第一篇(第一年)主要总结如何进入淘宝要用什么样的策略,如何站在老板视角看问题,我眼中的阿里文化等(已发布:juejin.im/post/5c74d4…)。
第二篇(第二年)主要总结如何评审需求和推进项目,如何理解业务,飞冰项目的起源等(已发布:juejin.im/post/5c7daf…)。
第三篇(第三年)主要总结如何管理开源项目、推广项目,对招聘面试的思考,以及技术危机,我离职的原因,技术移民的考虑和未来规划等(已发布:juejin.im/post/5c811e…)。
担任 ICE PM 并负责将其开源
2017 年 5 月,新财年开始了,由于原 ICE 负责人调离到其他项目,所以老板需要指定一个新的 ICE 负责人。由于我作为初代开发者,可以说是最了解 ICE 体系的人之一,又什么都愿意干,就顺利成为了新时代的 ICE PM。之后调整了项目组成员,整个小组算上我一共四个人。目标是开发并发布 ICE 10(可以理解为迭代到非常高级版本)和开源。
任务还是很艰巨的,当时 ICE 算是一套脚手架 + 一堆业务组件和基础组件 + 教学文档,这些东西其实没什么技术含量和创新,怎么可以达到 ICE 10 的版本?开源出去又怎么能跟其他项目区分?
由于一些双十一工作,直到国庆之后我们才重视这个问题,经常脑暴要怎么做。始终跳不出来原有的思路,这样显然是完不成目标的。老板提了一个方案,可以通过可视化客户端来提升开发体验并扩展更多功能,打开了新思路。如果命令行工具看作二维,那么 GUI 客户端就是三维的了,在三维空间中,我们可以做的事情太多太多,以前命令行选模版只能看到文字上下切换,用了 GUI 直接可以看到效果图并用鼠标选择,可视化搭建也不是问题。于是 10 月 31 日晚上我连夜画出了第一版 Iceworks 的原型和工作流程,小组开始进入 ICE 的新的阶段开发。
经过技术调研,客户端我们选用了 Electron 来开发,为了避免系统安装的麻烦,我们直接将 Node、NPM 等二进制文件包到项目里,这样只需要下载客户端本身即可使用。回想起这个过程,可以说是各种踩坑,不过最后都想办法解决了。
“外出办公日”的工作模式尝试
我挺喜欢做项目管理和时间管理,有了 PM 这个头衔之后,得益于老板的开明,更是可以施展一些想法。我们四个人都有一半多时间在业务工作上,然而 ICE 才是工作重点,所以经常加班来开发,于是也攒下了很多调休时间。调休时间有有效期,而且给我们假期也没法休息,毕竟事情干不完。
由于我之前在大学的时候是自由职业,也曾经体验过数字游民的生活,所以我想出了一种办法——“外出办公日”。顾名思义,在某个大家确定没有大事情的周五,我们集体使用调休请假。但由于活干不完,不可能真正的休假,所以我们集体去公司外面,找个环境好一点的地方办公。我们就利用调休时间专注开发技术方面的工作,业务上的事情可以暂放,并且因为是工作日户外的人也相对少一点,比较轻松方便。
第一次外出办公日,我们去了市区一个文化创业园区找了个咖啡馆,中午开车一起去盒马吃了大龙虾,饭后逛了创意家居店,下午转战一家星巴克。第二次外出办公日,我们去了西溪天堂的星巴克,中午在旁边外婆家总店吃了一顿不错的午餐,之后在西溪天堂逛了逛。
体验上来说,肯定是比在公司工作爽,但是工作效率受限于网络和座椅舒适度,并不算是很高。总的说算是给生活找点不一样吧,留下点不一样的回忆。后来我们觉得不需要去公司外面,可以在公司星巴克或者找个封闭会议室工作,中午开车出去吃,下午早点下班也是挺好的,可以兼顾工作效率和体验。
项目冷启动和迭代节奏控制
由于项目启动较晚,快要到 D2 了,ICE (开始启用外部品牌名:飞冰) 产品还没有上线的可能。不过我们还是希望抓住这个机会先宣传一下,所以迅速打印了个海报,搞了个钉钉群,做了个介绍网站,让大家感兴趣的先进钉钉群、Star 一下。这算是第一次技术产品冷启动吧。虽然最后吸引到了 300 左右 Stars 和大约一百多个人加群,但效果不理想,这个群一直很冷清,也没有达到预期的内测效果。可能因为本身新版 ICE 概念挺复杂的,并不是一张海报、一个简易站点就能介绍清楚的,更没有实际流畅的产品演示,这很难吸引到真正的目标群体。
D2 之后我们继续按节奏开发,还算顺利发布了 beta 版本。有一天我看到了知乎的这个问题《2018年了,大家都是怎么从零开始新建一个前端项目的?》很适合介绍飞冰,但又觉得还不成熟可能玩砸。不过知乎新问题最火的就是最开始一两天,火过了之后即便是有新答案,大家看过的也不会回来看了,只能硬着头皮推广上去了。GUI 的思路比较清奇,因此流量和 Star 迅速上涨,快速涨到了 1200 多。 相比第一次推广,这次有 Demo 和跟其他问题的对比,让人很容易理解这是什么。因此来试用的有都是感兴趣的用户,所以算是比较成功的冷启动。
之后我又开始 “压榨” 小组成员了,因为刚发布 beta 版本,有很多 Bug,新来的这些第一批种子用户可谓是至关重要。用得爽了,开始分享推荐给朋友;用的不爽,开始骂、劝阻别人不要尝试。一正一反,一个天堂,一个地狱。 所以立即召集会议,劝说大家先放掉手头上其他工作,重点保障 Iceworks 的稳定性和用户体验,让大家多多理解。我下午就用脑图梳理了测试用例并进行了各种测试,并将阻塞性 Bug 分配给大家一起加班解决,所以还算顺利没有崩掉。但后来仍然零散看到有人说他之前遭遇过问题(其实我们很早就修复了)之后,就没再用了。
所以我特别理解产品经理的紧急需求,有时候一个业务的成功和失败可能就在这短短的一周时间内决定。 所以如果产品经理有紧急需求,我基本上先从业务闭环上来看这个需求真正的紧急性和重要程度,如果真的紧急,是会加班想办法快速落地上去。
之后就是继续回答问题,编写相关介绍文章。同时创建专栏、鼓励入群,留存有兴趣用户。当时还看了一些 Growth Hacker 的书,所以我将迭代节奏控制在两周一个版本的速度,在专栏中发布日志。虽然这样给团队施加很大的压力,但是可以有更多尝试,也给用户一种很年轻、快速迭代、积极响应的印象。可惜离职之后,好像就没有这种发布节奏了。
这又是一个 KPI 项目?
飞冰产品发布之后,很多人都会评论问这个问题。是的,所有阿里开源的项目背后都有 KPI 考核,都算是 KPI 项目。其实国外的很多知名项目,背后也肯定有 KPI 或者类似的指标考核,毕竟开源项目最终是要给公司带来收益,不然公司为什么要花钱雇佣员工来维护这个项目。
从另一方面,没有 KPI 的开源项目,尽量别用。就像很多个人自己玩的项目一样,没有目标和利益闭环,很可能很快就放弃不再维护了。 即便是非常有名的库(例如前段时间 event-stream 被黑事件)当开发者背后没有兴趣和利益支撑,也会放弃维护。一旦开发者都放弃了维护,Bug 修复、安全性、新功能支持就别想了。
有机会站在开源产品开发者的角度看用户反馈,会发现总有一类人会冷嘲热讽,甚至自己都没理解就开始评论,这种我一般会怼回去。正确的做法至少先确保自己理解了,然后觉得有问题直接提,哪怕语气不好我们也很愿意接受。但自己都不先了解,跟风来个:“哟,快看,又一个阿里的 KPI 项目出来了。” 其实一点也不好笑。倒不是说不能接受批评,而是几个人辛苦搞出来的东西,接收到这种毫无意义的评价太难受了。
关于招聘和面试的思考
今年做了 PM 之后,老板更是 “授予” 我招聘的权限。由于具备更高的权限,有机会看到一些面试者面试经历和面试官的评价。
看下来,感觉面试的运气成分还是挺大的。而且特别低效,我电面一个一般会根据简历描述和项目再加上我们团队自己的技能需求模型来设置问题,面试可能要 30 - 60 分钟,准备这些也得半小时,所以电面一个的成本要接近一个半小时,而且绝大部分都没有通过,成本太高了。
后来在知乎看到了 Google、Facebook 这些公司的招聘方法和讨论,感觉更合理一些。北美公司基本上都是先一轮算法面试,题目大都是确定的类型,基本上鼓励你去提前刷题,然后来看你的水平。这其实是一种降低面试结果不确定性的方法 ,因为对于相同的难题,在给出时间进行准备后,不同的人对题的解法是可以看出水平差异的。有的人笨,但是愿意下功夫,仍然可以得到不错的成绩,有的人水平高,自然更能拿到更好的成绩。如果给了同等的预习机会都没做好,还说自己有很强的实力和学习能力,显然是站不住脚的。
所以我倾向于按照自己团队技能模型设置开放性问题对外公开的模式来招聘和面试。 开放性问题设置的好坏很关键。比如 winter 很早之前就提出过的一个 CSS 面试题:css的position属性有哪些取值,它们的行为是什么? 这道题就可以很好的分层求职者,初级水平知道有几个值就自认为可以完美解答,但真正深入研究过的,则知道更深入的各种排版渲染属性叠加后的行为,补充更多细节。对于面试官很容易通过开放性的问题衡量求职者的深度。
这样初筛比较节约时间,对于面试官拿着准备好的问题即可。对于面试者,也可以尽可能提前准备下,避免临场发挥失误导致错失机会。此外通过问题,面试者也能知道这个团队主要发展方向,并对自己水平自测。百度 FEX 团队几年前就有这样一份招聘问题,就很值得借鉴。
离职后,我也变成了求职者,也有了疑惑:自己应该做什么样的准备、学什么样的内容好找工作。 后来发现我想反了,不应该让自己去 “适配” 可能出现的工作机会,而应该专注自己兴趣所在,将自己感兴趣的技能模型的内容学到比较深的层次 ,这时候匹配这个模型的岗位就很容易选择你而不是其他什么都学一些的人。特别是大公司,更看重技术深度。所以如果你有意向寻找机会进入大公司,可以先梳理自己的兴趣产出技能模型(比如是做数据图表可视化?富文本?前端测试?还是工程工具等),然后再找对应公司的对应团队或者岗位。比较好的团队还会有开源项目,可以深入去看看并且贡献,贡献的多了或许直接就招进来了。
此外,证明你具备这种能力也是必要的内容。对于一个技能点附加上写过的总结、做过的分享作为“证据”,那么会更加可信并且便于了解你的真实水平,提高筛中率。所以我自己但凡学点新东西,至少写个笔记或者文章,最好做个项目实际在代码层面用上。
技术危机
从上文就可以看出今年写的代码不是很多,主要工作有很多业务推进、项目管理以及招聘等比较杂的事情。而且不同于往年双十一之后有喘息时间,一直在忙。更关键的是,我的技术危机也浮现出来了。这种感觉就像一直在吃技术老本,只在自己工作范围内的相关技术研究的比较深入,外面世界新技术非常多而且先进,但又苦于无法在工作中落地、缺少时间和精力,很难学习。
技术能力对技术人员还是至关重要的。 业务能力比较难客观衡量,实际落实的业务代码通常是没有很高技术含量的代码。技术产品方面,我更多处于一种打杂的状态,通常这个地方进度慢了,我就补上去开发,对外宣传培训、制作海报、合作对接等,基本的都是我先顶上去,这些显然没有技术含量。我虽然对各个系统都很了解,但都不够深入。
老板也发现了这个问题,协助安排我一些脱离主线的偏技术性的工作,但由于主线飞冰事情都忙不过来所以也一直延期没做。无论如何,我发现我好像没有技术抓手,而且一直处于非常忙碌压力山大的状态,很难有所突破。
越是这种忙的时候,越不能浑浑噩噩过去,要找下解决方案。我有个习惯是遇到很难解决的问题,就去找下知名人物的传记看看,看看他们在我这个阶段在做什么,会有什么样的思路。
之前各个阶段看过比尔盖茨、李开复、马云、乔布斯、扎克伯格等传记,受益颇多,这次我从雷军和马斯克中选择了马斯克的传记《硅谷钢铁侠:埃隆·马斯克的冒险人生》。我趁着春节放假,第一次一口气废寝忘食的读完一本传记,简直为我打开了一扇新的大门。
书中给我震撼最大的句子如下:
- “我们这代人中最聪明的大脑都在思考如何让人们点击广告。” Facebook 早期工程师 Jeff Hammerbacher 对我说,“这太糟糕了”。
- “我们想要会飞的汽车,而不是 140 个字符。”
- 拉里·佩奇说:“我认为我们就是没有用这种观念教育人们。你应该具有相当广博的工程学和科学背景;你应该接受过一些领导技巧训练、MBA培训或者具有经营业务、组织活动和筹集资金的相关知识。 但我认为大多数人都没有接受过这样的培训或教育,这是个重要问题。工程师们通常只在一个固定的领域内接受培训。当你能够综合考虑这些学科时,你将会产生不一样的想法,能够梦想实现一些更疯狂的事情,想象它们会怎么运作。我认为这对世界来说才是最重要的。这样我们才能进步。”
人类渴望巨大的科技进步,然而最聪明的人现在却在互联网公司研究怎么让人们点击广告。继续留在阿里,可能会深入技术慢慢晋升,也能创造很多价值,而且双职工的收入也完全可以在杭州过得非常舒服,离职打破就是啥也没有了,但有一定概率可以创造更大的价值。在阿里仿佛看起来是一条未来确定性很强的路,而我还年轻还能折腾折腾。最终我选择执行 PlanB:技术移民新西兰。
为什么选择移民新西兰
为什么要移民,为什么选择新西兰,为什么要选择这个时间点去?其实是几个原因交织在一起:
- 自己一直在国内,视野相对比较窄,所以趁着自己还没有小孩还年轻能折腾,想出去见见世面,体验体验新生活。
- 阿里在做国际化时,马云分享过说下一代阿里巴巴领导者必须要有多国背景。通过熟悉多种文化、语言,方便站在更高的角度看问题。侧面说明了国际化的重要性。 为了学习比较西方的思想和习惯,亚洲这一圈基本 Pass。
- 上面拉里·佩奇说的技能正好是很多技术创业者所缺失的。我也极度缺乏这方面知识,会需要很多空闲时间来补齐。 所以高生活压力的国家 Pass。
- 希望可以拿到绿卡,拥有居民身份。正如国内落户一样,长期在一个城市中生活,如果没有落户可能会没有归属感,做很多事情也比较受限(购房,小孩上学等)。
- 欧洲目前看起来比较动荡,而且不是移民国家,歧视可能会比较多,难度也很大,Pass。
- 美国特朗普上台政策很不明朗,而且移民难度就不用说了。此外 IT 行业岗位竞争难度也不小,自己英语不是很好,技术本身也有点生疏,算法更是基本忘干净,如果强行去面试大公司很可能没戏,小公司可能很难担保你的工作。风险太多,时间太长,战略性 Pass。
- 之后就是雾霾空气之类的因素,剩下的常见选项中,新西兰和澳大利亚都满足。
- 虽然新西兰相比澳洲人少,市场和工作机会都少,但是 IT 属于紧缺行业,在国内的经验可能会比较有竞争力。此外绿卡比较好拿,而且是全球唯一的无移民监永久绿卡。此外新西兰是岛国,除了岛民全都是移民过来的,所以歧视理论上会少一点,而且有点世外桃源与世无争的感觉,人据说也挺和善。所以比较适合闭关进修,体验生活。
- 除此之外,对于高技能人才,新西兰还有特殊的银蕨签证,每年全球 300 个名额,抢到就发工签,找到工作就可以留下,是最轻松的路线。
- 最早关注新西兰只需要打分够 140 即可,当时算下来到 2020 年离职正好,可以拿到很多收益,同时打分也够。结果后来就涨到了 160 分才可以,这样就基本要有当地 Offer 才可以够分了。侧面说明各国移民政策是在不断收紧的,最好的移民时间是昨天 。
所以趁着婚假登陆边游玩边实地考察了一下,感觉真的很不错,没有什么陌生感。再加上对政策收紧的风险预估(果然后面进一步收紧),所以就提交了离职,提前开始执行 Plan B。
经过后续一段时间的交接等,跟战斗过的同学们一一告别,我的淘宝生涯 last day 最终定格在了 2018 年 6 月 1 日。
第三年总结
第三年对业务的理解更加深入,也比较积极的推进业务,虽然很多尝试最终没有取得想象中的结果,比较遗憾。技术方面也有幸成为了飞冰 PM 并管理进展将其推向开源社区。今年虽然小组人少了很多还都是兼职,但个个都是精兵强将,所以才有现在的开源版本。
从最初的目标来看,飞冰并没有达到 10 的版本,顶多算是 2.0,所以技术这方面结果并不能算是特别好。不过可能业务上前期投入比较多有加分,仍然拿到了不错的绩效。
关于互联网加班这个事情,很有争议,在阿里我自己加了不少班。但我认为加班都是自己选择的,并不会特别在意这个问题。其实早在上学阶段我们就一直在拼“加班”,不聪明的人想要考试成绩好,就得多花时间看书学习。 所以刚毕业时我选择牺牲一些时间和身体健康,多学点东西,以后就减少加班了。
由于身体考虑和技术危机等我也开始寻找新出路,得益于马斯克的启发,我制定了新十五年的大体计划。未来我将会在新西兰继续做 Web 开发者,深入学习相关技术,自己做一些产品试水,同时补齐英语、MBA 等缺失的技能,并且确定后续几年要做的具体事情。当然也可能开始习惯新西兰慢生活,提前进入养老模式,这个就留给未来慢慢探索吧。
回头来看,非常幸运能拥有淘宝前端团队的这个工作机会,也非常感谢老板们和一起奋斗过的同事,从他们身上也学到了很多,也得到了很多照顾。 唯一比较遗憾的是没有尝试去晋升 P7。因为晋升面试在 7 月份,如果我打算参加就需要准备很多东西,再加上今年没什么技术抓手,也基本没什么希望晋升,而且参加可能会延后移民进展。即便十分侥幸的晋升了,抢了别人的机会之后突然离职可能会对团队造成比较大的损失,于是就算了。
离职之后
离职还是要慎重,尤其是裸辞。攒下的钱会以超出预期的速度很快花光,所以目前我的文章、项目等都放着捐款二维码,群里的红包也开始抢了,以前有工作的时候,基本不做这些事情 ^_^。
不要高估好看的美剧的数量,四个月就可以刷到剧荒。又刷完了全套的星际争霸 1、2 的剧情和古墓丽影。
之前健身大半年没有效果,因为频率不固定,饮食不好控制。离职后两个月规律健身,调整作息,都是自己在家做饭吃,减掉了十多斤,也再也没有半夜拉肚子那种情况了,身体素质好了很多。不过现在锻炼少了,开始轻微反弹了。
英语考试是个门槛,之前一直有所准备,所以低估了难度,浪费了时间,模考后受到了很多打击。最后闭关 40 天复习,顶着巨大压力考出来了。之后还写了《专为程序员编写的英语学习指南》分享一些学习经验。也十分感谢这段时间老婆的悉心照料。
同时也很幸运的成为了全球 300 分之一,抢到了银蕨工签。没多久新西兰政府就发表了新提案,因此新一年银蕨不一定开放了,而且继续提升雇佣外国人的门槛,促进本地人就业。幸亏今年离职了。
我一直有个记录时间和写周报的习惯,在家工作没了干扰,所以很容易分析时间浪费和工作效率,因此对自控力也有点研究。自控力就像消耗品,休息过后最强,慢慢消磨,消磨殆尽之后很容易被诱惑做不理智的事情,同时心态也容易崩,容易抑郁。 所以周一早上最强,递减到周五晚上。所以工作安排上,应该将最重要而且最难的安排到早上(幸亏之前开发富文本是早上开发),然后晚上早点休息,因为效率太低白白浪费时间,虽然有时大脑会欺骗你让你很兴奋。
睡眠应该是直接影响生活、身体、工作效率最严重的变量,效率低、心情不好、遇到难题,睡一觉就好。备考英语期间,长期高度精神压力,产生了肠胃和睡眠问题,同时导致心情抑郁。我觉得压力控制和心理疏导应该放在义务教育里面,太缺乏了。回想之前工作中,其实也有高度精神压力的时候,但由于变量太多自己却意识不到。 所以创业之前应该要学会调整压力,否则时间久了很容易出现心理问题,甚至做出很多冲动的事情。
全文完。
以上就是我在淘宝第三年的经历和学到的东西。欢迎关注我的掘金帐号。平时在知乎也很活跃,有知乎的也可以关注我的知乎账号 于江水 、专栏 于江水在知乎 以及 我的 GitHub,以便看到我后续的作品。也可以加我微信:Jiangshui-Yu 。
此外,预计今年 5 月份,我将登陆新西兰找工作,如果你在新西兰或者有认识在新西兰做开发的朋友,希望可以联系我或者推荐给我,届时或许需要请教一些问题或者帮忙内推,先谢过了。