互联网面试想必是每个学计算机的学生必不可少的环节,无论你的项目经验再多,你不准备基础知识,也还是无济于事。首先来说说关于工作的事情。
三年前,那时候我还是刚刚快要大四毕业的小鲜肉,那时候有个超大的招聘会在我们学校举行,然后我就兴致勃勃的去参加了,就当时来说,自我感觉准备还很充足,我打印了七八份简历,每份都是彩色的哈哈哈。当时去问了几家互联网公司,包括华为,浪潮。涉及很多方向,比如说:硬件fpga,java,算法,机器人,运维等等。但是大部分给的工资都是3500-5000。当时给我的感觉还不错。因为别的专业给的工资都是3000左右,和我们专业的相差还是不小的。正好我有个亲戚在上海工作了好几年了,也是互联网公司,他们公司涉及范围很广,我就顺便问了一下,我找的这几个工作怎么样。结果是:他说都不大行啊,工资给的太低了。他的建议还是让我坚持考研究生。他说到时候工资翻倍,而且见识不一样了。
听了亲戚的建议,我还是坚持考上了研究生,刚开始考上没有什么感觉,和本科毕业差不多,可是到了现在才感觉,路子选对了,研究生和本科生差距是如此的大,起点高的太多了,现在随便一个互联网公司,给的工资都是20万以上,在以前本科的时候这是无法想象的。接下来说说我是怎么准备面试的。
我从大学开始就不断的接触各种项目,项目经验十分丰富,一开始我觉得自己肯定没有问题,因为经验很丰富,所以我一点也没有准备基础知识,我最开始的应聘的是美团的暑假实习生。正好学校离美团不远,我就去了现场面试,首先面试官给了我一张试卷,都是数据结构,算法,linux基础,java基础。做了一小时吧,估计得有三分之一不会的,都怪自己一开始没有准备基础知识,很多数据结构的题都答不上来,这严重影响了后来的面试。一小时后面试官过来了,问我答的怎么样,我说基础没有准备好,他看了看试卷,然后比着试卷提问,估计问了大概一个小时吧,期间关于java基础的我回答的还可以,数据结构估计也就给个四分吧,这块没有复习根本不行的。然后是linux基础,问了很多,比如说top命令各个参数的含义,这些问题一下子给我问蒙了,因为平时自己没有用到的很多基础知识都问了,好多没有答上来,很是尴尬,因为自我感觉平时linux还行,一般用到的技术我都有试验过,自己上手能力很强,都是网上百度谷歌,很多不会的自己都是百度了,很多没有记住,所以面试官问的问题好多没有答上来,加上自己以前感觉自己的linux还不错,所以很受打击,回去后,决定恶补linux,回去后从网上搜了很多复习资料,鸟哥,刘遄老师等等,在比较了多方面之后,决定选择刘遄老师的《Linux就该这么学》,我从头开始一点一点的跟着刘遄老师的课程学习,有的很简单,但是这次我也没有马虎,很简答的也是跟着过一遍,这里我强调一下,虽然很多知识,自己比着网上的教程能很容易的实现,但是有很多细节是我们忽略的,比如说lnmp网上的教程一大堆,一顿复制粘贴就能实现,但是你遇上刁钻的面试官,我们还是会答不上来的,所以我建议大家比着刘遄老师的课程一点一点的学习,你会发现这个课程很详细,很具体,老师讲的真的很不错。
大概一个多月之后,课程全部上完了,这个时候回想起当时面试的题目,你会发现题目很简单。都怪自己当初准备不周。Linux准备妥当之后,还远远不够,还要准备很多东西,有java基础,数据结构,算法,java版本,高并发变成,web知识,计算机网络等等,这些都是需要准备的。这里简单的说一下,基础部分一定要准备jvm虚拟机,hashmap原理,各种集合的比较,线程安全与不安全都有哪些,如何解决高并发冲突,锁的机制,计算机网络里边的tcp和udp,网络结构有哪些,为什么是三次握手,四次挥手?spring框架的原理,为什么用它呢?八大排序算法的优缺点及其原理?还有一个必问问题就是介绍你的项目,要详细知道如何实现的。
总之,互联网面试需要准备很多知识点,一点也不可以马虎,否则很多细节都会被我们忽略,最后希望大家都拿到自己满意的offer。