1.校招
第1家
没去参加它的宣讲会,但是在现场招聘时获得了笔试的机会(现场问了下基本情况,然后叫我写个函数从1加到10。(*^__^*) 嘻嘻……很简单吧)
int sum() { int s = 0; for (int i=1; i<=10; i++) { s += i; } return s; }
然后就立即去参加笔试,拿到笔试的卷子,我懵了!第一份全是电路的(我报的是软件开发啊,咋有电路),第二份都是嵌入式的,题目不记得了,稍微做了下就交掉了。记得最后一道题是“将某一块内存的内容拷贝到另一块内存”(我乱写的,不贴出来了),然后没有后话了。
第2家
现场面试,叫我写个冒泡排序,当时有点紧张,乱写的,幸好没写错,差点和选择排序搞在一起了。中午回寝室测试了一番的。我写的代码如下:
void bubble_sort(int s[], int n) { for (int i=0; i<n-1; i++) { for (int j=i+1; j<n; j++) { if (s[i]<s[j]) { s[i] = s[i]^s[j]; s[j] = s[i]^s[j]; s[i] = s[i]^s[j]; } } } }
然后下午收到短信进入二面了,谈了自己的个人情况(相当于自我介绍吧),还问了下优缺点什么的。回到寝室不久又接到通知,进行三面,叫我把以前做过的项目带给他看看。最后谈了薪资待遇什么的,我要求说的有点高(主要是自己有点不想去吧,人家生产LED的,我在那的发展空间不大)。还说带我去公司参观下,由于时间的冲突,我推脱了,他们也委婉的说会另安排时间,叫我等通知,最后就没后话了。
第3家
现场一句话把我拒绝了,“你英语四级没过啊,我司规定英语过四级的,你可以走了”。我就走了。
由于我的专业在学校属于冷门专业吧,来招我们专业的公司很少,有一大部分钢铁采矿采矿公司招计算机的(应该是招维护计算机的),所以没去(不能编程,去那干吗?)。不过今年还好,来了3家硬件相关的(跟我没关,我学的是数学类的,跟软件关系很大)。
2.网申
之前获得了百度的笔试机会,腾讯的笔试是霸王考的。最后都被刷了(没进入面试,可怜的孩子( ⊙ o ⊙ )啊!),没啥经验,收获就是:
大公司的笔试很注重算法的,所以笔试前一定要复习算法和数据结构。
第1家
笔试时间是两个小时,题目量好大,主要题型分布是:
选择题包括逻辑题,算法(基本概念和时间问题),数据结构,数据库(基本概念),C语言,计算机网络(基本概念);
填空题包括链表的插入,哈夫曼树,折半查找,数据库,完全二叉树(腾讯也考了,一样的数字),阶乘尾部0的个数的计算方法(谁有好方法就贴出来吧,以前在《编程之美》中见过),树的遍历;
问答题占了一半的分数,题目是:
a)线程和进程的概念及区别(《面试宝典》中有答案,记得不是很全,只是稍微答了几点),
b)给定环状链表的一个节点的指针,求它的最远节点(我用的是遍历链表的方法,不知道还有什么好方法没有?),
c)对数字的全排列问题(之前我写过的全排列的实现,但是忘记怎么做了,没做出来),
d)完成SQL操作,和在学校的期末考试的题目差不多(但是几乎忘记了,没动笔),
e)实现工厂模式和迭代器模式(工厂模式我会写,但是迭代器模式不知对不对,我直接写C++中迭代器的实现的方式的),
f)给出一条路径图,求最短路径(这题目见过多次,数据结构,数学模型,Matlab,运筹学,离散数学中都有这题目的影子,但是我忘记怎么做了,解法很多:最短路径,Dijkstra算法),
最后一道附加题,关系到大型游戏服务器的数据保护,异常处理,数据的保存时机,Mysql访问性能等等。
总体上看,这卷子我做的不咋地,但是晚上收到面试通知了,可是我人已经在火车上了,问了下是否可以调整面试地点,结果也没后话了。
第2家
没能参加上一家面试的主要原因是我来这家参加面试,是一个星期前安排好的面试。坐了一晚上火车,早上到了公司,网游公司,进去就是填一份简历和做一份卷子,先说下卷子大概的题目吧。
a)反转字符串函数的实现,我之前笔试中做过,
b)判断素数(道理很简单的,就是判断1到sqrt(N)中是否存在整除的数,学C语言的时候一般都写过的),
c)排序(没说用什么方法实现,我用的是选择法),
d)实现游戏中的背包,包括更新、删除、插入(我直接封装C++的list实现的),
e)一个链表中存在一个环,怎么判断?(我使用的方法是从头开始遍历每一个节点,判断下一个节点是否在头节点到该节点中的节点,不知道网友们是否有更好的方法)
f)连连看游戏的实现(我写了宽度优先搜索的思想),
做完卷子就进入了一面,一面有点紧张,没让我自介绍(我都准备好了的( ⊙ o ⊙ )啊!),考官让我说说我平时使用了些什么编程工具,然后问了C++中的析构函数为什么一般设为虚函数(我答的是在Base* b= new Driver(); delete b;时能够正确的调用到派生类的析构函数),还问了TCP和UDP的区别(我不仅仅答了面向有链接和无连接,还拿登陆QQ时验证是用的TCP和聊天时发送消息使用的是UDP,一个是可靠的数据传输一个不可靠的)。
一面很成功,但是面试的职位不是C++的,面试Erlang程序员,我没学过这玩意,考官给我3天时间学习(发了本电子书给我),最后我咬牙学Erlang。今天进行的二面失败了,同一个考官,给我份Erlang的卷子,我书没看完,我说只看到TCP和UDP那一章,他就挑了些题目给我做啊,做的很烂很烂,没学好Erlang啊!最后就结束了。不过话说回来,还是蛮感谢这位考官的,让我见识了Erlang的强大。
第3家
这家公司应该是比较大的,但是是去一个项目组面试,进去看到一堆程序猿在编程(第一感觉以为是网吧!),同样进去就是填写简历,后来走进一个面试官,给了我两道智力题,分享一下吧。
a)两根不均匀的绳子,烧完一个需要1小时,怎么实现烧完两根绳子恰好45分钟(我答的是同时在1/4处点燃,网友们有好答案不?)。
b)请工人为你工作7天,你又一根金条,已经平均分成相连的7段,每天下班你必须给工人一段金条,你只有两次折断金条的机会,你怎么给你的工人发工资(我当时想了很久没想出来,今天我同学告诉了我答案:第一天折断1节给工人;第二天折断2节给工人,让工人还给你昨天给的那1节;第3天给工人剩下的3节,工人换你昨天给的2节;第4天一次下去。我咋没想到这桩买卖呢???智力有问题( ⊙ o ⊙ )啊!)。
最后也说了薪资的问题,说我开价开高了,我说我没毕业不清楚行情。然后说公司是使用Erlang语言开发服务器的。说有培训的。然后叫我回去等通知,就没有后话了。
我总结了个经验,网页游戏招后台服务器开发的明写着招C++的其实是让你使用Erlang开发的,因为Erlang在这方面的优势现在强于C++(写并行程序比C++简单多了,快速,高效)。现在市面上会Erlang的很少。
第4家
在我租的房子附近(我租了一个月的房子,一定要找到工作啊!),之前的都需要做公交,这个公司不用了,就在马路对面。下雨天,没伞,工作地点像个普通的工厂(楼下就是工厂),进去之后看到里面的环境还行(也有点像网吧,比上一家好一点,每个人的桌子要大一些),然后在休息室坐一下,没叫我填基本信息,给了一张试卷:
很简单的C语言的题目,最后一个大题是冒泡排序;前面几道是问某某情况下使用函数库的某某函数(有一个我不知道使用函数的名称,判断一个字符串是否是另一个字符串的字串strstr(),嘿嘿!刚百度了好久);32位机右移33位的问题,我做错了,网上是说移动的位数是33%32。feof()和fgetc()函数的作用。
然后开始了面试,第一个自我介绍,然后介绍下我做过的东西。还问我学习一个新的开发平台需要多长时间?修改代码的能力怎么样(比如说存在C++版本改成Java版本)?然后说一个星期内给应聘通知(就一面的?),结束后我就想了想,这不就是招码农吗?笔试面试要求的东西很低(只要你会写代码),不然怎么会考一些可以查函数文档的知识呢?(测试你写代码的熟练程度)问我修改代码的能力不就是说微创新么?【网友!你怎么看?】
给我点更新博客的动力吧!!!因为找工作的原因好像许久没更新了,没带笔记本在身边(笔记本上有几篇草稿没完成,回校后写完给大家分享下),更新博客不方便,这些事这几天记在小本子上的,今天就做个这样的小结:笔试考的是基础(数据结构和算法很重要),面试问的会很细(这个要看你懂哪方面就会问哪方面的,不要在简历上写什么都精通,要不然面试的时候随便问一个详细点的东西你会懵了的)。明天下午有个笔试(又是网游服务端开发的,maybe use Erlang too!)
总结时间:2012.10.30