前端面试经验

 快点   2018-04-12 20:03   428 人阅读  0 条评论

一个想法的开端

早在大学里,就对于TW有了解,技术大牛,极客思想,扁平化管理,出国经历。非常的吸引我这样一个憧憬未来的大学生,于是当时校招的时候我便投递了这家公司,可是很不幸的是,简历并未通过,与之无缘。可是那深深的执念,一直存于心中,在一直憧憬着,这是一个想法的开端。

在毕业半年中,一直在成都知道创宇内工作学习,创宇氛围也很不错,人也不错,本想着在这个地方学习一段时间之后,再去想想去别处学习。可是在过年之前得知有机会能够进入TW,我就开始坐不住了。

提前的准备

在过年期间,大概一周时间,除去陪伴家人的时间,大部分时间我都在补充之前的一些遗漏知识点,大概补充如下

  1. css,less
  2. html5,语义化
  3. 浏览器适配,响应式设计
  4. JavaScript设计模式(工厂模式、适配器模式、发布订阅模式)
  5. react 生命周期
  6. redux 思想
  7. react-router4

在查漏补缺的间隙,我也在阅读一本可视化的书籍《不只是美:信息图表设计原理与经典案例》,推荐一下这本书,对于可视化的理论知识描述的还不错,运用了大量图表例子来进行理论知识的论证。

在整个过程中,我发现,思考给我带来的不止是知识层面的增长,还会给我带来一些宁静,安抚躁动不安的心,因为心里想的TW的面试是很难得,我这样准备能否通过,后来总结出了一个我觉得能够适用于大家的一句话:不论结果如何,我只需要在过程中尽情的展示自己,让别人多了解我,能够让别人记住有我这么一个人,那我就是值的了。

电话面试

过完年不久,我就将自己的简历发送给了TW的员工(内推),在一周之后便接到一个来电,是HR的电话面试,HR是一个大哥哥,很热情,问了我很多,当然我也是很热情的回答了问题,电话面试过程一定要让别人觉得你是一个交流正常,并且谈吐都很到位的人,这样给人第一映像才会很棒,问得最能够引起我关注的问题就是问我一般写文章怎么样,能否描述一下最近写的一篇文章的内容,很巧的是我那几天正好写了一篇读书笔记,也就是上面提到那本书的一个读书笔记,我便与他讲了讲我对书中的理论的看法。整个电面过程很nice,电话面试完了之后就告诉我将会发送一套编程题给我去做。

从电话面试中可以看出,主要考察的是与人交流的能力,还有就是平时没事儿的时候,也可以码码字,记录一下自己的所学与所得,分享与他人,在论坛上面建立一定的影响力这是提高自我价值的一个很棒的方法,这个观点在进入TW之后,更加的深入我心,因为在这里不是suggest去建立社区影响力,而是demand或者说是force大家要去建立自己的社区影响力,这或许也是TW吸引我的一个点吧。

两次做题

面试题很简单,要求如下:

  1. 按照发过来的设计图完美制作,也就是高保真百分百还原
  2. 制作一个类似todolist的功能
  3. 适配浏览器 ie9+ 以及市面上流行浏览器
  4. 响应式设计 至少保证1024分辨率

第一次作业,我想了很久,那时候没想到可以使用框架,于是在搭建完dom与调整完样式之后,我便使用原生js进行todolist的边写,想到运用react的state的方式来进行一次模拟。

在写代码中发现很多问题,比如之前很少使用原生js,不知道原生js获取的dom数组并不是真的数组,而是类数组,需要转换,还有一些浏览器兼容的问题,也是在做的过程中才遇到的问题,查了很多资料,最难的还是模拟react的state的存储模式,但是由于不是虚拟dom,每次数据更换之后,都需要重刷整个页面,这样才能够绑定上相应的函数,这样子做非常的浪费资源,但是由于交作业的时间快到了,也只有硬着头皮提交了。

提交完了这一次作业之后,自己点了一首《凉凉》,后面几天都一直没有反馈,后面实在忍不住,问了一下HR,HR说我没通过,但是他们觉得我有潜力,想再给我一次机会,让我重做一次作业,我的心里乐开了花。

接着我拿到作业反馈,思考了很久,想着要展示我的强项,于是开工,搭建react开发框架,最开始还是想着使用state,可是觉得state维护起来比较麻烦,毕竟有很多小组件,索性改成redux,维护store方便一些,而且这是我的强项,写起来轻车熟路,但是美中不足的是模态框我想的太死了,导致后面面试出了一些难堪的地方,稍后会讲到。完成这个只用了之前时间的一半。

提交了第二次作业之后,也还是惴惴不安的等待着。第三天,就有了反馈,恭喜,获得面试资格。

在笔试阶段,这个发题给人做的想法很不错,不仅仅考察了基础知识,还考察了学习能力,解决问题的能力,因为在解决实际业务中,难免遇到问题,如何解决问题的,这是很关键的,而且在做题之间一定要使用自己强项进行完成,不然会很痛苦。

两轮面试

到了面试的时间点,早早的来到公司等待着,当天面试的人只有我一个人,所以很快便被带进了会议室面试。面试一共两轮:

  1. 结对编程???

    首先进来的两位面试官,一个比较年轻,一个比较年长,然后面试的第一个流程就是 结对编程 ,编程的题就是接着之前写的那个作业,继续添加一个功能,这里就要重复用到之前的作业中的模态框,然而我之前写模态框以为它的业务场景就只有那一个,所以写死了,在这里很尴尬的把那个组建复制了一个出来重新修改。很快半小时左右我完成了任务,在这个编码过程中,两位面试官都很认真,会帮我指出不合理的地方,及时纠正,在结束之后还会讨论功能实现上的一下见解,而且两位的见解还会不一直,就是对于模态框的打开和关闭的状态是由谁去决定的这一个点,和他们讨论了一些,收获很大,而且在编码过程中,不会做过多的干扰,让我按照自己的思路去编写代码,很棒的一次结对编程体验。

  2. 问问题

    第二轮面试紧接着上一轮面试,等待了十分钟左右,第二轮面试官进来,拿着简历,按照简历上面我所写的一些东西进行询问,这里我尽量的展示了我在平时工作上的一些行为和见解,把平时怎么和团队之间工作协作详细的描述给了面试官,并且在询问到我专业知识的时候,由于之前的准备,回答我自己觉得还是满意的。不过有一个点,我觉得是我失策了,可能是因为回答得很顺利,在回答面试官问我最近看过什么书的时候,我脑袋抽了一下说的是一本设计模式的书,然后面试官让我说一下我印象最深刻的一个设计模式,这里我说了适配器模式,但是说的很烂。。。让我觉得很丢脸,而且我最近读的书是关于可视化的,我应该讲这本书的,脑袋抽风了,接下来就是让我用英文介绍一下自己,我整个人也是懵的,平时工作环境中根本没有使用英文对话,虽说平时看英文文档很顺畅,听英文还不错,但是就是口语这一块缺失锻炼,张口就是一口高中生英语水平,说完第一句,我就想挖个洞钻到低下去了,后来我下定狠心,一定要好好的练习口语。

总的来说,面试过程张弛有度,结对编程很新颖,英文介绍自己也很考验人,准备充分,然后尽情展示自己,把最好的自己展示给面试官看,让他们觉得你有潜力,觉得你身上有闪光点,我觉得这应该是面试最重要的了。

PREVIOUS:已经是最后一篇了

 发表评论


表情