转自:http://www.itmian4.com/forum.php?mod=viewthread&tid=3985

首先感谢师兄在两年前发的贴(【天道酬勤】 腾讯、百度、网易游戏、华为Offer及笔经面经 ),这篇文章对我帮助很大。

我写这篇文章一是为了感谢这位同是华南理工但素未谋面的师兄,给我推荐这篇文章的炳爷,以及为我解决难题的浩子,羊兄给的项目帮助,洁洁的理解,王兄提供的两个月免费住宿,以及互娱的BOSS,leader,金山的朱先生等人对我择业的帮助,以及所有直接间接帮助过我的人。二是饮水思源,要把这份活水转赠出去以帮助到更多的人。

我用完之后是这个样子,你们用完之后也会是这个样子。 = =~

文笔不好,表述不清的地方还请见谅,记录自己的找工作历程,如果能为有需要的人提供到一点帮助或启发我就很心满意足了,同样攒攒RP~嘿嘿

-------------------------------------------公司面试回忆----------------------------------------------------
(面试很大不确定性,这些仅是自己的相关面试经验,不会涉及到具体面试题目的表述,公司考查的都是常见问题,这里不涉及对具体问题的探讨,只会说个大概谨供参考~)
一、2013年4月,腾讯互娱,后台开发工程师(实习)-------------------------------
1)一面,当天人爆满,十点半进到808房间(挺吉利的号码~),面试官整个过程一直面带微笑,一面在轻松的氛围中度过~(40分钟)主要问到:
1. FTP服务器怎么实现(因为自己有写过),多线程磁盘读写效率(由于磁盘寻道随机性增加而导致I/O效率呈线性下降),是否考虑到断点续传。为什么要用epoll,优缺点是什么,epoll的两种方式,各有什么不同。
2. TCP为什么要三次握手。
3. vector的容量增长的题目,vector a; push_back八次对象,求总共调用多少次拷贝构造函数。另外问到vecter和set的底层实现。
4. 空对象的大小,加虚析构函数又怎样呢。
5. 写算法,求二叉树中某个值为5的结点到根的路径。
6. 看我写过抓包软件,问有没尝试分析一些软件的数据包。
7. 字符串倒转。
8. 排序有哪些,快排的思想。

2)二面总见面,态度也很友好,谈话挺轻松的。(40分钟)
主要问到:
1.一上来看我简历上编译器相关内容,问我基于什么原因要写,以为现场写汇编的节奏,结果是要写strcpy(),大跌眼镜~;
2. FTP服务器怎么改进,果断把上次一面面试官说的答上。提到如果进程崩溃,文件缓存区内容还无法写到文件中怎么办,我回答用数据库的回滚思想,做记录。后面说可以用文件映射和共享内存等等。问用共享内存需要注意什么东西,让我回去想想。。
3. 问网络,问项目中为什么要考虑用TCP(文件传输难道用UDP?= =),不用TCP流量控制,传文件还不爆掉阿。。问迅雷的协议是什么,问优酷土豆这些视频网站是用什么协议传输视频,答可能UDP组播。问熟悉P2P不,叫我回去了解。。
4. 问语言,问面向对象继承封装多态,问动态多态的实现,STL容器,还是问到vector增长(这么喜欢问这个)。
5. 写算法,升序链表的合并。(现场手写代码能力要加强)
6. 问连连看外挂,问基于什么原因要写。
7. 问实习,谈到说实习公司LINUX下用到mono来开发C# , 自己参与C++重写。

3)三面HR。当知道hr面不怎么刷人也就放下心来了。自己好好想了下,看了腾讯的基本信息。
主要问到:
1. 自我介绍:扯游戏和技术
2. 平时学校生活怎么安排:起床看网页看小说学习吃饭健身跑步锻炼游玩
3. 说下腾讯的产品的看法:QQ消息丢失的问题,QQ密码安全的问题
4. 各种问,还问考研考了多少分,英语怎么复习的,哪科考的最好
5. 你认为自己做过最成功的事:说游戏打到好装备= =~,考研,项目
6. 介绍参加的社会实践,问以前有没实习经历
7. 谈自己研究生生活的得与失:得-知识能力积累提高 失-没有搞什么研究,或者自己不是想纯搞研究的人吧

纠结的十多天,期间有一批同学签约了,自己这里还毫无音讯,到5月1号,微信通知招聘结束,这下觉得可能要没戏了,后来发现这是个系统错误,希望又来,果然5月2号下午四点半收到OFFER通知~ (记我难忘煎熬的腾讯实习面试经历)

二、2013年9月,人人,后台开发工程师-------------------------------
1)一面,一上来写个aabbbccddff化为abcdef的去重算法,想复杂了,以为要置换,其实的话只要将后面的移到前面来就行了(我是不是太弱了。。。)。接着问腾讯实习作业,磁盘的效率问题,并发的取舍,实现的UDP可靠传输效果如何,最后考了个0(1)时间求栈中最大元素的算法。这个没想出来,其实考虑到栈的出栈入栈特点的话,很容易解决了。

2)二面,一上来又是算法,画个不规则的多边形,现在每条边都需要一条等长的木头,给定一块足够长的木头,要以最小的体力值把这些边长木头出来(体力值等于木头的长度),其实这就是个哈夫曼算法。提示很多次才想到这里,还好最后算法实现比较快。接着问了linux查看内存,查看磁盘容量剩余,怎么通过ls输出目录。

3)三面,问了key/value存储,有什么优缺点,什么场景下用。问了一个分布式key/value存储要如何保证映射可靠,答通过中心代理来负责映射,那缺点又是什么。接着问,如果不同的例程都要向某个key更新更大的value值,如何在不用信号量,同步锁这些的情况下保证最终value是最大的(同步,set get循环巧妙)。后面问了个海量数据中找第k大数(1.其实可以直接采用桶划分,即使是64位也最多三次遍历就可以了。2.也可以采用位滤除,但磁盘操作太多 3.k堆滤除,但k如果太大会频繁交换内存 4.分配到多机,多机同时外存排序,并有另外一台机子作多路归并)

顺利拿到了offer~可北京不太想去

三、2013年9月,金山西山居,后台开发工程师------------------------------
1)一面,面试官是湖南老乡,一上来问了各种c++问题,如new,delete,malloc,free的区别,new a[5]再delete []a的编译器未定义行为及深层原因探讨。接着问了个内存分配,说堆中有1G的内存,但内存还够用,但为什么就分配内存错误了。问了C++类的构造顺序。问了TCP的黏包现象。一个是nagle算法,一个是应用层数据的包无边界问题,这是无法解决的,因为TCP管不到应用层的事,它只负责按字节流传输。问了火车运煤,拉灯的智力问题。。开玩笑带过去了。。。

2)二面,是个做手游3D的总监,一上来也是问编译器,说不懂编译原理,他就说你是怎么去做的这个东西,我就说了一通,最后他说这样先实践再看理论也是不错的,说他喜欢这种搞钻研的人= =~。。。后面问到多线程需要注意的问题,问到FTP做的目的。

3)三面,见到CTO陈飞舟,居然不认识他。。。首先也是一上来问了个编译器的问题,函数声明和函数定义是如何区分的,编译器怎么判别出来。后面问到我做的腾讯实习这个作业,说到并发策略那块(多CPU核开网络中断是需要特殊网卡,特殊平台及更高版本的linux支持)。问我有没代码积累,讲他的代码积累的习惯。问我以后想从事哪方面工作,跟我讲他在各个不同产品部门间积累代码,高效最优完成的结果。讲到选择,讲到自己认同公司的价值观。讲到游戏产业,为什么虚幻三用不起(美术的整体工业环境不行,同样的效果图,美术资源是暴雪美术的4倍)。讲到云风,讲到雷军和小米,看了下桌子上的小米3S工程机= =~。

拿到金山offer~ 这个offer真是很难割舍,几轮面试官都给人印象都很好,整个西山居环境也很是不错,自助食堂餐厅,工作间旁各种游戏机,在珠海拿着还不错的待遇过的应该很舒服。。。
在婉拒offer后,面试官还给了我一些在微信和网易游戏间如何选择的中肯意见,甚是感激。

四、2013年10月,微信,后台开发工程师------------------------------
1)一面,一上来丢了6个算法题过来做,要四十分钟的样子搞定,单都是基础算法,什么链表,二叉树之类的,其中的两个字符串的最大公共子串没有较好的解决办法。问key/value缓存,它具体是如何实现的。瓶颈在哪,怎么保证负载。后面问腾讯互娱后台的负载均衡低耦合架构,这里说的不是很好。问磁盘效率优化,如何做的优化,测磁盘数据怎么测,通过什么命令(top,iostat),iostat的参数如何去看,读写队列,等待时间与服务时间的比例,空闲比例。编码规范(命名规范,固定的括号样式,函数注释与关键注释,异常说明,类的访问控制规范)。问网络编程应该注意的地方(TCP和UDP取舍),问UDP实现可靠传输是如何实现的。是否做过测试,拿scp来做为对比的恰当性。问网络方面的调试用到的命令,如tcpdump,lsof,netstat,问编译器,如何实现的,是否考虑到中文编码问题的解决。编译器的实现流程。问查看一个进程的运行情况的命令,top,/proc/pid/,问如何统计出函数的使用频率,用valgrind。==。压力较大的一次面。。

2)二面总监面,自我介绍,之后问我做的最好的一个项目,说了编译器,最后再叫我介绍个项目,说了UDP文件上传服务,问了UDP可靠传输的的具体内容,好奇为什么速度可以达到SCP的两倍。问我本科为什么没写什么东西,答的不好。问平时读什么技术书籍,自己说linux内核详解,我说内存,介绍了一遍,最后问内存这块有什么用到项目中的吗,其实是没有,但可以说的更好一些的,如可以说对动态内存的理解,线程创建实际的开销在内存方面是有多大。说了文件中的mmap,直接I/O。问三个优点,最大的缺点。。

3)三面hr面,自我介绍,以后自我介绍尽量要充实点,问了拿到几个offer,问了以后的工作意向,是否愿意留广州,问自己觉得做的最出色的一个项目,为什么是最出色的,嗯,这点要多想想。

顺利拿到offer~

五、2013年10月,网易游戏,游戏研发工程师------------------------------

顺利收到offer

-------------------------------------------公司面试回忆----------------------------------------------------

这些便是我一路过来的面试历程了,我不是技术牛人,能拿下这些offer主要是准备还算充足,今年就业形势好,另外运气还不错,这里谈谈自己是如何找工作及准备的。

-------------------------------------------找工作及准备----------------------------------------------------
首先确定目标,自己刚出去还是想从事技术工作,偏实干,所以首选互联网公司。

如何准备的话,我的想法是不能为了准备而准备,同时也可以当做一种学习来巩固自己的整个技术框架体系(个人认为,在学校还是很有必要把整个技术体系架好)。

那么我会分成算法,语言,系统三个部分来准备。
算法:
自己不搞ACM,自知也不是搞ACM的料,所以这块还是比较虚的,那么怎么较好得消解这个短板呢?
1.我首先是把weiss的那本《数据结构与算法分析》大概看了遍的,多动手,尝试着解决后面的一些算法问题,问题不在多在精。
2.一定要多动手,训练自己的手写代码能力,大可不必去钻难的算法,基本算法搞定面试基本无忧。问问自己能把插入,选择,冒泡,希尔,快排,堆排,归并等排序正确高效地写出来;能写循环队列实现;能对链表指针插入删除等操作熟悉;二叉树各种遍历递归非递归实现,常见算法写的出;优先队列(堆)的实现能否写的出;图的基本算法,DFS,BFS,最小生成树,最短路径;熟悉贪心,分治,动归,回溯等算法设计方法及适用场景;深刻理解迭代跟递归的区别。
3.熟悉一些常见的高级数据结构,如红黑树,B+树,线段树,跳表,并查集等,不要求实现,原理、基本实现流程知道即可,如红黑树的是怎么插入删除结点的(你叫面试官现场给你写个红黑树试试= =~)。
4.查漏补缺,可以看《编程之美》来启发自己的灵活运用能力,看JULY的博客来看自己能否解决常见的一些算法面试题,什么微软100题之类的。

语言:
由于平常多用C++,所以准备的也多是这块的。
1.STL是否熟悉,当然最好是自己可以尝试写写与STL兼容的容器,算法之类来增加理解,了解vector,list,set,map的底层数据结构实现。
2.C++语法机制是否熟悉,我看的是《C++ Pimer》和《c++ 对象模型》,对象模型画的出吗;多态是如何实现的;异常框架是否知晓;构造,析构,虚函数的关系;
3.适当了解C++11新特性,如move语义,auto类型推断,lambda表达式等。
4.当然语言终归是工具,是联系算法逻辑和系统的桥梁,还是需要在自己的项目中去总结怎么用好C++这把双刃剑。

另外后台开发,脚本语言也是需要熟悉,如SHELL,常用命令要知道吧;基本的正则要会写吧,这些对工作效率也有很大提高的。

系统:
这部分就比较杂了,个人比较喜欢对技术究根问底,所以汇编,编译原理,系统内核实现,网络原理实现都会有涉及。比如:一个程序如何编译成汇编语言到链接成可执行文件,程序如何被装载运行,操作系统做了些什么,程序的内存布局是怎样的,栈是如何分配的,堆是如何扩张的,文件映射内存在哪,操作系统是如何实现的。虚拟内存到实际物理内存是如何转换的,硬件负责什么,操作系统负责什么,操作系统怎么管理内存又如何影响到实际程序的执行,文件是什么等等。下面我会例举几个大点。
1.汇编,程序链接这些比较杂的(当然这些看个人兴趣),我会看《深入理解计算机系统》,这本书讲的不错,= =~我只是选着看了一点点。
2.系统内核这块,我看的是那个女人拿个大盘子的《Linux内核详解》,主要看了内存,文件这几块,真正从代码级来理解一个操作系统,也只是浅尝则止,没有进行深入研究。另外像epoll这种几乎必问的可以考虑看看内核源码,管道,FIFO,文件映射,共享内存等是如何实现的。
3.系统调用接口,posix编程环境这块就是两个大部头,《UNIX环境高级编程》和《UNIX网络编程》,这些对我的实习及一些项目的编写都帮助挺大,不是说要去记这些接口,只是要有个整体把握。
4.计算机网络这块看到就是《TCP/IP详解-协议》,了解从链路层到应用层的协议,真正的理解TCP的优缺点,为何需要有UDP。
5.再就是对一些系统架构上的东西要有了解,如负载均衡有哪些策略,高性能服务器需要注意什么,什么是C10K问题,key/value缓存,事物处理这些。

我一直觉得不是为了找工作而找工作,如果同时这又是种提高和积累,何乐而不为呢?

-------------------------------------------找工作及准备----------------------------------------------------

总结下来就是: 明确目标->选择方法->踏实准备
好了,到这里也差不多了,我的不一定适合后来者,如果能有一点借鉴意义,那就是我最大的安慰了。祝大家都找到满意的工作~

人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经的更多相关文章

  1. 腾讯、百度、网易游戏、华为Offer及笔经面经

    原文出处:http://bbs.yingjiesheng.com/forum.php?mod=viewthread&tid=1011893&fromuid=1745894 应届生上泡了 ...

  2. 【天道酬勤】 腾讯、百度、网易游戏、华为Offer及笔经面经(转)

    应届生上泡了两年,一直都是下资料,下笔试题,面试题.一直都在感谢那些默默付出的人.写这个帖子花了我两 个夜晚的时间,不是为了炫耀,只是为了能给那些“迷惘”的学弟学妹,一点点建议而已.大家何必那么认真, ...

  3. 腾讯互娱开源分布式开发框架Pebble

    构建游戏世界的Pebble 愿景:出色的游戏服务器端底层框架   现代游戏项目中,为了让更多的玩家能在一起玩,游戏服务器所需要承载的在线玩家数量越来越多.同时为了让游戏更好玩,越来越多复杂的业务逻辑都 ...

  4. 《腾讯游戏人生》微信小程序开发总结

    为打通游戏人生擂台赛与线下商家的O2O衔接,同时响应时下日臻火热的微信小程序,项目团队决定也开发一款针对性的微信小程序,以此方便商家在我们平台入驻并进行擂台赛事的创建和奖励的核销,进一步推广擂台赛的玩 ...

  5. MTSC2019-腾讯WeTest独家揭秘移动游戏测试和质量保障 QA 黑科技

    WeTest 导读 TesterHome 联合腾讯 WeTest 出品 MTSC2019 重磅游戏测试 Topic ,首次公开揭秘腾讯亿级用户游戏背后的质量保障 QA 黑科技. 2019 年,中国游戏 ...

  6. 2019 三七互娱java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.三七互娱等公司offer,岗位是Java后端开发,因为发展原因最终选择去了三七互娱,入职一年时间了,也成为了面 ...

  7. 最新 三七互娱java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.三七互娱等10家互联网公司的校招Offer,因为某些自身原因最终选择了三七互娱.6.7月主要是做系统复习.项目复盘.Leet ...

  8. 2017 网易游戏互娱游戏研发4.21(offer)

    网易游戏互娱(offer) 去年这个时候就参加过网易游戏的实习生招聘,到今年总共收到了4次拒信.不过这次运气好,终于get了最想要的offer.去年实习生互娱笔试挂,秋招笔试挂,今年春招互娱投了连笔试 ...

  9. 拿到阿里,网易游戏,腾讯,smartx的offer的过程

    前言 从今年的3月14日阿里的电话面试开始,到现在4月16日在西安悦豪酒店进行的腾讯HR面到现在一个多月了,中间先后收到了阿里,网易游戏,腾讯和smartx的offer,今天早晨刚刚接到了腾讯HR的电 ...

随机推荐

  1. (01背包 第k优解) Bone Collector II(hdu 2639)

    http://acm.hdu.edu.cn/showproblem.php?pid=2639       Problem Description The title of this problem i ...

  2. 前端开发 - JavaScript 词法分析

    JavaScript代码运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 1.分析函数的参数 2.分析函数的变量声明 3.分析函数的函数声明表达式 具体步骤如下: 函数在运行的瞬间,生成 ...

  3. Android-Retrofit-2.0-Post与Get-请求有道词典翻译

    Retrofit-2.0版本后,内置已经集成了OKHttp,在使用Retrofit的时候 看似是Retrofit去网络请求的 实际上Retrofit只是封装,所以不要以为Retrofit是网络请求框架 ...

  4. strom ui Topology 可视化视图各个指标含义说明

    In the visualization, spout components are represented as blue, while bolts are colored between gree ...

  5. .NET MVC 学习笔记(五)— Data Validation

    .NET MVC 学习笔记(五)—— Data Validation 在实际应用中,我们需要对数据进行增查改删业务,在添加和修改过程中,无论你编写什么样的网页程序,都需要对用户的数据进行验证,以确数据 ...

  6. System.Data.SQLite安装的相关问题

    在使用System.Data.SQLite的过程中,遇到各种问题,特此记录下.(都被搞的折寿了,不仔细看文档的下场!) 1.选对.net Framework的版本. 2.X64和X86的问题,如果项目 ...

  7. 【文文殿下】[AH2017/HNOI2017]礼物

    题解 二项式展开,然后暴力FFT就好了.会发现有一个卷积与c无关,我们找一个最小的项就行了. Tips:记得要倍长其中一个数组,防止FFT出锅 代码如下: #include<bits/stdc+ ...

  8. 用代码来细说Csrf漏洞危害以及防御

    开头: 废话不多说,直接进主题. 0x01 CSRF介绍:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session ...

  9. redis ERR This instance has cluster support disabled

    Redis  集群的时候报错: redis.clients.jedis.exceptions.JedisDataException: ERR This instance has cluster sup ...

  10. Consul集群搭建

    一.集群搭建 准备三台机器 需要开启的端口,8300, 8301, 8500, 8600 机器1: 172.16.106.201 ./consul agent -server -bootstrap-e ...