我在淘宝作前端开发 | 程序员有话说

640?wx_fmt=gif

640?wx_fmt=jpeg

做者 | 于江水前端

责编 | 伍杏玲程序员

 

5G以后,中国的人工智能发展趋势如何?面试

https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw算法

 

在淘宝作前端开发工程师是我第一份工做,在这我的才济济的大公司里,接触了很是多的人和事物,也学到了很是多的东西、开阔了眼界。目前我已离职,如今作一个回顾和总结,关于在淘宝第一年的入职、职业规划、招聘等方面的信息。编程

 

640?wx_fmt=png

来淘宝以前

 

时间先回到 2011 年下半年大一的一个晚自习,我思考本身将来想要从事计算机哪个领域,当时找了张纸用坐标轴画了“市场前景”和“我的兴趣”两个轴,罗列技术领域和我的特色,筛选出了“安卓开发”和“网页制做”这两个方向。小程序

鉴于我的特性偏视觉和感受而非逻辑,并且高中一直在折腾各类源码搭网站,不太擅长底层的开发,最终选了网页制做,后来发现这个行业叫作前端开发。后端

从那以后开始专一的学习,上课和自习都是看本身的技术书,在宿舍就是借助开发 WordPress 主题进行实践,并写不少文章。当时看过一本很俗气的职业规划书,有个理论是挺认同的,专一一个领域三年能够成为高手,五年成为专家,十年成为高级专家。浏览器

因为个人大学通常,分析下来能竞争的就是开发经验了,若是专一开发三年,毕业时的开发经验或许能够提高竞争力跟名校竞争一下。因此以后能逃课就逃课,绝大部分时间用来学习前端,再后来进入两个外包团队作项目,切了几十个整站项目,锻炼了各类前端基础技能同时还实现了经济独立。架构

当时各类技术团队都有博客,淘宝 UED 博客算是最大最棒的一个,天然也成了个人梦想团队。大二下学期就开始关注秋季校招并在线作了下题看了看流程为大三作准备。大三继续疯狂写博客来提高一些名气,功夫不负有心人,终于引来了前辈的邀请:并发

640?wx_fmt=jpeg

“但愿我能考虑下。”

还须要考虑啥?我作梦都能笑醒了,立刻联系过去告诉了目前的一些状况,并在后续知道春季实习生招聘计划后让他帮忙进行了内推,以后两个技术电面就经过了能够去实习了,能够算是至关顺利了。

当时也有投一批二线互联网公司作兜底,原本以为囊中取物,没想到里面有些公司不少简历关竟然都挂了。感受面试和找工做,运气成分其实挺大的。

在这段经历中,我深入的感觉到了“机会老是留给有准备的人”这句话,虽然看起来挺俗的。运气当然重要但若是没有提早思考规划和学习也是很难抓住的。计算机行业有个好处就是技术水平高于一切,对于学校很差或者专业不符的同窗也是有机会的,关键仍是看兴趣持久不持久。

 

640?wx_fmt=png

正式入职淘宝

 

在淘宝的第一年并非从 2015 年 7 月毕业开始的,因为我以为周围同事都会很厉害,为了早早熟悉工做状况,15 年 3 月多过完年我就赶忙申请离校来淘宝继续实习,只在快毕业那段时间,请假几天返校处理毕设和合影等。

一回去实习,发现以前实习的团队竟然拆了(第一次体会到“变化“),本身从基础架构挪到淘宝交易团队了,跟着师兄作购物车,后来还没正式签约就开始独立负责淘宝购物车业务,这时候要是出了什么事情背锅,是真的临时工。

得益于“笨鸟先飞”,早在劳动合同签约以前就开始独立负责业务线,不少同届同窗毕业才开始由师兄带领熟悉业务,因此在签约三个月左右的转正面试上,我有不少内容能够汇报。也正是由于这样,过后 HR 姐姐说个人分享在团队里算是比较好的,后面组织了一期新同窗分享会,让我又作了一次“转正面试”分享。大力是能够出奇迹的,笨鸟真的要想办法先起飞。

 

640?wx_fmt=png

淘宝购物车业务

 

这个阶段基本上就是跟着 PD 走,来需求就评审,评完了就尽快作,作好了就测试,没问题就上线,基本上像阿甘同样。毕竟这种核心系统挺稳定的,需求迭代节奏也比较缓慢。

直到 15 年双十一的一个需求,本身才第一次感受到本身的工做价值。那是 15 年 10 月国庆后,双十一需求都基本作完了,并且快要进行全链路压测和封网了。这时候一个推荐算法团队的人找过来但愿新增一个需求,算法接口都已经开发完成了须要前端作界面对接上去。因为早已通过了需求窗口期,彻底能够直接拒掉,因为只涉及到前端部分,PD 将这个需求转给我本身评估,并给出建议若是不影响其余需求和稳定性而且来得及就作,来不及就不作。

这个需求是当购物车某个商品因为库存或者状态失效后,出现一个“查找类似商品”的按钮,点击能够推荐类似商品快速加购。我看了下这个需求很是合理并且必要,由于双十一当天库存消耗很是快,不少来不及下单的商品可能迅速库存为零失效,但本身又很须要这个商品,直接有个入口迅速加购相比从新搜索的确方便太多。因此接下了这个任务,并加班加点对接开发,最终在封网前三天完成测试并发布。

双十一复盘以后,收到了推荐算法团队同事发来的感谢邮件,加了这个功能双十一当天购物车的推荐量竟然是平时购物车的几十或者几百倍(具体数字记不清了,可是很大),由于购物车本来只有最下面一个小推荐坑位平时推荐量不是很大。我按照比例简单计算了下,加的这个功能可能在双十一当天帮了几百万人快速加购,想一想仍是挺有成就感的。这个功能后来保留下来了,hover 就能够在右边出现:

640?wx_fmt=other

交易业务并很差作,由于是淘宝核心平台,不少业务线都有需求定制,代码里业务逻辑十分复杂,并且还要当心维护避免改坏了,特别惧怕出现问题,由于一旦出问题可能就是 P1 级别故障,年终奖和晋升机会确定是没了的。整个双十一或者大促期间都须要 On Call,一接到电话须要立刻起床开始处理。

这一年大促关于图标有一些小故事,一开始设计将双十一标放在了商品图片上面,但被评审调整到文字前面去了。原来有些商家会比较鬼,本身在商品图片上 P 一个双十一标,以假乱真。而后双十一零点一过逍遥子忽然发下通知,要求淘宝全链路换掉双十一的标。

原来淘宝标跟双十一标有点像,但双十一属于天猫,淘宝并不能使用,因而设计师立刻作出一套新的淘宝嘉年华 Icon,全链路各类发布换标。因为交易链路过重要,因此先改好代码,到了六点下单低峰才发布修正。原来一个小图片背后关系到了大量商家的利益,由于天猫商家参加双十一须要各类备货和审核,并且用户也根据这个图标判断哪些是参加双十一活动的商品,这时候两个同样的商品,有标和没标,销量可能差距巨大。开始以为业务仍是挺有意思的。

作基础业务,压力仍是很大的,惧怕风险和线上问题,还不能延期。由于你延期了,极可能下面业务的促销活动就延期了,这但是很是大的问题。还好作完双十二就开始交接业务(第二次变化),淘宝交易前端交接给其余前端团队了。

640?wx_fmt=jpeg

购物车和交易这块业务,我学习到了不少:

  1. 规范的开发流程:淘宝交易是淘宝最老的业务,也是平台方地位最高,因此交易线制定了很规范的排期会制度和发布制度,若是一个需求没遇上排期或者发布点,无论你多么重要,一概延期到下个发布点。由于交易系统自己的稳定性是最关键的。

  2. 线上问题无小事:交易因为用户量大、涉及关键链路,一旦出现线上问题,影响用户很是广,极可能产生重大故障。因此作交易的同窗,都会特别当心谨慎,关注线上状况,发现小问题也要尽快修复。然后来接触了不少其余业务,线上的小 Bug,若是不影响使用就暂时先无论了。

  3. Debug 和阅读代码能力:因为系统比较复杂,代码不少业务逻辑,想要绕开陷阱就须要仔细阅读代码和 Debug。有时虽然一个小需求,可是要先后 Debug 不少逻辑,肯定这里没问题才能改。

得益于这段时期学到的东西,我在知乎上回答了一些关于 Debug 的问题:

  • 研究学习JavaScript框架或JQuery插件的正确姿式是什么?

  • 哪些 JavaScript 框架(库)的源代码最值得阅读和学习?

  • 研究JS框架源码用处真的大么?

     

     

640?wx_fmt=png

无线交易业务

 

购物车是主线业务,支线业务当时是由师兄带领作无线交易的几个页面。当时是用 React 来开发这个项目,用了 Reflux 等。当时应该算是淘宝最初用 React 的几个业务,主要是为了调研这个技术。

其实大公司相比小公司更愿意也更容易尝试和应用新技术。由于一旦有了开发效率或者性能提高,给业务会带来巨大提高,也有足够的人力来研究,也有很是多的新业务能够来尝试。

咱们团队后来研发开源了 React Web项目,这个业务算是一个踩坑落地项目,用来发现一些问题。比较惋惜的是,没过几个月,手机淘宝去掉了 React Native 并换成了 Weex,因此这一套对公司就没什么意义了,因此就中止了维护。不过一些经验积累,及时调头,老板又带人开发开源出来了 Rax 。

因此看一个大公司的开源项目是否会长期维护,看看他们内部的使用状况就能够了。像 Weex 这种,再怎么说也是会长期维护下去,由于它已经十分融入在手机淘宝里面。无数的页面和应用,都是基于 Weex 开发的。

 

640?wx_fmt=png

淘宝海外业务

 

时间到了 2016 年初,交接完淘宝交易业务以后,我开始接手淘宝海外业务。淘宝海外业务是面向海外非大陆淘宝用户的业务,其实主要面向香港、台湾、东南亚等地区用户。

因为面向国外,淘宝须要作不少改造,好比不少商品(生鲜、法禁品)等不能运输须要过滤、繁简体等国际化语言处理还有下单配送地址支持海外集运等。所以在创建业务时期,基本上就是把淘宝核心业务 Fork 了一遍,拿来改造了下本身维护。

淘宝海外首页是本身利用 TMS (运营平台)搭建、统一吊顶也是本身特殊定制的(增长国际化选项)、商品详情页是 Node 应用作的先后端分离、交易链路也自定义了一些样式和组件(好比海外集运)。至关于本来整个淘宝的核心链路,搞了一个微缩版本。

作这段工做算是比较爽的,一我的负责一个微缩版本的淘宝的前端,有利于了解整个淘宝的业务链路和不少淘宝业务的代码。而后为了沟通方便,我把工位搬到业务方办公区,整片包括运营、产品、设计、技术等都在一块儿。固然也没有交易那种排期规则,若是有什么需求和会议,随时沟通开始作效率挺高,感受像是创业公司,我很喜欢这种工做氛围。此外还有三个外包同窗参与这个项目,由我分配工做,这让我有了一点“小老板”视角并得出结论:原来你的老板可能真的比你更了解你。

因为这三位同窗协助我工做,他们的工做能力和代码质量直接关系了个人工做量,因此我每周拿出一个小时作 Code Review and Share,在会议室让你们各自找一段本周写的比较好的代码出来分享,而后我也会找一段分析下好的地方和很差的地方。而且鼓励他们在阿里内部 ATA 平台写文章作分享,由于技术好的外包是可能转正的,这或许是个加分项。紧密工做一段时间后,很容易就看出这几位同窗的能力和学习积极性的区别,再加上工做完成状况,能够说是对他们的能力看的比较清楚。

但仔细回顾一下,我跟平级的同事之间,实际上是很难有所比较的。由于咱们各自作的事情不一样,并且也不会在乎别人的优势或者缺点,更不会去“教育”或者“指点”平级同事应该怎么作。可是老板视角就很是清晰了,他须要对手下人的结果负责,因此会关注进度和进展,同时也十分容易作横向对比,能够说是能够十分清晰的看出一我的的水平。 老板为了本身晋升,也会关注手下的晋升,因此也会去指出一些问题。这个体验给我了不少思考:

  1. 跟对老板比作对事情重要:好的老板愿意去培养下属,指出问题。有能力的老板才能给下属更高的成长空间。很幸运的是我有这样一个老板(元彦)。

  2. 不用试图耍心机或者邀功、抢功:这些伎俩只能欺骗你本身,老板视角看的一清二楚。

  3. 认真记下老板的建议,多多反思:几乎全部人接受到批评,第一反应都是去反驳。但在职场上,老板通常是不会害你的(由于有晋升等利益相关)。这可能就是老板比你更懂你的地方,他能从一个更有经验的外部视角来看你的方案你作的事情。

  4. 遇到“不公”先想一想本身:机会是有限的,为何老板会把晋升机会、好的工做机会给某我的而不是你?先不要抱怨不公,想一想为何。

  5. 抓住机会多跟老板交流:基本上每周周会上,我都会提出来一些手头上一些比较棘手的问题或者对团队将来新动向的疑问,来学习下老板是什么样的解决思路。

有些人可能会以为老板比本身笨,但其实老板的老板并非傻子,老板之因此成为你老板,确定是有不少缘由的,学习到了你老板的长处,有一天你才可能登上这个位置。

因此说作事情要多站在老板的视角去思考,听取老板的建议并时常反思。若是的确有问题,为何有这个问题?怎么解决?若是没有这个问题,为何会被老板误觉得有这个问题?

 

640?wx_fmt=png

戏剧性的淘宝海外业务交接

 

有一天开了个需求评审会,结束以后一群运营就去了一个会议室。我觉得还要继续开就跟进去了。进去以后才发现他们在经过一个商家录屏看 Lazada 的后台操做和有什么功能,算是一种竞品调研。我以为这跟前端功能也有关系,就留下来一块儿看了下。

没想到过了几天,忽然就从外面看到新闻,阿里巴巴收购了 Lazada。没想到又过了一段时间,老板就开始让我处理交接任务,将把这个业务转出去。同时我来负责新的达人平台和内容平台的前端。再后来就据说整个淘宝海外业务就解散了,一些开发去 Lazada 作开发了,有的运营去了天猫,有的去了其余业务。

其实阿里集团下包括 AliExpress 也是主打国际化,不过是偏欧美、俄罗斯的,Lazada 是偏东南亚地区。阿里巴巴高层分享国际化战略也强调过,无论作国际化的业务你叫什么名字,吃下来大部分,你就是阿里巴巴国际化表明。显然淘宝海外没有战胜 Lazada,因此干脆用钱把 Lazada 买下来了。

换句话说,若是咱们真的是创业公司,无论以前怎么努力,如今已经死了。

至此,亲身经历了三次重大变化,能够说是特别了解阿里“拥抱变化”的文化了。都说船大难掉头,其实感受并非这样。每一年阿里都会调整业务归属,若是作很差可能就砍掉或者换一拨人来作。好处是快速试错持续前进,坏处就是一些研究和积累浪费了。我在淘宝海外主要研究了前端国际化的一些方案,还出去作了《基于 React 的国际化方案探索》的分享、写了《淘宝前端国际化方案探索》以及回答了一些国际化相关的问题(zh-cn 与 zh-hans 是什么关系、有什么区别?),但换了业务以后,这些知识就基本没有在后续业务中用到过了。

 

640?wx_fmt=png

阿里文化与高管分享

 

新入职同窗会脱产有百阿(百年阿里)和百技(百年技术)培训,一个是价值观培训,一个是技术培训。在百阿大分享时,很是幸运,马总有空给咱们这批新人作的分享。此外,HR 姐姐还会不时组织一些高管见面会帮助你们成长。这里能够简单分享一些我印象很深入的点,在实际工做生活中也很必备:

  1. 诚信第一:阿里巴巴自己是商业公司,商业诚信第一,因此这是阿里巴巴的红线。小到虚假报打车发票,大到私下勾结商家,抓到必开而后加入黑名单,严重的送监狱。在阿里有句话,由于信任因此简单,因此权限放的比较开,要求必须有诚信。

  2. 公司里面薪资保密:薪资保密也是阿里的红线,公开讨论或者公布,会被开掉。这是源于最初马云创业时,筹集那 50 万初始资金那件事情。马总分享时说当时要求你们把本身闲钱拿出来,多少无所谓,不记名互相不能知道。时至今日马总也不知道究竟谁出了多少钱。

    由于人性是很脆弱的,一旦相互知道了,不可避免的就出现利益分配争端,也可能再也不按照能力提拔。十八罗汉的关系可能很快就由于利益崩掉了。回归现实,影响一我的薪资的因素太多了,若是你知道你同事比你高,干活还比你少,你可能很难再正常工做。

有一次高管见面会,邀请了玄难给咱们作分享,给了我不少启发。他先介绍了他的工做经验,能够说是很是丰富了,先后端都作过,这么高 P 的技术专家在分享中举例用的前端名词挺专业的。主要收获:

  1. 不要常常换工做,作一份工做一般 3-4 年才会有所沉淀,对这个领域很是了解。 换工做的缘由必定是追求更高的目标,而不是工做中遇到了困难想要逃避或者追求涨薪。越是遇到困难越要解决困难才可能有成长,逃避困难,换了工做仍然会遇到。技术的深度会跟薪资挂钩正比,即使是经过跳槽涨薪,没有技术实力压住泡沫仍是会破。

  2. 在 IT 行业,工做和兴趣要尽量贴合,能够发挥最大效果。 假如工做内容是一条线,兴趣是是一条线,这两条线的夹角越小,干活又轻松成果又多。若是这两条线是直角,两边可能都很痛苦,建议调整。

  3. 牛逼的架构师必定是业务、先后端各类技术栈所有有很深的理解。 不懂业务或者不懂前端只懂后端,都很难站在一个更高的视角来总体看问题和设计架构。由于系统是一个总体,有一部分不懂或者不关心,就可能成为系统的短板。

我也趁机问了两个我比较感兴趣的问题:

  1. 架构师平常工做是什么?

    答:一半时间四处听方案,评审架构方案可行性和合理性,并查看落地状况;一半时间用来制定目标管理人才以及招聘。

  2. 对你影响最大的一本书或者技术是什么?

    答:编译原理。

百阿培训时,一位讲师在讲关于抓住用户需求和关键点时也问了咱们一个有趣的问题:如何用一句话让老板帮你晋升? 

有人说我工做努力,晋升后会更努力。有人说个人实力足够晋升了,不晋升我就跑路了

其实都不对,讲师的答案是“帮我晋升,老板你才能晋升”。其实老板也须要晋升,可是一个团队的结构一般须要一个金字塔形状的结构。好比老板是 P6 带领一堆 P5,今年不少 P5 晋升到了 P6 那么老板显而易见很快要升 P7 了,否则金字塔结构就不稳定了。但一个 P7 带领一堆 P5 并且 P5 没有晋升迹象,那么能够碰见将来两三年都很难升 P8。从这个方面也能够看到,老板才是最可能对你好的人,你的成绩也关乎他的成绩。

 

640?wx_fmt=png

第一年总结

 

到了 2016 年 4 月,第一财年结束了。在这一年,技术能力进步不少,从以前 jQuery 栈转到 KISSY 再到 React 而且具有了必定的 Debug 能力,结合以前阿里全网升级 HTTPS (当时做为临时工,升级了很多淘宝老系统代码)、淘宝交易和淘宝海外,阅读了不少不少代码学到了不少东西。也能快速学习调研一些技术问题并作了不少分享,不过大都写在了内部 ATA 上了,因此博客今后基本没怎么更新了,主要开始逛知乎回答一些相关问题。

拥抱了变化,知道了老板视角。也初步认识商业的残酷,也大概知道淘宝的业务流程,对业务有必定的关注。从各类高层、大神的分享中也学到了不少。

收获也颇丰,拿到了不错的绩效。

此外,2015 年还有一个关于雾霾的纪录片发布出来。我也是第一次接触到了雾霾,我嗓子一直周期性的咽炎难受,原来发现多是跟雾霾有关。以后,个人浏览器收藏夹多了一个“移民”目录。

别惊讶!人工智能时代即将到来!

https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw


以上就是我在淘宝第一年的经历和学到的东西。

原文:https://juejin.im/post/5c74d4b9e51d4512c37ea03b
声明:本文经做者受权发布,如需转载请联系原做者。

640?wx_fmt=png

640?wx_fmt=jpeg

640?wx_fmt=gif

 热 文 推 荐 

这个 17 岁少年凭什么成为“顶级大师”?

杨超越杯编程大赛上热搜:不懂技术真不敢追星

程序员撒狗粮!3 天开发本身的婚礼小程序!

“我才是世界上最好的编程语言!”

腾讯变革 150 天全记录

让数百万台手机训练同一个模型?Google把这套框架开源了

剧情反转! 创始人去世事件再爆新料, 1.8亿美圆难道去了天堂?

云漫圈 | 如何给女友解释什么是HTTP

没有一我的,能躲过程序员的诱惑!

 

System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

640?wx_fmt=gif点击阅读原文,输入关键词,便可搜索您想要的 CSDN 文章。

640?wx_fmt=png喜欢就点击“好看”吧!