前言
工作一年了,从学生党变工作党,从野生程序员变职业前端,收货了不少东西,于此一年香之际,记录一下自己的心路历程以及真实想法。
另外,本文纯感想且不涉及任何技术,所有内容仅代表个人观点,与任何组织及公司无关,若有不当或错误之处请及时指出,以免误伤路人。
总结
在这一年里,我有幸和大家一起经历了双11,双12,年货节,517通信节等大大小小的活动,为天猫网厅和阿里通信贡献自己的力量,阿里在技术上有着丰厚的沉淀,让我的技术视野开阔了许多,在各路前辈的带领下自己的能力也得到不小提升,在和大家一起共事的过程中也让我学习到了团队合作和交流的很多技能,期间有欢笑也有迷茫,有困难也存在许多问题,但这些对我来说都是一种锻炼和成长,很荣幸能加入到阿里大家庭,感谢你们。
好了,正式总结写完了,下面开始非正式的。
公司和团队
先说下公司吧,本人校招生,也没来实习过,所以来之前怀着满满的敬畏之情,哇,大公司耶,还有好多牛人,做了那么多牛逼的产品和技术,还担心自己能不能适应职场生活和礼仪,能不能胜任工作处理好同事关系。来之后发现自己完全想多了,这就一所“大学”,同事关系都是简单直接,大家都是对事不对人,工作氛围很好,环境也不错,有食堂,有小吃,有餐厅,有咖啡馆,还有自己的园区,除了预料之中的加班之外,一切都好。
然后是团队,作为前端,our team还是很和谐很会玩的,成员过生日或者工作满周年都会出去小聚一下,业务不忙时还能饭后踢个球,哪天老大高兴还会请客看个电影洗个脚啥的,虽然最浪的还是UED,但是比起后台等其他技术部门还是要好上不少。其实我想说能碰上一个开放和会玩的老大还是很幸运的。
生活与工作
本来想把工作和生活分开,毕竟阿里一直倡导员工要“认真生活,快乐工作”,然而发现每天大部分时间都在工作,工作已然是生活的重要部分。自己的状态在这一年中也经历了不少变化,所以就干脆一起写了。
LV1:努力工作,认真生活
刚来时其实有点虚,以前都是在小作坊小公司玩,突然变得专业起来还是很有压力,只能更加努力的去工作,去学习,去做出更多的东西来证明自己。生活上则是很认真的对待每件事,毕竟身上只有2千块钱,在没发工资的情况下要租房还要买东买西还是很心塞的。
LV2:认真工作,随便生活
度过实习期后,心里踏实了很多,然后开始认真对待工作中的每件事,毕竟刚来,不能捅娄子。同时回家之后也经常要学习看书,不断提升自己能力。所以生活上就很随便啦,一日三餐都是在公司蹭的,早出晚归回家就没剩多久时间了,周末就在家写点东西,也没怎么锻炼,没怎么出去玩。
LV3:努力工作,认真加班
淘宝天猫基本是天天在搞活动,一旦遇到双11,年货节,517通信节这种大型活动,光努力工作已经不够了,还得加班,况且对我来说都是第一次,如何优雅的处理产品经理运营UED的需求,以及开发节奏和线上问题还是有挑战的。印象比较深刻的是双11加班到了凌晨4点,517连续加班了2周,并且经常是到晚上两三点, 累的不要不要的。从这之后我才开始重新对待工作和生活的关系。
其实每天重复的工作和加班,曾让我开始迷茫,感到自己就是一个机器人。首先这些快速迭代的业务代码对我的能力基本没有提升,然后经常性加班耗费了我本就不多的业余时间,长此下去必然是个恶性循环,于是便决定休假调节一下状态。然后就去三亚玩了几天,在那里体验到了很多不一样的东西,感觉自己的人生又到了一个新的台阶,还有很多美好的东西等待着我去追寻。
LV4:用心工作,快乐生活
这应该是我目前所能达到的最高境界了。“认真生活、快乐工作”这话肯定是马老师说的:“我特讨厌认真工作的人,工作不要太认真,工作快乐就行,因为只有快乐让你创新,认真只会更多的KPI、更多的压力、更多的埋怨、更多的抱怨,真正把自己变成机器。我们不管多伟大、多了不起、多勤奋、多痛苦,永远记住做一个实实在在、舒舒服服、快快乐乐的人”。
我觉得后半句说的非常对。
虽然我很喜欢前端,但对于工作,并未达到“快乐工作”这样的境界。我更认可用心做好每件事。在沟通交流,讨论产品,推动业务每一件小事上都需要花心思,而不是只专注技术。工作一定得用心,最坏的情况就是怀疑一切,把所有人都当“傻逼”,当然,我也是傻逼。运营可能会把页面地址当成图片地址发布上线,导致网站开天窗;产品有时自己都没想好就把需求提过来了:“先这样改,后期我们再逐渐优化”,这是我见过的最不负责任的说法;UED可能在你做到一半时突然把整个页面的风格都换了,而一个小需求则有可能牵扯到好几个业务部门,导致沟通成本高而效率低下,产品的设计也是运营驱动,经常会有资源替换的方式来让产品加上一些很不人性化的东西......还有许多类似问题,然而让人意外的是,It works!
这些问题都很常见,但我真正想表达的不是如何去埋怨这些问题,而是如何去解决它们。
运营出问题说明我们的系统人性化和易用性还不够好,需求不稳定可能是我们流程把控有问题,而常改视觉稿说明我们还没有形成一个成熟的规范,沟通成本低说明我们的沟通方式有待改进...总之,任何团队和企业都会有自己的问题,只有尝试去解决这些问题,才会少更多埋怨,并且个人也会有更多的成就感。好在,阿里人有点让我特别欣慰的就是善于总结和吸取教训,并且会从以往经验中不断完善自己。虽然存在少数老员工有种躺在阿里挣钱的感觉,但总体上讲这还是一支很有活力和激情的队伍,尤其是运营!真心服!
再说说生活,这一年整体上还是比较放纵,想买啥就买了,无聊的时候就靠买东西打发时间了,各种书,电子产品,吃的穿的。后来想画画了,于是加入了淘宝叼炸天的核物理研究中心手绘技术实验组(虽然好久没去了555),然后又喜欢上了摄影,本着坚决不用单反不买iPhone的人生原则继续玩安卓渣渣机。生活中培养一些小爱好还是蛮好的,偶尔出去骑车或者参加活动或者旅游啥的调节下节奏也很必要。至于理想啊目标啊啥的鸡汤类的东西就不写了,毕竟生活这种东西,每个人的口味都不一样。
设计与美学
这是一个很高深的话题,我要开始装逼了Orz....
一位大神曾经说过,"不会搞艺术的程序员不是好设计师"。
我其实很向往这种感觉,每当看到一些美妙的设计,都有一种去当设计师的冲动。
然而我现在是一名程序员。
其实...我原本是,想做漫画家来着。本来我天赋异禀,骨骼惊奇,从小都是左撇子来着,后来一上小学就被老师掰成右手了;本来想考艺校的,然而烧不起于是就去了某科大搬砖;本来是想转专业的,后来发现写代码也挺好玩的于是就掉坑里了。自己大学时也做过一段时间设计,但是并未坚持下来,现在看两年前做的海报和APP简直就跟屎一样,都不好意思说自己曾经是宣传部的,惨的一逼。
不过据说金牛都是天生的艺术家,看来我还是有机会翻身的。
我的下一个目标就是不仅要成为一名优秀的前端,还要成为一名优秀的设计。男神说过,设计师的第一步,应该从多看优秀的作品开始,所以,接下来的一年里打算多培养一下自己的审美意识和鉴美能力。一旦我的计划得逞说不定还能偶尔打一下UED的脸,想想都觉得激动!
前端与编程
要说收货最大的还数前端,我要开始扯淡了Orz....
肤浅的认知
以前对前端的认知就是网页三剑客,现在来看着实肤浅。
当年在学校写的东西,要么是SPA官网,要么是微信推广页面,要么是给自个儿用的后台管理系统,而且没有完整的测试,没有线上监控,没有性能优化,完全停留在功能层面。来阿里了才算见识到一个专业前端所要具备的技能。除去所有程序员都具备的编程能力和工程能力,以及协作开发,代码维护能力,前端在项目技术选型,开发构建,调试和测试,发布和版本控制,监控及告警,性能优化与安全,视觉交互与体验等每一个步骤都可以做很多事情,这还不包括发展异常迅猛的前端新技术(各种框架,工具,新的Web API,新的规范和标准),简直眼花缭乱。以前的前端只需要library,而现在则需要framework和workflow。究其根本,是前端承载的业务越来越复杂,需要更强大的架构去支持,如果要你用一句话来描述现在的前端,你会怎么说呢?
业务和技术
第一年重点还是业务,主要贡献还是支撑了天猫网厅这边的几次大促活动和活动组件化建设。业务技术上也是走天猫和淘宝各自的工作流,总体概扩起来就是业务取得了不错结果,但技术缺乏强力输出。
然后说下工作外的,这一年前端依然涌现出了很多新技术,自己也都是浅尝辄止。
对于框架,React学了一阵实在不习惯那怪异的DSL,并且只写简单demo也没有让我感受到它在复杂应用上的优势,而对业务进行React重构是否真心能降低未来的维护成本我也不得而知;Vue刚学时感觉就是精简版的Angular,简单粗暴但直接有效,实际用上之后会发现非常优雅;而学习Polymer的时候一下子就被惊艳到了,感觉这就是WebComponent的未来。然后当Atom和VSC火了之后又去看了下Electron,然而又是只写了demo;WebVR也是热情了一阵,本想用A-Frame写个VR小游戏的,无奈手机上跑实在太卡,根本没法玩,只能坐等WebAssembly拯救世界了。然而当我一本正经准备去玩WASM的时候,发现将一个简单的helloworld.c程序从源文件编译成asm再到wasm后,居然达到了惊人的114k...然后再看看WebAssembly的Github,我又陷入了懵逼之中,这玩意儿起码得再过个三四年...
所以最终能深入下来的基本没有,更多的像是在玩。玩新技术能增强自己的视野,把握Web的发展潮流,但也会耗费自己的时间,而且真正有收获并且能形成个人竞争力的东西也很少,业务和技术其实需要相互平衡和促进,这点自己做的还不好,应当控制。
前端好难?
已经不止一次听人说前端越来越难了,我入行晚,大家不要骗我。
前端这几年确实变化很快,也越来越复杂了,但是用”难”来形容总感觉怪怪的。可能是前端以前太简单了,所以跟以前的前端比越来越难了,但是跟服务端,跟客户端相比前端只能算是步入了工程化的正轨。说前端难的导火索无非是各种新技术的不断涌现,但是这些技术归根到底不外乎4种:
1.开发语言技术。比如CSS,ES6&7,WebComponent等语言和开发层面的技术更新,需要我们不断去学习新的东西。但是语言级别的技术迭代是每种程序员都要面对的,像Java,C++,C#,Swift每年也都在不断更新,但从未听客户端工程师说越来越难了。
2.各种开发框架。比如React,Vue.js,AngularJS,Polymer这种前端开发框架的不断涌现,其实都是为了解决日益复杂的业务以及不同的用户场景而生的。类比起来就好比当年后台的SSH架构,或者客户端的MFC和WPF。这些技术通常有良好的学习文档,而且工程性很强,若非深入研究,上手难度其实并不高。
3.Web能力的扩展。包括浏览器不断开放的更多接口比如蓝牙,电池,本地存储,service worker,Houdini等新的API能力,以及像WASM这样的底层优化技术。然而这种类型的技术你要你认真去看标准文档学习其实也还好。
4.众多的开发工具。比如Grunt,Gulp,Webpack,npm,eslint,mocha这样的开发工具。除了深入研究或者自己造轮子之外,对于工具的使用基本上认真学习下官方说明和配置教程就可以很快上手了。
可以看到前端的技术层面都是偏上层,大部分技能都可以在一周或几周内掌握,对于一个毫无计算机专业基础的人来说成为一名前端的学习曲线要比成为一名后台的学习曲线低,唯一不同的是看到前端这么多技术点一开始可能会懵逼。
所以对比其他工程师来看,技术和编程的本质并没有变,只是前端变得更加工程化,更加专业化了,前端只要打好基础技术再怎么变也不会太难。
有趣的是,比起变难,我同样不止一次听到有其他端程序员说前端风气很浮夸,没有技术含量。
很显然我也不赞同这句话,因为有没有技术含量跟你的职位并没有强相关,而是取决你学习和研究的深度。并且,我认为一个好的前端综合要求会比其他工程师更高。好的工程师不会停留在技术表面,而是深入其原理,这也就意味着一名优秀的前端工程师在技术上除了要应付不断更新的新技术,还要具备深厚的专业理论基础,同时在视觉上还需要一定的审美能力,在产品和交互上也需要考虑到各种实现细节和用户体验问题。从项目角度来看,前端处在一个面而非一个点,这是所有其他工程师都不能比的。
如果把工程师分为工程应用型和技术研究型两种的话,前端一定属于前者。所以一定要说前端难的话,我认为难的不在于技术,而是如何用有限的技术将产品和服务做到极致,这才是我们最需要关心的。
一路向前
从需求上来看,前端工程师的需求这几年一直很旺盛,随着前端能力的不断拓展,技术要求越来越高,我相信在今后的几年中肯定会持续旺盛下去。从近几年的发展趋势来看,产品开发的重心在不断往前端转移,前端承载的东西也越来越多。到最后后端和客户端很可能只提供服务和载体的功能,技术重心会转移到前端,甚至连业务也会剥离到“前端”。这时候的“前端”肯定跟现在的前端有所区别,可能更接近全栈一些。因为从业务开发角度来看,全栈的前端,能够做到技术上的前后端分离,业务上的前后端融合,这样既降低了沟通成本,也保证了项目的可维护性,这样的工程师应该是企业最想要的吧。
从技术上来看,web技术一直在迅速发展,整个技术环境也变得更加开放,这将使前端一直保持活力。这点从各大browser vendors的表现就能看出来。这一年整个web界都散发着open的气息,微软放弃IE斯巴达Edge了;谷歌在今年的I/O大会上力推PWA,指明了Web发展的方向;就连一向封闭的苹果在今年的WWDC上也更加开放了,激进的Safari10居然号称完全支持ES6(ES6才正式发布一年呐),还支持3D touch!(去年底曾写过一篇文章预测Web很可能会支持压力感应事件,不到一年就出现了,这速度确实惊人)
这种高速发展其实有好也有坏,野蛮生长,盛极而衰,最终还是得由程序员来收拾烂摊子。W3C为Web的未来操碎了心,制定了一个又一个标准,在这野蛮增长的时代和众多的标准当中肯定会有一些奇葩,就比如Houdini。这帮人为了解决CSS兼容问题居然又引入了一个新的标准,开放了浏览器渲染路径,试图用新的标准去解决旧标准不兼容问题,那么问题来了,我要拿什么来兼容这新的标准...斯认为,Web发展的当务之急就是火狐,苹果,谷歌,微软这几个W3C巨头拆掉各自的浏览器研发团队,降低分裂带给全人类的伤害,并且集结众人之力,成立一个W3C浏览器联合开发大队,就叫Internet FireSafarome!
当然我是在扯淡,总体上,Web技术的发展会不断增强前端的能力,前端的边界会不断拓展,不仅仅只是Node.js,还会扩展到WoT,甚至是网络所能达到的任何地方。前端未来一定会细分出更多职位,形势一片大好。
下一年的期望
深耕技术,务实基础,少耍流氓多看书。
也期望自己能有更高的眼光去发现美的东西,等过了一年再回头看自己做的东西就跟屎一样,届时不会因为碌碌无为、虚度年华而悔恨,也不会因为为人卑劣、生活庸俗而愧疚.这样总结的时候就能够说:“我已把自己整个的生命和全部的精力献给了世界上最壮丽的事业!”
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。