如何拿到目标offer?
1.说在前面的话
一年一度的毕业季又要到了,有朋友、亲戚家孩子即将要就业了,时常有电话、微信联系我,问以下两问题:
1
2
3
问题1: 我家孩子学的生物|化学... 能做你现在做的工作吗?
问题2: 我家孩子学计算机的,怎么找一个好公司就业?
对于以上两个问题,问题1是我经历过多次,反思最深的话题,不过今天晚上时间有限,我打算找个更合适的时间来谈问题1.
问题2是我今天要写这篇文章来解答的,即对科班出身的毕业生或者已经有IT工作经验的人,如何拿到目标OFFER?
我个人经历过面试次数大大小小也不少次,最近的一次拿到了阿里、百度、小米、京东四家OFFER,级别给的还算满意,所以我这
里也想给IT新手以及迷茫的你分享下自己的面经。
2.准备工作
在面试前做足准备工作很重要,我想聊以下几点:
1
2
3
4
5
6
7
Q1.【确定目标】哪家offer或者哪几家offer是我想拿的?
Q2.【面试范围】目标公司面试官一般都会问到哪些技术问题?
Q3.【基本功】数据结构+算法+开源项目
Q4.【优秀项目】从业以来,自己感觉最拿得出手的项目,能很清楚的明白其中的各细节.
■ 对于Q1,我觉得是大家最会选择的,同时我觉得又是大家最不会选择的,特别是对新手.
最会选择是因为看大家的风向选择公司,最不会选择是因为没有看清自己的方向,即使拿了offer做的工作内容不是自己的发展方
向,浪费自己的能力。Q1这一点,我觉得很重要,确定了Q1这一点,你会发现自己想选择的公司寥寥无几!留给自己的机会不多。
■ 对于Q2,了解目标公司的使用的技术很关键!一般面试会涉及到你对相关技术的了解。获取这方面信息的途径很多,比如:
1
2
3
4
5
1.利用社交网络找到目标公司员工,通过社交聊天了解公司情况【女生用这招基本百发百中】;
2.去一些面经分享网站,看看去参加面试的人都分享了什么【具体哪些网站我就不说了,以防广告嫌疑】;
3.有条件的,可以有偿的通过网络约目标公司技术出来坐谈,能更详细的了解面试信息,可以走内推【还是钱有用】;
通过以上途径获取面试流程、面试范围、公司文化、岗位职责、福利待遇等信息,当然最重要的还是获取面试流程、面试范围信息。
我觉得Q2是很重要的,要做到对面试范围问题的总结归纳,在实行计划的时候才能有针对性的去准备!
■ 对于Q3,这方面应该是一些大公司面试官必会和你聊的,没有基本功就没有更远的发展,这可能是大公司的长远策略,所以
基本功是必须的!但这又是最麻烦的一点,基本功非短时间能达的,对于基本功很强的,可以显得比较从容,但对于基本功很弱的就
是一个高槛! 数据结构、算法这两门功课,虽说是基本功但要理解通透也并不是件容易的事。刚才我们在Q2提到了对面试范围的归
纳总结就是为了对于基本功是强项的人提供一个范围,让我们有准备的去看一些相关资料。同时对于有经验的技术人对于开源项目的
深入一定会给你一个满满的惊喜!
■ 对于Q4,相对于有经验的技术人,这一点也是沟通的必要环节,甚至对于应届生,特别是硕士生也一定会问你在学校的项目。
所以对于这个项目,不管是不是一个Team协作完成的,你都要对每个细节有所了解,最好对其中原理以及方案选择说得清道得明。
这样会大大的提升拿OFFER的机率。
3.实行计划
有了前面的准备调研基本,我们接下来就是要做一个合理的计划,能让自己在相对较短的时间内有所提升。
1.通过归结总结,一般可以了解到面试官会问的基本功范围。在此推荐以下读本:
1
2
3
4
5
《数据结构》(严蔚敏,吴伟明版 | 清华大学出版社)
《算法》(第4版)
《数据结构与算法分析》[美] 韦斯 著;冯舜玺 译
我觉得这两本读本基本上把基本功覆盖了。时间有限的话可以根据归纳总结的点选择书本中对应的章节深入进去。
我觉得看这两本书得带支笔,多推算下其中的细节实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
如何有效率的吸收知识点?
1.第一遍概览,了解书本大体框架及章节安排和其中思想;
我觉得第一遍看的过紧,会导致你看不下去,直接放弃。
2.第二遍章节细看,跳过一时难以理解的段落,保证进度;
这样可以吸收基本知识,对于难点可以有了解。
3.挑出难点未理解点,个个击破;
有了一个基础知识垫底,更有信心去攻克难点,而且非常有成就感!
以上是我对于基本功的推荐及在技术读本中个人阅读经验,可能不适合每个人,但可以借鉴琢磨出自己的方式。
2.拿出自己感觉很不错的经验项目,对各个工具的应用细节进行分析;
1
2
3
4
5
6
7
其实这一点比较麻烦,不是每个人都很幸运参与高并发高PV的项目,参与的未必了解各个细节实现,包括对开源工具的了解。
所以基本自己所经手的项目,选一个优秀的出来去好好看看当初的盲目码砖是否真的有高手在前面带路,让你不偏轨!
基于自己的项目,可以更好的去了解,在面试过程中也能说出所以然来,背景、实现、难点、方案。
对于优秀项目这一点,后面我要写的带着目的去面试会有机会帮助你从不同的角度了解你的项目。
3.手写代码的能力;
1
2
3
4
5
6
7
这个不得不练习,习惯于敲键盘加上有IDE的提示,觉得写一段算法很easy啊!
这个还真不好说,一般三轮面试,总有一两轮全你一支笔、几张纸,然后就让你在那写一些算法,分析出算法原理的同时
让你给你详细列出演算时间复杂度的过程。
这个你还真不得不准备,在看《算法》时带上心算的准备,然后在纸上一遍一遍的写码...
4.面试技巧
面试中的成功或失败都挺正常的,准备充分可能更有机率的拿到OFFER,有时候是运气也是心态。
但有些面试技巧是你不得不去掌握的,比如:
1.有效率的沟通,针对问题简明扼要的回答,同时也可以提出相关亮点;
1
2
3
简单来说就是不要说废话,说废话拉时间未必是个好策略,让面试官了解你的信息不多,也不是我们想要的结果。
针对问题有根据有立场的去思辨,当然这个是基于你的实战能力来决定你的回答水平的。
2.将面试官司带到自己擅长的领域里,你可以发挥的更好;
1
2
3
4
5
6
7
8
9
这一个我觉得很重要啊!面试官未必就是很有水平的人,更必要是门门精通的全才。
所以可以以一个聊的话题作为切入点,将面试官带到自己擅长的领域里嗨!
比如我自认为自己在数据库领域里很应手,我就将数据库的索引机制、优化策略、性能提升等等大餐一一奉上!
如果面试官不是很擅长你的领域,他会觉得你在这方面确实不错!
如果面试官恰好在你擅长的领域也很牛,那么我觉得你们聊下去的结果一定是惺惺相惜!
3.面试目标公司前,最好先面试几家级别较低或者相当的公司,进入面试节奏;
1
2
3
4
5
6
7
8
9
10
11
这个真的很重要!
如果我想去A公司,我一定在有准备的情况下先面一些其它公司,让我进入面试的节奏中。
有什么好处?
刚才在【3.实行计划】的第2点提到优秀项目时,我提到了不一样的角度看待项目,面试非目标公司的一大好处就是你可以
练习自己很好的说出自己的项目,同时对方的质疑也会让你思考的更多,更好的是在对方的质疑中你能得到比原方案更好的
解决方案! 这就是在自我反思与有经验的人聊项目时给自己完善一个更好的项目方案!
4.带着目的去试水;
1
2
3
4
5
6
7
8
9
10
11
还是面试非目标过程中,你可以更深入的理解你欠缺的基本功啊!
一般在三轮面试过程中,总有面试官会戳中你的盲区,这时你可以说一点自己知道的,对于不知道的你可以向面试官请教。
我觉得一般面试官会非常乐意授之以渔的,因为优于对手的心理表现+自我价值体现的两方面驱动。
在面试非目标公司时,是非常有价值的试水!!!
你的心态是完全放开的【不通过也没关系】,你的目的是很明确的【带着疑问去面试】。
但心态放开并不是无所谓,一样要严谨对待,带着疑问的同时是对自己准备工作的的检验和提升。
5.总结
1
2
limit[实力X+准备X+技巧X+心态X] = OFFER.
X->100
实行计划一定要保持无知之心去认真做好每一点细节!
以上是我个人对面IT面试的一些建议吧。在此也非常感谢在职场上给我指点迷津的导师们!
我就不祝大家好运了,因为大家都是有实力的人嘛,根本不需要运气!哈哈…