web前端面试经历分享
十天前,我还在纠结这个暑假到底是呆在实验室研究技术好还是找一份实习见识世面好,而现在我已经接到offer准备工作了。这几天真是累得够呛,一方面需要拼命准备期末考试,另一方面,需要往公司里面跑接受面试。欣慰的是,我不仅顺利通过了公司的面试,还认识了好几个厉害的师兄,自己的人生规划也稍有改变。
开始的纠结是有原因的,主要是考虑到了一下几个方面:
- 第一,作为一个大二的学生有必要这么着急跑出去找实习么?
- 第二,去找实习主要目的应该是赚钱还是学习技术?
- 第三,难得有那么两个月的时间,就这样去工作了会不会浪费时间?
- 第四,我才大二,别人会要我么?
带着这些疑问,我在一个招聘网站上面投了好几份我的简历,大概是五份左右,有三家公司回应了我。三家公司当中两个比较蛋疼,一个直接狂问我高级知识,把我问倒了,最后发现面试官其实是IT公司里面的一个员工私下做项目找人的;一个问我是不是找暑假工!!我瞬间惊呆。最后选择了一个中大师兄的招聘。但是情况同样很蛋疼,在我和我要去面试的公司之间,还有一个中介者--外包公司。外包公司把我推荐给我要面试的公司,身份是一个有着三年工作经验的前端工程师,我要去的公司认为我是外包公司推荐来的毕业几年的老工程师。于是承担着计组可能会挂科的风险,在25号随同几位大学城的几位同学一同踏上了面试之路。
面试的地点在农讲所地铁站附近的东照大厦,刚到楼下的时候,我以为只有六七层,结果进了电梯之后发现最高层是32层,突然觉得这公司上了一个档次。一行人来到了公司所在的27楼,准备接受残酷的面试。公司并没有我想的那么高级,在一间比较大的房间里面,密密麻麻做了几十个人(设备真的不咋地),要不是这办公室在这么高级的写字楼,我还真的以为到了生产车间。一个应该是负责人的叔叔见到了我们,很开心,然后叫了两个他的手下,给我们几个人面试。
值得一提的是,在到楼下的时候,我们才知道需要机试,也就是做几道前端笔试题,无形间压力又增大了一点。面试我的是一个大概三十岁的大叔,且不论他是不是技术大牛,光看年龄,就觉得这家伙会为难我。他先随便问了我所做过的几个项目,还好在我的简历上面的除了年龄不是真实的之外,其他都是真实内容,所以项目方面我还是侃的津津乐道的。接下来,就开始问我一些比较细节的问题。其实我也搞不懂是不是我回答的比较熟练的问题,去的几个人之中,问我问的最少,就是问了一些浏览器兼容,javascript原型继承,css hack之类的问题,咱也不是盖的,这些个问题还是能够比较轻松回答的。接下来,就是机试了,我以为他会为难我出一些很蛋疼的兼容性问题,结果只是要我做一个简单的效果,下面会附上题目和代码。
在具体回答上面几个疑问之前,还需要提及整个面试过程中都存在的一个人物--Jason,是中山大学软件学院的师兄,他的角色就是外包公司。这里面的关系可能有点复杂。首先,国内某知名银行找到了我面试的公司做一个项目,我面试的公司找到了Jason的公司,让他们推荐人帮忙做项目,Jason找到了我。很显然我是最大的受害者,因为这样的四角关系意味着我的收入会和食物链一样,越到后面,利润越少,不过这都不是重点,重点应该是,我这两天学到的。
在面试完的那天晚上,Jason打电话给我,说我表现的很好,可以准备上班了,不过面试的几个人有两三个不符合要求,被刷了。接下来他说,找人就应该找我这样靠谱的,今天就我表现最好了,面试官都觉得我有水平。听完之后,我心里还是非常非常得意的。这里的非常非常一点也不夸张。从大一开始了解web,大二开始疯狂学习,平时能做的就是尽量参加项目和在实验室钻研技术,没有人具体知道你做什么,自己也不知道自己算是什么样的角色。当突然有一天,你怀揣着自己觉得少的可怜的前端知识作为一名求职者而不是实习者的身份面试却得到师兄和面试官在各方面的赞赏的时候,就会感到一切的一切都是值得的。接下来的两天时间里,又和Jason聊了不少,他说在大二暑假就出来见识是正确的,学校里面你技术再牛,你也不知道出来之后社会真正需要什么,就算你在暗无天日的实验室做出了惊世骇俗的APP,你也没有积累到真正有用的人脉和良好的沟通能力;如果你混得足够出色,就不应该在磕在代码上面一辈子。
他简单的一席话还是令我挺有感触的,瞬间消除了我开始的疑惑。第一,大二暑假虽然只是大学时光的一个中间点,但是为了在大三的时候进入想阿里巴巴这样的大公司,少不了在小公司面试的经验,除非你足够屌炸天;第二和第三,这一份工作对我来说不是太难,但是会让我见识到企业级产品的开发流程,完全不是浪费时间;第四,只要你有技术,不管你是研究生还是大一刚结束,技术面前人人平等。
我个人比较有灾难意识,我觉得跟着学校的节奏去学习技术,第一我没兴趣学得很累,第二我觉得学校的课程会让我个人在大三的时候无法自信得坐在阿里巴巴百度腾讯等公司的面试官之前。中国每年都有几百万的毕业生,好的公司这么少,你凭什么在几百万人中脱颖而出,公司又凭什么在有那么多人可选的情况下选中无知的你?我觉得最好的办法就是让自己足够屌,你可以去考研,但是对我来说那样会浪费很多时间,我也不喜欢呆在学校给老师打工。我清醒的意识到,如果我现在天天在宿舍玩游戏,天天看电视剧,那么明年这个时候,我得到的就是我理想的大公司的拒绝。所以我希望我现在所做的或者看到这篇文章的你目前所做的都是正确的,获取我们所做的不被大众认可,但是一切都看一年之后吧。加油吧,无知的你和我~
最后附上面试的题目和代码:
题目:在浏览器中显示一个有颜色的框框,用javascript实现这个框框在浏览器的横向和纵向居中,在这个框框中间,另外添加一个小的另外一种颜色框框和一个按钮,单击这个按钮,隐藏这个小框框,再次点击,显示这个小的框框。代码如下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>面试题</title> 6 <style type="text/css"> 7 #main { 8 width: 300px; 9 height: 300px; 10 background-color: #deb887; 11 } 12 #box { 13 width: 150px; 14 height: 150px; 15 background-color: #b8860b; 16 margin: 0 auto; 17 } 18 #toggle { 19 margin-left: 120px; 20 margin-top: 50px; 21 } 22 23 .show { 24 visibility: hidden; 25 } 26 </style> 27 <script type="text/javascript"> 28 window.onload = function() { 29 var pageWidth = window.innerWidth, 30 pageHeight = window.innerHeight; 31 if(typeof pageWidth != "number") { 32 if(document.compactMode == "CSS1Compact") { 33 pageWidth = document.documentElement.clientWidth; 34 pageHeight = document.documentElement.clientHeight; 35 } else { 36 pageWidth = document.body.clientWidth; 37 pageHeight = document.body.clientHeight; 38 } 39 } 40 41 function center(obj) { 42 obj.style.marginLeft = (pageWidth - obj.offsetWidth) / 2 + "px"; 43 obj.style.marginTop = (pageHeight - obj.offsetHeight) / 2 + "px"; 44 } 45 46 function toggle() { 47 var obj = document.getElementById("box"); 48 if(obj.className == "") { 49 obj.className = "show"; 50 } else { 51 obj.className = ""; 52 } 53 } 54 55 var main = document.getElementById("main"); 56 var clickButton = document.getElementById("toggle"); 57 58 center(main); 59 clickButton.onclick = toggle; 60 } 61 </script> 62 </head> 63 <body> 64 <div id="main"> 65 <div id="box"></div> 66 <button id="toggle">toggle</button> 67 </div> 68 </body> 69 </html>