本人普通985高校计算机专业研究生一枚,从9月12号开始正式找工作,一个月过去了,参加了能参加的各个互联网公司的宣讲、笔试、面试,现用两篇随笔分享所见所闻。随笔A将以腾讯为例详细展示整个过程,随笔B将记录其余互联网公司校招的情况和个人的主观评价。
笔试
参加了实习和校招两场笔试,笔试题目难度中等,涉及计算机网络、操作系统、数据库、算法和数据结构、C/C++语法。下面是2014年9月份武汉地区软件研发类的题目和我的解答(事后做的,我是在合肥中科大参加的腾讯笔试,题目不一样):
一、不定项选择题
1. 如果MyClass为一个类,执行“MyClass a[5],*b[6]”语言会自动调用该类构造函数的次数是()
A. 2 B.5 C. 4 D. 9
解析:选B,5次。只有a[5]定义了5个对象,而*b[6]定义的是6个对象指针并不会进行实例化,因此不会调用构造函数。
2. 下面程序的运行结果是()
1 #include <iostream> 2 using namespace std; 3 class Base{ 4 int x; 5 public: 6 Base(int b):x(b){} 7 virtual void display(){ 8 cout << x << endl; 9 } 10 }; 11 class Derived:public Base{ 12 int y; 13 public: 14 Derived(int d):Base(d),y(d){} 15 void display(){ 16 cout << y << endl; 17 } 18 }; 19 int main(){ 20 Base b(2); 21 Derived d(3); 22 b.display(); 23 d.display(); 24 Base *p = &d; 25 p->display(); 26 system("pause"); 27 return 0; 28 }
A. 2 2 3 B. 3 2 2 C. 2 3 3 D. 2 3 2
解析:选C。派生类重新定义了display函数;p为指向对象d的指针。
3. 在C++语言中,下面描述中,正确的是()
A. 一个基类的声明中有纯虚函数,该基类派生类一定不再是抽象类
B. 函数类型不能作为重载函数的调用的依据
C. 静态数据成员不是所有对象所共有的
D. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
解析:选B。如果一个类中声明了纯虚函数,其派生类中没有对该函数定义,那该函数在派生类中仍为纯虚函数,凡是包含纯虚函数的类都是抽象类。通常重载函数调用的依据是函数名、参数类型、参数个数。 类的静态成员是属于类的而不是属于哪个对象的,因此可以说是所有对象所共有的。内联函数是在编译时将目标代码插入的。
4. 有如下程序,执行后输出结果应该是()
1 #include <iostream.h> 2 class BASE{ 3 public: 4 ~BASE() {cout << "BASE";} 5 }; 6 7 class DERIVED:public BASE{ 8 public: 9 ~DERIVED() {cout << "DERIVED";} 10 }; 11 12 int main(){ 13 DERIVED x; 14 return 0; 15 }
A. BASE B. DERIVED C. BASEDERIVED D. DERIVEDBASE
解析:选D。首先吐槽下 iostream.h 的写法,我在MAC下用g++编译是不通过的。main函数结束时会调用各个对象的析构函数,先调用派生类的析构函数再调用基类的析构函数,与构造函数的调用次序相反。
5. 典型的路由选择方式有两种:静态路由和动态路由。以下描述正确的是()
A. 当动态路由与静态路由发生冲突时,以静态路由为准
B. 当动态路由与静态路由发生冲突时,以动态路由为准
C. 静态路由适用于网络规模大,网络拓扑复杂的网络
D. 动态路由适用于网络规模大,网络拓扑复杂的网络
解析:选AD。静态路由是由网络管理员手工指定的路由,动态路由是由路由器每隔一段时间自动生成的路由表。发生冲突时,以静态路由为准。静态路由转发效率高,适应性差,适用小规模局域网。
6. 下列哪些属于分布式文件系统?()
A. HBase
B. Spark
C. MapReduce
D. KFS
E. Hive
解析:选D。文件系统英文名称为File System,简写为FS,所以带FS的一般都是,分布式的有KFS、NFS、AFS、GFS等。HBase是分布式的开源数据库,Spark和MapReduce是并行计算编程模型,Hive是数据仓库工具。
7. 下面程序的输出结果是()
1 #include <iostream> 2 using namespace std; 3 int i = 0; 4 int fun(int n){ 5 static int a = 2; 6 a++; 7 return a+n; 8 } 9 10 int main(){ 11 int k = 5; 12 { 13 int i = 2; 14 k += fun(i); 15 } 16 k += fun(i); 17 cout << k; 18 return 0; 19 }
A. 13 B. 14 C. 15 D. 16
解析:选B。静态变量只初始化一次,因此第一次调用fun后a值变为了3。因为大括号限定了 int i = 2 的作用域,因此第2次调用fun时的变量 i 是全局变量 int i = 0。
8. 在Java中,以下哪些数据结构可以以常量的时间复杂度O(1)添加元素?()
A. HashMap B. ArrayList C. TreeMap D. LinkedList
解析:选AD。HashMap基于哈希表,containsKey,get,put等操作的时间复杂度为O(1)。ArrayList基于动态数组,访问O(1),插入删除O(n)。TreeMap基于红黑树实现,containsKey,get,put等操作的时间复杂度为log(n)。LinkedList基于链表,访问O(n),插入删除O(1)。
9. 若一颗二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b,c,d,e,a,则根结点的孩子结点为()
A. 只有e B. 有e、b C. 有e、c D. 无法确定
解析:选A。如果中序遍历未知的话,是无法还原出二叉树的。但此题只要求我们判断根结点的孩子结点,因此可做。前序遍历为“根--左--右”,从前序遍历序列可知e紧跟着a,可得结论1):a为根结点;结论2):当e为a的右孩子时,a有且仅有e一个孩子。后序遍历为“左--右--根”,从后序遍历序列可知e之后紧跟a,可得结论3):当e为a的左孩子时,a有且仅有e一个孩子。从结论1)2)3)可知根结点的孩子有且仅有e。
10. 一面墙,单独工作时,A花18小时砌好,B花24小时,C花30小时,现A、B、C的顺序轮流砌,每人工作1小时换班,当完工时,B总共干了多少小时?()
A. 8小时 B. 8小时 C. 7小时 D. 6小时48分
解析:这题我算出是7小时44分,没答案符合,不清楚是不是我的思路错了。先把时间转化成效率:A 1/18 = 20/360, B 1/24 = 15/360, C 1/30 = 12/360,所以每3小时的效率为47/360,360除以47得7余31,31=20(A工作)+11(B工作),所以B的工作时间为7小时+(11/15)*60分钟,即7小时44分。
11. 32位机器上定义如下结构体:
1 struct xx 2 { 3 long long _x1; 4 char _x2; 5 int _x3; 6 char _x4[2]; 7 static int _x5; 8 }; 9 int xx::_x5;
请问sizeof(xx)的大小是()
A. 19 B. 20 C. 15 D. 24
解析:选D。sizeof虽然只是简单的操作,但涉及的知识点非常多。sizeof结构体怎样?结构体内含有结构体呢?派生类呢?带虚函数呢?空类呢?打算后面专门写一篇文章来总结。针对这题,首先_x5是静态变量可以不用管它,其次是要考虑字节对齐的问题。对于结构体中没有含有结构体变量的情况,有两条原则:1)结构体变量中成员的偏移量必须是成员大小的整数倍;2)结构体的最终大小必须是结构体最大简单类型的整数倍。x1的偏移量是0,长度是8,符合;x2的偏移量是8,长度是1,符合;x3的偏移量是9,长度是4,不符合,需要在x2之后填充3字节使得x3的偏移量达到12;x4的偏移量是16,长度是2,符合;此时总长度为(8)+(1+3)+(4)+(2)=18,而最大简单类型为long long长度为8,因此需要在x4之后再填充6字节,使得总长度达到24可被8整除。因此sizeof(xx)的结果为24。
12. 储蓄盒中2分和5分的硬币个数相等,2分和5分的钱数也相等,问:可能是多少元?()
A. 2.1元 B. 2.4元 C. 2.8元 D. 3.0元
解析:选ABCD。设1分、2分、5分的硬币个数分别为x,y,z,如果不是题目出错的话(考你是不是有勇气全选),有式1)y=z 式2)2y=5z,得出y=z=0,x为任意值,那么ABCD都有可能。如果题目改成“2分和5分的硬币个数相等,1分和5分的钱数也相等”,那么有式3)y=z 式4)x=5z,那么有最终的钱数是7z*5=35z,即钱总数必须能被35整除,选AC。
13. 入栈序列是:a1, a3, a5, a2, a4, a6,出栈序列是:a5, a4, a2, a6, a3, a1,则栈的容量最小是多少()
A. 2 B. 3 C. 4 D. 5
解析:选C。这种题目理解了栈是后进先出的原理后直接模拟即可。
14. TCP报文首部信息中与关闭连接有关的是()
A. URG B. ACK C. SYN D.FIN
解析:选D。URG(urgent)表示紧急传输;ACK表示传输确认,实际上关闭连接和建立连接、传输数据时一样也需要进行确认,所以个人感觉这题ACK可选也可不选;SYN表示同步;FIN(final还是finish?)用来释放连接;此外还有PSH(不要缓存立即push给应用层)和RST(复位reset,断开再重新建立连接)。
15.
1 int foo(int n) 2 { 3 if(n<=1) return 1; 4 return n*foo(n-1); 5 }
上面算法时间复杂度是()
A. O(log2n) B. O(n) C. O(nlog2n) D. O(n2)
解析:选B。foo递归次数只与n有关。
16. turbo c 环境下,下面程序运行的结果是()
1 #include <stdio.h> 2 int main(){ 3 printf("\n"); 4 int a[5] = {1, 2, 3, 4, 5}; 5 int *p, **k; 6 p = a; 7 k = &p; 8 printf("%d",*(p++)); 9 printf("%d",**k); 10 return 0; 11 }
A. 11 B. 21 C. 22 D. 12
解析:选D。p是指向数组a的指针,k是指向指针p的指针。第一次printf之后p由于后加加已指向数组的第2个元素,此时:*k==p,**k==*p==a[1]。
17. 现有一个包含m个节点的三叉树,即每个节点都有三个指向孩子节点的指针,请问:在这2m个指针中有()个空指针。
A. 2m B. 2m-1 C. 2m+1 D. 3m
解析:选C。m个节点共有3m个指针,而除了根节点外每个节点都有父节点(即需要占用一个父节点的指针),所以空指针数为3m - (m-1) = 2m+1。
18. 在下面的描述中,哪些不属于数据库安全性的措施()
A. 普通ZIP压缩存储
B. 关联加密存储
C. 数据分级
D. 授权限制
E. 数据多机备份
解析:选AE(C?)。A选项是用来搞笑的。数据多机备份应该归为容灾性措施。教科书上把安全措施分为用户标识和鉴定、存取控制、审计、视图、操作系统安全保护、密码存储这几类,数据分级不知道可否归为视图这一类,所以C不确定。
19. 以下哪些工具可以测试源机器与目标机器之间的路由数量,以及各路由之间的RTT()
A. Traceroute B. Ping C. FTP D. Telnet
解析:选AB。RTT(Round-Trip Time)指往返时间,即请求发送一个响应数据包,而且得到一个回答数据包的时间,通过Traceroute和ping都可以获得。traceroute和ping是常用的两个网络测试工具,FTP主要用于文件传输,Telnet主要用于远程登录。
20. 流量劫持是网络中常见的安全威胁,下列哪些情况可能会造成流量劫持?()
A. MAC地址欺骗 B. DNS劫持 C. 伪造的DHCP服务器 D. 使用https协议
解析:选ABC。https是以安全为目标的HTTP协议。流量劫持的攻击方式主要有如下几种:HUB嗅探、MAC地址欺骗、MAC冲刷、ARP攻击、DHCP伪造、DNS劫持、CDN入侵、路由器弱口令、路由器CSRF、PPPoE钓鱼、蜜罐代理、WiFi弱口令、WiFi伪热点、WiFi强制断线、WLAN基站钓鱼。
21. 以下哪些可以工作于数据链路层?()
A. tcpdump B. 集线器 C. 交换机 D. 路由器
解析:选AC。tcpdump是根据使用者的定义对网络上的数据包进行截获的包分析工具,工作在数据链路层。集线器属于纯硬件网络底层设备,主要功能是对接收到的信号进行再生整形放大,工作在物理层。交换机是用于电信号转发的网络设备,工作在数据链路层。路由器用于连接多个逻辑上分开的网络,工作在网络层。
22. UDP报头中没有下面哪些信息?()
A. 目的地址 B. 窗口大小 C. 序列号 D. 检验和
解析:选ABC。UDP报头只有四个域:源端口号,目的端口号,数据报长度,检验和。
23. 以下方法哪些可以让一个元素浮动起来()
A. inherit B. absolute C. fixed D. static
解析:选ABC。元素浮动最常用的是float属性,position属性也可以。inherit表示继承父类的属性,如果父类可浮动,那么子类也可以浮动。position: absolute 也可以让元素浮动。position: fixed 和 absolute类似。
24. 在竞态条件(race condition)的情况下,两线程执行如下代码段,其中count为共享变量,线程1执行代码段A,线程2执行代码段B,那么变量count的值可能为()
1 int count = 10; 2 代码段A: 3 Thread_1(){ 4 // do something 5 count++; 6 } 7 代码段B: 8 Thread_2(){ 9 // do something 10 count--; 11 }
A. 9 B. 10 C. 11 D. 12
解析:选ABC。Thread_1读取count(10),进行递增操作,还未写回新值1(11)时,Thread_2读取count旧值(10),进行递减操作得到新值2(9),写回时若新值1覆盖新值2则得到count=11,新值2覆盖新值1则得到count=9。count++和count--顺序执行时则得到正常值10。
25. 假如john看到摆钟的时间是17:32分,请问下这时,时针跟分针的最小夹角是多少度?()
A. 25度 B. 26度 C. 28度 D. 32度
解析:选B。选12正点刻度顺时针作为参照,分别算出时针和分针的偏移量,二者相减即可。 每小时角度为360/12=30度,时针的偏移量为30*(5+32/60)=166度;每分钟角度为360/60=6度,分针的偏移量为6*32=192度。192-166=26度。
二、附加题
1. 请设计一个函数可以把10进制的正整数转换为4位定长的36进制字符串。
36进制的规则为:“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”:
举例说明:
1="0001"
10="000A"
20="000K"
35="000Z"
36="0010"
100="002S"
2000="01JK"
解析:10进制数除以基数(36)取余即可。
1 char *tenTo36(const int num){ 2 char *num36 = new char[5]; 3 num36[0] = num36[1] = num36[2] = num36[3] = '0'; 4 num36[4] = '\0'; 5 int tmp = num, i=3; 6 while(i>=0 && tmp>0){ 7 num36[i--] = (tmp%36 > 9)?('A'+tmp%36-10):('0'+tmp%36); 8 tmp /= 36; 9 } 10 return num36; 11 }
2. 在MMO游戏中,服务器采用Linux操作系统,网络通信与游戏逻辑的处理进程一般是分离的。例如:GameSvr过程处理游戏逻辑,TCPSvr进程处理网络通信。Linux操作系统提供了很多机制可以实现GameSvr和TCPSvr进程之间的数据通信,请您列出两种你认为最好的机制来,并为主(最好)次(次佳)描述他们实现的框架,优缺点对比和应用中的注意事项。
解析:Linux系统进程之间的数据通信主要方法有管道、消息和共享内存(注意:信号量和信号虽然也是进程间通信的方式,但是是用于触发,而不是用于传递数据)。三个任选两个来说明,说得通都可以吧。以下说明节选自William Stallings的《操作系统精髓与设计原理》。
管道:管道是一个环形缓冲区,允许两个进程以生产者/消费者的模型进行通信。因此,这是一个先进先出队列,由一个进程写,而由另一个进程读。管道在创建时获得一个固定大小的字节数。当一个进程试图往管道中写时,如果有足够的空间,则写请求被立即执行;否则该进程被阻塞。类似地,如果一个读进程试图读取多于当前管道中的字节数时,它也被阻塞;否则读请求被立即执行。操作系统强制实施互斥,即一次只能有一个进程可以访问管道。
消息:消息是有类型的一段文本。UNIX为参与消息传递的进程提供msgsnd和msgrcv系统调用。每个进程都有一个与之相关联的消息队列,其功能类似于信箱。消息发送者指定发送的每个消息的类型,类型可以被接收者用做选择的依据。接收者可以按先进先出的顺序接收信息,或者按类型接收。当进程试图给一个满队列发送信息时,它将被阻塞;当进程试图从一个空队列读取时也会被阻塞;如果一个进程试图读取某一特定类型的消息,但由于现在还没有这种类型的消息而失败时,则该进程不会阻塞。
共享内存:共享内存是UNIX提供的进程剖通信手段中速度最快的一种。这是虚存中由多个进程共享的一个公共内存块。进程读写共享内存所使用的机器指令与读写虚拟内存空间的其它部分所使用的指令相同。每个进程有一个只读或读写的权限。互斥约束不属于共享内存机制的一部分,但必须由使用共享内存的进程提供。
3. NSTimer会retain目标对象,可能会造成循环引用。请在NSTimer的基础上封装一个不retain目标对象的Timer,要求至少实现下面两个方法,并介绍设计思路。
1 @interface NSTimer:NSObject 2 3 + (NSTimer*)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; 4 5 - (void)invalidate; 6 7 // other methods... 8 @end
解析:retain会用到引用计数技术,而任何的引用计数都存在循环引用的问题。解决的方法是使用块方式,因为block的retain、copy、release都不会使得引用计数加1。下面的代码是将互联网上获取的代码简单修改后给出的,本人对IOS开发不熟悉,代码未经过实测验证:
1 @interface NSTimer:NSObject 2 3 + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval 4 block:(void(^)())block 5 repeats:(BOOL)repeats; 6 - (void)invalidate; 7 @end 8 9 @implementation NSTimer:NSObject 10 11 + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval 12 block:(void(^)())block 13 repeats:(BOOL)repeats 14 { 15 return [self scheduledTimerWithTimeInterval:interval 16 target:self 17 selector:@selector(eoc_blockInvoke:) 18 userInfo:[block copy] 19 repeats:repeats]; 20 } 21 22 + (void)eoc_blockInvoke:(NSTimer*)timer { 23 void (^block)() = timer.userInfo; 24 if (block) { 25 block(); 26 } 27 } 28 29 - (void)invalidate{ 30 [super invalidate]; 31 } 32 @end
面试
参加了2014年春季腾讯在武汉地区的实习生招聘面试,并参观了9月份腾讯在合肥中科大的面试现场,总体的感觉是腾讯的面试通过与否与RP关联性很大,所以平时要多多扶老奶奶过马路。
1. 关于霸笔和霸面
腾讯不排斥霸笔和霸面。9月份在合肥中科大的笔试,特地安排了一间教室给霸笔的同学。所有简历未通过、笔试地点不符、调整岗位、错过网申时间、上一批笔试时未参加或未通过、提前一批来参加笔试等等特殊情况都作为霸笔来处理。但霸笔的试卷不一定被批改,一切都看改卷的面试官有没有时间和心情来改,或者正常笔试的结果不理想来挑一挑霸笔的卷子,看RP,所以霸笔的性价比并不高。实习生武汉场的招聘接收了很多霸面的同学,但校招时合肥场几乎没有人霸面成功。打算霸面的话一定要赶早,现场HR会把你的简历收走按序放到一边,等有面试官空闲了就安排霸面的同学进行面试。当然你比较牛且简历出众的话一般会有霸面机会的。
2. 关于宣讲、现场组织和HR
腾讯的宣讲搞得比较花哨,特别是那个“英福伦斯”(其实就是influence的中文英译)在线宣讲会,搞得像综艺节目一样。关于腾讯的公司文化、待遇、招聘流程、职位信息等通过互联网和师兄之类的都可以很清楚地了解到,参加宣讲与否与你是否能被录用关系不大。在武汉华科的校招宣讲会,我们提前两个小时到会场时,门口就排起了长队,到正式入场前,队伍已经从4楼排到了大厅还转了几圈。如果你想拿公仔或体验一下就业的压力,那就去吧。武汉场实习生招聘的面试各种等,除非你是第一批,否则面试时间都会比通知的晚半小时或以上,现场HR的态度也不是很好,参加十几场招聘会中唯一一个会对咨询的同学不耐烦地大喊大叫的HR就是腾讯的HR。合肥现场的一个HR特别看不起霸面的同学,冷言冷语,看着都心里不舒服。
3. 关于内推、结果通知和谈offer
在实习期间通过公司内部的“伯乐在线”平台内推了十几个同学朋友,从本科生到博士生,从菜鸟到特别牛逼拿着谷歌offer的大神,都没有一个被搭理的。后来听HR说由于安排不出人手,基本不对内推的同学进行特殊处理,照常走校招流程。所以如果不是找部门负责人或特别缺人的部门内推,内推没什么意义。笔试和面试的结果可以通过微信进行查询,但查询结果要么前后冲突要么信息延迟几乎没什么用,所以还是电话或短信靠谱。腾讯从来不直接告诉你你挂了,用语暧昧模棱两可让你心存希望,实习招聘时那个“么么哒”被大家吐槽到死,实习生没有留用也不直接告诉你未留用,而是给你发了条参加校招笔试的短信让你推测出你挂了。所以对于结果需要多多和一起参加的小伙伴保持信息交换。身边拿到offer的朋友,都没有机会和HR谈offer。HR打电话来通知A君通过了所有面试,然后说了下条件和薪资,问A君接不接受,A君犹豫了一下,HR马上说你是不是有什么不满啊,A君吓得马上说没有没有……
4. 实习面试过程
面试官基本上就是你入职后的上司,我的一面面试官是我的组长,二面面试官是总监。各个面试官有不同的风格,所在的部门要求的能力和标准也不相同,面试给分的随机性很大。朋友W君投的Java岗被安排给了一个C++的面试官,恰好面试官又不懂Java,面试过程你问你的我答我的,于是没几分钟就“你回去等消息吧”。有几个圈子里公认的大牛一面就跪了,只能说RP不好,平时没有好好扶老奶奶过马路。很多部门在第一批城市招聘结束后就定下了许多录用名额,后面几批的机会就相对少了,所以建议尽量参加第一批招聘。
一面:1. 谈谈你对财付通的了解;2. 数组应用需要注意些什么,然后让我在做一次笔试题选择题的最后一题并解释;3. TCP/IP协议;4. 数据库的基本操作;5. 有没有参加什么社团啊;6. 为什么选择计算机专业;7. 腾讯的登录界面,输入用户名、密码,然后点登录,请从安全性、持久性、友好性、网络传输……(总之很多方面)考虑整个流程,请从全局系统的角度来阐述;8. 项目经验介绍。
二面:1. 先来一段Rap(自我介绍);2. 项目经验介绍;3. 根据项目经历提问,问了我的问题如下:1)TCP/IP(网络方面);2)事务处理和锁机制(数据库方面)3)PHP或JS生成XML文件的方法(前端开发方面);4)常用Shell命令,以及涉及网络的Shell命令(Linux方面);4. 你有什么问题要问的吗(我问了如果被录用了能不能和一面的面试官一起混,他说能)。面试半小时。
HR面:1. 先来一段Rap(自我介绍);2. 介绍家庭情况;3. 有关心最近的哪些社会热点; 4. 如果用车来形容你自己,你觉得你是哪一种车; 5. 有哪些人对你的人生造成了重大影响; 6. 可以实习的时间长度; 7. 介绍一下你的导师,以及你和导师的关系; 8. 你觉得身边的哪些人是技术大牛; 9. 未来的职业规划; 10. 希望到哪些城市工作。
5. 腾讯2015校园招聘研发类研究生参考工资:13k*15
实习经历
只实习了两个半月,所见所闻如下:
食堂:每个大厦都有自己的食堂,早中晚餐夜宵都有供应,带汤带水果,还有披萨、咖喱饭等,价格合理,干净卫生,味道我觉得还不错。自费。
工位:工位比较大,研发的一般有两台机子,一台内部开发网的,一台连外网的,无需FQ即可访问国外技术论坛,电脑配置中等。
事业群:1.WXG 张小龙做的两个产品,微信和QQ邮箱,地点在广州研发部,高大上。2. CDG 工作地点主要在深圳腾讯大厦(总部),主要是做金融互联网和海外业务的,包括财付通、理财通、QQ彩票等。3. IEG 也就是做游戏的了,包括各个工作室,大部分在深圳的科兴大厦,还有成都的卧龙工作室、上海的工作室等。4. MIG 手机管家、SOSO地图等,主要做手机端的开发,也有PC端的,这块了解的不多。5. OMG 工作地点主要在深圳和北京,腾讯微博好像是在北京吧(有IOS的开发),还有腾讯视频、腾讯网等。5. SNG QQ产品所在的部门,包括QQ客户端、QQ空间、QQ音乐等。6. TEG 主要做公司内部的IT支撑和内部软件的研发,据说里面比较多技术宅和富二代。内部有个说法“IEG有钱没时间花,TEG有时间没钱花”,也就代表了IEG加班辛苦但米多,TEG工作轻松但米少。
加班:除了IEG(互动娱乐事业群,即搞游戏的)的部门外,其它部门基本不用长期加班。晚8点离开公司可以拿到一张夜宵券,夜宵券可以作为晚餐的抵用券。晚10点离开公司可报销打的费。一起实习的朋友在IEG的话基本都会加班到10点以后。
生活氛围:开发工程师大部分比较闷,每次食堂排队吃饭时都会看到转了好几转的队伍大家像多米诺骨牌一样齐刷刷地低头看手机,研发线年中大会时现场提问环节一般会冷场。策划和产品的则非常的开放,玩得很疯,实习期间刚好赶上了著名的“5P门”事件。但腾讯总部的活动还是非常多的,几乎天天有,午间时间下楼参加个小活动拿个小奖品,周末参加志愿者或户外活动之类的。相对来说,腾讯确实是很养老的互联网企业。
技术氛围: 腾讯的技术氛围一般,内部的技术论坛和分享平台比较冷清,实习期间遇到的技术大牛不多,清北学生偏少,国际友人也不多。但技术讨论会、分享会、讲座等很多,都可以参加。腾讯相对技术而言更注重产品。