28号晚上赶回学校。然后和诗诗坤肥廖凯旋去南山通宵dota了一晚上(屠夫阿川居然坐在哥背后),第二天早上8点才回宿舍睡觉觉。
29号11点的时候,哥还在睡觉,就接到面试通知的电话。
面试时间3月1号11点。
起床后,上网查了一下公司的情况和招聘职位的要求。
这是一家做体育类辅助应用程序的公司。我投简历时选的是IOS开发岗位。
说白了就是在ipad和iphone上写程序的活。
招聘要求:教育和学历要求
1.本科生。
2.扎实的应用程序开发基本功。
3.熟悉Java, C++ 或 Objective C。
4.熟悉SQL Lite 或 SQL
5.熟悉脚本语言(Python, Perl,Java script)
6.看懂英文指示及电邮。
面试者需进行40分钟的测试,测试内容包括基本编程理论和数据库概念。
自从上了大三,除了作业,几乎就没敲过代码了。很多编程细节都已经忘记了。所以晚上就跑去图书馆,在南馆三楼的理工科样本室,啃完了一本程序员面试的书。书名叫《C/C++程序员面试宝典》,梁镇宇等编著,清华大学出版社。不错的一本书,将面试相关的编程细节都涉及到了,看完后,对以前学过的编程知识做了一次初步的梳理。看完这本书,发现已经到图书馆闭馆的时间了。数据库的基本概念和SQL语言还没复习。只好跑去四楼借了一本《SQL必知必会》,(英) Ben Forta著;钟鸣,刘晓霞等译,人民邮电出版社。这是一本很好的SQL入门书。
本来想着晚上回去宿舍看完SQL的,后来出了图书馆,突然兴致一来,想跑去桂庙吃个宵夜,诗诗坤经常带我去吃的那家肠粉不错。结果没有开。只好跑去买手抓饼。折腾了好长一段时间,发现回到宿舍已经11点多了。一回到宿舍,懒惰的特性就发挥作用了,想着第二天早点起来再看。然后又发现简历还没弄,在大街网上面做的那个简历不能直接打印出来。最后干脆就洗洗睡了。
然后就到了今天早上,吃完早餐9点。跑去实验室整了一下简历,觉得太麻烦,干脆就用申请香港研究生用的简历就好了。看了一下时间,已经9点半了。面试11点,地点在车公庙附近,不熟悉路,10点出发比较合适。于是就也不翻译了,直接去将英文简历打印出来就去桃园坐地铁了。顺手把《SQL必知必会》也带上,说不定在地铁上可以看。地铁上人太多,最后还是没能复习SQL。
找到面试的地方。10点40分。时间刚刚好。
SQL还没来得及复习,第一次面试,不知道考官会问到什么样的程序,心里有点没底。
在门口整理了一下着装,便进去了。
进去之后,发现已经有一个人在和面试官在里面的房间面谈,大厅还有一个人在做笔试题。
面试分为两个阶段,第一阶段是笔试,第二阶段是和技术负责人面谈。
负责招聘的姐姐很热情地递上一杯水,大厅里有几个女工作人员在聊天。
整体来说这公司的氛围还不错。比较自由。比较符合我的个性。
过了一小会,招聘姐姐就给我拿来一份笔试题。
初略扫了一下试卷,整份试卷由四道题组成。都是编程题。不限定语言,可以使用伪代码。
第一题是给出一个字符串,要求按每个单词为单位,将整个字符串转置过来。
第二题是用实现一个队列的类,用数组实现。
第三题是给出一个数组,里面每个数都在0到9之间,要求前n个最大的数的和。
第四题是SQL的题目,题目不好描述就不描述了,就是一个简单的自然连接的查询(之前的担心显得有点没必要了)。
题目不难,比较顺利地完成了。我是用c语言完成的。
然后到了面谈环节。两位面试官。两位都很年轻。第一位看起来就是个典型的香港人,普通话讲得不流利,偶尔夹几句英文。我让他和我说粤语,后来了解到他是K君(具体姓名不便透露),原来是boss来的(小小年纪就出来创业,怪不得哥觉得他和哥有点像)。第二位应该是公司IOS方面的技术负责人,叫B君。比较典型的程序员,因为年轻,看起来还比较腼腆。
面谈的气氛比较随和,基本的东西简历也写的比较清楚了,看起来两位面试官还挺满意。聊着聊着,发现B君也是搞ACM的,突然感觉沟通无障碍了。那种感觉非常的良好。
B君后来就卷子的第三题讲了一下他的思路。第三题是给出一个数组,里面每个数都在0到9之间,要求前n个最大的数的和。我的做法是建立一个容量为10的新数组,数组的索引下标为0到9,用来统计这每个数在原数组中出现了多少次。然后就可以计算最大值了。B君的方法是直接用选择排序的思路,每次从数组中选出最大的数,然后去掉,再继续选择,一直选择n次。虽然我并不觉得B君的方法比我的好,但是在n比较小,B君的算法还是非常简单实用的,如果原数组元素的范围比较大的话,假设是0到m(不是0到9),我的方法还多使用了O(M)的空间。
我提到自己搞过ACM的时候,B君问我学过哪些最短路径的算法。我说dijkstra,bellman-ford,floyd都学过,还有一个XXXX(其实是SPFA,我当时傻逼了,忘了名称。全称是Shortest Path Faster Algorithm,是西南交通大学段凡丁于1994年发表的)。然后B君就问了我一些关于bellman-ford的原理性的东西。问题难度处在比较浅层,比如bellman-ford是遍历点来进行松弛操作呢还是遍历边来进行松弛操作(答案是遍历边来进行松弛操作)。
然后B君又问我,平时做项目的时候用的是什么数据库。我说实验课上老师让我们用的是SQL Server,自己做课程设计的时候用的是MySQL。
再接下来B君就对A君说他没问题了。然后A君就问我职业规划。本来我的打算是继续读书的,但是现在是找实习,不方便这么说。于是我就和A君说,我现在还处在决定期间,面临两个选择,一个是继续读书,一个是出来工作。因为自己没有工作过,所以才想出来找个实习,然后才能决定。然后A君问我5年后希望是个什么样子。经常有人问过我这个问题,我从来的答案都说是创业,这次也脱口而出(现在回来想想,这样说可能有点傻逼了,没有boss希望自己的员工还没开始工作就想着逃离吧)。
然后A君就问我期望的salary是多少。这一问,哥就卡主了。哥从来没有细致考虑过这个问题。哥隐隐记得招聘公告上说的薪水区间上写的是2k5-3k。然后就说了3k。然后他问假设我最后选择了工作而不是读书,全职工作期望的薪水是多少,我回答了8k,也没有想太多,不知道合不合适。
最后A君问我对公司有什么问题。貌似我也没什么问题。就问了公司里面大概有多少的技术人员,还有公司名字的由来(公司名字写的是投资咨询公司,但是却是做苹果产品的软件和电子商城的,这让我很好奇)。
再然后,我的第一次面试就这样华丽丽地结束了。A君和我说3天后会有通知。
面试的过程其实就是一个很好的学习经历。
多面试一次,多一份新鲜的体验。
我一直谨记一句话:从一开始,我在找的就不是一份工作,而是一份经历。