前言

看到学妹发来的毕业照,才意识到,上次我参加毕业典礼的时候已经是一年前了。这个话题很久之前在知乎有看到的,自己也超想写一篇。但是看着知乎上回答的都是各种牛逼的人,想想还是不在知乎上写了。之前一直没有写的动力,趁着今天就抓紧完成了。也算是对这一年的回顾与反思吧。

现在正在做什么

从大四实习一直到现在,都是待在一家互联网金融创业公司,从事前端开发的工作。目前负责着公司PC网站和微信端网站的开发和日常维护,现阶段还负责Android Hybrid App的开发(采用ionic的解决方案)。回顾整个过程,从一个前端小小白到可以独立负责公司的前端,这个过程用了一年多,对别的大牛可能微不足道,但是对于我自己而言,是一个很大的进步。这一年不仅是我的前端元年,更是开启了学习的大门。

这一年经历了什么

先说说一个小插曲吧。最近在忙着用ionic开发Android App,由于ionic之前并没有学过,所以就开启了疯狂得项目驱动学习方式。一个礼拜的时候,已经搞定了App的三分之一。还被朋友夸赞了学习速度快。这个状态就是毕业后一年的我。但是回想起这一年里,我最烦恼的就是学习速度慢,每次学习新技术,都要花很多时间才能掌握。然而现在的我,已经能以较快的速度学习并运用一门新的技术。或许这种进步在别人眼里看来就是微不足道,但是对于我而言,却是一种进步。而且我找到了能让自己快速进步的方式,这比进步更有意义。所以这一年对我而言,最大的意义不在于我学会了哪些新的框架或者语言,而是我学会了怎么才能让自己快速高效地学习,虽然方法还有极大的改进空间,但是至少已经发生改变了。

我在大学里学的是Java后端开发,当时前端的CSS和HTML对于我来说真的是太难搞定了。可是没想到实习的时候,竟然却是抛弃了学习了那么久的Java,转向了我以前头疼的前端。我还记得2014.12.31那天晚上,为了调试一个简单的微信页面,加班到9点多。那个加班的夜晚绝对是我度过最漫长的时间。那时候的我对于基本的CSS和HTML都不懂,但就是在你什么都不懂的情况下,你还得去调试页面。看着时间一分一秒的过去,但是我依然是一点头绪都没有,身上的每个细胞都充满着不自在感。最后还是求助于上司才搞定了。从那天开始,我算是真正接触前端,开始学习前端的最基本技能。后面就开始了类似打怪升级的道路,不停得在前端的道路上打怪升级。学HTML、写CSS、做项目、不断得看各种技术非技术书籍。

两个对我影响最大的上司

公司经历了从初创阶段到A轮融资后的两个阶段。其中两位上司对我影响很大,只可惜现在这两位上司都离开了。
第一位上司钱是随着公司创立到A轮融资一直都在。是钱领我进入前端的。同时钱是一位涉猎非常广的技术人员,并不止于技术。正是从他身上,我学到了,不应只是专注于代码。你还应该关注你的上下游。比如前端的上下游分别是产品、UI设计和后端。
第二位上司詹是从陆金所过来的Android开发。由于我们之前的开发都是创业公司般追求效率,在开发和流程规范上并没有过多注意。没有规范的开发和管理导致的就是会出现很多混乱和本可以避免的Bug。
詹过来后,就开始实行他之前在大厂所遵循的开发流程规范。他开始推行使用Git进行分支管理,区分dev开发分支和master发布分支(关于git开发规范我也写了一篇文章:http://www.iamsuperman.cn/2016/04/09/git/git-standard );推行测试,所有开发只有经过测试通过后才能由运维人员发布线上等等。
不得不说,自从实施了这些规范和流程之后,我们的生产Bug已经大幅度减少了,而且开发流程也趋于规范了。不仅提高了效率,也减少了生产Bug数量。
效率和规范是一种矛盾体。过度追求规范可能就会导致了效率低下,但是一点规范都没有也很难保证效率。所以在创业公司中,如何在这二者之间取得一个平衡点才是最重要的。

阅读与写作

这一年的经历对于我而言,就好比开启了一扇大门。让我看到了外面更精彩的世界,以及接触到各种有用的方法论。在利用印象笔记收集资料的过程中,了解到知识管理技能,并不断在实践;通过工作中和阅读书籍的总结,学会了如何进行时间管理等等。所以的这些,我觉得最重要的当属阅读和写作。如果你只是阅读,而不注重产出,那你只是在消费别人的产出。结果可能对你收效甚微。只有你自己当一个产出者,才能真正得吸收知识。所以这一年我认为最大的成就就是开通自己的博客并坚持产出。

关于应届生求职

由于最近正打算招个初级前端工程师,也就是应届毕业生,所以也接触了几十位面试者。每个面试者我都会认真地与其沟通交流,也正因为我自己才毕业一年,这样的场景让我觉得非常有趣,所以值得总结。在刚开始的那几次面试中,不得不承认,作为一个面试官,我做得并不好。一方面是因为我没有一点经验,不知道该如何去面试别人;另一方面也是因为我并没有对面试这件事给予重视和准备。后面也网上找了一些比较简单的面试题,然后再自己添加一些开放性的问题(比如:你最近正在学习什么?等),组成了一份面试题。有了这份面试题,面试过程就进行得比较顺利。再后面一点,我就总结出一套规则:面对没有项目经历的同学问面试题;面对有项目经历的同学,着重问项目,然后再跟着对方的回答再深入挖掘。不过,终于我已经找到人了。那就说说我的想法:老生常谈,既然我想招的是应届毕业生,那么我的要求自然就不会那么高。但是要求并不高,并不代表你可以什么都不熟就能通过面试的。我一般都是从下面几个方面考察:

  • 非常基础的知识。如果你连基础都不懂,我怎么能相信你能完成工作任务呢?比如:CSS的盒子模型、CSS的布局模式、定位等问题。一般这三个问题都不能完全回答出来的话,我就已经不太会考虑了。
  • 解决问题的思路。一般会问项目中所遇到过的问题,以及是如何解决的。技术不会可以学,解决问题的思维和能力才是最重要的,然而大部分在这方面并不是很擅长。
  • 如何自学?如何学习一门新技术。程序员是一个自学的行业,如果你不会自学的话,那么你可以考虑转行了。
  • 对前端学习的热情。看对方空闲时花费多少时间在前端上。我想招的是一个对这个行业热爱的人。记得有个面试者,在外包公司待了一年,简历上项目写了好几个项目。结果稍微问下去,就啥都不懂了。他简历写着熟悉响应式布局,结果连怎么用@media query都不知道。我就问他,既然都不会,那你怎么不花时间学习呢?他的回答是这一年工作太忙,没时间学习。所谓没时间,都只是懒的借口(此处应该自我警醒)。
  • 对自己前端之路的计划。可能由于大部分都是应届生,所以回答都是非常宽泛的,比如学好前端的技能之类的。当你对一个行业了解很少的时候,自然也就无法做出多好的规划。

对接下来的一年有什么计划

  • 继续在前端道路上不断学习。
  • 通过主题阅读的方法,来学习不同领域的知识
  • 坚持阅读和写作的习惯
  • 保持身体健康