谢刘总邀,想想自己从当初被鹅厂的学姐拉入前端的坑也已经过了好久好久了,也该写点东西总结一下自己的萌新之路了。这篇文章仅站在一个新人的角度写写我眼里的前端。
背景介绍: 武大软件工程系16届本科毕业生,现在在饿了么作为前端工程师打怪升级中。
入门
大一大二自己瞎折腾了两年,到了大三才开始思考自己想要做什么。碰巧社团里的学姐拿了鹅厂的offer,给了我不少关于前端方向的建议。那时候对前端的认识还是比较浅显的,选择做这个一方面是因为当初自己在社团里面是做设计的,想未来的工作既能够和代码挂钩又能和设计带点关系,另一方面当时看到很多网站的交互和动画特别酷炫,特别想自己也有能够有能力去实现这样的效果。然后脑子一热就投入到前端学习之中了。
大概很多前端汪的入门之路都差不多。从最简单的页面写起,慢慢熟悉浮动定位的使用方式,然后开始写一些简单的js交互效果。然后开始刷犀牛书(权威指南)和红宝书(js高级程序设计),在网上看各种各样的视频。在具备了一些前端基础知识后,通过大三下的春招去了武汉一家小公司实习,实习的工作主要是写一些移动端的页面和交互。由于公司比较年轻,团队业务又比较忙,大部分时间还是在自己折腾,感觉当时自己还是个野路子,不过也确实学习到了很多CSS3的知识并且能熟练的用jQuery写业务了,同时认识了很多能一起交流讨论前端的朋友,也算是敲开了自己的前端之门了。
成长
那时候是15年的9月份,实习完大三暑假,我就回到学校参与秋招了。秋招这两个月大概是我前端成长最快的两个月。本着哪怕面不过也是交流的心态,我海投了大量的公司,参与了各种公司的面试。同时每天会和小前端群的小伙伴们@小草 @阿呆组团讨论问题,分析交流各种面试心得。那段时间的成长真的很快,很多自己浅尝辄止并没有经历过业务实战的问题在面试中都暴露了出来,通过和面试官的交流和小伙伴们的讨论对这类问题的理解都更加深入了。建议大家把握好校招这次机会,哪怕已经拿到了offer,也请好好利用校招这次机会,多跟其他厂的工程师们多交流,去看看外面的世界,一定会有所收获的。每家公司都有自己的技术栈,有着不一样的业务,因此面试的侧重点也都各不相同,也都有各自值得学习的地方。这一路真的发生了很多故事,诸如因为刚开始准备不充分被度娘二面血虐,和阿里面试官愉快的讨论移动端踩坑,做了渣浪诚意满满的前端笔试卷等等。我坚信,交流和分享,始终是推动技术和视野成长的良方。(打个广告,这也可以算我们建立小前端这个组织的初心之一吧笑,欢迎关注我们的github组织,希望未来能够和在读这篇文章的各位也能有沟通交流的机会)
最愉快的一场面试,是跟我在饿了么未来的leader进行的。基本简历写到的东西都会聊,我们聊之前的实习经历,聊H5的应用,聊CSS3(诸如flex和移动端的应用),聊js基本功(原型闭包继承冒泡委托this),聊预处理(那时候用SASS和LESS还是觉得挺潮的哈哈),聊ES6给业务带来的新变化,当然也会聊框架,只不过那时候还是只会jQuery也就没深入聊了。基本就是一个问题接一个问题,leader当时跟我开玩笑说面试题都快不够了。
前前后后参加的面试大概有二十多场吧,最后也拿到了6个offer。由于家离魔都近,面试又愉快,再加上鱼总@Sofish在微博对饿了么的各种宣传,我基本没犹豫就选择了饿了么。校招这两个月真的受益良多,不过纸上得来终觉浅,终究还是要实践的,于是我收拾起行囊,前往魔都开始下一段实习生活。
新世界
在饿了么的实习非常愉快。带我的导师超级靠谱(崇拜脸),很顺利的融入了团队。由于之前野路子导致代码非常不规范(诸如空格换行分号,函数封装抽象之类的问题),实习一开始经常被导师吐槽,不过他还是很耐心的帮我一一纠正了。饿了么的前端技术栈对我来说当时完全是新东西,在来公司之前自己做的基本都是小项目,基本都是html+css+jq就能完成的。而当时我们组的技术栈是ng1+flux+sass+webpack,当时感觉就是打开了新世界的大门。
通过实习的学习,慢慢习惯了单应用页面,有了前端路由的概念(比如ng1自带的router以及拓展的ui-router),学会了利用flux进行数据状态管理(后来比较有名的实现比如vue的vuex以及react的redux),学会了模块化开发,学会了写directive来实现组件化。实习的每一天都非常充实。
到了16年上半年,我结束了实习生活,回学校毕设。由于毕设组团的小伙伴当时还在春招找工作,我承担了毕设的大部分工作。从需求分析到数据库建表,从前端页面交互写到后端的接口逻辑以及SQL,最后测试交付,也算是完整经历了项目的全过程,对软件工程的理解也比之前深刻了。完成毕设以后差不多我的大学生活也基本结束了,再次回到公司,这次不再是实习生了,而是作为一名全职的前端工程师,正式开始我的前端工作。
沉淀
16年6月底,我回到了公司。整个16年以及接下来的17年,对我来说都是沉淀的日子吧。继续打扎实基础,写好每一个新业务,同时也不忘关注新技术。
前端技术日新月异的发展着,我们的项目也慢慢从ng1过渡到vue1,然后再慢慢过渡到vue2。也慢慢习惯了写vue全家桶的vue-router和vuex(虽然感觉这两块还是之前写ng顺手)。与此同时,react和ng也绽放出新的生命,关于ng2带来的新东西也成了大家的关注重点,团队内也不乏对RxJs和TypeScript充满期待的支持者。和native端的融合也在继续,移动团队已经开始了ReactNative和Weex的尝试,期待三端统一的日子早日来临。至于各种构建打包工具就更不提了,grunt,gulp,webpack,webpack2,rollup此起彼伏,连包管理工具都想从npm切到yarn。很多人觉得前端造新轮子太频繁太快了,学习成本过高,往往老的没用多久新的就来了。这的确是前端的现状,不过我却不认为这是坏事,这正说明我们前端的社区非常活跃,我们正在朝着正确的方向前进着,早晚会有统一的那一天。沉淀下来好好学习,早晚会有融会贯通的那一天。
建议
最后写点建议和大家共勉吧,作为新人可能还有很多很多理解不透彻的地方,希望能多跟大家交流。
还是那句老话,勇于追新,但也不能忘本。HTML,CSS,JS始终是前端的三板斧。这三板斧是重中之重,远比什么新工具框架的学习要来的重要。基础是前端工程师立身之本。
学会独立去学习和解决问题,学会使用搜素引擎,很多简单的问题能通过google或者stackoverflow解决就尽量通过他们来解决。你想一个框架入门最简单的方法就是去官网好好看一遍文档然后去github找几个开源项目研究一下。从一个hello world,一个to do list 写起。
关于JS的学习,强烈推荐JavaScript高级程序设计和你不知道的JavaScript,尤其是前者,面试之前建议反复学习。后者则可以帮你深入理解一些知识。
这个就是个人观点了,学会分享,拥抱开源。刚开始可能能力有限,更多的是作为伸手党去学习,但是随着自身能力的提升,我希望大家能够更加积极的拥抱开源社区,勇于去交流去分享。每家公司的技术栈都不一样,埋头于自己的小窝难免容易固步自封,温水煮青蛙。希望大家可以通过技术讨论,通过对开源社区的维护,推动自身技术以及整个前端社区的良性发展。
最后,祝大家新的一年都能更上一层楼,向更高的目标挺进。
小广告
欢迎关注我们的微信公众号:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。