请容许我取这样的一个名字, 首先说明一点,写这篇文章绝不是为了吹嘘,装逼,显得自己有多么的厉害,我很清楚自己的能力,所以没什么值得侃侃而谈的。况且现在我都不知道能不能去腾讯呢。我在面试腾讯的时候,看了很多的腾讯面经,对那些默默贡献的人说一声谢谢,对我很有帮助,那我也就写一篇给以后将要去腾讯参加招聘的人的面经。

           我先说一下大体情况吧,我是面试Web前端的,总共笔试一次,面试了三次,面试历时1天半。算是 速战速决型的吧,我估计如果我再敢的急一些的话,说不定一天就有可能三面。

           其实写这篇文章还有另外一个目的,就是想通过自己这个例子告诉大家,即使只会js,但是只要你够专一,你照样可以找到一份不错的工作,现在的程序员选择太多了,所以弄得大家什么都要学,什么都要会,但是做的又不够深入,如果大家还是继续在这条路上,那只能说,以后你很可能只能当一名码农了,当然这是我的观点哦。我觉得如果深入了解一门技术,通透了,也就成功了。所谓的贪多嚼不烂的道理大家都懂的。能在自己擅长的领域做出那么一点有利于这个领域发展的贡献,那程序员的价值其实也就实现了。当然每个人的兴趣是不一样的,所以关键在于找到你的兴趣,并一直坚持下去。

          腾讯笔试:

                不知道参加过腾讯笔试的人有没有忘了那个保密协议的签字,我觉得我们还是尊重一下腾讯吧,所以我就不具体说有哪些题了,我说说都会涉及到哪些内容吧:

                1. 凡是报名软件开发的应该都是一套试卷,所以这也就意味着前台和后台,移动端的试题都是一样的,所以意味着你前台也必须了解一些知识

                2. 腾讯的考试范围:数据结构,数据库,操作系统,计算机网络,新技术,智力题

                3. 数据结构:考到树(波兰序,哈夫曼,树的遍历)就差不多了,没有涉及到图,一些常用的算法,查找,排序,dijsktra等有名的算法。

                4. 数据库:sql语句呗,一些不太用到的关键词(sorry,我数据库学的不是很好)。还是大体的东西,不会考的很详细的,很细节的东西。

                5. 操作系统:进程,fork,线程,生产者消费者问题,内存管理,文件管理,分页等。

                6. 计算机网络: tcp,udp,ip,ack,syn,mac地址,还有好多。都是些基础知识,该会的你总得知道吧。

                7. 新技术,智力题都看你了解时事的能力了。

                8. 别告诉我前台web开发不需要了解操作系统,数据结构,如果是那样,你很难达到一定的高度,我还一直再想我要不要再学一下编译原理,因为我感觉那个prototype跟编译原理的语法分析有那么些联系。

                9. 腾讯笔试的都是些基础知识,或者说是你的程序员素养,所以好好准备,这些知识你掌握了对你绝对没有坏处,还有么,如果你真的很想找到一份好工作,那准备是少不了的,即使你再牛逼,还是请你低调点,多复习一下,就当巩固一下了,老实说,我以前学的不是很扎实,所以我花了好几天时间复习了一下,笔试的还是有点水的,应该多花一些时间的。后面你就知道了。

               10. 笔试其实蛮重要的,一般腾讯的笔试满分100分,达到50分以上应该就可以面试,但是分数高一点面试官对你的印象也会好一些的。我感觉最后要你的话,你的笔试分数怎么都得60分以上吧。

               11. 另外偷偷的泄露一点吧(也是别人告诉我的),腾讯13年的笔试题有一些就是12年的笔试题,各位应该懂了吧,那就赶快百度去吧。

               腾讯一面:

                   中间有一个小插曲,不得不说,参加完腾讯的笔试之后,过了两天就应该发通知,告诉你什么时候参加一面。和我一起去的同学也都陆续收到面试通知了,我们之前有对过题,感觉我还能比他们强一点,但是为什么我就没收到面试通知呢,当时,老实说,真的是有点郁闷,虽然我知道我也有点水吧,但是不至于连个面试机会都不给我吧,结果,当天晚上半夜3点多了,突然收到面试了,从此也可以想象我那个睡眠质量,真的不怎么样,这都能听到短信声;还可以说明,腾讯招聘人员真的蛮辛苦的,半夜三点多还在工作。我收到24号早上9点30让我去参加一面,所以中间还是有一天让我准备一下的,这么一想,我觉得我还是蛮幸运的,不像他们之前收到短信的,他们第二天就得去面试,我第三天去,还可以从他们那套到一些面试情况呢。

               这一天,我主要看了一些我以前发过的博客,还有从网上找到的面经题目,然后找答案,因为笔试之后,就感觉自己肯定能进一面,所以那时候就开始准备面试了,所以准备的应该还算充足吧,还有的却起了不小的作用。在最后我会分享一下这些我找到的面试题,以后一些不错的博文的网址。再次感叹一下,博客园大神真的很多,博客园的知识库可以多去看看,文章真的很好。

               第三天,我大概8点40从学校出发,后来觉得时间可能有点不够,就走的快了点,结果后背都是汗,哎,走了大概30分钟左右吧,路上还一直在想我该怎么自我介绍呢(其实挺重要的,应该突出你的与众不同吧,个人觉得哦。),到了腾讯面试官住的宾馆,在会议厅登记了,又等了一会,就有人让我去XXX房间,我知道我第一次大型公司面试来了。也谈不上紧张吧,就直接上吧,谁怕谁,不就是跟你扯么,哥这几天看了不少东西,能好好的跟你扯一下。

              结果,到了之后,发现面试官挺帅的哦,哈哈(说明哦,我的性别取向没有任何问题)。一上去刚坐下,还以为要自我介绍呢,结果人家先开口了,我刚刚出完了四道题,让你做一下吧。结果,结果,我一路上思考好的个人介绍就没用上,当时稍微有点郁闷,哎,好歹人家想了那么久,还觉得挺好的自我介绍哎。就不听一下。

              一看那四道题,就没啥了,第一题是让一块div固定在浏览器右上角,我很直接的想到了用position absolute肯定能解决,当然为了秀一下自己,我就用第二种办法,通过js,每次浏览器滚动了多少距离,然后修改它的margintop,这当然都能实现,后来一想,这不就是类似于现在页面中的“返回顶部”这样的功能么。 于是就跟他说了这个,然后他好像挺高兴的,我能知道这题其实在问什么,但是紧接着,悲剧了,我忘记了如何获取浏览器高度,哎呀,当时很傻的跟他说,我忘了,百度一下就知道了,好像是什么height属性,但是到底是哪个对象的实在是不记得了,结果后来人家在chorme下,自己敲命令试出来了,当时那个略微有点丑,没办法,实在是不太记得了。第一题答的不是很好。

              第二题是 异步刷新的方式(还是ajax异步请求有哪些方式),当时就想到了get,post,也不知道对不对,我就想到了jquery中的ajax函数,然后在那块扯了一些。接下来是跨域请求,真心感谢博客园,就在前几天我对这个一点都不了解,结果无意中看到了有关于jsonp,ajax代理的博文,然后百度了一下,了解了大概,所以一上去就说了这些,估计面试官觉得我竟然了解jsonp,ajax代理,还不错,就继续深入的问了我一下,看我是不是真的知道这两种方式,然后扯了一扯,感觉答得还可以吧,但是接下来,他问我还有什么更简单的方式,我愣了,实在不知道哎,后来人家告诉我用img呗,然后我一顺嘴提到了src,因为我有这个印象,src在跨域访问的时候起到了很重要的作用,后来才知道有src这个属性的标签都可以跨域啦,所以才有jsonp这种方式,哎,扯犊子了,后来他又提醒我IFrame,我又恍然大悟,当时脑子真的有点抽了,愣是不记得了。估计第二题我也答得一般吧。

             第三题是 var n全局变量,哎呀,这个,太小儿科了,我上去直接把概念一说清楚,不用n声明的变量都是全局变量window的一个属性,可以delete,然后他觉得估计也没必要再深入的问我了,这题就直接过了。

              第四题 js瀑布流,哎呀,我去,我承认我在博客园还看到过别人发博文怎么实现呢,但是当时就没点进去,到面试的时候,我还不知道js瀑布流是什么东西呢,没办法,他当场百度了让我看了页面,原来就是类似人人小站的那种效果,哦,懂了,那就实现吧,嗯,四个div,然后设置一个数组记录一下一下每个div的长度,每次比较当前四个div的高度,然后将新加入的div添加到高度最小的那个上面,然后更新长度,嗯,差不多吧,可以实现了,接下来问题来了,我怎么在屏幕滚动的时候更新,当时就想获取当前浏览器的高度呗,然后他说就是因为这个问题,所以导致卡,为什么呢,我很傻的问他,然后他说,是我在问你哎,哦,我不知道,那你告诉我为什么呢,哎呀,估计面试官想拍我的心都有了,但是人家还是很好心的告诉我因为会导致重绘(哎,那个笨蛋,其实那是回流啦,哈哈,因为div可能改变,所以每次获取高度的时候,会导致回流,应该是回流吧,我没说错吧,不然我就是那个笨蛋了。),其实人家也只有告诉我啦,不然怎么问我接下来的问题呢,吼吼,那我就想办法啦,然后如何在滚动多屏的时候也不会卡,因为当你加载太多的div之后,会导致页面滚动起来很卡,所以要涉及到优化,那我就直接说,这涉及到算法了,当你在很后面的时候,你就可以把前面的div里的内容都存起来,然后,那高度不是变了么,呃,那你就用个大的div把它撑起来呗,还有别的办法么,呃,还有吗? 你直接让它浮动不就行了,哦,对哦,这样方便一些。那你的那些div都怎么存呢,我说可以用localstorage,sessionstorage,还有吗?难道是cookie,session,你还把它们存到硬盘里啊,直接存到内存里不就行了,用个map,呃,对哦,用map或是数组,map不就是数组么,名值对么。这就是第四题吧,因为从来没看到过,算是真的考验你的功底了,感觉答得一般吧。

             然后他让我说了一下闭包,呃,那,按我的理解就是嵌套函数,在外部用里面的函数可以访问到外部函数的下声明的变量,主要是用来封装数据的,这是我的理解哦,我记不清那个具体的概念了。

             嗯,这样的理解就够了,嗯,然后继续扯了一点信仰问题,当然是我扯出来的,我感觉为了肯定是互联网的时代,我非常喜欢js。。。。。。。

             最后那面试官也直接,我问一下哦,谁谁谁等会有没有时间,呃,直接让我去二面了,好吧,略微有点小激动,这,这就直接让我去二面了?好吧,先上去再说,结果上去和等待面试的师兄稍微聊了一会,然后就去咨询台问了一下,他说二面的面试官10点和下午4点都有空,问我什么时候面试,那我现在这心情肯定不太适合进行二面了,所以跟他说我下午四点再来吧,好吧,我去安排,然后我就屁颠屁颠的回去了,那一路上的心情的却有点激动。回来之后,清醒了一下,然后睡了一会。看了看JavaScript设计模式,就开始奔赴面试地了,路上还是再思考个人介绍。

            腾讯二面:

            好吧,这回总算是让我用到了个人介绍,而且,恶心的是我刚说我我叫XXX,来自XXX大学,就紧张了,就不知道说什么了,然后就说了一句我有点紧张哦,然后稍微调整了一下,就开始我的长篇大论,侃侃而谈的,说的我也略微有点爽。我现在尽量重复一遍哦。

            那我先说个人爱好吧,我喜欢游泳,我只会蛙泳,但是我游的很好,我能超越别人两三个身位(其实谦虚了,20个距离,我能超别人半个泳池)。我喜欢玩游戏,我以前只玩cf,玩了三年了,玩得还行,我现在开始玩dota,也只玩术士这个英雄,好吧,其实你能看看出来,我是一个非常专一的人,我喜欢js,我想以后一直写js,我的人生目标就是成为一名伟大的jser。我觉得以后应该是互联网的时代,然后前端开始往服务端跑,然后扯到了服务端技术,nodejs,然后扯到了原因,然后我就开始打比方,代数和几何的关系,代数已经到了一个顶端了,然后就开始发展几何了,所以我觉得现在服务端,c++,java已经发展到了一个瓶颈了,所以要开始js发展的大时代了,还有扯到了我为什么喜欢js,当然上面是一个原因,还有说了一下js的特性,基于原型的面向对象,难以控制,弱语言,然后很难驾驭,然后很喜欢,然后说了我对js的认识过程,然后顺带提到了项目,然后说到了写js代码很爽,然后问我怎么爽了,然后我又提到了别人写的代码很好,然后问我有没有写过好多代码,然后提了一段,然后又指出自己其实写的也不是很好,然后哪些地方可以改进,然后又提到了博客园,汤姆大叔,JavaScript权威指南,JavaScript设计模式,然后就很爽么,那我让你做一道题目吧,然后就是一面的第一题怎么让这个div绕着浏览器跑起来,哦,不对,先是设置div左右边距,然后跑起来。好吧,略微有点简单呢,但是那就写吧,本来在设置左右边距的时候,就想把它实现成页面滚动下去的时候,显示div,然后隐藏div,然后告诉面试官,这不是那个回到顶部的按钮么,然后面试官跟我说不用这么麻烦啦,就写css。好吧,果断多想了,但是这时候就该多想一些,尽量展示自己,然后就实现呗,然后我又多想了一些,想怎么用一个函数把四周滚动都实现了呢,还考虑代价。嗯,算是考虑自己了吧,但是还是觉得这题目有点太简单了,都没法发挥一下面向对象的思想什么的,唉,而且字迹丑陋,估计面试官看的够呛。。

          哎,老实说,二面够呛,我都有点不再相信爱情了,一个人走在回去的路上,内心各种波动,后来都有点咆哮了,感觉二面是不是面的太水了点,跟我想象中的不一样哎,我还以为二面会来一道有点难度的算法题,或者问问我面向对象的那些东西吧,总应该深入一些吧。就只管我在那扯淡了。哎,但是回来之后正在游戏上发泄呢,打完了,准备去吃饭,拿上手机看了看,咦,让我明天上午9点30去三面,呃,当时就有点愣住了,哎,真是,谁又能想得到呢。然后就晚上看了看hr面试,跟已经在腾讯的学长聊了聊,然后就准备一下下就行拉。现在回想起来,我的那个个人介绍真的可能是救了我,所以想告诉大家,自我介绍别太老套啦,要突出重点,然后尽量把自己的情况介绍出去,技术的尽量也要讲到技术上去,准备准备不难吧。

          腾讯三面:

             都说三面不太会刷人,但是必要的准备还是需要的,后来觉得,准备还是需要的,不然你真不知道自己怎么死的,说一下哦,准备保研的同学,请别直接明说了,可能有些关系,我这有两个技术很强悍的同学,acm做的很牛了,都被刷了,后来据说就是因为保研,然后是时间问题被刷了,个人感觉挺可惜的。

          hr面试就是根据你的简历跟你扯一些,但是有一些关键点希望你能掌握,首先是时间问题,然后是实习之后是否直接工作的问题,对于本科生尤其重要,还有一些对腾讯的看法,有时候会考验你的临时应变能力,你也要注意一点,有时候就担心这种很开心的聊天,说不定怎么的就那啥了。 

         总的来说,hr不难,真心以对就行了。

         好了下面附上我的一些面试前百度到的东西,这些博文都挺好的,大家可以看看

         腾讯面经:

http://www.cnblogs.com/yingsmirk/archive/2012/05/13/2497893.html

http://bbs.yingjiesheng.com/thread-599093-1-1.html

http://wenku.baidu.com/view/8e550b08ba1aa8114431d980.html

js作用链

js闭包

js闭包

js回收机制

事件冒泡

事件冒泡

兼容性问题

数组有哪些常用的方法

数组有哪些常用的方法

ajax流图

jquery ajax

正则表达式

计算机网络分层

js实现简单链表

json和jsonp区别

JavaScript 实现时钟倒计时

js数组去重四种办法

              上面那些网址我觉得不错,就跟大家分享一下,我个人觉得网上好的文章真的挺多的,多看看总有好处的,还有就是选一个自己喜欢的,一直坚持下去,你会有所收获的,一回寝室就不知道写些什么了,那就这样吧。最后求一下人品,让我去腾讯吧。。。都等得有点焦急了。

               To be a super JSer!!!

               以上全部都属个人原创,请大家转载的时候附上原创链接: http://www.cnblogs.com/tonylp      

posted on 2013-04-27 21:36  tony_lp  阅读(3391)  评论(10编辑  收藏  举报