一位前端工程师的迷离人生

描述

一直想把自己这些年的经历写下来,一是想做个人生总结,在30岁这个年纪似乎恰到好处。二么,也是想提炼一点经验赠与后来人。

我30年的经历大致能分为几个阶段,流离,思考,迷惘,坚持。

流离

我出生在一个富裕家庭,当然这种富裕仅仅存在于我童年那些模糊的记忆里,上初中的时候,为了躲避债务,父亲变卖了房子,远赴安徽挣钱,母亲则带着我上完初中和高中。那段日子,我们把宁波大大小小能住的便宜房子住了个遍,有些几乎是建国前的产物。对于我,这是苦难,然而却没有励志的故事展开。那一年高考,我考了个上榜线,事实上,我这个分数几乎没什么可选的余地,于是我去了青岛。大学的第二年,母亲因为癌症就去世了。这件事给予了我致命一击,其中蕴含的痛苦和悔恨即便过去了十年依然如初,丝毫未减。

迷惘

母亲走了,残酷的现实没能激发我面对生活奋力挣扎的勇气,倒使我愈发迷惘,网吧,逃课,宿舍几乎成了大学生活的全部。这个阶段,我肆意挥霍着我的青春,然后大三的时候就休学了。没拿到毕业证的我跟着几个同样肆无忌惮的室友在青岛闯荡着,闯得头破血流,很快就花光了学费,为了谋生,我做过销售,卖过网站,也炒过外汇,洗过车,擦过鞋,结果在一场朋友义气中被骗光了仅有的积蓄,灰头土脸的回到了杭州。

下飞机的时候,我有点懵,回想起在青岛住厨房,天没亮起来穿西装打领带跑客户的经历,突然觉得回家,真好。

10年回到杭州的我,24,年轻,但三年大学,总得给家里个交代,于是我就开始自考之路,看到这里,你或许觉得经历了这么多总该奋起拼搏,然后展开一篇励志故事了吧,但是我想说,然而并没有。在图书馆坚持了半年,考了5门,过了2门,我身上有着普通人所有的缺点,懒散,害怕困难,缺乏毅力,自视甚高,理想主义等等。在奶奶家吃了半年白饭,终于是被赶了出来,在父亲朋友开的药店里当起了仓库管理员。

仓库管理员这个职位其实很高大上,君不见多少新闻都是各种仓库管理员或者保安,图书管理员,艰苦奋斗后屌丝逆袭高富帅?但是到了我这里,故事的发展是,贪图安逸的我过着没心没肺的逍遥日子,1年后我荣升仓库管理员兼职行政采购,掌握了药店的生杀大权,深得老板器重和赏识,升职加薪。。.加了900,总共1700.

1700的工资能干什么?11年的时候我看了篇文章,说在杭州没有4000块钱,谈恋爱都不要想,当然我是不信的,于是我谈了一场恋爱,最后结局是姑娘给了我10块钱坐公交,然后,就没有然后了,这是个凄凉的故事,亲情,爱情,学业,看到这里,应该崛起了吧,按照往常故事的发展,经历过这么多人生的重大打击,应该奋发图强,屌丝逆袭了呀。然而并没有,这个社会上有很多人,在经受了各种打击之后就发誓要崛起,各种赌咒,恨不得立马回家头悬梁锥刺股,或者被各种励志电影和故事所感动,决定明天开始就好好规划人生。。.我就是这么一个普通人,不断循环着 :

打击 -》 “我要奋斗!” -》继续苟活。

我呆的药店已经开了10年了,我本以为可以就这样苟活度过另外一个10年,我想大家面对生活要做出选择的时候,都会倾向于更容易的一条路,why?因为我们就是这样的普罗大众啊。。.但是老天怎么会放过我呢?12年末的时候,药店因为经营不善面临倒闭,生活所迫,我只能选择辞职,另谋出路。这一年我26.

思考

离开药店以后,我找了个网管的工作,不过上班第一天就让人给辞了,因为不会接网线,管人事的小姑娘还特意给我留了点后门,让我有机会看视频翻资料,结果,网线接完,插上,灯没亮。

我不记得当时怎么走出大楼的,这是我人生第一份自己找的正式的工作,虽然只有半天,我依稀记得,面试上的时候,我回药店里跟那帮阿姨大妈得瑟,2800呢,转正3500,每年还有加薪呢。大妈们艳羡的眼神充分满足了我的虚荣心,我还记得就在2个小时前,我还兴奋的准备投入这份大有前途的工作。。.

我骑着我的两轮宝马,漫无目的的往家开,我不知道别人二十六七在干嘛,或许大部分人都在努力工作吧,我也想努力,可惜没有工作。我最终是没回到家,把车停路边,一个人坐在桥上看着南门江,我咬了咬牙,日子总得过,靠着以前药店的关系,我从信用卡里套了8000,我不知道能不能找到工作,或者我该做什么工作,但至少这笔钱给了我一点时间,虽然成本高昂。我回家开始海投简历,然而我在药店2年的工作经历,并没有卵用,因为我不是药学专业,同时也没有任何资格证,走药店的路子基本是被否了,我唯一能想到的只有计算机。

我从小喜欢玩游戏,大学里学的是网络技术,我想我或许能找一份相关的工作,然而悲剧的是,我并没有任何学历证明,甚至连高中文凭,我都还没从学校里拿出来。简历投了不少,不过没有任何公司愿意面试我。仗着那8000块钱,我在家自学了点sql和javase,但工作依然没着落,心灰意冷之下,每天过着醉生梦死的日子,就这样熬过2个月,基本是白天黑夜颠倒的过,编程是没学会啥,看这所剩无几的钱,想想下个月银行的账单,诶,怎一个愁字了得。

绝望,这是我唯一能想到的词,不过或许是时来运转,我终于得到了一家公司的网络管理员面试邀请,幸运的是,这次面试,我通过了。3000,对我来说,已经是雪中送炭。

我的人生得到了喘息之机,也给了我一次能够思考的机会,我不知道别人二十七的时候在干嘛,但我想我这种拿着3000不到的工资,给人修电脑拉网线,估计也挺多的,哈哈哈哈。笑是苦涩的,二十七岁,一无所有的我依然是苦涩的。

另一种人,或许就是我这种,快活不下去了,所以不得不思考。当我坐在办公室,面对着一个用c++写的破erp系统,我开始思考,这玩意是怎么做出来的,所谓c/s,b/s到底是什么,我的网管工作持续了大约6个月,这6个月的思考和我学习到的知识,成了我接下来人生的基石。但最初的原因,很简单,因为我要对这个erp系统做二次开发,而我仅仅懂得一些sql,所以我需要思考。

我的编程生涯没搞过什么大的故障,即便是后来混进BAT,发布的代码影响成千上万的人,也没有,这可能得益于我担任网管时期搞出来的重大bug,在我最初写sql的时候,我所在的这家公司主营是母婴连锁,我的二次开发就基于数据库,直接写sql脚本,后来我花了不少时间学了c#,搞了个简单,甚至是简陋的客户端用来执行这些脚本,最初的时候,我拙劣的编程技巧把数据库里的一个月的销售数据全干掉了,但庆幸的是全公司只有我一个人知道这是什么原因,冒着被炒鱿鱼的风险,我熬了几个通宵,找回了这部分数据。

这件事对我影响很大,我开始意识到,原来这些英文字母组成的玩意能够轻易的摧毁一家公司。这也坚定了我继续走程序猿道路的决心,当然我得首先跨越一个槛

入行,成为一名程序员

幸运的是我任职的这半年正好是销售的淡季,我每天的工作就是去各个门店给大妈修电脑,修电话线,讽刺的是,这个阶段我熟练的掌握了网线的制作技巧,虽然这个技能很有用,居家工作都用得上。空余的时间我如饥似渴的学习着c#编程的技巧,6个月后,我读了不少书,也做了一个简单的客户端系统,自我感觉极其良好,我觉得时机来了,或许我能成为一名真正的程序员,2013年10月我离开了这家公司,开始新一轮面试。

上大学那会,我看得最多的书都是有关于哲学的,从古希腊哲学史到逻辑学,有时候我也能蹦出两句富有哲理的话,譬如,预期和风险是等价的,预期越高,失落的风险也越大。

我对程序员的美好预期,造成了我面试的巨大失落,相比半年前海投的无声无息,我得到了几个面试机会,比如和从达内培训出来的90后们竞争一个实习岗位。面试我的是个秃顶的中年男人,他给了我一张试卷做了一些c#的题目,完成得不是很好,很多面向对象的问题和术语我都不理解,但我印象最深刻的是他问我的最后一个问题。

“你知道怎么遍历一个panel来修改里面元素的值么?”

然后我很懵逼的问了一个问题“。..。啥叫遍历?”

然后?当然没有然后了。我走出来的时候,除了失落,更有深深的挫折感,在过几个月就28了,但从秃顶大叔的眼神中我看到了深深的鄙视“你是猴子派来的逗比么?”我发现自己看的书,网上抄抄改改的代码并没有卵用,从某种角度讲,我连菜鸟都还算不上。当然如果失落可以拿来还银行的债务,我还是愿意多失落会,只是没了工作的我如何面对下个月超出我工资的银行账单。..

路过那些大公司的时候,我突然觉得这一幕很相似,刚毕业那会卖网站,我们那个小组长就给我们放《当幸福来敲门》洗脑,这真是部不错的片子,其中男主在大厦外面看着投行的员工满脸幸福的穿梭的时候,我突然感同身受,除了没孩子没老婆,不过这么一想我还不如他,诶。..

在大公司门口发了半天呆,最后我没找到怎么进去瞧瞧,只好悻悻然走了,账单的日子一天一天逼近,有时候人活着真得靠运气,我终于碰到一家只面试sql的公司。当然后来知道我这主管水平比较低也只能面面sql。凭借着好几个月的sql经验,我再次得到了一个喘息之机。

网上有篇文章说中国正在经历阶级固化,90年代为什么下海就能发财,不是因为下海的人多聪明,那是因为那是阶级固化的早期,充足的阶级流动性制造了大量的机会,那个年代的人是幸福的,只要胆大,肯吃苦,谁都有机会成为更高的阶级。但是今天,机会正在减少,而对于我们这种活在社会底层的人而言,机会是如此的重要。我知道虽然只是一个程序员的名头,工资也就加了500,面对的电脑还是10年前的产物,对于很多人来说,这一切都不值一提,但对我而言,这或许是唯一的机会,就像一个救命稻草一样。

面对残酷的生活,我们有时候难免心生绝望,这时候来一点心灵鸡汤就很必要了,而我的精神食粮就是《当幸福来敲门》无论男主在救济站里挑灯夜读还是抱着儿子躲在厕所里过夜都激励着我即便是上厕所也不能放弃思考和学习,男主得活着,而我没时间了。

三个月,找不到薪水更高的工作,我就得面临被银行追债的风险,或者说是必然。

写c#的这三个月,我开始接触到前端,javascript的灵活性,和前端开源社区的繁荣,都深深的吸引我,why?学习的门槛低啊。..相比c#和java,javascript你能在网上找到大量的优秀的代码和示例,无数前端大牛们在贡献着一个一个精妙的代码库,前端充满了奇思妙想,同时这是一个新兴工种,这意味着你的起点不会比别人落下多少。

故事到这里其实已经告一段落,后面就是我被银行账单催着不断跳槽,学习,加薪,混进BAT。就像玩游戏一样,游戏中最大的乐趣都在从新手村出来混到中级玩家的那个阶段,你会遇到很多挑战,然后认识很多朋友,最后在满级的时候说别离。当然这不是个很恰当的比喻,技术是无止境的,但俗话说万事开头难,当你开了一个头,只要坚持就会不断的进步,别停下,你总会拿到你要的结果

坚持

最初面试前端的时候我遭遇了c#一样的尴尬,被面的一无是处,但我深信坚持就会有转机,就像我能碰到只面sql的公司,同样也能碰到只面bootstrap的公司,而达成这一切的关键就在于你是否能坚持到转机的出现,转机何时出现,你,我都不知道,但我们至少还能够鼓足勇气去坚持,去寻找机会。

《幸福》中男主在面对他儿子打篮球的时候,悲观的他告诫儿子,你打篮球是不会有出息的,但随后他便改口

人总要为自己做的事情找个理由,说服自己也说服别人,写博客也一样,说到底,我们写博客的最终目的还是为自己所思考的东西找个去处,换个说法,我们每一次思考,就像是玩一款游戏,如果你不保存你的进度,那只能寄望于一次通关了。不然永远也玩不到更高的级别。这样可以解释为什么技术大牛都乐于写博客和分享,只有这样才能逐渐的把一个问题思考的更透彻,更深入而不是日复一日的重新思考。

故而随着我们经验和技术以及阅历的增长,我们对问题的解释也会发生变化,对于半路出家的仓库管理员如何成为一个“好”的前端工程师,在不同阶段的描述也截然不同。

过去我习惯于从左到右的思考,因为这符合书写的习惯,对于“好”得前端工程师,我们首先可能会去思考什么是好,好的定义和范围,标准和要求?但现在我习惯于从右到左的思考,因为我觉得越是抽象越难以定义,从粒度更小的名词入手,我们更容易找到解开问题的路径。故而我将这个问题分成三个阶段来思考:

如何成为工程师,如何成为前端工程师,如何成为好的前端工程师

当然这一切还有一个前置条件“半路出家的仓库管理员”

突出仓库管理员的目的,在于任何转行你都得有一个前提,那就是你得有时间,在日常工作之外能够给自己流出充足的时间来学习和提升自己。而半路出家则说明了一个现状,每个人都会对生活不满,迫于压力或者其他原因来寻求转变,希望能进入投入产出比更高的职业领域。如果你仔细的去寻找一些逆袭的履历,你会发现很多都有类似仓库管理,图书管理,保安等等之类的经历,所以你想通过自学转行当前端工程师。

第一步就是找一份,能养活自己同时又提供足够的空余时间的工作。

如何成为工程师

软件工程师可以看做是对程序员的一个加强,工程是一个商业化的概念,相对于程序员这个概念,工程师更复杂,程序员更纯粹,简单的理解,当一个程序员在某一个商业领域有了一定的项目经验以后,他就是一名工程师。

当然半路出家意味着你不可能回头再去读四年大学好好学习如何当一个程序员,所以我们要跨过这个概念,直接进入工程师这个范畴,关键便是“在某一个商业领域有了一定的项目经验”商业是以结果为驱动的,故而你只要获取到一个完整的项目经验,便可以跨过程序员这个雷区成为一名工程师。

所以在这个阶段,寻找任何一份能够接触到实际完整项目的岗位就成了当务之急,每个人基础不同,在这个阶段,可能有人能迅速找到相符合的岗位,而有人可能只能找到一些似是而非仅仅是搭上边的岗位,比如名为前端,实际却只负责页面修修改改,抠图之类的工作或者被外包到某些公司里负责活动页面等等。但只要目标明确,尽快获得一个完整的项目经验,你就不会在工作中迷失自己,这个阶段跳槽可能会很频繁,因为你在快速的调整自己。那么什么样的项目是完整的呢?

一个完整的web项目包含了从前端的用户输入到后端的数据存取,任何复杂的大型项目本身也是无数个小项目构建而成,所以经历一个完整的web项目,有助于你从前到后的了解数据如何从浏览器端经过服务器处理流入数据库。过去我可能会推荐你试试php,因为它和JavaScript很像,现在有了node,要搭建一个web应用就变得更加简单了。当你经过一系列不堪回首的过程,在作坊公司里开发了一个完整的web项目的时候,你就可以尝试进入下一个阶段。

如何成为前端工程师

在github上流传着一份前端工程师技能树,乍看之下绝对会打消你继续朝前端努力的念头,因为它太繁茂了,枝繁叶茂的技术栈层出不穷,更有新技术被不断的添加进去。所以我这里并不推荐你按照技能树的顺序去学习,因为前端的技术迭代太快了,可能你还没学完这个技术就已经被其他新技术所取代了。在我看来前端领域包含了两个大块,计算和设计。

设计

设计包含了用户的交互体验和视觉,css所要描述的内容,大多来自于设计领域可以说基本是ps上内容的移植,所以了解些ps设计上的知识有助于你将设计稿转换成css代码,而交互体验主要是指用户在应用上的操作是否流畅,这种流畅包括性能和交互两个方面。

计算

如果细数前端这些年的发展,其实除了一些浏览器环境特有的问题,大多数还是在照搬后端的那些东西,包括模块化,编译,面向对象等等,这么做的原因是什么?我觉得是为了解决web应用中的一个趋势,计算前置,为了使web应用在设计中能够使用户交互更加流畅,我们把很多后端的计算逻辑搬到了前端来完成,这种趋势促进了前端技术的发展。

而面对如此繁复的前端技术体系,又从何入手呢?

首先万变不离其宗,基础不能落下,JavaScript是重中之重,掌握JavaScript其实不难,作为一门脚本语言,JavaScript本身的标准化库也着实少得可怜,日常工作中,你用到最多的可能就是处理dom事件,发送ajax请求,处理回调,渲染dom。

JavaScript内部的机制,闭包等概念,在这个阶段,你可以知其然但不知其所以然,因为这些概念本身是需要经验和时间的积累去理解的。

其次css,说实话你能使用css3写出动画并且掌握常见的布局就足以应对大多数初创公司的要求,至于less和sass,懂更好,不懂也无妨。

最后你得熟练使用jQuery,因为它太简单了,花不了你多少时间,另外掌握bootstrap,可以显著提高你在一些后台应用开发中的工作效率。有了以上这些技能加上一个完整的项目经验,前端工程师的大门便为你打开了,你要做的很简单---跳槽

如何成为“好”的前端工程师

经历了前两个阶段的洗礼,我不知道你花了多少时间,数月或者数年?但这一切才刚开始。虽然我想说写代码是为了改变世界,不那么功利,但事实上,半路出家搞前端,多半都是家里揭不开锅了。..想要养家糊口,自然得当一名好的前端工程师。

而所谓好在这里其实是和薪资挂等号的,这个“好”可能相对狭义,并且更具有商业化的色彩,故而成为好的前端工程师可以这么来。

关注业界动态,github基本上算是前端开源技术的风向标了,从backbon 到angular 到react都是各领风骚两三年,掌握一门时下热门的流行的开发技术对于你的薪资提升有很大的帮助,毕竟热门就意味着更大的影响更多市场需求,而薪资显然是供需关系主导的。

注意沟通表达能力的培养,想的再好,说不出来也枉然。

时间有限,尽可能投入到新技术或者投入产出比高的技术学习中去,比如现在再做ie兼容类的工作,就是很低收益的事情。

最重要的一点,一旦你目前的工作对你来说得不到提升,就要考虑走人了,不要拖,不要混,半路出家大多是大龄青年,混吃等死没资本。

多看书,有些东西,你可以没做过,但你不能没说过。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分