一年零七个月,漫漫前端路(二)

cjy0208
cjy0208 发布于 2016-11-23 09:31:10 浏览:3499 类型:原创 - 随笔 分类:面试经验 - 进修之路 二维码: 作者原创 版权保护
四、初级试炼(2015年10月 -- 2016年3月)

在那个微信平台的项目结束之后,我有一个半月的时间都处于无所事事的状态
这段时间里,我在网上搜索各种各样自己感兴趣的资料,试图弄清楚一直以来对我来说云里雾里的一些知识,例如闭包、prototype、this指向什么的
还有我之前一直不知道的回调函数,类似于这样:
ajax(/*...*/, function(data) {
    //...
});

为什么这里要写一个function?而且它还会自己运行,还有里面这个data到底是怎么来的?这样的写法在我知识还短缺的时候,看起来十分的神奇。
也是在这个时候我找到了前端网这个平台,这里有一个试题模块,我把里面的大多数题都做了一遍,过程也是挺坎坷的,好多题都栽了。
那些我没做出来的,或者我感兴趣的题目,我会把它们都敲一遍,然后放到chrome里运行,打上console,仔细观察每一个步骤的变量状态,同时思考原因。
这段过程修补了我很多短板,也对闭包, this指向什么的这种常见常问的问题,有了一个比较好的了解,但是还不至于烂熟于心。

试题都做完了,再次无事可做的时候,我决定自己找点事来干,要不就再写一个游戏?好!
当时我正在玩2048,我决定自己写一个2048,大致思量了一下实现的方法,感觉很有挑战性,兴趣也上来了,于是就有了这个原生JS实现2048小游戏
也是在写这个游戏的过程中,在如何实现某个功能的时候,我灵光一现:能不能把函数A传入函数B,然后在函数B里执行函数A?
var fnA = function() {
	//...
};
var fnB = function(fn) {
	fn();
};
fnB(fnA);

这个时候我意识到,这不正是我之前一直无法理解的那种写法吗?
var test = function(fn) {
	var data = 123;
	fn(data);
};
test(function(data) {
	console.log(data);	//123
});

原来是这么一回事!于是乎,这个困惑我许久,让我倍感神奇的神秘写法,在这一刹那拨云见日了。

当时公司的另一个游戏团队正在开发一款斗地主游戏,由于希望能快速上线,这个游戏的主体决定用web来实现,当时是交给了那个团队的一个web实习生来写,但无奈他水平不足(貌似没什么产出,被辞退了),这个项目暂时被搁置下来。
在2015年11月中旬的时候,公司委以重任,让我接手这个项目,并要求在11月底完成,给我的时间只有12天左右。
我的师傅很为我打抱不平,他悄悄告诉我,这个游戏以前公司有别人用JAVA写过,三个人写了两个月才写出来(可能太夸张了)...现在居然让你一个人在半个月写出来!太过分了!
而我当时却没有胆怯,对我来说,这是一个新的挑战,而且我觉得我能够完成它。
关于实现的细节我已经记不清了,为了方便开发,我使用了从来没有用过的jquery,由于原生js的基础打得不错,jq很快就熟练了,用得飞起。
这一回我是一个人包揽前端,于是得到了一次设计通信接口规范的机会,也因为是游戏,也得以接触了websocket通信技术。
最后,我神奇地(如我所料)在期限之前,实现了整个游戏的逻辑功能,并且通过测试(三个测试还打了好几把斗地主)。

感觉怎么越写越多啊...那我简要说说= =

12月份的时候,接了一个女朋友前公司同事介绍的外包工作,要求完成一个电商整站前端页面的搭建工作,时间是9天!29个PC端电商页面!
天啊那段时间真的是快累死了,每天晚上都是写到12点以后才能睡觉,白天写上一整天(工作时间,幸好我平时都不忙),最后如期交差。
这个外包同样为了加快开发速度,我尝试用了sass + compass,也尝试使用一些我还没有很好掌握的模块重用思想,由于对网上的插件了解的比较少,里面的轮播图功能我用原生js自己实现了。
这个项目把我的一直以来三脚猫的布局技术提升了很多,这时候我已经可以写出比较好的页面结构了。

12月底的时候,我在前端网邂逅了极客学院内部的助教推广员,由于能力(装逼技术)还行,我通过了考核,成为了一名极客学院的助教。
助教的工作其实就是改改极客学院就业班学生提交的作业,他们都没有实战经验,所以写出来的东西,我还是可以(挑简单的)批改的,碰到某一些我不熟悉的知识,为了把作业改好,我会特意先去把这个知识查清楚,这段时间也学了一些自己用不着的技术比如seajs(到现在都没用过= =),也小小地锻炼了自己的表达能力。


五、深圳的新乐章(2016年3月 -- 2016年9月)

其实我家乡在广西,离西安足有1000多公里,当时选择留在西安工作的原因是我和女友一致认为没有工作经验,前往其他陌生城市求生实在太过冒险。西安的生活条件要求不是很高,所以决定现在西安把基础打好,混出一点工作经验。
时间过得很快,我在一月底的时候完成了另外一个外包,这一次主要是关于ajax接口调用。
这个时候我感觉时机已经接近成熟,恰好那时一个公司的同事也劝我早日离开西安,去一线城市闯荡,追求更好的生活。
我和我女朋友终于决定离开,去往离家更近的深圳发展,在辞去西安的工作后,我和女友于16年3月飞临深圳,开始了新的征程!

这个时候的我,也还是个渣渣,技术栈还太小,目光可以说是短浅,在经历了几个比较重要的实战之后,我顶多算是一个经验比较丰富的小兵。
要说这个时候和之前最大的不同,那就是一点:自信心已经达到了一个很饱满的状态。

来深圳的第一天晚上,为了省钱,我们住的是80块钱一晚上的旅馆(在深圳,这样的旅馆超级烂!),在狭小的房间里突然有种很深的感慨:虎落平阳(啊啊真的很恰当)
由于在西安的生活十分安逸,当时租住的房子虽然一般,但是比这家旅馆好了千千万万倍!我们抛弃了西安的一切,来到一个陌生的地方重新开始。虽然这是自己选择的路,但这一刻心里真的生出了一种深深的苍凉感。我很佩服那些只身闯荡大城市的同龄人,因为我不知道如果我自己一个人,我能不能做到这些。
第二天,我们选择去一家青年旅社租住,也开启了深圳生活的第一个篇章。

面试的过程依然没什么可说的,网上其实有很多面试的教程,唯一有心得的一点就是:大多数公司都喜欢诚恳的人。
我女朋友能力没有我强(我实现了最初的愿望,带她飞),但是居然先我一步找到了工作。不愧是深圳!女友的薪资直接比在西安翻了将近三倍!这大大增强了我的信心,我一定可以找到更好的!

我收取offer的过程比较戏剧性,由于工作年限不够,我投给巨头公司的简历都没有回信,最后锁定了两家大公司,一家是已经上市了的,据说技术强劲的游戏公司,另一个是某知名保险公司旗下的一家科技型分公司。
面试过程中,还面了一家创业公司,由于当时已经另有打算,并没有把它列入考虑范围内。因为他们是创业公司,所以我当时没好意思要太多薪水,说了一个比预期低很多的数。
首先是创业公司迅速响应,发下了offer,薪水也如预期地低,我自然放弃了。
游戏巨头公司开出的薪水并不是很让我满意,再加上它上班地址太偏远,我也放弃了。专心等候保险公司的答复。
在等待过程中,创业公司再次来电,主动给我提升了将近2K的薪水,我心里一阵悸动!这已经很接近我的预期了!在他们的诚恳邀请下,我答应接受offer,HR很高兴,让我第二天就去报道。但是就在当晚,保险公司给了答复,让我再等一天,明天就能有结果,抱着幻想,在纠结之下我决定,等!于是给创业公司的HR打电话,和他说明了情况,给他道歉,说我决定再等等另一家公司,这个offer我只能再次拒绝...
但是在第二天,我收到了保险公司的答复,被告知的,是一个相对极低的薪水...由于我工作年限不能算满一年(去年4月到今年3月),只能按照应届生对待,薪水是税前6.8K...
我的情绪沉到了谷底,于是我和他们交涉,告诉他们我当前拿到的其他offer的薪水,要求他们再做考虑,说这是我绝对不能接受的。他们表示理解,并让我再等一段时间...
创业公司的机会我已经失去了,这时候我有些后悔,但是已经没有办法了,我打算如果保险公司维持原判的话,我就重新投简历。两天后,第三天我收到了答复,提至8K,按照研究应届生的水准对待,并给我讲述他们公司的种种福利机制,让我考虑。我依然是十分的不情愿,但又无能为力。

我想了很久,决定妥协,我已经有将近一个月处于无工作状态了,我不想再浪费时间。
然而让我意想不到的是,将近一周不再有消息的创业公司,给我来电话了。
“再加2K,这是我们最多能够提供的了”,我有点不相信自己的耳朵...我是在做梦吗?
“你走之后我们面试了其他人,感觉还是你最合适,对于合适的人才,我们不会吝啬”。那一瞬间我真的有些感动,我很感谢,他们对我的认同,同时也有种劫后余生的畅快感。
我说好,我去你们公司,明天就去,这回绝对不会反悔了。

于是我来到了现在的这一家公司。
在此之后,我拒绝了保险公司的offer,面试我的技术负责人打电话挽留,我也坦诚说明了原因(薪水问题一直都是敏感问题,我居然傻了吧唧的直说了...),负责人尊重了我的选择。

进入新公司之后,我迅速投入状态,参与到公司新项目的开发当中,新项目是一个手机端电商app,技术上使用 native + webview 的实现方案,商品展示、购物流程使用web技术来制作,公司此并没有一个比较专业的负责前端的人,所以新项目的技术选型并没有太过考虑,使用了最简单的jquery进行开发,
由于我的积累也不足,于是便照着原来的路子进行开发,这个过程持续了好几个月,这段时间里,我独自完成了这个部分的所有功能,由于是独自开发,很多代码的实现都是天马行空,全局变量遍地走,怎么方便怎么来,十分酸爽。
为了方便,还自己写了一个MConole插件,用来查看移动端的console输出,为了解决文件缓存的问题,也研究gulp,使用gulp-rev完成任务,等等。
这段时间,CTO还给我介绍了函数式编程,让我用自己的代码实现array原生的forEach map filter reduce方法等
这几个月让我的开发水平大大进步,同时我意识到,当时那个渣渣的我用jquery写出的代码是多么难以维护,时间已经到了接近9月份,项目接近稳定,我开始有了重构的打算。

六、扩张疆土(2016年9月至今)

由于女朋友的公司使用了 react + reflux 的开发方式,我侧面参与了她的一部分功能开发,对这个技术栈算是熟悉,也尝到了点react的甜头,我决定使用同样的技术来对我们的项目进行重构。
因为公司项目的旧结构很混乱,难以快速查找文件,我自己构思了一个新的项目结构,并尝试实现
为了部署代码自动化处理,我花了近一个月时间来学习和编写gulp
由于新项目结构的原因,急需实现可传参的gulp命令,在网上搜索一番,没有适合答案后,我自己琢磨,动手写了人生中的第一个npm插件 gulp-foal
为了加快开发和学习函数式编程,重构项目中使用了underscore,顺带还看了lodash和ramda
由于使用react技术栈,还尝试了react-native,也看了redux,不过项目不是很复杂所以还是简单用着reflux
为了确保代码质量,学会了ESLint
为了使用最新的es语法,部署了babel环境
为了实现模块化,我尝试了webpack,由于比较难用,因为项目结构的原因,我没折腾,最后学着用了requireJs
为了使用最新的异步解决方案 async/await 我尝试使用typescript代替babel(typescript和gulp配合,速度比babel慢2倍左右)
还有挺多的,比如一些gulp的小插件,都有点搞头...

在这短短两个多月的时间里,我接触到的新技术(对我来说)呈爆炸式增长,回头看,很多曾经的谜障都已扫清,仿佛是在森林中前行已久,终于走到边缘,爬上高台看到了草原。

总结

这就是我目前的状况,感觉有点像是到了瓶颈期,低已经不成了,在海量的新技术之前,我已经可以做到不迷惑和不畏惧,在恰当的使用场景下,总有一天我会接触它们;但是高也不是那么就,由于一直是自己摸索,我始终感觉自己的火候还差得远。
总的来说,其实我一直自觉有些幸运,一是我参加工作以来,居然一直都不怎么忙过,这让我有很多时间在网上瞎看资料、学习和理解新鲜的东西,二是碰到了一家对我不做什么限制的公司,让我得以放手去尝试各种新的知识。
总结我也不知道怎么写,基本上该写的写完了,好长啊- -就这样吧。
我的QQ是375564567,希望能有一些同行的伙伴。
标签:
z
给个赞 48 人点赞
收藏 15 人收藏
评论 已有 60 条评论;以下用户言论只代表其个人观点,不代表 前端网(QDFuns) 的观点或立场。
登录 以后才能发表评论
最热评论
落花听雨666
落花听雨6662016-11-23 09:45:351F
从你的经历,总结出一个道理:有个女朋友很重要
举报 支持 (19) 回复 (3)
清歌飞翔
清歌飞翔2016-11-26 10:20:5452F
给你推荐一个课程,慕课网上,姜维老师讲的,我感觉讲的挺好的。http://www.imooc.com/learn/250 //@792375587:有好的ajax网站或视频推荐吗?觉得自己这块比较弱,在网上又找不到资源
举报 支持 (3) 回复 (1)
hbxywdk
hbxywdk2016-11-23 11:56:265F
环境真的影响一个人的发展,楼主很幸运有施展拳脚的机会,我司就很尴尬了,只有我一个前端,还只能停留在网页制作阶段,都1年了,很lowB啊
举报 支持 (3) 回复 (1)
最新评论
fantasy525
fantasy5254 天前60F
我想去美丽的海南岛,那里公司多吗 //@348138469:楼主,看了你的经历感觉很精彩,也很厉害,我也一直想着学习些高大上的前端知识,只是因为公司没有这方面的人才,我也是在网上乱看一通,看了些nodejs,vuejs,好多知识学了但不会用,公司也没有提供平台去实践这些技术,能否加你的qq,强烈希望你可以指导我下学习的方向,我是西安的,但是现在在海南上班,除了技术上的交流,我们还可以一起怀念下西安的一切emoticon
举报 支持 (0) 回复 (0)
hbxywdk
hbxywdk2016-12-22 20:50:0159F
emoticon //@ino0903:作为一个网页制作的老菜鸟,真心不知道咋说了。 //@hbxywdk:环境真的影响一个人的发展,楼主很幸运有施展拳脚的机会,我司就很尴尬了,只有我一个前端,还只能停留在网页制作阶段,都1年了,很lowB啊
举报 支持 (0) 回复 (0)
ino0903
ino09032016-12-22 15:09:4458F
作为一个网页制作的老菜鸟,真心不知道咋说了。 //@hbxywdk:环境真的影响一个人的发展,楼主很幸运有施展拳脚的机会,我司就很尴尬了,只有我一个前端,还只能停留在网页制作阶段,都1年了,很lowB啊
举报 支持 (0) 回复 (1)
cjy0208
cjy02082016-11-30 21:22:0057F
不能蒙,一步步来,搞清楚你写的每一行代码,要知道导致结果的原因,慢慢的就有改变了,一开始可以先学JQ,理解为主,jq比较熟练了,就学对应的原生js解法 //@zhoujun:新手学javascript和jquery有什么好的方法不??javascript自己一去写就蒙了  而且错误很多
举报 支持 (0) 回复 (0)
zhoujun
zhoujun2016-11-29 16:20:4556F
新手学javascript和jquery有什么好的方法不??javascript自己一去写就蒙了  而且错误很多
举报 支持 (0) 回复 (1)
薛大人
薛大人2016-11-28 15:23:2155F
这些新技术我都不会啊 不知道该怎么系统的学习啊  也不知道咋练习啊
举报 支持 (0) 回复 (0)
792375587
7923755872016-11-28 12:57:1054F
资源很棒,讲的很细,谢谢! //@清歌飞翔:给你推荐一个课程,慕课网上,姜维老师讲的,我感觉讲的挺好的。http://www.imooc.com/learn/250 //@792375587:有好的ajax网站或视频推荐吗?觉得自己这块比较弱,在网上又找不到资源
举报 支持 (0) 回复 (0)
792375587
7923755872016-11-28 11:46:1653F
好的,谢谢啦! //@cjy0208:ajax这一块其实没什么难点,所以一般没什么教程是专门讲它的。
主要是你要理解ajax的概念,知道ajax的作用,然后学习怎么使用它。
你们公司用jquery,那你可以在你们的项目代码里搜索$.ajax  /  $.get / $.post 这些方法,看看ajax具体是什么用的;
上面几个方法是jq对原生ajax的封装,让你可以很简单地发起一个ajax请求 //@792375587:有好的ajax网站或视频推荐吗?觉得自己这块比较弱,在网上又找不到资源
举报 支持 (0) 回复 (0)
清歌飞翔
清歌飞翔2016-11-26 10:20:5452F
给你推荐一个课程,慕课网上,姜维老师讲的,我感觉讲的挺好的。http://www.imooc.com/learn/250 //@792375587:有好的ajax网站或视频推荐吗?觉得自己这块比较弱,在网上又找不到资源
举报 支持 (3) 回复 (1)
Rika_jia
Rika_jia2016-11-25 23:46:2151F
厉害了 我的哥,多向你学习,我的学习能力还是很欠缺,感觉我有时候定心不够,但是入了这行,还是很喜欢这个行业的,舍不得放弃emoticon
举报 支持 (0) 回复 (0)
cjy0208
cjy02082016-11-25 22:31:4950F
一起加油emoticon //@603850784:挺励志的,向你学习
举报 支持 (0) 回复 (0)
603850784
6038507842016-11-25 21:46:4749F
有个男朋友也很重要 //@落花听雨666:从你的经历,总结出一个道理:有个女朋友很重要
举报 支持 (0) 回复 (0)
603850784
6038507842016-11-25 19:03:3548F
挺励志的,向你学习
举报 支持 (0) 回复 (1)
cjy0208
cjy02082016-11-25 18:17:1647F
ajax这一块其实没什么难点,所以一般没什么教程是专门讲它的。
主要是你要理解ajax的概念,知道ajax的作用,然后学习怎么使用它。
你们公司用jquery,那你可以在你们的项目代码里搜索$.ajax  /  $.get / $.post 这些方法,看看ajax具体是什么用的;
上面几个方法是jq对原生ajax的封装,让你可以很简单地发起一个ajax请求 //@792375587:有好的ajax网站或视频推荐吗?觉得自己这块比较弱,在网上又找不到资源
举报 支持 (0) 回复 (1)
cjy0208
cjy02082016-11-25 18:12:4546F
可以啊,直接加笔记最后面那个QQ就可以~~ //@348138469:楼主,看了你的经历感觉很精彩,也很厉害,我也一直想着学习些高大上的前端知识,只是因为公司没有这方面的人才,我也是在网上乱看一通,看了些nodejs,vuejs,好多知识学了但不会用,公司也没有提供平台去实践这些技术,能否加你的qq,强烈希望你可以指导我下学习的方向,我是西安的,但是现在在海南上班,除了技术上的交流,我们还可以一起怀念下西安的一切emoticon
举报 支持 (0) 回复 (0)
cjy0208 cjy0208 作者

这个人很懒,什么都没有留下

作者最新