[经验] 本科非cs菜鸟计算机面试实录

来源:互联网 发布:上海博物馆淘宝店 编辑:程序博客网 时间:2024/04/29 13:17
两年制小硕,本硕期间差不多都打酱油的。本科非cs专业,硕士cs,编程基础一般,专业基础尚可。
研究生期间分析分析了pgsql数据库的源码;同时实验室一些杂项目;自己业余为了应试读了些计算机书。
自己当时qq空间面试的记录,更改下,转到这里吧。

08.30 洪广大酒店,华为座谈会(提前批):
      实际就是面试,职位操作系统工程师。这个职位的职责写了三点:负责虚拟化、OS kenel、Database Kenel的开发工作(这个职位属于华为十年计划部署后出来的,希望在系统软件做出东西。2011年9月新增的职位)。而且确实有华为研究人员来实验室跟我们老板交流过。自己的丁点数据库内核基础就拿去忽悠吧。两面都很简单,主要是我在讲PostgreSQL内核的理解,全程仅问了两个问题:什么是触发器?Linux中进程和线程的区别?当时觉得侮辱我的水平麽,嘟嘟了一句我是研究生,面试官貌似听到了笑了笑。二面就又聊天了。而且说让我改投云计算,说云计算也做底层。擦,内部争人。这次面试最大的好处就是使我有了自信,毕竟华为跟我原先实习生面百度、腾讯、淘宝难度完全不在一个档次,有点至少不会失业的感觉。在此之前面过腾讯、百度等实习生,均止步于二面。我遇到的华为面试官态度很好,就是有点拖拉。在洪广大酒店一等就是一天。

09.16 武大人文馆,创新工场笔试:
      做的很烂,第一个算法题:求最长递减子序列,编程之美原题,没搞定。笔试挂了。

09.18 武大计算机学院机房:
      华为上机挂,约瑟夫环问题,硬是没调通;但09.30还是收到了华为云计算的口头offer,上机可能没什么大作用,但当时不晓得,心情郁闷啊,华为都挂啊。
      武大工学部某教室:
      趋势科技全英文笔试,各种C++语法特性,模板都用英文出题有木有,加上华为的打击,两眼一黑大脑基本不运转。此时心理再次跌入低谷,当天晚上注册了华为赛门铁克、烽火通信等乱起八糟的,以保万全。

09.20 华科学术交流中心,阿里巴巴绿色通道:
      在基本没有准备的情况下参加阿里巴巴绿色通道,实际还是面试,研发工程师。赶到华科时,已经是人满为患了,第一家互联网,武大华科近千烟酒僧候场啊。一面官:麻烦划下pgsql总体架构?能不能用条sql语句给我讲讲查询优化的过程。写两个算法:链表逆转 + 希尔排序,问到希尔排序算法时间复杂度,当时不是很清楚,感觉是经验值啊。通过。面试官态度较好。晚上淘宝研发笔试,挂了!当时郁闷啊。

09.21 华科学术交流中心,阿里巴巴二面:
      最无厘头的面试,40岁的面试官不知道pgsql是什么?哥类比mysql,然后彻底没问(后来结合其他问题,怀疑他只是假装不知道,你最拿手的东西面试官不鸟额)。三个问题:巡航导弹是怎么导航的?如何统计夜空有多少星星?知道N个多边形的边界点坐标,如何判断某坐标点在哪个区域内?晕啊,这是开放思维测试?心态测试?压力测试?他二郎腿敲着,我漫无边际的扯,或者沉默。最后……面试官,你还有什么问题问我?这时候能有什么问题,一个offer没有。然后把自己所谓的软实力、对数据库内核了解,平时看书比较多,成绩不差,态度端正,做事很老黄牛。虽然没有ACM啥的,但阿里不可能全招天才。啊。啊。祈祷啊。结果面试官说你出去等一下吧。就这样。紧接着HR面,
      
      武大本部某教室:
      晚上中兴笔试-软件研发,A卷,100分的C语言有木有,乱七八糟古怪语法全有,没看过C陷阱缺陷、C专家编程的你要会就奇了怪了,还不定项能搞死人,通过,毕竟读了不少C/C++经典著作,后来据一面官说这张以C为主的卷子,我分数位居武汉地区前列。

09.22 卓悦假日酒店,阿里巴巴offer。
      第一个互联网offer。虽然杭州以前没考虑过,还是Java系的,但还是当时high的狠啊,终于不用去华为了喔亲,给女朋友报了喜,给老爸打了电话。
      
      武大经管院报告厅,人人笔试:
      C++研发,通过。

09.23 珞珈山国际酒店,中兴一面:
      胡乱聊,看我的笔试成绩貌似觉得没什么可问的,加之那么丁点的数据库内核基础,问神马入职后能否搞内存数据库,这个时候有阿里巴巴了,也敢吹了果断表示木有问题。跟俺狂聊啊,聊测绘转行计算机的问题...武测那牛,转计算机干啥...这行我觉得比测绘累...没前途...中兴,你是在面试么?
      
      君宜王朝酒店,淘宝三面:
      前面的研发挂了,不过暑假面过淘宝数据库内核的实习生,过了,由于老板不放人没去,这次被电话过去直接面数据库的三面。就叫过去实验室也分析pgsql的一起去了,他原先淘宝一面挂了。
      就问了问我的pgsql优化器的一些问题,三面是老大啊,不是很满意;但本来实习生通过了且当时考研成绩进top10写上去了,感觉成绩可以并问了些数据结构、操作系统的问题验证了下,感觉基础凑合就放过了。他们招什么数据库内核,linux内核的人也不好招。实验室另外一哥们也进了,而且拿了淘宝的顶级offer待遇。

09.24 帅府酒店,人人一面:
      面试官是武大11年6月刚毕业的本科生,膜拜啊。但牛人一般不认识俺。
      让讲了下堆的理解(数据结构 & 操作系统两个层次,但俺不晓得操作系统中堆到底长啥样)。
      编程之美原题,链表有环,求交点。
      不用加减乘除取模循环实现int add(int a,int b)函数。这道题哥给的答案,直接奠定了offer给的数字超越了后来的百度、搜狗。有一种非常精简的答案,感兴趣的可以搜下。
      关于笔试一道题的讨论:
      int main(){
             char a;
             char *str=&a;
             strcpy(str,"hello");
             printf(str);
      } 我的意思是可以输出hello,但函数返回时出错。但事实证明,不同编译器结果不同,但我当时讨论的思想是没有问题的。
      当场立刻上八楼二面,木有停歇:给字符串去掉所有空格,很简单,注意代码风格及健壮性;懂设计模式?知道迭代器算懂不?没研究过,也就没问;证明n、n+2是质数,且n>5,那么n+1可被6整除;50亿数据去重。人人的问题都比较常规,所有问题都答出来了。问面试官表现如何,说不错。后来事实证明不假,人人的薪水是我拿到的最高的。其他offer都是走的公司的最低限。

09.25 华科西十二教,搜狗招聘笔试:
      C++搜索引擎研发。同时有威盛、烽火两家笔试,就没有去。

09.26 华科校内某酒店,搜狗一面:
      笔试做的不错,客观题错了3.5(20个),后两个算法思路没问题,接近满分。跟面试官讨论了后面两个算法的思路:二叉树的最大距离(编程之美原题) & 先递增后递减数组的峰值。对网络编程和多线程比较重视,但我只知道皮毛,问select、epoll之类的,仅在APUE中做过概念性了解就没再问。C++虚函数参数编译期确定函数执行期确定问题、函数重载、字节对齐语法及其实现原理、原因等等。写String类的三个控制函数,这个没练过,写的不好,及memcpy的实现(实际上是要达到库函数中memmove的功能);设计一个内存池——这种题目的回答得先讲内存池作用;然后我讲了讲STL空间配置器的东东;被问到分配内存相差无几时怎么搞?这个搞的晕了,难道采用OS中最笨的那种方式。yes,数组就可以。我擦。最后出了一个算法,找出两个递增数组的中位数,logn的算法仅说了思想没描述太清。
      当天中兴二面给拒了,累。

09.27 搜狗二面
      搜狗原则上就一面,一面存在以下结果:一面刷,一面过!这两种情况都不需要二面;另外就是一面不确定要或不要,让二面的技术老大看看。
      喵到了一面面试官对自己的评价:除了网络多线程编程为B,其他均为B+;具备一定代码基础及实际开发能力云云。
      技术老大面,答的一般,主要是这方面背景比较欠缺,靠概念性理解介绍,而且对PG不感兴趣。主要问对搜索引擎的理解,对倒排索引的理解,大数据量如何建立倒排索引,对搜狗公司的了解。还有个就是对地图中的特征点如何获取,没理解究竟问什么,这个答得狗屁不是。
      对于面后台,我觉得扎实的C++/STL/网络/多线程/算法基本可以搞的定。对相关背景(搜索引擎、分布式等等)知识有了解则更佳。
      搜狐、搜狗,非常重视笔试和一面(原则上就一面),笔试过不了任你百般哀求都没用。面试官态度很好。offer。
      趋势当天与搜狗二面冲突,没去;下午五点打来电话,问还可以去参加面试,拒了,太累。

09.29收到人人口头offer。准备回家。
09.30火车上收到了华为云计算的口头offer
10.01-10.07 休息

10.09 武大工学部,百度笔试(测试开发)、腾讯笔试(后台研发);
      搜狗下午五点口头offer,被hr问到百度腾讯咋样,我说才刚笔试,然后hr说那啥我们这待遇相比他们有竞争力的。。额。好好。。一片和谐。。

10.10 珞珈山国际酒店,百度测试开发一面:
      写最长匹配字串代码;内存泄漏及怎么测试;大数据量用户信息数据库优化;操作系统-同步、异步、阻塞、非阻塞区别与联系,没解释清楚,到现在我也不是很清楚;整数因子分解,使因子和最小。测试相关背景知识。没做过测试,另外十一回来也没什么效率,面试也是应试,得常准备着。面的一般。
  
10.11 君宜王朝:腾讯后台开发一面
      这次面试官态度很冷,相当的冷。没等到他问我问题,我道歉赶时间去百度了。态度VS时间,导致我对腾讯不报希望了。而且十一前的面试搞定搜狗也不是很在乎了。虽然具体待遇岗位都没通知。
      唯一的算法题:给一个乱序整型数组,让找出一些符合以下条件的数:该数的前面的数都比它小,该数后面的数都比他大。
      
      珞珈山国际酒店,百度开发测试开发二面:
      百度二面和一面一样,面试官很好,聊了近一个小时。后来出来基本什么都不记得了,就知道让写傻×的括号匹配的代码;然后问了个小算法:二维行列递增数组的查找,即一个矩阵,任何一个右下方都比左上的数大。由于我不了解软件测试,最后让回去考虑下职业发展,查查百度怎么测试的,微软又是怎么测试的,考虑下开发 &  测试开发 &  测试 究竟去做哪个。。。

10.12 腾讯后台二面
      收到腾讯二面那是相当意外啊。武汉4000技术笔试,至少1500一面,跟一面官说的不超过10句话竟然也二面?
      前面又是随便聊,但比腾讯一面好多了;写了一个螺旋矩阵的代码就走人了。腾讯,本来预计主打的,结果成了打酱油。
      当天网易C++笔试,网易的C++不干别的,只搞mysql内核,由于腾讯二面回来比较晚了,各种因素就没去了。

10.13 百度三面。11点面,10点20给我打电话。我飞奔过去。技术主管吧。清华的。进门告诉我下午就要回北京,看你是武大的就让你赶过来,华科的就不通知你了。这是神马意思呢。没啥意思,就地方比较近。珞珈山酒店显然离珞珈山很近。15分钟不到的路程,呵呵。
      她以前硕士也做pgsql,对我没改过代码表示失望。我说两年制,分析还没到家呢,还改代码?毕设应该会做。聊天一个小时,各种人生啊,从转到人生问题上。额。最擅长聊人生,教育我弟我女朋友练出来了。哈哈。
      
      下午迅雷笔试,迅雷不要简历了,发了信息采集表。那个累啊。你的实验室的级别,老板的级别,你的成绩,你拿到的offer,你的薪资要求,最喜欢最讨厌的公司,填了近五分钟。啊。
      200分的题,100分客观,有选择,C++有点难,涉及到模板的那鬼晓得他对不对,算法填空题纯粹胡搅蛮缠,简单的排序让出题人写的都看不懂了,填空还。。。
      后面两个算法不难,有一个还用上了腾讯冷面官出的那题目的思想。

10.14 腾讯三面。聊天十分钟。又是意外。腾讯在武大招了25个左右。写了两个代码没说几句话就通知三面了。直接告知一二面官是做什么的,以后你就跟他混。额。苦逼的战略产品。
         PS:腾讯后台研发不好玩,可以投搜索研发。后台研发随便拉一个产品都有后台,想做核心几乎不可能。即时通信组来不来武汉都另说了。     

10.15 迅雷一面。通知8:40面试,两站路。广八路上车,结果到武大正门赌了,下车在正门逛了逛,思考走一站?最后还是直接回实验室了,面试累人。后来人人群里一个9点面试迅雷的哥装13说他笔试成绩167分。这尼玛哥8:40。哥模板的选择,填空做的很烂啊。。
         下午,网易游戏笔试打酱油,数学、线代矩阵求逆都不会啊,还有小学印象中一堆汉字乘以一对汉字得到一堆汉字,问每个汉字代表数字几。啊。。太难了。。

10.18 百度四面:唯一的测试岗,唯一的四面,悲催。。

10.19 一天内:人人、搜狗、百度、腾讯下发正式offer。

总结:
华为,上机挂,给offer。
创新工场,笔试挂。
阿里巴巴,offer。
淘宝:笔试挂。后来内推mysql数据库组,offer。
中兴:二面放弃。
趋势科技:一面放弃。
人人:offer。
搜狗:offer。
--------十一分界-----------
腾讯:彻底酱油的offer。
百度:offer。
迅雷:一面放弃。
阿里云:笔试挂。
网易游戏:笔试挂。
整个找工作过程相对来说比较顺利。在linux开发上的欠缺面试官也都没有太为难。不晓得是学生都这样,还是自己人品好。
虽然一年都没有太松懈,但五月份的实习生全挂,还是给了自己很大的打击。从6月到9月中旬,这三个月真正准备的时间。
找工作也是一种考试(面试),需要技术,需要准备,需要人品,需要表达,需要心态。

-----------------------------------------------分界线-------------------------------------------------------------------------------------------

经典书籍推荐,主要是linux C方面的,我把我看过或者了解的简单说一下。
C语言:
C程序设计语言 -- 没有太细的看,而且修为不够,所以没啥感觉
C和指针 -- 感觉这本书倒很适合做大一的教材,比较经典。
C陷阱与缺陷 -- 两天就能看完吧,比较简单,只要了解一些变态语法就行。
C专家编程 -- 我没看。但九度貌似有word版总结这几本书的,那个word看完了。确实总结的很不错。
个人重点推荐C和指针 + C陷阱缺陷

C++
C++ Primer -- 看了两遍吧;实习生面试前一遍;暑假一遍;
高质量程序设计指南C/C++ -- 6月初看的一遍,这本书很不错,很多黑体重要结论,引经据典,回答C++的问题能够拎上的话加分不少。
深度搜索C++对象模型 -- 6月份看的,有点小难,而且意义不是很大,了解一个逻辑模型就可以了,而且里面本身就有很多错误。
STL源码剖析 -- 暑假看的更是扫描的看的。重原理,轻细节,纠结详尽的模板语法对菜鸟来说估计会死。
Effective C++ -- 每天整理两三个条款,我觉得这种条款类的书很适合闲暇时间看。
More Effective C++ -- 就挑了几个常考的条款看了看,挺好的。
Effective STL -- 仅看了几个条款。

软件基础知识,个人认为最好都通晓点:
数据结构 & 算法设计分析 -- 算法导论对我这菜鸟实在啃不动。就整了考研时李春葆的课本 + 清华那本计算机算法设计与分析。
操作系统原理 -- 汤子瀛的课本 整了整进程调度 + 内存那块。
计算机网络 -- 谢希仁的课本 整了整网络层 + 传输层。
数据库系统实现 -- 结合pg源码看的。同样,也是看到编译执行,并发事务没看。
搜索引擎-信息检索实践 -- 9月中旬才买的书,忽悠搜索引擎用的,但整天在面试,基本没看。但看看挺好的。忽悠百度、搜狗、有道啥的有用。
大话设计模式 -- 就看了几个模式。本来就一个暑假,不可能样样都知道,实验室老板还逼着看Totem源代码(实验室基于PostgreSQL自己开发的扩展版数据库,代码更改了近三分之一啊感觉,也就不奇怪当年开发实验室自己数据库那帮人很多去搞Oracle DB2了,武大最后三年制变两年制的最后一届)
个人推荐:数据结构和算法最重要啊还是,另外,建议大家买的专业课考研资料不要卖啊。看重点很有用。

Linux/Unix程序设计部分
Linux程序设计,过年开学正月十五去光谷玩时在华科买的,5月份差不多主要部分就看完了。了解了这么些系统调用。啥的。
UNIX环境高级编程 6月18号 - 7月30号 看了两遍,并做了笔记。挺好的。
POSIX多线程程序设计 第二遍看APUE时附带看的,这本书很早就绝版了,电子版貌似也不多。
TCP/IP Sockets编程(C语言实现) 简单的入门书。200页很薄。
TCP/IP高效编程 真本书是条款的,44个条款。大概也就看了前十多个条款。挺好的,有时间的话这两本加起来基本可以了,UNIX网络编程那两卷加起来都可以镇宅用了,能看?
重点推荐UNIX环境高级编程 + TCP/IP高效编程啊。后边那本书44个条款对网络编程绝对是一个很好的总结。另外shell/python啥的,反正找工作时候自学了一点,基本不会。也没重点去看,所以没啥推荐的。

应试啊,应试啊:
编程之美--至少今年很多题还出自这里面,必不可少。。。
程序员面试宝典 -- 三天就能看完,真要沦落到看这本书,那。。。除非技术正的大牛。。。
程序员求职成功路:技术、求职技巧与软实力培养 -- 就算看应试的书,个人推荐还是看这本吧,讲的很多都比较有深度。尤其前几章C内存的部分。
程序员面试攻略 -- 题目比较老,但是看看有助于思维发散。

何海涛博客:http://zhedahht.blog.163.com/  -- 不过现在也出书了,剑指offer。
结构之法、算法之道博客:http://blog.csdn.net/v_JULY_v/article/list/6?viewmode=contents
这俩博客真的不错,尤其后面结构之法算法之道,虽然博客风格烂,但是作为一个07还是08级的本科毕业生,花时间做总结,我这酱油菜硕吃结论剩饭的就不挑剔了,表示感谢。