首先明确一下自己的方向,一般程序员的话,在简历中不要写跨行业的,比如你说会ios,javaee,ps等等(除非你牛逼闪闪,否则不要乱写)。
现在如果是java程序员的话,刚工作一两年的,那面试是比较悲剧的。通过offer100的分析,现在有好多初级程序员,而且面试发出邀请的也不多,一般都是招高级java,但是高级是三年以上的,什么分布式架构,分布式缓存,分布式存储,一致性hash,性能调优等等,没有接触过一点的都不好意思说自己是高级。现在java领域水涨船高,企业趋于质量不要求数量,那现在就说说初级,中级和高级分别怎么面。
对于初级猿,我可以简单定位为能写出接口,做普通页面,实现一些系统级别的增删改查。那面试这种人,我面试一般都不想问项目,因为项目中有难一点的都不会给你做,我要求这种人要基础扎实,先过面试题,接着问一些概念性的东西,比如重写,重载,匿名内部类,反射,io,框架使用情况,数据库等等,好点的问问多线程,同步异步,一些集合源码,版本控制工具等等。这些东西能知道你是否能快速适应新环境马上上手项目做事。总之,对于小企业来说,初级猿要求就是以最快的速度开始干事,对于大企业,初级猿的潜力(熟悉算法和计算机原理)和代码理解能力至关重要。
对于中级猿,大概有三年左右的年限,你应该是经历过三四个项目,如果在同一个公司的话一般都是企业骨干开发,那么面的话,会从你项目开始问,一般都是不问业务,只问技术,比如你视频解析用什么技术,你做的项目中有技术难点的在哪,项目中的表设计,用过设计模式么,会用哪些技术,你们目前项目的痛点在哪,想过解决办法没有。面中级猿,不要求他会多少技术,而是要求他在项目中遇见困难了怎么解决,因为一般中级都是参与架构设计,开发主导一个小模块的,那么就要求他学会解决问题,把各种技术灵活运用,比如遇见oom会用java自带工具查,碰见sql优化能用explain来分析问题。好的中级还会问问架构,并发,各种框架底层,各种中间件,各种设计模式,最好有改框架源代码能力。企业对中级猿的要求就是不仅把功能给我实现,还要遇见普通问题能解决。
对于高级猿,那么你应该能独当一面了,该会的都会了。那就要求做事要抓大放小,轻重缓急要清楚。面高级猿一般都是问你负责哪些模块,出现过问题没,怎么解决的,技术难点在哪。问完项目,就聊算法,设计模式,架构设计,并发,jvm,操作系统原理,网络,分布式中间件,分布式原理,数据库存储引擎原理等等,是否关注技术前沿。招高级猿一般企业都是要求他能主导项目推进,解决项目中的问题,优化开发进度。高级猿不仅要有技术宽度,也要有技术深度,这就需要不断学习,看清自己的技术方向去深化。
以上就是我面试程序员的一些观点,我没讲怎么去面,但是我从面试官角度去判断你是否合格,因为每家公司都是有不同的技术要求,简历不同,面试问的问题就不一样。
谢谢各位耐心的看完,如果可以的话,留个赞呗。\(≧▽≦)/同时欢迎java小伙伴关注我。