近很多同学咨询关于校招准备的问题,沟通下来发现发现了很多共性的问题,因此,今天总结一下这些问题,为希望进入互联网研发岗位的同学提供一些参考建议。
1.专业有决定性影响吗?
答案是否定的。
近几年经常负责面试社招和校招,校招也面试过很多非计算机专业的同学。实际上,能拿到offer的同学跟专业本身有一定关系(有什么关系后面会说),但没有决定性关系。尤其是校招和实习面试,不会对方向对口有特别严格的要求,这一点和社招是有巨大区别的。
校招面试更偏向于看重个人的综合能力。
所谓综合能力,一般由几个方面构成。
1)基础知识的扎实掌握
2)项目经验
3)自驱力
2.基础知识考察
基础知识的积累是一个长期的过程,但是面试跟考试一样,还是有重点和必考点的。
这里介绍一些常见的必考点(建议读者根据必考点自己梳理知识点,网上相关的面经太多了,就不展开罗列了)
1)编程语言
以Java为例
集合的使用与原理(set、list、map等)
多线程与并发编程(java内存模型、各种锁)
JVM相关(各种GC算法、类加载机制)
Java8特性
2)数据结构与算法
必考点。建议刷leetcode,做题型总结。
数组、链表、贪心、动态规划、dfs等等。
3)数据库知识
以MySQL数据库为例
存储结构(B+树)
索引(聚簇索引、非聚簇索引、覆盖索引等等)
事务(隔离级别、脏读幻读、MVCC、各种锁)
4)操作系统与网络相关
进程与线程
TCP/IP
拥塞控制
5)常见框架(Spring\SpringMVC\Springboot\Mybatis等)的使用、核心原理与实现
IOC与AOP的原理
Bean的生命周期
Mybatis使用的设计模式
3.项目经验考察
经常有同学问项目经历重不重要?
答案是肯定的,非常重要!
项目经验是面试中关键的地方。如果说基础知识作为门槛石,那么项目经验考察的结果往往能决定你是否能成功在其他面试者中脱颖而出。
项目经验常见问题如下:
项目的整体感受或者一个架构图
你在项目中负责什么模块
使用了哪些技术
有没有遇到什么困难,如何解决的
面试官需要从你的项目中,深入去问你做过的东西,运用的知识,考察你对相关组件的掌握程度、总结能力、个人思考能力、解决问题的能力等多个方面。可以这么说,有一个好的项目,能好好总结,并在面试中体现思考力的,基本上offer就稳了。
而非科班的同学容易吃亏的地方也在这里,没有一个相关的项目经历,或者只能简单搭建一个项目,并不能很好深入去理解。
那我的建议很简单,实习!尽量能找到一份相关的实习经验,并对自己的负责内容有深入的了解,能很好地总结并回答上述的问题,毕竟生产环境是增长经验快的地方。
那如果没有实习呢?或者说实习面试的时候问这项目经验呢?
所谓万丈高楼平地起,做人只能靠自己~
别无他法,只能自己尝试搭建一个方向相关的项目练手。
不是简单搭建一下就完了,而是需要对相关组件做深入学习。
并能根据不同的问题和场景,进行不断迭代和优化,把这个过程能总结下来,实际上也是一个非常出彩的项目。
这里,我以一个WEB项目做例子。
如何深入学习?
1)你用了spring,知道@autowire是怎么把对象注入的吗?
2)在用设计数据库表的时候,为什么推荐使用自增id呢?
3)mybatis跟JDBC有什么关系?
如何对自己的项目进行迭代和优化?
1)你的代码有没有用什么设计模式?
2)鉴权是怎么做的?有哪几种方式?有什么优缺点?
3)数据库数据量大了怎么办?访问请求多了怎么办?
类似这样的问题,如果都能回答的很好,相信我,你就能脱颖而出了!
4.自驱力
除了基础知识和项目经验,面试官们往往也喜欢问这样的问题:
1)近看什么书?
2)关注什么新技术?
3)有没有什么博客或者个人项目?
这些问题希望考察什么?就是一个面试者的自驱力。
一个对技术保持热情,时刻关注技术发展,善于自我学习和自我总结的校招生,永远是校招面试场上受欢迎的人。
事实上,这个能力对非科班的同学更加重要。
这也是我说的,面试跟专业有一定关系的原因之一,由于不是计算机专业毕业,所以很多计算机专业课程需要去自学,只有拥有强大的自驱能力,才能比其他计算机专业的同学做得更好,在面试中脱颖而出。
5.其他需要重点注意的问题
以下问题倒是真的跟专业有一定的相关性,需要非计算机专业的同学格外注意。
那就是充分的信息收集。
非科班同学可能相对缺少互联网研发学长的资源,因此,可能会缺乏获取岗位信息、面试信息等重要信息的渠道,因此,一定要发挥主观能动性,积极去寻找相关资源获取帮助。
避免由于信息不对称而吃亏。
切记切记!!
希望对大家能有所帮助,顺利拿下offer,加油!
原创:阿丸笔记(微信公众号:aone_note),欢迎 分享,转载请保留出处。
扫描下方二维码可以关注我哦~