成功面试前的准备



我觉得如果你在一个稳定的坑里,通过社招跳槽的步骤应该是



1、自我定位 首先第一个自我定位应该是当前环境下的自我反思。一般思考换工作的同学,往往也是对当前环境有诸多不满。那么应该是思考一下问题在哪里,如果是自己的问题能否改善做到更好。你加入这个公司的这段时间,有没有充分学习到公司的技术,如果没有,也不急于离开。每一段职业经历,都要有所收获,这样才能往更高的位置走,如果在每个环境都是混混日子,基本跳了几次就到瓶颈了。 然后想想下一份工作想做什么,坚持技术还是转做技术管理,既然决定换一次工作,那就做点自己想做的,不是么。一般来说,如果技术转管理,需要一些技术的积累,可能意味着你在技术上做到一定级别转起来会容易一些,因为程序员都有些“骄傲不驯”,如果你技术很菜,就很难管理团队,也不能很好的做技术成本评估。当然也可以换行做别的,毕竟人生那么长,如果自己不喜欢做开发,就别和bug较劲了。


2、长期准备——干货在此 如果你在自我定位中,已经决定不干技术,那请跳过后面的所有部分,如果继续做技术,那么这部分将是自我提升和准备面试的干货。不过这部分内容可能更适合Java相关的互联网从业者,这也是体量最大的互联网技术从业者。 首先是编程语言本身和语言生态相关的,这里Java为例,虚拟机原理,你会发现可能被问的最多的就是垃圾回收相关议题,可以搞一本 《深入理解java虚拟机》认真研读一下;多线程场景的知识,线程池,锁的原理等,可以研读 《Java并发编程的艺术》,Java8相关议题,Spring包括IOC,AOP也各种问,推荐《Spring技术内幕》,当然NIO,Netty这些里面有经常出镜。 互联网系技术通常还是用各种中间件,可以阅读官方文档,也可以找到一些《XX权威指南》之类的书,做阅读。如果公司场景有使用,那最好,如果没有,这些东西自己搭建都不费事。下面举例说一些吧,例如常用的解决高并发场景的读问题的缓存中间件Redis,Memcache等;用于解耦的消息队列中间件,Rabbit MQ, Kafka等;用于分布式环境下一致性数据的Zookeeper;Mysql分表分库的Cobar等;通用搜索引擎Elastic Search。还有好多领域,每个领域都有好多产品。 存储本身也是一个很深的话题,Mysql为代表的关系型数据库,Nosql代表的MongoDB,Cassandra。他们的使用场景,优缺点。 架构方面,其实感觉最主流的架构还是SOA,推荐读一读《分布式服务框架原理与实践》,我面试前并没有看到这本书,很多议题包括熔断,降级之类都没有想过,导致前面几次面试提到相关议题都有些懵懵懂懂。 当然学无止境,如果想都了解可能要花几年时间。有针对性的了解很重要,如果你眼下就要找工作,那么就挑着公司用的相关技术深挖,这样面试比较好说。


3、职位投递 先说说职位,关于公司对员工的定位,参考我公司的评级标准,对于P5-7这个级别要求如下: P5(高级开发)-能够在基本没有指导的情况下独立开发小模块 P6(资深开发)—能够独立设计和开发一个核心模块 P7(架构师,专家)— 一个产品工程的全局设计 更高级别的没有在列出之内,因为核心实施就在这3个级别,这是阿里系公司P系列级别的定义,不同的公司级别差别会比较大,不过很多公司在招聘的时候,都会以阿里系做参考和对标。所以针对自己的求职目标投递简历,这样会避免一些乌龙,后面还会提到不同级别的面试。


4、面试流程和内容 

4.1 流程 很多公司都说,先面试后定级,不过很多情况都是你投什么职位就会被定在什么职位区间。例如标记为高级/资深XX工程师,那面试流程就是按照P5-P6这个来,这个级别的面试一般只是组内技术面试官,组老大(可能是总监),HR面一下就决定了。 如果是面架构师/专家(P7),流程会不一样,一般是组内架构师/专家面,然后会是高级架构师/专家面,总监面,CTO/技术VP面,HR面。 所以不要随意投职位,如果你定位自己是专家,就不要投高级和资深的岗位。

 4.2 内容 面试的内容无非是你做过什么,你会什么,你能做什么 关于做过什么,当然就是你陈述自己做过的项目,实现了那些部分,有那些贡献等等。这些内容,应该是参与面试之前就自己梳理好,如果工作认真,工作过程经常思考,并且有优化的习惯,这部分内容很容易讲,毕竟是自己做的。 简历上也可以附上可以帮助你表述自己工作成果的东西,例如图或者表格,这些看起来很简单的东西,对于你和面试官交流,激发他发问都非常有帮助。例如博主就把自己创业期间架构的服务器后台用彩页附加在简历上,很多面试官对这个架构图特别感兴趣,基本从最上面到最下面过一遍,再深入剖析几个技术点和场景,一轮面试就愉快的结束了。这个图如下(有些内容表述的不够专业,我也渐渐意识到了)



你会做什么,就是技术水平面试了,面试官可能是在你讲述项目的时候,从某个地方为切入点,一点一点的深入问。例如先问你有没有做过并发,如果你说是,可能继续问,是否用过线程池,如果你说是,可能继续问,线程池的核心原理是怎样的,如果你能解释一堆,接下来可能还会继续问,有几类线程池,适合什么不同场景。


这个可能会扣很细很细,蚂蚁金服面试的时候,那个面试官估计有40-50岁,书卷气很浓,Java真是刨根问底问了好多好多内容。只有平时深入积累才可能知道,如果只是泛泛的使用,没有想过如何优化和了解更多底层原理,根本不知道面试官在说啥。这个部分内容可以参考前面的长期准备内容。


你能做什么,就当这部分是开放式问题吧,这个题目通常没有标准答案,考察你解决问题的能力。我遇到的一个比较多问题是,设计秒杀系统,解决分布式系统中的数据一致问题,特别是分布式一致性问题,本来就是业界难题,抛出来给你应该也就是看你在平时工作的时候有没有思考过这个问题,有没有尝试过在工作中,尽可能小的避免这种情况的出现。


5. 谈Offer 这里我没有什么技巧,因为不喜欢和人讨价还价,我可能更看重工作内容,氛围这些,没有尝试过和HR讨价还价。不过基本上决定你薪水的是,你面试的级别薪资范围,你之前的薪水,你其他Offer的薪水。所以如果准备一次面试,也不妨多看看机会,至少其他Offer可以成为你衡量自己和谈薪资的参考。


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


猜你喜欢

转载自blog.csdn.net/yunfupei0434/article/details/79319717