赞
踩
首先声明,本篇是偏向社招数据与开发领域的面试技巧。
作者:咆哮的印记
代码前线老兵,JAVA转数仓,能力偏向平台侧与底层开发,当然运维侧、数仓开发侧也不在话下,目前任美团数据RD。
如今市场行情对于软件开发人员筛选进入到了新的阶段,高处只有精英才能留下来,面试越来越难必然成为趋势。对于选手们知识的广度与深度要求日益增长,并且除了专业能力也有了行业洞察力与商业思维方面的考察,所以对于有跳槽需求的我们该如何应对呢?
(如果对自己有绝对自信的大佬请绕路)长期没有投入市场的大家,非常建议在准备面试目标公司之前先进行试水。就是通过猎头或者招聘网站投一些意向相对较低并且门槛不是很高的公司进行面试,但是大概率的你不会去这家公司。这个过程中你可以明确的感受到市场动态,并且通过实践总结面试技巧、对答语言技巧,甚至能接触到现在市场最关心的常见面试题。
当然这个过程需要的是你的,记忆当天面试的要点,进行总结复盘。同时早期的多次面试成功可以给你带来自信,从容面对目标公司的面试,这个对于平时工作中沟通比较少的研发同学来讲尤为重要。不善言谈带来的紧张感很有可能让你错失良机。
当面试几轮之后基本已经切身体会到当下的面试倾向,如果当下面试偏于严格,其实对于不善言辞的研发同学我觉得是好事,更可以通过硬实力来博取机会。
当然也有可能盛兴而去,败兴而归。这时不要灰心我们的总结就可以做起来了。总结自己不足的地方,并且细分小点、重点,定计划恶补。我这边将能够恶补的计划暂时命名为网状结构知识库。
这类知识对于数据开发或者数仓来讲就是Java基础,分布式,数据库和常用的大数据组件等相关问题。一般面试官都会通过你的自我介绍或者简历中提到的常用组件进行提问进而深入,如果你已经有基础知识看过一些做过一些,建议面试之前突击使用教学视频加深印象,这里推荐b站视频,很全的哟。
同时对于网状知识整理不是很全面的同学推荐看下面文章:
再者就是对于数仓的认识,简单的有数仓分层就够了,难的有具体到某种数仓模型的解决方案,这一侧更偏向于谈经验,有了成规模的数仓体验才能有所总结。
数仓这里具体可以看居士的公众号:木东居士。
知识点的广度和它的网状结构多数需要临近面试复习才能答得完美,深度就要靠平时积累了。这类学习对于我们程序员来说再简单不过,去学去背,去漂亮的倒挂金钩!
目前面试数据开发或者数仓职位免不了需要手撸一段代码。
数仓还好基本是hsql,sql的话放开思路大胆写,注意查询效率(分区与中间表),巧用函数(多摸摸hive函数)基本都不难。然后就是多看看explain分析,当sql转换为mr的具体情况几个job几个map几个reduce,再结合自己经验聊聊优化就OK;
数据开发的话就是基本数据机构与算法。如果你是编程能力考核(即编程算法题)不擅长的话,就比较难了,这个能力突击是做不到的,需要我们持续的刷题实践才能摸清套路。比如头条,关键的开发岗位几乎60~70%都是算法题,并且很多题都是是LeetCode困难级别,需要清晰的思路,不然只能撞大运希望面试题是你做过的题。
相对的校招来讲一般都没有项目经验可谈,所以面试的时间也大概率会消耗在算法类问题上。还希望大家尽早重视起来。
算法题推荐公众号:帅滴玩编程
面试项目其实没有什么好说的,每个人自己的经历不同项目也不尽相同。但是大家对于自己的项目及其业务一定要熟悉,一定要熟悉,一定要熟悉...重要的事情说三遍。项目中突出重点,就找一个项目重点多练多说几遍,业务流程,数据流转流程,项目技术架构,自己的责任点,突出点,以及项目的优缺点。
(仅限对自己定位不明确的同学,大神绕路)定位与大方向对于很多人来说是一个比较模糊的概念,但是当面试时面试官要确定一个人的目标感和规划能力这是必问的问题。
也许你还想不到那么多,但是当你面试到一个阶段时,这个问题是必备的。当然可以直接使用当前面试的职位当做自己现在的短时间目标,就可以加强面试官对你的认可感。然后只要顺着当前的面试职位说出这个职位比较高一点的职位当做目标即可完成答题。
但是话说回来目标感和规划能力、总结能力在工作中是非常重要的软实力,这几个方面需要大家长时间的刻意的训练习,到了面试之前那几周再想其实已经比较晚了,倒不如顺势而为。所以最后技巧归技巧,还是要奉劝大家,多思考,早做规划,明确目标。
明确职级的过程其实就是对自己认知的过程,知道自己在市场中到底处于一个什么样的位置。早一点明确职级对于工作的选择会更加精确,面试中也会更加的自信。定位职级可以根据自己当前的职级和早期的试水来确定,加上对于薪资涨幅的预期与对目标公司的前期调查可以准确定位自己到目标公司的职级。有了对于自己职级肯定的回答,面试官在筛选确定你的职级和性价比也会更加的容易。最后你自己在定薪时也会更加的从容,不至于在hr面前心虚。
目前数据开发与数仓来讲都需要多门编程语言(以Java、Python、Scala为主),一定要在多种编程语言之中选择其中一种进行深入了解。比如Java就是好的选择,现在很多的大厂开发团队越来越重视Java开发经验,对于它的多线程编程、JMM内存模型都是面试时候的高标准选项。所以能够完成一个深入的基础题面试明确主要编程语言是重要的。
如果该准备的都准备了,自己定位也完成了,那么就到了临门一脚——面试现场,面试的时候最重要的是心态(其实也算是技巧)。
首先要有的想法就是“他问的问题我都会,只是没有反应过来!”。通常面试开发类职位,反应快并不绝对作为评判标准,只是加分项。面试官主要还是看你的编程能力与知识是否成网状。所以面对问题回答慢一点并不影响结果,甚至回答错了但是给了个正确的思路依然可以赢得下次面试机会。所以切记面试一定要沉着冷静思路清晰,相信自己有能力给出解题答案,并且好的面试官通常都会引导你回答。
其次就是不要乱答,在面试的初期,会给到一些比较简单的问题,不需推理只是引子。这种问题不知道就回答不知道,不要担心扣分,面试官会引向另外的方向,选好自己擅长的基础题答,面试官自然会追过来。但是在面试结束之前,一定要有一个分支你们讨论的足够深入,或者面试官没有问到你可以自己找机会讲出来,不然这次面试对于你还有面试官都是一次失败的面试。
这两点看似相反,实则相辅相成。
最后祝大家不管多难都能拿到自己心仪的offer!
热门文章
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。