HR面
Q:上次面完之后你有什么感想?面完之后有没有写blog什么的。 A:感觉自己很多方面的知识很薄弱,有待提高,blog倒是还没整理好,只是网上查了一下上次那些不知道的。 Q:那现在你对那些问题有了什么新的认识? A:然后我就说了一下我对于那些知识的一个总结。 Q:有没有相关的项目经验呢? A:帮一个公司做过一个类似QQ游戏大厅的客户端。实现登录以及各个游戏的在线人数显示,主要是从安卓端到iOS端的移植。 Q:那你对安卓应该也有所了解吧,说说他们之间的区别? A:。。。谈了下自己的认识。 Q:除了这些,你自己平时有没有做过小的东西来玩一玩? A:我掏出iTouch,然后拿出几个月前写的计算器给他看,然后介绍了下这个计算器实现的功能。 Q:(把玩了一下)嗯,看起来还不错,主要精力应该是花在了解析字符串上吧,UI有点。。。 A:确实,几乎都是字符串的解析,然后通过用数组来模拟栈进而实现括号的匹配。UI设计当时确实没怎么在意。(关于计算器,源代码戳这里) Q:这个好像是单机的,有没有做过网络方面的? A:有过,去年的时候加校内的iOS团队,然后他们给我的任务是做一个RSS音乐播放器,主要实现XML的解析,然后下载,还有就是播放器的实现。 说这里有两个题目,你看下。先做第一题。一看全是逻辑题,突然觉得自己智商不够用。 1.你到了一个十字路口,不知道该往哪边走。路口有两个人,一人只说真话,一人只说假话,但不知道谁说真话,谁说假话。问:你如何才能只问其中一个人问题,就能知道该走哪条路。 2.你到了一个是地方,不知道该往哪边走。一条路通往真话村,一条通往假话村,真话村的人只讲真话,假话村的人只讲假话。这个时候你发现路口有一个人,很显然他不是真话村就是假话村的村民,现在你如何只问他一个问题,就能知道那条路通往假话村。看到第一题我想,这种题目应该是问其中一个人自带矛盾的问题,然后通过回答的内容来得出答案。 虽然点子是对的,但是就是不知道怎么提问。这时候面试官在旁边说,你可以把你的想法说出来,然后我就说了一些。。但是又被自己否定了。然后他就开始提示我,一步步把我往答案的方向带,最后终于在他的点拨下得出了答案。第二题也是一样的情况,只不过一开始他说,这个题目我不会再给你提示了。 然后。。我又开始想,好几分钟后,他又开始提示了,这样,又得出了答案。最后他拿出一个算法题出来让我写,大致就是数电里面的摩根定理,比如NOT AND A,B转化为NOT A OR NOT B这样子。。 我一开始说可以用栈来实现,但是仔细想想又不好确定,然后他又提示了,你看看二叉树会不会比栈方便些。大致思路如下 AND(not) OR / \ ---> / \ A B NOT NOT / \ A B 就是把前面有NOT的AND,将NOT作为它的tag,然后操作数分别作为其左右孩子,这样进一步转化,将AND(not)转换成OR,not下移,操作数随之移动。到最后,not均被移到底层,即可实现摩根定律。然后就问我为什么要从事iOS开发?这之后就问我实习时间,然后问我还有没有什么疑问,说结果到时候会通知我。之后就是”Say GoodBye”了。
一些感受这次面试之后总结了一下,发现自己的基础知识掌握的还不是很牢固,项目经验匮乏。尤其是逻辑推理题,自己的思路还不是很清晰,有待于训练。然后觉得很多面试,笔试有些片面,用这种算法题来考。如果有大量时间的话,那些刷题的人对于这些问题岂不是分分钟就解决了,工作后上手项目如果不能灵活运用是不是和当初的选拔目的相违背了。然后仔细想想,这也是没办法的办法,只能通过这种方式来筛选。这里仅仅是个人观点,如果让你觉得不爽请忽略。这两次面试过程中自己都没有紧张感产生,觉得不可思议,可能都是自己比较熟悉的东西,然后现场的气氛也很好的缘故吧,希望这种状态能延续下去。 最后,其实面试官人很好,很nice,在我回答不上的时候一直提示我。更重要的一点,此人有点像一初中同学,一见面就有种亲切感。