看着这个标题,是否觉得很不可思议!没错!就是这样的神奇,不到你不信!下面来先说说我的背景。
学习背景:
本人学渣一个,应聘的是Web前端开发工程师。喜欢打游戏,大二、大三两年热衷于LOL,多科低分飘过,三年挂俩,一补考一重修,没拿过奖学金。大三下的下半学期开始自学前端,做过两个小项目,真正开始让我快速成长的是加入了老师的项目组,尽管在这个项目中我是做后台开发的,但其中用到的开发方法和软件工程思想却是让我在这次的面试中成功脱颖而出。下面让我来慢慢叙述一下我是怎么从笔试一直冲到HR面的。
成神之路:
笔试:
腾讯这年的实习生招聘我也有去,但很不幸,笔试就被刷了。这个打击是如此之大,以致于我对这次校园招聘的笔试不抱任何希望,当时我还考虑过直接放弃呢。所幸我还是没有选择自暴自弃,而是勇敢地奔赴了战场。这次的笔试涉及Web方面的比较多,我做起来感觉还是挺好的,于是便通过了。
一面:
毕竟不是第一次面试了,紧张我倒不怎么会,但担忧还是满满的。阿里、百度的面试我都在第一轮被刷了,要是这次腾讯再失败,我与BAT估计就无缘了。社会招聘比校园招聘难的可不是一点点。一面的面试官是个很热情的人,我们聊得很欢,大致问题如下(隔了几天忘了很多):
- 一些Javascript的问题,css没怎么问,html问了个iframe
- TCP,UDP区别,详细说一下三次握手过程,TCP断开连接需要几次通信
- 进程和线程区别
- 关于我项目的问题,我的项目里用的新技术比较多,也聊了一些(nodejs,mongodb, redis,socket.io等)
我答不出来的时候他还安慰我:不懂不要紧,只有你有激情、有梦想、爱学习,我们都很欢迎。最后还问了一条大数据处理的算法题:给出几亿条url, 让我找出一条是否在这几亿条里面。当时我只想到排序+二分,算法一向是我的弱点,答不好也没办法了。一面就此结束!
二面:
二面的通知我是隔了一天才收到的,为此我恶补了一下大数据处理的算法,顺便还把计网、操作系统都复习了一遍。这两天可是累成狗了!二面的面试官是个比较严肃的人,进去我简单地介绍了一下自己,他就开始问我问题了。大致问题如下:
- HTTP,TCP,UDP,IP协议分别是什么,以及他们之间的联系。
- HTTP报文的内容
- 进程和线程的区别
- 为什么需要多线程
- 进程通信,线程通信
- 死锁避免方案
- MVC架构是什么,为什么要这样分
- 说一下数组,链表,哈希表,树
- 面向对象的特点,解释一下
- 为什么需要多种编码方式,设计一个编码转换的方法
- 一个前端开发人员需要什么素质
- 出现bug后,前后端怎么debug
- 关于项目的,现在让我来做以前的项目,会怎么优化。
- 互联网的特点,对互联网的思考
除了项目相关的问题,其他的都是在检验你计算机基础是否牢固。想在这方面答得出彩不容易,你可能会忘记甚至出现遗漏。那么我们怎么去抓住面试官的眼球,让他觉得你并不是一个只会背书的人呢。我是在他的问题中穿插一些自己掌握的软件工程思想、方法,诱导他往这方面去询问,比如说测试驱动开发、自顶向下、模块化等等。一旦说开,根本停不下来!千万不能冷场,最好是他问开头,你回答并引出一些新方法、新概念,让他追问你,像是你在主导这个面试一样。面了一个多小时后,终于结束了,唯独最后那个问题答得不太好,是我对互联网缺乏了关注和思考。
HR面:
我二面是在早上10点多,面完了之后他并没有叫我直接三面,当时心都凉了。可万万没想到啊,我回宿舍睡了一觉起来,查微信状态时发现自己过了二面,当时那个激动啊!同一天下午五点,给我来信息了,叫我过去进行HR面。二话没说,我风风火火地赶了过去,潇洒地完成了三面,问题不多,如下:- 说说你自己的特点。当我感觉要说完停下来时,谁知他不停地追问:还有吗?连续问了几次,我都不知道说啥好了。
- 接下来还问了一下我想要加入的事业群的情况。
- 最后就轮到我提问,我就问了一下关于公司的培养方案,住宿安排,就没怎么问了。
总结:
- 夯实基础。在我这次面试就考了比较多计网和操作系统的东西,问题不难,书本都有答案。
- 基础算法要懂,常见问题要熟。叫你写个排序要随便能写出了;进程、线程区别,TCP、UDP区别,这些都考烂了。
- 临急抱佛脚。我是一天多复习完计网和操作系统啦,都差不多一年没碰了。
- 要有想法。有想法要说出了,对错另一回事,面试官注重你的思维方式,做项目时也要多想。