面试?或许你应该这样
一 前言
最近项目组需要招聘新人来满足业务的拓展,体验了一下企业的整个招聘流程,对于面试者,面试官,HR 都有了一些想法。首先说大部分企业的招聘流程,一般是分这么几步
1 HR筛选简历,推给项目负责人
2 项目负责人根据项目需要技术筛选匹配简历给HR通知面试
3 一面 一般由项目成员进行一个初步的技术基础面试
4 二面 一般由项目经理进行全方面的技能(技术+软技能)
5 HR面试 一般都聊和个人薪资,和职业规划等
通常这几个步骤走下来至少需要一周到两周的时间,而且通常面试者都会同步进行多个公司面试,就算HR已经发了Offer通常面试者还是会继续面试试图找到更好的职位。
在此之前我其实并不知道 HR的压力有多大,现在想想 从面试到入职这其中充满了变数,能够入职真的是缘份!
二 简历
2.1 HR如何筛选简历
对于HR如何挑选简历的问题我特意询问过HR同学有了一个初步的了解,一般HR会根据项目的技术方向,工作年限,学历 进行一个初步的筛选,比如:方向 Java ,年限 3-5年 ,学历 本科及以上。
这是第一步,然后剩下的简历看每个人的工作经历,服务过几家公司,每家年限是多长,通常半年以下HR都会慎重考虑,要是3-4月就换了一家公司 基本上会排除,因为招聘企业和面试者都是要付出相应成本的。
经过这两步筛选后再将简历推给项目负责人
2.2 项目负责人如何挑选简历
简历到项目负责人后,通常会把大的技术方向细分后 然后带着几个技术关键字开始看
1 个人的技术栈,
2 项目经验。
比如 项目中要求需要熟悉 Linux基本 操作 Redis
通常会重点关注这两项。如果有看到关键字详细看,看在项目经验中的描述。在项目中担任什么角色,用到了哪些技术并完成了什么功能,或者解决了什么问题。
加分项:
1 是否有博客,或者有参与开源项目,或者有自己的github并有开源代码
2 各类证书如软考 PMP等
3 行业荣誉 如MVP等
2.3 面试者简历该怎么写
分析了HR与项目负责人筛选简历的方法后,就要开始站在他们角度上开始修改自己的简历
大致总结了如下几条
对HR
1 个人基本信息
只留最关键信息 姓名 联系方式 工作年限 学历 ,其实什么政治面貌,婚姻状态,住址 都不用写HR也不关注
2 技术栈
可以按前后端来分开写你所撑握或者了解的技术
1 尽量不要以熟练,熟悉 了解 这些千篇一律的词来描述你对技能的撑握成功,对于自己比较擅长的技术可以适当加粗该关键字以突出,
对照着岗位要求尽量多描述一点与岗位要求相关的技术
2 只是通过文章了解的技术没有进一步通过代码实践的技术尽量不要写,因为有可能你所了解的就是对方所擅长的,一问就穿帮反而害了自己
3 贴上你的博客地址,github地址,或其它相关证书
4 最后再写一段对自己的总结客套性收尾
3 项目经验
1 项目经验要不要写得多?
我的理解是不需要两个左右就好,首先你最熟悉映像最深的一定是你现在正在做的项目,对你来说细节的部分你是记的比较清楚的,
就算面试官聊得深入一点你也是可以回答上来,不致于说 项目太久远有点记不清楚了。 其次 面试官通常只会选你的一个项目进行深入了解并提出问题。
2 如何描述项目经历
切记项目经历千万不要只写 你完成了什么功能,面试官对你的项目又不了解,怎么知道你完成的功能里用到了哪些技术?有哪些技术难点?
这种只用短短几行文字描述你所完成功能的项目经历还不如不写。
正确的应该是下面这样
结合目标岗位的描述,撰写你自己的工作经验和职责,与对方要求的越吻合越好,并且以具体的数据支持你的工作成果。
并详细描述你在项目中所担任的角色,通过哪些技术完成了哪功能,解决了哪些难题,面试官很有可能会从你解决的难题中挑一个让你聊聊具体的解决方案。
3 非重要信息放在最底部
这些可以是你的教育背景,英文程度,或者其它与工作相关的附属技能
4 简历命名
如果是内推直接把邮件发给HR的,如何让HR能在众多邮件中看到你的邮件也是有点技巧的
先看邮件名的反例 "简历",“内推”,"应聘" 这种还非得让HR打开邮件甚至于下载打开简历才能知道你是谁应聘的什么岗位,可想而知对于HR来说是多么恐怖的事
好的邮件或简历命名应该是紧贴岗位信息的如 ".Net高级工程师-张三简历",至少要有岗位信息和姓名,这样才能在众多邮件中立马找到。
三 面试
以下为内容为面试者需要掌握的点
3.1 自我介绍
别忽视这个环节,面试者的第一印象从这个环节就开始了。如何做一个比较好的自我介绍呢?网上方法和案例很多这里不做太多阐述,内容的主体是围绕你的工作经历做过哪些项目,熟悉哪些技术
条理清晰的表达出来。面试官通常通过自我介绍大致可以初步判断一个人的语言组织能力和语言的表达能力。如果连自我介绍都说得没条理没逻辑,就不要希望在工作中的沟通中很好的高效沟通。
3.2 基础知识
很多面试者对基础知识都很不绡,特别是工作年限偏长的人,他们认为这些问题你应该问刚毕业的。现在都到这个阶段了你应该问一些更抽象,开放的话题 什么分布式,高可用,负载均衡这些听上去比较高端的东西。
其实大部分人都忽略了一个问题,现在互联网上针对 分布式,集群,负载均衡 都有完整的解决方案,以Redis为例,你说要做集群简单吗?官方直接都提供了方法,配置文件加个节点就完事儿了,负载均衡呢,SLB Nginx Haproxy
这些都工具都可以快速的帮你实现,你觉得需要很高的技术吗?一定需要工作几年才能玩得转吗? 这些工具都只需要花点时间看看官方文档,照着一步步来就可以完成,并不需要太多的原理性知识。
但是!!! 如果一旦出现了问题怎么办?你不了解运行原理,设计原理,或者网络相关的基础知识 或者你连导致问题的原因都找不到。代码也是一样每段代码内部执行过程,编译过程,和最终程现结果 你都不了解开口闭口就说,
基础知识没用,原理了解没用,那还能和你聊什么呢?技术就像建筑只有底层的基础牢,才能为高度提供保证 !
3.3 进阶
有了好的基础做支撑后需要扩充自己的视野,站在一个更高的角度去看技术,以前或者你只注意系统的一个模块,现在的你应该关注整个系统的设计原理,架构设计理由。
尝试多接触几种不同的语言,和学习新的技术,不要求全部掌握但至少你得知道这种技术是用来解决什么问题的,什么场景下使用最合适
3.4语言表达,学习能力
学习能力和表达能力个人觉得是两项非常重要的技能,或许你在工作经常会遇到同事说了一大段话,而你却没有听出他想表达的是什么问题,反而需要你一步步问,或者提炼他的话语才能明白。
这就是典型的语言表达能力不足。要改善也很简单,在你每表达你的一个观点或者描述一个问题时,如果记忆力不够好请在纸上记下你观点或问题中的小项,然后一项项的说,如果因为其中某个小项
假设A引申出了B那就把B的内容说完后再回到A,总之不要乱要有条不稳。
学习能力,同一项技术点给不同的两个一起学习,两个人的学习效果会有差异。这个差异体现在哪里呢?抛开智力这个变量不谈其实就是学习方法不一样。
比如你要学习一门新的技术比较好的方法应该这样
1 先了解这技术是做什么用的,解决什么问题的,在这个技术没出现之前,如果遇到同样的问题解决方案是什么?现在用这个技术来解决有什么优势?
然后带着问题去网上了解
2 了解技术产生的原因后就需要开始进一步了解该技术的基本内容,通常是在官方网站上看API文档。
3 根据官方例子或者他的技术博客写的系列教程一步步跟着写,然后总结
4 根据个人的消化理解总结之后,再把该技术运用到实际的项目中
3.5 建立自己的人脉圈子
这点这一两年有比较深刻的认知,你的工作年限越大跳槽的成本就会越高,在选择时会越谨慎,力求图稳。所以最带见的做法不是投简历而是内推,内推的好处就比较明显了首先是有自己熟悉人在里面,公司的情况 项目的情况都很清楚
其次进入新公司后会更快的融入新的圈子,这对于程序员来说是比较关心的。相比直接在网上投简历内推风险相对要小很多。而且如果你是技术大牛,而你又有自己的圈子,那基本上都不需要你找工作,都是圈子里的人找你或者请你过去!
现在身边的朋友换工作基本都是走内推的渠道,对他们来说只是换个地方上班,人还是那些人。
四 总结
以上几点是最近自己的一些想法,可能并不一定适合所有人,也不一定全对! 合不合适大家可以自己权衡。
简历这一点是面试者马上就可以改善的,而面试这点需要大家在平常工作或者生活中不断的发现积累改善自己。另外在决定要换工作前请做面试前的复习重新总结和巩固下自己的技术栈。
如果您觉得本文让您有所收获,不妨点下赞,为我的付出,给一点点回报!
如果您觉得本人也有点意思,不妨点个观注,大家一起谈技术,谈人生!