分享

金九银十,谈一谈面试经验

hyj 2020-8-31 15:58:53 发表于 经验分享 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 2304

问题导读

1.本文作者对面试的观点是什么?
2.对于面试是否职位越多越好?
3.面试题目哪些是会,哪些不会,不会的该如何解决?


前言
虽然面试讲究天时地利人和,也有一些机遇和运气。但是我想说,没有哪一种成功是可以来的不费吹灰之力,没有哪一种光鲜是可以一蹴而就的。你所看到的成果,无不是别人一路努力而来的结果。

如果把每次面试都当做一个机遇的话,你靠什么去抓住这个机遇?有一句话说:做正确的事,等待好事发生。感觉把这句话用在面试上,很合适。

其实就是想表达,把功夫用在平时,在点滴工作中积累,沉淀。一年365天,你所用的技术总共也没有几个知识点。

如果每周都积累几个,你还害怕面试吗?

如果你坚持每天都积累,你依然已经成了一个很厉害很厉害很厉害的人~~

说到这儿,感觉面经讲完了,自己都想笑,哈哈。下面我们详细从以下几个方面说一说。


职业发展方向
找工作前,先搞搞清楚自己要面试的职位,比如大数据方向比较常见的:

  • 大数据套件(平台)开发
  • 数仓开发
  • 机器学习


如果是【大数据套件(平台)开发】,那对底层框架原理,源码是要求的,有好多都需要对这些框架进行二次优化开发。
如果是【数仓开发】,那就是数据治理,仓库建模,花样写sql,如果要想让自己更有优势,让人眼前一亮,最好有优化,源码经验。
如果是【机器学习】,那就是得各种算法原理,公式推导,以及在工作中,这些算法的?实际效果是怎么样的,解决了什么业务问题。

我们要专注其中一个方向,一定不要什么方向都写。我见很多简历,要仔细看很多遍,才能发现,噢,他/她可能在数仓方面更擅长一些。因为简历上即写了做算法,也写了做数仓开发,也写平台开发。

但实际上,大家都那么忙,在过简历的时候,不会仔细推敲很多遍。你的简历一定要突出和你面试职位的匹配性,突出你这么多年来,都在做什么。


SQL BOY/SQL GIRL
依照自己的经验,确认你要面试的职位的等级:高开、资深、专家...

这个也算是我对自己的一个复盘,之前,我自己也没好好想想清楚。不同的职级,对能力的要求不一样,这一块的功夫需要在平时工作中、日常生活中去刻意练习。

如果觉得自己在技术方向没有亮点,那就为自己寻找一个亮点,并不断的刻意深入。

大家普遍认为做数仓开发就是sql boy/sql girl ,但实际,数仓开发还有很多可以深入的地方。


  • 你sql写的很好吗?
  • 你敢不敢挑战现场写,并且以最快的速度写出最优化的sql?
  • 你对常用的一些sql的原理都搞的很清楚吗?能经得住拷问吗?
  • 你对仓库建模方向有哪些好的想法和实践?效果怎么样?


如果这些最基本的,都不能搞定,又怎么能觉得数仓开发的工作很浅显呢?那是你在为懒惰,不求上进找的借口吧。给自己列一些标准,如果不能达到,那就努力去练习。

确认目标,并向着目标靠近。


术业有专攻
一定要有自信。
一定要有自信。
一定要有自信。

做数仓开发,每天做的最多的事情就是写sql,但是我没觉得自己有多low。虽然每天写sql最多,并不代表我们只会这些。
一个小小的sql背后,有多少东西需要去搞搞明白:内存管理,sql编译过程,各种参数的原理,各种算子的原理...
之前有优化过好几个后端开发工程师写的sql,他们每天只关注业务逻辑开发,sql能力不是很强,导致一些页面因为sql效率问题,等10几分钟才能展示。

所以,一定要有自信,术业有专攻。


何必跟钱过不去呢
要面试了,最忌讳什么都有印象,什么都会,但又讲不出来。这样你准备十个问题,还不如精通一个问题。

很多时候你觉得自己紧张的忘了,实际上是你根本没有理解并记住啊,有木有?

准备好面试题,用自己认为最好的答案写好,自己对着墙发出声音讲一讲,一直到能非常顺溜的讲十遍。

然后就告诉自己,我已经准备好,克服紧张感。

好好准备面试,何必跟钱过不去呢?你说对不对哇,老铁~~~


面试题目总结
做为一名数据开发人员,我真的很想说,一定要把功夫用在平时,在点滴工作中积累,沉淀。每天要给自己留那么一点时间来思考,总结。

附上总结的大厂面试题,这些题也都是很常见的:


Spark

  • join 实现有几种呢,源码有研究过吗?底层是怎么实现的
  • shuffle形式有几种?都做哪些优化
  • 是通过什么管理shuffle中的内存,磁盘的
  • 讲讲spark内存模型?说说你了解这些,对实际的工作有什么帮助?
  • rdd有哪些特性?
  • 讲讲spark的高可用和高容错
  • 宽依赖,窄依赖都是什么?有什么不同?除了大家都认为的不同点以外,还有哪些不同?
  • sql运行过程
  • full outer join原理
  • spark为什么比hive快
  • 讲讲sparksql优化
  • 讲讲RDD, DAG, Stage
  • 说说groupByKey, reduceByKey
  • spark是怎么读取文件的?
  • 有没有遇到过spark读取文件,有一些task空跑的现象?
  • 窗口函数中几个rank函数有啥不同
  • parquet文件和orc文件有啥不同



MR/Hive

  • mr shuffle 是什么样子?具体原理是什么?为什么要排序?
  • mr map,reduce数量都什么相关
  • hdfs存放副本的算法是什么样的?
  • 讲讲hive sql优化
  • hive 数据倾斜参数原理及解决方案


SQL

  • 花样写sql,跟实际业务有关的
  • 一般情况下,写出一个,然后,他就会问还有没有更优化的方式?
  • 窗口函数,groupingsets cube这些都会用到。有好多是计算滑动的那种
  • 这个sql 在hive中起几个job,为什么是这么几个job?



建模

  • 方法论,数据仓库怎么构建?你是怎么分主题域的?对现在的业务有什么看法?现在的仓库是个什么情况,各个分层有什么特点?为什么这么分?
  • 讲讲三范式
  • 拉链表,缓慢变化维
  • 给你一个新业务,怎么开展?
  • 数据治理
  • 数据质量,口径一致



基础
  • 谈对jvm的理解
  • 链表删除算法
  • 排序算法
  • Btree简单讲讲



项目

说说项目中你做的比较有价值的东西
你做的字段血缘,这只是针对有sql语句的,那没有sql的(load的,从其它业务库用sqoop拉过来的,mr里解析的),你有没有想过怎么做字段血缘?
你做过印象最深刻的项目,为什么?你在中承担什么角色,发挥了什么作用?还可以优化吗?



原文链接
https://mp.weixin.qq.com/s/zvTMV5YUB8-JHPAo1PaB7g

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条