腾讯面经

来源:互联网 发布:linux获取网卡ip地址 编辑:程序博客网 时间:2024/05/16 06:58

转自:http://www.linuxdiyf.com/bbs/thread-105841-1-1.html

今天去了腾讯公司的老巢,坐落在飞亚达大楼的7层。

第一次去的时候还是有点发蒙,因为飞亚达那里长时间施工,一时间晕头转向的绕道沙河立交后面。这样一折腾之后,浑身汗透了,和出道深圳的时候极其类似。

在上电梯的时候,我就琢磨着,腾讯的势力有多大。因为4,5,6层电梯开门总是能看到正对面的腾讯前台,到了7层一问:小伙子,3楼到10楼都是腾讯地盘。一切简洁代过。

技术型的面试就是简单,递给两张试题,圆珠笔,草稿纸,支个地方就可以了。我在作题目的时候还能看到后面的人在用source insight写代码,偶尔也会回头和我打招呼,对眼色。

面试题目是核心,大家一定想知道很多。我应聘的是Linux后台开发(看到QQ大批的业务,他的后台却是Linux,你们大家如何想呢?),题目自然是关注Linux编程环境。面试的师傅问我作C还是C++,我答曰C。于是他给我抽出试卷B。

题目总共两张,总共9道题,大致划分:

编程环境,2道,execl调用,TCP select问题
数据结构,3道,sizeof,数据存储,查找算法
编程语言,1道,C++类存储
算法,2道,算法分析和设计
编程工具,1道,Makefile

我基本都有答,不过有两个是彻底瞎蒙的。

1. 问题输出结果

#include <stdio.h>
#include <unistd.h>
int main(void)
{
printf("call execl"); 
sleep(1); 
execl("/bin/sh", "", NULL); 
printf("error!\n");
}

正解-->

这个东西只会输出ls结果,两个printf都是不输出的。首先,Linux IO是行缓冲形式,未遇到换行和强制输出是不数出的,待到execl执行后,创建新的进程映像,后面的printf也不会去执行。

2. TCP通讯中,select到读事件,但是读到的数据量是0,为什么,如何解决。同步传输控制?我根本没使用过。

其他的基本通过,有一个问题很有意思。

3. 假设电信每分钟登录次数是60w次,现在要提醒5分钟内重复登录的用户,如何设计程序缓存和查找算法?我说,数据库查询得到5分钟内拨号号码,然后根据号码建立位图数组。他反问我:你知道数组要有多大么?我答曰,假设足够大。我又说,为建立的号码列表排序,方便以后二分检索,他又反问:那如果我说这个程序是动态的呢?要知道随时都会有其他用户登录。我没法回答了。你咋不早说妮!

这么多天来,我一直都在琢磨一个事情,为何自己的能力在一个阶段上,迟迟不能进步。老是想着作大项目,得到项目经验,却在一些大工程上不知道如何下手。我才发现一个严重的问题,我往往忽略了很多关键性和基础性的能力培养。数据结构和算法设计是两个核心的概念,除此之外,那些应付性的代码和蹩脚的设计根本无法谈上经验,似乎这两年都在无止境的乏味折腾。

所以还是,千里之行,始于足下。如果极限概念模糊,也不要吝惜自己“宝贵”的时间,咬牙抱起高等数学吧。

原创粉丝点击