hello,大家好,今天这篇文章是之前关于面试相关文章的一个 番外篇 。
我们在之前的文章当中提到,对于刚刚进入大学的小伙伴而言,可以参考一下大公司的招聘信息,来 树立这大学四年里奋斗的目标 ,以及弄清楚准备面试的方向。但是还是有小伙伴私信我说,看了这些信息之后,仍然没有get到重点,不知道应该怎么理解,所以就有了今天这篇文章,来给大家翻译一下大公司的招聘简介,看看其中究竟传达了什么样的信息。
当我们面临一个JD的时候,我们首先要做的事情就是 整体感知 。
这里简单解释一下,JD是英文Job Description的缩写,也就是岗位描述的意思。所以当hr或者是猎头说要给你发送一个jd的时候,千万不要以为他们是某东派来的。
对于校招生来说,很重要的一个特点就是, 对于以后的工作内容以及各个岗位大概的日常工作一无所知 。所以拿到jd的时候也不会多想,其实这是不对的。对于社招的“老油条”来说,拿到jd的第一件事就是从整体上去猜测这份工作的日常究竟是干嘛的,以及它大概对于候选人的能力有着怎样的要求。
原本这个应该是天经地义的事情,但是由于校招生缺乏相关经验,所以往往意识不到这一点。并且,很多校招的jd也写得很宽泛,让人根本看不出它是一个怎样的岗位。
作为候选人我们无法苛责面试官以及企业,但是我们可以多看看, 多搜集一些信息 。
举个例子,我在牛客网里找到了这样一份jd,它是阿里云招实习生的一个jd:
通过高可用分布式系统、Web/Mobile Backends等描述,最起码可以看得出来这是一个关于分布式场景的 后端工程师的岗位 。那么如果要选择它作为目标的话,显然对于后端以及分布式原理需要一定的了解。
这是一个比较好的例子了,也有坑爹的例子,会让你根本get不到他们究竟想要怎样的学生,我们同样来看一个阿里云的例子:
描述当中的和技术相关的关键词相当少,只有java、go、linux,然后就是一些关于进取心、责任感之类的叙述,显然对于我们提供的信息非常少。
要 非常警惕这样的描述 ,主要有两个原因。第一个原因是你无法从其中获取足够的信息,既不利于你准备面试,也不利于评估自己在候选人中的大概位置。第二个原因是,有一定踩雷的可能性。比如你的长处是算法数据结构以及了解过分布式,但是它偏偏就是一个纯后端岗位,不涉及分布式技术,可能就会盯着你的后端技能进行考察,这必然会非常吃亏。
更重要的一点是,对于这些大公司而言,面试都是有成本的。不仅因为面试只有一次机会,而且 面试会留下记录 ,如果发挥实在不好,甚至 会影响你之后的尝试 。我有个朋友就是在实习面试的时候遭遇了比较严苛的面试官,留下了比较恶劣的记录,导致后面的面试官很难完全推翻前人的评论。
整体感知了解了岗位的相关情况之后,就要开始 扣细节 了。
当然扣细节的前提是有细节可以扣,对着一份没什么信息的jd显然也是扣不出细节来的。这里我选了腾讯后端岗位的jd作为例子,别问我为什么不选算法,因为它的主页里没有这个选项= =
有一说一,我虽然不喜欢鹅厂,但是它的校招jd写得还是不错的,能够看出来很多东西。
首先在 基本功扎实这一栏当中提到的语言只有三个 ,C、C++和Java,并没有提到Python和go。再结合这是一个关于后端的jd,所以基本上可以肯定,面试官使用的语言应该是Java。因为目前使用C和C++作为后端开发语言的岗位已经基本没了,所以如果你对与Java比较精通的话,一定是一个加分项,或者说想要求稳的话,在Java上获得比较高的积累是必须的。
第二条是TCP网络协议以及进程间通信,老实讲即使我做过后端,也从这条描述当中获取不出来太多的信息。因为TCP网络通信和进程间通信是非常普遍的应用,市面上相关技术和工具已经非常成熟了。所以我 猜测可能和Spring框架相关 ,或者会考察一下TCP网络相关以及进程通信的基础知识。
第三条是了解Python等脚本语言,描述简短,并且 没有提及任何相关的技术相关的要求和描述 ,说明这个团队是真的将Python当作写脚本的工具来应用的或者是不针对这块有过高的要求,应该不涉及任何Python相关高深的技术。所以 Python、Shell、Perl等语言不会是面试考察的重点 ,只需要让面试官知道你大概会写Python就可以了。
后面三条是重点,也是后端非常常见的考察内容,分别是数据库、分布式以及负载并发等相关。再结合之前的分析,这个team大概率以Java为主语言,那么在面试之前应该着重准备Java相关的知识,说实话网上相关的内容非常多,各个领域挑选个几篇优质的博客认真研读和学习应该就差不多了。
以上的这些只是我粗略分析得出的结论,如果仔细深挖, 应该还可以挖掘出更多的细节和推测。
推测出这些细节究竟有什么用呢?
最明显的作用就是 可以针对性的准备 ,假如你时间不多,很快就要面试的话。你至少也可以做两件事情,第一件事是 在简历上突出那些和岗位要求相匹配或者是你觉得可以构成加分项的内容 。第二件事是可以 针对性的进行面试问答准备 ,从网上找一些面经或者是相关的技术博客,做一个备考,事实证明这种通过jd分析得出的内容在面试中派上用场的概率非常大。
如果你时间还很多,比如今年才大二,还没有面临找工作的压力,那么你大可以利用这段时间来 针对性的填充简历 。
要知道面试当中 最有说服力的就是曾经的经验 ,哪怕你问题都回答上来了,面试官也可能会觉得你欠缺实战经验。但如果你能证明你曾经做过相关的内容,已经有了经验,那么对于面试官的杀伤力是非常巨大的。所以最好的准备面试的方式就是准备这些拥有杀伤力的过往经历。
比如刚才说到的这个后端jd,如果是我大二的时候去准备的话,我一定会找机会参与一个能够用上数据库、设计模式、高并发、分布式等技术的项目。如果一个项目满足不了,就多刷两个项目。
你可能会说普通学生到哪里去接触这样的项目?这不是强人所难吗?
还真不是,首先可以 通过学校里的资源 ,请教相关老师,是否有合适的项目自己可以参与。即使不是担任主程序员的身份也没有关系,哪怕核心的功能是别人开发的,但这并不影响你去学习其中的内容。如果学校里没有相关资源,也还 可以借助网络资源 。
我们自己开发的web项目当然大概率不会有很大的流量也不会面临高并发的场景,但我们追求的是技术,并不是流量。我们完全可以用虚拟请求压测的方法 模拟大量流量的涌入的高并发场景 ,从而来学习以及思考并发场景以及分布式场景的一些相关技术。自己本身的电脑性能不够还 可以租借网络服务器 ,现在很多云服务器厂商都提供非常便宜的优惠价给学生,甚至是免费提供。
对于面试官来说,他也知道学生时代的各种限制, 大部分情况是不会过多苛责的 。能够有相关实战经验就已经足够优秀了,至于它是否实用,是否真的派上了用场这些并不重要,能够证明自身的实力即可。
我们简单总结一下,首先我们在挑选岗位的时候 千万不能随意 ,要多找几个相同岗位的不同jd阅读一下,尽可能搜集尽量多的信息。并且最好不要投递那些jd写得很笼统的职位,因为被坑的可能性相对要大得多。
其次我们 需要对jd的内容进行仔细分析 ,推敲这个岗位的日常工作以及可能用到的技术。这块通过学生自己可能比较难实现,有条件的话可以 多请教一些业内前辈 。有了这些信息之后可以针对性的准备面试。
如果是提前有意识搜集信息的话,可以对照心仪岗位jd上的内容针对性的积累项目经验。
一般来说这三板斧下来的杀伤力是非常大的,如果我是面试官,我的候选人体现出来这样的品质,我一定会给通过的。实际上除非特殊情况,比如其他竞争者实在太强大,否则是很难有拒绝的理由的。即使真的最后没能如愿,至少还有其他的公司可以尝试,我相信 按照这样的方式总会有一个不错的offer的 。
文章当中选了后端工程师作为例子,对于 其他岗位其实也是大同小异 ,道理都是一样的,大家举一反三即可。
今天的文章到这里就结束了,如果喜欢本文的话,请来一波 素质三连 ,给我一点支持吧( 关注、转发、点赞 )。
本文使用 mdnice 排版