步入前端已经一年了,是时候写个总结了。
一个自不量力的承诺,我步入了前端。
去年的10月份来到北京寻找工作,在面试中,总经理问我,能否仿照某网站做出一个官网来,我那个时候连jquery都写不熟练,甚至都不会写,css没有学过,html也知道的可怜,但由于我特别喜欢这个公司,所以当时自不量力的说我可以,于是开始了我人生的前端开发。现在回想起来,真的很庆幸当时的自不量力。人生是需要一些自不量力的,万一实现了呢。
去年的10月份,我的能力确实是如此,去年毕业开始从事javaweb开发,还不分前后端,什么都学,导致我什么都没学会。来到北京后的这个公司,开始从事前端开发。最先开始的工作是用jquery,css,html来搭建我们的官网,加上修修改改,前前后后,用了大约两个月的时间。这两个月的时间熟练使用了,jquery,css,html。然后开始转战公司的IOT(Internet Of Things)项目前端开发,IOT项目用的是时下比较流行的技术,html5,angular1.x,bootstrap3.x,requirejs,gulp,nodejs,npm,bower,图标字体等等,刚进入这个项目,真的是一头雾水,最开始看了好多天的《用Angularjs开发下一代wen应用》,但还是没什么头绪,后来按着我司大神的代码,复制粘贴修改,做个简单的页面,有不懂得就问大神,就这样开始一点点的起步。这里有一点需要注意的是,尽量结合实践学习。纸上得来终觉浅,绝知此事要躬行。
就这样开始学习angular,bootstrap,总是会遇到各种各样的问题,不停地百度(那个时候我还不用Google),总是会烦扰大神,每天都加班学习,一般都是8,9点上班,晚上9,10点下班,我喜欢这样的工作,在能吃苦的年纪,不要选择安逸。要知道功夫不负有心人,这句话是对的,随着时间的推移,我掌握了越来越多的知识,遇到的一个个问题,都一个个的被解决,渐渐地能熟练的在当前的框架下面写代码,虽然还是不懂这个框架深层原理,至少实现产品功能已经没有太大的阻力。这个时候大约是今年的4,5月份了。
这个阶段,我开始看一些基础书籍,《JavaScript权威指南》,《Html5程序设计》,《疯狂Html5/css3/javascript讲义》,《响应式web设计》,《移动优先与响应式设计》,《Bootstrap实战》等,这些书籍大约都是这个阶段开始深入学习的,对前端的基础有了更深入的学习掌握。比如要重视响应式设计,移动优先准则,h5的新元素,css3的新特性,js的原型,闭包,设计模式等等。
后来加入我司ARK产品的前端开发工作,并开始独立负责这个产品的前端开发,这又是一个新的从无到有的项目。这个阶段我把以往学到的技术都应用到这个项目中,但有一点是没有适应手机,因为PC端的网站去适配手机还是会有很多的问题,看了阿里云,天猫等网站,他们都是单独做的手机端的网站,这个后期我想我们也要单独做这种适配。这个阶段也遇到了很多问题,但大多都是一个人去解决,要知道能自己完成的尽量自己完成,实在弄不了的或者会影响产品发布时要请求他人,每个人的时间都是宝贵的,没有人有责任义务愿意花很多时间来教你,成长更多的是来自于内心的渴望,而不是外界环境的施压。这个阶段主要学习了nodejs,webpack,canvas(可能大家都比较熟悉的是知乎的背景就是一个canvas),javascript设计模式(这个还是很有深度的,目前还没能全部学会),并且自己写了个nodejs的项目已开源到GitHub,还主要学习了很多的教学视频,推荐一些app,《极客学院》,《慕课网》,《百度传课》,《网易云课堂》,《麦子学院》等这里面都有很多的前后端的知识视频教学,能学习到很多知识。
最近,ARK产品已经收尾,又要开始新的产品,新的征程,这次是我自己搭建了前端框架
JS框架:Angular1.x
html/css框架: bootstrap3.x
模块加载器兼打包工具:webpack
css预编译器: sass
包管理器: npm
后期会更加详细的介绍这个前端框架,这里要说的是sass和webpack,其他的都是最熟悉不过的了。sass距今已经至少4,5年了,已经很稳定并且得到广泛好评,应用很广,大家可以自己百度。webpack是2015年最火热的前端项目模块加载器兼打包工具,可以把各种资源作为模块来使用和处理。今天的webpack更加稳定,而且一年来的时间,webpack社区发展丰富了很多内容,几乎你遇到的任何问题,社区都会有答案。于是今年我引入了这个工具,这个工具有很多的优点,它的目标是:
Split the dependency tree into chunks loaded on demand
Keep initial loading time low
Every static asset should be able to be a module
Ability to integrate 3rd-party libraries as modules
Ability to customize nearly every part of the module bundler
Suited for big projects
这些目标的实现让它成为最优秀的工具,这些是其他工具所不能达到的。它还有如下优点:
支持AMD/CMD规范
能模块化的不仅仅是js,包括CSS,Json,scss等等
开发便捷,能替代部分gulp/grunt的工作,比如打包,压缩混淆,图片转base64,scss编译,热加载等等
经过一年多的迅速发展,有了更多的插件,扩展性强,插件机制完善
可以通过配置打包成多个文件,有效利用浏览器的缓存功能提升性能
内置source-map,即使打包到一起,也方便调试
网上也有很多的webpack,gulp,requirejs等的对比,大家可以自行搜索查看。
所有的工具都是为了解决时下项目的某个痛点,使开发人员更加敏捷的开发,大可不必追求最火热的技术(比如当前最新的ng2.x,vue2.x等,这些可以自己先写写测试),因为会有很多不确定因素。时下正是前端时代,日新月异,发展速度 飞快,每天都有新的库或者插件产生,Javascript也是2016年github上面最火热的语言,这是一个混乱的时代,这是一个好的时代。作为前端开发者,我们要抓住、珍惜这场机遇,首先最重要的是把基本技术打牢,然后不断进取,稳步向前,追赶我们的时代。
2016年还有两个月了,年初的计划还有多少没有完成?是时候做最后的冲刺了,对我而言,这是我前端的第一年,我的一年职业规划就是把基本技术熟练掌握,还有两个月,准备要再多学习巩固一些基本知识。
最后,祝愿每个人2016大丰收,有所成长和进步。以上文字如果有不正确之处,烦请指正,大家一起学习一起进步。