又到了一年一度的实习求职季了,每个高校又有一波新鲜的韭菜等待各个大厂去收割了,作为过来人,我想给大家伙讲讲如何成长为一棵人见人爱的韭菜^_^
我目前是做Android开发,就以客户端开发岗面试为例好了,其实普通的研发岗面试都大同小异,都有很多共通的地方。
语言特点(以JAVA为例)
说到java,就不得不说java的虚拟机(JVM)了。大家伙不要着急头大,JVM虽然是很“高深”的内容,但面试官也不是要你有多么深刻的见解,毕竟在学校里大部分人是很难做到这么底层的。面试官之所以问,是因为他们在公司的项目中可能会用到,或者希望你能对此有所了解,毕竟你写的程序是跑在虚拟机上,就好比作为司机肯定要对你的爱车有所了解一样。最常问到的无非是JVM结构、GC机制和常见算法,大家可以去做做了解,理解不了那就先硬记住呗,面试的时候能说来也是好的嘛。
数据结构与算法
这个不用多说了吧,基础中的基础了。很多人可能会去leetcode刷题,这在美帝那边是很有效,很多童鞋就是三个月刷了四遍leetcode然后进了google,但在国内这是行不通的,算法会问,但只是一方面,大家酌情准备即可,要是能多刷刷leetcode当然是极好的。(ps:java方向的最喜欢问hashmap实现以及与hashtable的异同了^_^)
计算机网络基础
这个科班出身都学过的课程也是面试中的常客了,不管是做服务端还是做前端客户端都难免与网络请求打交道,所以这也是工作中经常用到的知识。记忆中最常问的问题是TCP与UDP的区别、TCP三次握手四次挥手流程、TCP的流量控制和拥塞控制等,大家可以去网上找找资料看看。
Android基础
既然是投递Android开发方向,必然要问问Android方面的东西。这里面东西很杂,大部分比较简单,做过一两个项目就大部分都接触过了。我来给大家说说二面或终面时可能会问到的问题。
1.MVP结构
其实这个很多童鞋应该都会用了,平时自己做做小项目可能不会想到用MVP模式来设计,可一旦项目大起来,这种设计架构就体现出巨大的优势了,可以让整个工程的结构十分清晰,还没用过的童鞋去网上找几个例子看看就知道了。
2.常见的框架
现在开发不需要从轮子造起,有好多已经造好的轮子可以直接拿来使用,所以了解常用的框架是有必要的,面试官会借此考察你对业界技术发展的关注。Android中常用的框架有EventBus、Fastjson、ButterKnife等,国内几个大厂也有各自的框架,大家可以去尝试用用一两个框架,如果还能对其实现原理有所了解的话,面试的时候会是一个很大的加分项的。
3.设计模式
面试不问点设计模式总觉得面试官水平不够(哈哈,开玩笑,但是面试官最后总会问问设计模式),所以去了解了解常见的设计模式。比如经常会让你手写个单例模式,这个背也背下来,是最基础也是最常用的设计模式了。另外像Android中常见的Adapter设计模式、观察者模式等,可以看看介绍性的文章做点了解。
客户端面试差不多就这些内容了,数据库一般问的不多,有时间有兴趣也可以看看,另外一定要有几个项目,好好准备项目,提前想想对于这些项目可能会问到哪些东西,做好准备。
最后祝大家伙都能找到满意的实习。