一个前端的职业轨迹

1,238 阅读12分钟
原文链接: segmentfault.com

本文首发于欧雷流一个前端的职业轨迹》。由于我会时不时对文章进行补充、修正和润色,为了保证所看到的是最新版本,请阅读原文

从春节回来开始直到现在,公司就像开了闸的西湖水一样进行着新陈更替,可以说开发团队算是重组了一下。眼看着身边发生这种情况,虽然没有什么想法但还是有了点想法,所以想写篇文章阐述一下自己的想法。几天前还在朋友圈里播下了种子——

本来是打算着重写职场危机的,但前几天看到了「计算机之子」程劭非(winter)的文章,也就是在第二届 FEDay 前端开发者大会上的分享的补充版,《一个前端的自我修养》之后有些共鸣,再加上最近在职业发展上有点思想上的转变,所以这篇文章的主要内容就变成了讲述「一个前端的职业轨迹」。

本文是从自身经历出发,再结合对他人的经历的了解所进行的总结,故标题中的「前端」可以理解成「前端工程师」这个职业,也可以理解成是我自己。

背景

我是一个 80 后,准确点说是 85 后,再准确点就是 80 年代的尾巴。掐指一算,已经快 30 岁了,想想有点小悲伤呢……

内向的我绝大多数时候不想动嘴,喜欢一个人静静地待着。(请叫我「静静」……)因为这种性格,我社交能力不是很强,也不喜欢随随便便就跟一个人建立联系;但是我思考总结能力略胜一筹,想象力也稍微丰富一些。没办法,普通人在社交能力和思考能力当中只能占一样,这是性格特点所带来的「技能加成」,如果全占的,不是天赋异禀就是自我训练能力特强。

因为做事方式,有些人会误以为我是处女座,然而并不是,实际是跟下面这位一样——

专业选择

我天生就是个好奇心重的人,对很多方面的事情感兴趣,也愿意去为了感兴趣的事物付出。我是一个兴趣驱动的人,绝对相信只有对一件事情抱有兴趣甚至爱上它才能够做好那件事

所有事情中,最激动人心的就是去创造一个东西!写作是创造,绘画是创造,编程也是创造,这些都是我的爱好并且一直坚持在做。但作为职业,写作和绘画不太适合我。其他的创造类的事情中成本最低的就是软件开发了吧?去进行实物的创造需要不断地购买原材料,试错的成本较高;然而写代码就不一样了,基本有电脑、电和网就差不多了。因此,填志愿时我报的是软件专业。

职业选择

在实习时,我是做客户端开发的,用的是 VC6,做起来很是枯燥,一点激情都没有。后来开始写博客了,想要个性化自己的页面,发现能够很容易地将自己所想的用代码表达出来,感觉很是好玩,让我充满激情!以之为契机逐步了解前端技术,记得那年是 2009 年。我是先接触的 HTML、CSS,在找第一份正式工作时才去学 JavaScript 和 jQuery。

工作经历

第一份工作是在老家的一个算是外包公司的小作坊,每个人整天到晚就是忙着工作,都没什么技术交流,在那期间没学到什么很有用的东西,不到一年我就离开了那里南下杭州另寻一片天空,听说走了不久那就倒闭了……

来杭州后的第一份工作是在滨江的一家 web 安全行业的公司,不是互联网公司,做的是面向企业的 B/S 架构产品。因为做的不是互联网产品,成就感就是差一些,并且没太大的挑战性,再加上客户的性质,不适合我。

之后的公司是一家既做游戏又做在线教育的公司,这两个业务分别是不同的「子公司」在做,我是做在线教育的。当时的专职前端只有我一个人,没什么人交流专业技术,感到有些孤独寂寞冷……另外,都两年多了业务一直没怎么起来,所选择的方向做起来有点困难,人生苦短,再耗下去我就完了……不过,这家公司在开发方面还是有很多优点的,气氛也是比较缓和轻松。

再后来,就是做汽车电商的买好车了。入职后把代码拉下来看了一下,给我的感觉就是一个词——混乱!无论是目录结构还是 git 分支。B2B 业务开始后,前端采取了新的开发方式,目录和代码的划分更为清晰;虽然还不够严格,git 分支的管理也开始使用 Git Flow 了,提交规范也要搞起来。这些都在朝着好的方向发展。在这里,我想也希望自己能够担当团队中一个重要的角色,不是 leader,而是帮助团队加强生产力,引领提高整体水平的存在。

思考

多年的工作经历以及通过各种形式在跟其他同行交流后,让我对职业、职场和与公司之间的关系有了更全面更客观地认识,看到了一些问题。

职业素养

无论何时何地,一个人在群体中活动时需要有公共的规章制度进行约束,更需要个人对自己的制约,这是更为重要的事情。在职场当中,就是职业素养,大概包含以下几个方面:

  1. 职业道德;

  2. 职业思想;

  3. 职业行为习惯;

  4. 职业技能。

前三项用通俗易懂的语言来说就是:忠于公司、爱岗敬业、遵纪守法、积极进取。不管从事什么行业,这些都是共通的,是作为一个职业人所必备的基本素质。第四项则主要包括日常工作技能及专业技能。一个白领在日常工作中应当能够书写用词得当、排版规整的工作邮件以及掌握办公软件的基本操作;关于专业技能的事稍后会说,这里就不赘述了。

不得不说,「有些人」的职业素养真的很差!他们会有如下思想和行为——

做软件开发的工资高,这是很多人对软件行业的认识。尤其是分支之一的 web 前端开发,由于近些年来互联网行业和前端技术的发展,前端工程师的薪资水涨船高,一大批人涌进这个行业。

这些人中有很多是因为这个职业看起来薪资高且门槛低才选择进来的,这催生了一些培训机构和从培训机构出来的人。他们对这个职业根本就没什么兴趣,完全是冲着钱来的。在面试时如果碰到稍微有些要求的公司,都会被 pass 掉。运气好的话会遇到没有专职前端的或者要求较低的公司顺利通过面试,这很有可能是一家节奏较慢,不怎么紧张的公司。

在一家没有紧张感的公司待了一两年,养成了懒散的习惯:经常性迟到,甚至是严重迟到;稍微感到不舒服就请假,即使年假已经用完;每天准时下班,就算当天的工作没有完成;不思进取,专业水平跟不上也不去努力学习;无法沟通,让与他协作的人无语;工作时间的大部分是在聊天灌水而非工作或自我充电……

这种人上班就是去打酱油的,拿着公司给的工资而不作为。这些恶习一旦养成,无论他们换多少工作也很难改掉。不过,恐怕离开了那个「安乐窝」,他们就再无去处了。

技能成长

每个从业人员都应关注自身成长,这不仅关系到自己的专业程度和所体现出的价值,说得实际些,还关系到拿到手的 money 和圈内的声誉名气。

程劭非的那个分享的主题就是关于前端工程师的成长。他将成长分为「知识」与「能力」两个方面,比重分别是 20% 和 80%。「知识」中包括了比较稳定且几乎不会被推翻的「标准」和变化很快的「技术」;「能力」里包含了用代码解决问题的「编程能力」、解决代码规模问题的「架构能力」与解决协作问题的「工程能力」。这种划分方式我是十分赞同的!

可以看出,对于一个前端工程师来说,去阅读理解标准和训练培养能力才是真正稳健并有益的做法,追逐日新月异的技术和框架是很肤浅浮躁的行为。

技术或框架的诞生是为了解决某个场景下出现的问题,有一百个场景就可能有一百个以上的技术或框架,它们是特定问题的解决方案,是工具。创造一个技术或框架,需要的是上文所提到的能力,然后遵照标准去开发。由此可见,标准和能力的重要性远远大于技术和框架。

不光光是前端工程师,只要是从事软件开发的人就应该意识到,一名软件工程师的核心实力不是懂多少语言会多少技术,而是编程、架构、工程等能力的高低。优秀的开发人员不会把自己局限于某种语言或某个技术,那些都是可以根据实际需要进行调整更替的,而能力是不可替代的。

遗憾的是,大部分人的关注点是在技术、框架或工具上。

公司挑选

在不同类型的公司中待过之后,我觉得对于我们写代码的人来说选择一个什么样的公司去工作真的是太重要了!我在各种场合不只一次说过:

选择到什么样的公司去工作是一件需要万分谨慎的事情。进错公司毁一生,我不是在开玩笑!不要小看人性的弱点和环境的作用。

是的,不要小看人性的弱点和环境的作用!

在「有的公司」里会遇到如下情况——

为了节约成本会把不同岗位的事情都塞给你一个人去做,傻傻的你觉得这是一种锻炼,了解了多个岗位的事情……Are you kidding me?一个人干多个人的活,还觉得这是锻炼自己?要真想锻炼为啥不利用业余时间做些自己想做的项目去锻炼?

工作从早忙到晚,做的竟是些重复性没难度的工作,对自己的成长毛帮助没有。公司没提供有挑战性的工作也就算了,还剥夺个人自我学习成长的时间。当别人问起工作咋样,听到自己工作忙像是挺好的样子,实际啥都没学到,白白浪费了青春。

你的作用就是干活而没有发言权,提出的建设性意见在上级眼中就是屁,需要你去做的事情在讨论需求阶段不叫你去参加而直接分配给你任务去做……还跟我谈什么参与感?什么把公司的事业当成是自己的事业?全特么是 shit!

如果想要自己的事业路线走得顺利,就要避免进入具备上述特点的公司。但这些在没进去工作一段时间时很难知道,除非有认识的人或者通过其他方式进行侧面了解。不过,有些特点比较容易得知:

  1. 非互联网公司;

  2. 非集团下的或未到 A 轮的公司;

  3. 五险一金不充分;

  4. 年假少;

  5. 人文关怀差;

  6. 没零食水果。

要是一家公司占了上面好几点,那么基本可以把它判定为「不靠谱」,就不必考虑了。也许你会问:「照你这么说,那些公司就没人去了?!」当然有啊!那是给「有情怀」的人去的。当然,例外总是会有的——CEO 为人很好真的很靠谱的公司。

如果时间能够倒流,刚毕业那一两年说死我也要进大公司去工作!一次面试不行就闭关一段时间后进行第二次,再不行就三次,直到进去了为止!抱着「先在小公司站个脚再去大公司」的想法是个错误,一不小心就几年的时光过去了,并且那时的水平还是进不了大公司!

大公司能够培养做事的方式,锻炼解决问题的思维,更快地了解学习尖端技术,对个人成长有很大益处,这是一方面;大公司稳定,薪水高,福利好,这是另一方面——这些就是为什么执着于进大公司的原因。

然而,我觉得进大公司这条路已经不适合我了。