一个前端菜鸟的成长记

一个前端菜鸟的成长记

如今才总结彷佛有点晚,但聊胜于无,记录一下个人2016,毕业的第一年,对于人生意义重大的一年。javascript

个人求职之路

打从进入了大四以后,便深深的意识到了就业的压力,并一直在作着迈向社会的准备。从2015年9月开始,便开始投简历(技术类的招聘通常都比较早),天天8点出8点归,总算没有辜负辛苦了两个月的本身,斩下一些很差不坏的offer。前端

11月开初,技术类的招聘已经基本结束了。不甘于闲赋在学校的我又开始了本身的实习之路。
提及来也是惭愧,在这实习期间,我竟展转了三家公司进行实习。java

4399实习

在4399实习期间,锻炼了我很是多的东西。感谢勇哥、新哥,给予我机会去作更多的尝试。react

在4399中,我有幸进入到UED部门,在设计组中担任前端工程师。android

在这期间,我头一回面向多项目编程,在这期间积累了很是多的实战经验,也开始有了本身书写HTML、CSS、JS的规范。同时,在此期间本身蚍蜉撼树地尝试起了前端代码构建工具——gulp,以本身的理解写了一篇粗鄙的gulp介绍——Gulp Introductionios

研究完gulp以后,本身摸索着将gulp运用到实际的开发工做当中,在勇哥的指点下,开始跳出项目外去思考,尝试利用工具解放双手,向模块化迈进,写出文章——在项目中使用gulpgit

在4399的这段宝贵的实习经历中,让我对大前端、“技术选型”、“构建工具”、“脚手架”有了一个更加深入的认识,让从前仅会随便写一下简单页面的菜鸟跳出一切都已经准备好的温馨区,从无到有的学习、创做、进步。github

UC实习

过完春节,在滨豪的推荐、南风姐的帮忙下,有幸进入到UC进行实习,再次开始一个全新的旅程。正则表达式

在UC中,我就任于海外业务组,基于NodeJS进行爬虫的开发。npm

在此以前,虽对NodeJS已经有一个初步的认识,也曾从书籍上学习过。但我始终认为,在前端、乃至技术的学习中,若是没有项目驱动(不管是工做业务仍是本身创造的需求),都是很难真正的学会的。

从一入职,我所作的第一件事就是学习项目组里面的编码规范,包括命名规范、代码缩进、编写风格、注释规范等,我才深深的感觉到一个精良的规范对于一个团队的良好运行,是多么重要的事情。

在以后的爬虫开发当中,我愈加的感觉到编码规范、代码可读性、code review等对于团队的重要性。之前一直觉得这些东西都是很虚的,但当团队日益庞大,业务日益繁重时,若是不能保证代码的可读性,是会严重的拖慢团队进度的。同时,严格的code review,能够防范于未然,规避不少往后意想不到的问题发生。历来没想过,本身写的代码原来挺烂的...

在爬虫开发中,愈来愈感受NodeJS对于“前端”的革命是那么的巨大。它让“前端”再也不局限于所谓的“切图”当中,仅仅几十行代码,一个爬虫就能写出来了,并且运行良好,足以支撑巨大的业务。同时,NodeJS的出现,也让先后端没有了编程语言上的沟通障碍,可以更好的协做。

而我,也在此次实习中接触学习并熟悉了不少必备的技能:正则表达式、Promise、命令行操做等。

现东家

在一系列的机缘巧合之下,我来到了现东家,从入职到如今工做了8个月的时间,在其中饱尝酸甜苦辣,技术获得了飞跃的进步。

感谢老大,没有他当时的拍板就没有如今的我,无尽感激~(虽然到如今我也不知道为何当时他会看中我...)

如何入职暂且不表,但这段经历对于我来讲,是一个绝对重大的人生转折点,它让我开启了一个全新的职业生涯,也让我对创业有了更深、更全的认知。

对的,我就是进入到了一家前景很是可期的创业公司!

在这里,我是最初期的团队中的一员,在老大的指引下,一步步从无到有的在前端这条路上越走越远。

我们团队是“JavaScript 全栈开发团队”,在此打个小广告,欢迎志同道合的你。入职以来,个人title是“客户端开发工程师”,主要开发我们的APP。对的,你猜到了,用的就是REACT NATIVE

在老大给我搭好了开发所需的初始框架以后,我便开始投入到工做当中。然而,我要怎么开始呢?!当时的我几度懵逼,咬咬牙便开始摸索起来。

那时候我但是一个连github.com都不怎么会用的人呀,因此只能从文档、老大给的starter-kit入手,一步步地啃并动手学习。

从搭建开发环境开始,我便陷入了深深的蛋疼当中...怎么让windows中跑起starter-kit,我足足研究了两天,折腾了一大堆,后来总结起来,呕出了Windows下安装React Native的安卓环境这篇文章。

说实话,搭建RN环境,挺累的...

开发环境搭好以后,就抓紧学习RN的写法了。RN用的是一套全新的XML标签,与一套全新的CSS语法,虽然看样子格式仍是那种格式,但背后却有不一样的学习成本。在摸索完以后,我便开始以我以前积累下来的移动端网页开发经验,开始摸索着开发移动端的页面了。对着设计稿,摸索这RN中使用了REM、百分比、flex,以打造一个能够多屏幕适配的页面。

还记得当时开发第一个页面的时候,打一行代码须要重写三遍,一个页面基本作完,又推倒重作,用2天时间,终于弄出了一个与设计稿大致类似的页面。看到成果时,感受没白熬。

以后固然就是连续不断的爬坑啦。总之,在这段日子里,我摸出了:

  1. github插件选择(star,issue),找RN的插件的话,js.coach/react-native/是个不错的选择

  2. npm版本控制很重要

  3. 技术选型

  4. 代码组织的艺术

  5. 项目架构的前瞻性、拓展能力

  6. 深挖业务需求,凡事多想一想,避免对代码打上“往后一定重写”的tag

APP开发到了必定程度,就碰到了JS所不能解决的瓶颈——原生SDK的接入。由于当时的业务需求,已经到了第三方插件没法知足需求的时候了。为了实现功能,必须进入到android和ios中去写RN能够用的插件。当时看到客户端原生代码(java, Objective-C)的时候真的是一脸懵逼,尤为是Objective-C,全新的写法让我无可奈何思考了一天的人生。

没办法,只得抄着现有的第三方插件库,半抄半写。途中已然忘记在多少个QQ群中问人,也记不起找过多少个朋友,多少个群友去问问题了,只记得同事们都对我说:“骏马面前无沟壑”...

终于,我对RN的熟悉度愈来愈高,开发起来也没那么吃力了。固然爬坑是少不了的,但已然没有那么痛苦。趁着在业务不是那么多的时候,我赶忙买了几本android、ios的入门书籍啃起来。感受回到了刚开始学前端的时候,啃“JavaScript高级程序设计”那段日子...

在项目开发到必定体量的时候,以前写得很烂的代码、不太合适项目的架构,已经严重的拖了后腿了,让项目开发变得难以高效迅速。在深思熟虑事后,我决定来一次项目代码重构。

此次重构,的确预备了好久了。我把平时写业务代码时碰到的一些不爽的点都收集起来,而后天天下班回家就在想要如何作才可以更好的在知足业务需求的前提下,高效迅速的开发。这一次代码重构主要针对下面几点:

  1. 将很是通用的组件(入Toaster, Confirm, Picker等),从以xml的格式应用,转变为函数调用。例如我以前须要在页面中引入错误提示Toaster这个组件,是要在render中加上<Toaster />这个标签的。而如今,只须要在须要的时候,协商Toaster.error(new Error('错误提示'));,便可完成调用。这个必定程度上避免了react + reduxif-else嵌套过多的问题;

  2. 重整项目中store冗余,不够精细的问题。目前以页面为维度,来进行store的组织,同时补充一些全局通用的store

  3. 重整页面代码的组织结构,将其调整为一个较为通用、规范的组织结构。

革本身的老命,可不是开玩笑的...

其余达成

阅读:

已读但不限于:

<疯狂Android讲义>
<Javascript语言精粹>
<Javascript函数式编程>
<Javascript设计模式>
<你不知道的javascript(上卷)>
<深刻浅出NodeJS>
<CSS权威指南>

三场技术分享:

<第二届FEDay前端年会>
<腾讯IMWeb>
<第三届CSS大会>

在此特别感谢裕波大大与前端圈可爱的工做人员们,为咱们广州人民带来了这两场盛大的高质量前端技术分享会议。

多参加技术会议,能极大的开拓本身的技术视野哦!

2017年展望

在技术上,不懂的仍是太多了。2017年,但愿本身可以再接再砺,向当一名优秀的前端工程师这个梦想继续努力。

多读(15本书),多写,多总结(15篇分享)。

同时,但愿本身可以多多接触除技术之外的事物,努力拓展、拓宽本身的视野,交际!

相关文章
相关标签/搜索