最近参加了几场面试,身心很是疲惫呀。自己没有什么擅长的技术真是软肋,面试国内公司的时候这方面吃了不少亏,如果你没有擅长的技术不知是无法表现出你对写程序的热情多一些,还是无法显示你能力更多一些。所以如果在学校的时候,尽早的找到自己痴迷的一个方向,多多钻研,比着东打一下,西打一下效果要好多了。 如果没有痴迷的方向,就刷算法题吧,不断的提高自己解决砍题的能力,至少这些在外企的面试过程中也会受益良多,总之,无聊的时间不要被浪费掉。就像之前看到的那句话,没有目标的日子中,努力看书,努力赚钱;这样以后回想起来才能不负光阴。
扯的有一些多,公司的不同,面试的风格不同,同一个公司,不同的面试官又有不同的风格~。g,fb,hulu这种简单聊了项目之后就砍题的公司,确实简单粗暴,但是思考不出算法题刷人的时候也很是简单粗暴。如果想去这种公司还是要多多刷题,不能仅限于leetcode的题目,google在线笔试题的难度不是通过leetcode锻炼出来的。
搜狐面试知识总结:
缓存系统(memchache,redis)以及缓存系统使用中的一些问题,这个确实没有用过,只能硬着头皮临时想一些自己能想到的解决方案;
Mysql的存储引擎区别;
vim的一些高级操作;
linux系统查看系统状态和网络状态的命令;
设计模式的问题;
聊到了简历中的项目,总的来说简历中的项目技术含量比较低,根本没有吸引到面试官;
HTTP协议的内容,B/S结构的面试者都会问到这个问题;
还会有你擅长什么技术这样的问题?回想一下如果没有需要,自己确实没有为了兴趣去钻研一个东西。本科毕设过程中查看Nutch的代码其实应该算一个;时间都浪费在了看电影,玩游戏的娱乐当中了~
正则表达式的问题,正则表达式自己没有系统的学习过,一般是利用到之后会百度一下特殊的用法,临时学习;
搜狐的面试没有涉及到C++语言基础知识,数据结构和算法,准备的一些知识没有用到,面试完觉得自己的很多不足,把不会的问题学习一下;简历的问题确实没办法一时半会补充,不过觉得自己入门确实晚了些,如果能够早些时候达到现在的状态,就知道需要去了解一些什么东西了。总之,搜狐的面试风格跟之前遇到的差别挺大;
阿里巴巴面试知识总结:
平时有没有兴趣去阅读过开源软件的代码?确实没有把这个当娱乐来看,也没有刚需的情况下就没有阅读过,不过既然自己项目没有特别突出的,确实应该可以详细了解一个开源软件的知识;
设计模式自认为一般只会让实现单例模式,这次就让实现一个观察者模式的代码,虽然简单的写了写,应该不是很好,观察者模式只是了解思想,很多设计模式的细节应该需要复习一下,平时软件设计的时候用的比较少,太早的记忆不能保存,不能一味的以为只会考查简单的设计模式,所有设计模式都应该熟悉其场景;
关于算法的问题实现一个并查集,这个确实只了解思想,森林的结构,但是实现代码当时确实有些懵,就没有实现,也就跳过了,就算是高级的数据结构也尽量了解一些代码和伪代码的实现,曾经因为字典树吃过亏,这次又因为并查集吃过亏。真不希望以后会被问到红黑树-_-这种复杂的数据结构;
Mysql查看表的定义,当时确实懵了,没想到是describe这个命令;
TCP协议关闭时候的状态转换图,这个记忆不是很清楚。相应可能如果真正做到更复杂的网络程序编写的时候这些状态应该也是很有用的,对于写出健壮的程序;
其他记忆不是很深刻了,之前阿里面试的时候跟这次的风格差别也很大,算法数据结构也没有涉及到并查集这种数据结构,看来广度还是很广的,对开源社区做过贡献应该会有很高的加分~,最终,面试结果也很差。挂掉or进入备胎列表~。挺惨淡的;
完美世界笔试面试知识总结:
印象深刻的就是最后一个算法题了,一个凸多边形和一个点,如何判断点是不是在凸多边形中?临时想到的凸多边形分割成三角形,判断是否在三角形中。回来跟室友了解到这是一个很经典的图形学的问题,经典算法,而且简单,所求点与顶点连线与顶点与顺时针下一个顶点的向量相乘,依次类推下去如果均为+或者-则在凸多边形内部;
还有一个没有答出来的地方问题是优化C++项目编译时间的方法?
面试官比较温和,问的问题都比较基础,其中收到一些建议就是可以了解一下C++模板方面的知识,系统了解一番。另外尽早的确定自己所感兴趣的方向,“不然这样很危险的”,这大概也是面试官确实想要告诉我的~
多多刷题,多多看书~