面试不是一场遭遇战
引言
Ethan第一次跳槽时,把工作总结搞成简历,丢到BOSS,面了几场,结果都很糟。复盘下来,发现面试过程临场发挥太多,把攻坚战打成了遭遇战。
那面试要如何准备?什么情况下跳槽?有哪些大数据组件问题高频出现?怎么做数仓项目介绍呢?这些问题我都一一探究过,现在整理分享出来,相信一定能对你有所启发。

为什么要跳槽?
出门工作的意义无非先求一个经济独立,钱是实现自由的手段。再求一个能力成长,希望技术、商业、沟通力、协调管理等等能力可以如臂使指。按这两个标准来评估,一个岗位给你的薪资如果远低于市场平均水平(例如-20%);或者翻翻自己做过的方案,现在想不到更高效的方法。那么你就可以考虑看机会了。
在职场上发展,理想状态是能找到和自己同频的管理者,大家一起合作把事情做起来,拿到好的绩效(more money)。俗称“嫡系”,可惜嫡系的位子很少,大多数人还是要靠跳槽来获取更高回报。
面试是跳槽必经之路,是我们实现收益的能力基石,平时深耕专业面试能力才是王道。

面试的流程?
面试全流程大同小异。1)简历评估;2)技术面试(一二轮资深面)3)技术面试(二三轮总监面)4)HR面试。
1)技术面试一般40~60分钟。0)面试官宣布面试开始;1)候选人自我介绍。2~3min;2)面试官针对自我介绍中的技能环节、过往经历、展开问题。2~3min;3)候选人项目介绍。5min左右;4)面试官针对项目介绍中的项目背景、技术细节等展开问题。5min左右;5)面试官针对技术基础问题展开问题。3~5min;6)一道代码题目(数仓以SQL为主)20~30min;7)候选人反问。2~3min;8)面试官宣布面试结束;
候选人发挥的环节一定要注意把控时间。
2)所有面试环节都通过之后,会有定薪环节,HR小伙伴会收集流水、绩效、晋升等材料。接着双方约定入职时间,最后OFFER基本都以邮件形式发送到邮箱。这时候99%就算找到一份工作了。如果不幸命中1%概率被毁约,可以拿着offer邮件去劳动仲裁,申请赔偿。
3)最后是入职新公司,施展你的才华。但值得注意的是,试用期通过之后,就可以为新目标做准备了。尽可能在当前工作获得成长收益,在下一次面试中去体现,拿到更高回报!

面试怎么准备?
1)简历书写
一页纸!一页纸!一页纸!重要的事情说三遍。
第一部分基础信息(姓名、职业头像、年龄、工作地、期望岗位、教育经历、公司经历)占1/4篇幅左右。
第二部分项目经历(三段突出不同能力最佳)占1/2篇幅左右。
第三部分专业技能占1/5篇幅左右(分类分点)。
简历文档名称:候选人姓名+联系方式+期望岗位;
简历文档格式:PDF;

2)自我介绍
自我介绍是一个增进信任与拉近关系的环节,完全不用紧张,大部分时间面试官都在抓紧时间阅读你的简历。因此,大大方方的开口就好,给一个参考模板:
(打招呼,扯扯个人信息,把气氛搞随和)面试官您好!我是XXX。今年XX岁,已经工作XX年了。我来自辽宁省沈阳市,是一个阳光积极、超级热心的大男孩!
(开始逐步正经,介绍教育经历)我在21年从清华大学毕业,专业是计算机技术,获学士学位;毕业之后就加入了谷歌搜索,职位是大数据开发,主要负责谷歌3C产品推荐业务下面的增长、物流、搜索等主题的数据研发以及质量治理的工作。
(非常严肃,介绍自己的技能)我的技能方面。理解数据仓库的基本概念、掌握大数据ETL流程、熟练使用SQL、优化数据查询性能、具备数据建模能力、了解数据治理和安全、熟悉相关工具和技术。
(回归半正经,客套恭维一下)我的经历和技能和咱们这次招聘的岗位比较匹配,所以就投了我们这边。

3)项目介绍
一定要讲清楚项目目标、技术难点、解决方案。参考高频面试题-项目介绍篇

4)技术基础
主要是SQL笔试、大数据组件、数据建模、数据治理等几个方向。参考
-
SQL面试速通
-
Spark面试高频真题一--Spark基础
-
Spark面试高频真题二--数据倾斜
-
高频面试题-数据建模篇
-
高频面试题-数据治理篇

面试能力怎么提升?
1)每次面试一定要复盘
有条件一定要录音,去发现自己在临场回答问题时,是否不流畅(过长的停顿),不自信(声音低弱),技术用词不准确,逻辑不通顺等情况。把问题都记录下来,重新整理更好的回答。通过背景、目标、行动、结果;概念、逻辑、案例;事前、事中、事后;宏观、中观、微观;优势、劣势、机会等等表达框架淬炼自己对于技术问题和工作经历的理解和表达。
2)面试过程及时收集反馈
通过反问面试官去了解自己能力的短板。参考反向面试!3个必问面试官的问题。接着针对短板做提升。

3)面试心态
快乐!有人专门花一个小时听你吹牛X,还不花钱!搞不好还能赚更多钱。多快乐呀!我们一定好好扯~

Ethan能帮你什么?
1)数仓面试宝典
总结了大数据仓库工程师岗位的一些必问问题答案,技术面的军工厂。
-
终战!轻松应对HR面试
-
反向面试!3个必问面试官的问题
-
SQL面试速通
-
Spark面试高频真题一--Spark基础
-
Spark面试高频真题二--数据倾斜
-
高频面试题-项目介绍篇
-
高频面试题-数据建模篇
-
高频面试题-数据治理篇

2)大厂数仓面试实录
互联网大厂数仓面试问题实录30+,一二三轮都有,你都能回答上的话,offer一定满满的。
-
[面试经验]字节中台数据开发二面
-
[面试经验]支付宝数据开发一面
-
[面试经验]滴滴数据开发一面
-
[面试经验]百度数据开发三面
-
[面试经历]莉莉丝数据开发一面
-
[面试经验]字节生服数据开发二面

预告
面试系列文到此告一段落。👏🏻
后面会继续更新大数据岗位日常工作中的问题方案、工具技巧等等。
大家希望先看什么内容,可以留言给Ethan,催更BUFF叠起来!例如:HiveUDF开发指南、Spark参数调优指南、数仓架构设计、大模型在数仓工作中的落地案例、指标命名规范实践等。

相关文章:
面试不是一场遭遇战
引言 Ethan第一次跳槽时,把工作总结搞成简历,丢到BOSS,面了几场,结果都很糟。复盘下来,发现面试过程临场发挥太多,把攻坚战打成了遭遇战。 那面试要如何准备?什么情况下跳槽?有哪些大…...
【力扣 | SQL题 | 每日3题】力扣1795,1907,1398,602
1. 力扣1795:每个产品在不同商品的价格 1.1 题目: 表:Products ---------------------- | Column Name | Type | ---------------------- | product_id | int | | store1 | int | | store2 | int | | store3 …...
centos7.9升级rockylinux8.8
前言 查看centos的版本 ,我这台服务器是虚拟机,下面都是模拟实验 升级前一定要把服务器上配置文件,数据等进行备份 [rootlocalhost ~]#cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]#uname -a Linux jenkins_ser…...
C++初阶(三)---C++入门(下)
目录 一、内联函数 1.内联函数的定义与底层机制 0x01.内联函数的定义 0x02.内联函数的底层机制 2.内联函数的优缺点 优点: 缺点: 3.内联函数的使用建议 4.内联函数的注意事项 二、auto关键字(C11) 1.代码示例 2.auto使…...
Linux--多路转接之epoll
上一篇:Linux–多路转接之select epoll epoll 是 Linux 下多路复用 I/O 接口 select/poll 的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率。它是 Linux 下多路复用 API 的一个选择,相比 select 和 poll,…...
自动化工具Nico,从零开始干掉Appium,移动端自动化测试框架实现
这篇将用较短的篇幅给大家介绍我是如何实现iOS和Android的inspector(元素审查工具)的。 实现原理 为了更方便的显示UI界面,且更容易制作,我选择了使用web端来承载整个元素树展示。同时我选用Flask一次性梭哈前后端(因…...
Fast CRC32
链接: Fast CRC32 Error Checking Real life data tends to get corrupted because machines (and humans) are never as reliable as we wish for. One efficient way is make sure your data wasnt unintendedly modifiied is to generate some kind of hash. T…...
生成一个带有二维数据和对应标签的螺旋形数据集(非线性可分数据集)的代码解析
def create_dataset():np.random.seed(1)m 400 # 数据量N int(m/2) # 每个标签的实例数D 2 # 数据维度X np.zeros((m,D)) # 数据矩阵Y np.zeros((m,1), dtypeuint8) # 标签维度a 4 for j in range(2):ix range(N*j,N*(j1))t np.linspace(j*3.12,(j1)*3.12,N) np.rando…...
PHP unset() 函数的作用
PHP 中的 unset() 函数用于销毁指定的变量。具体来说,它会解除变量名与其数据之间的关联,从而释放该变量所占用的内存。不过需要注意的是,unset() 并不是删除变量的内容,而是取消对变量名的引用。如果变量是数组中的某个元素或者对…...
长篇故事可视化方法Story-Adapter:能够生成更高质量、更具细腻交互的故事图像,确保每一帧都能准确地传达故事情节。
今天给大家介绍一个最新的长篇故事可视化方法Story-Adapter,它的工作原理可以想象成一个画家在创作一幅长画卷。首先,画家根据故事的文本提示画出初步的图像。这些图像就像是画卷的草图。接下来,画家会不断回顾这些草图,逐步添加细…...
C++基础面试题 | 什么是C++中的运算符重载?
文章目录 回答重点:示例: 运算符重载的基本规则和注意事项: 回答重点: C的运算符重载是指可以为自定义类型(如类或结构体)定义运算符的行为,使其像内置类型一样使用运算符。通过重载运算符&…...
深入 IDEA 字节码世界:如何轻松查看 .class 文件?
前言: 作为一名 Java 开发者,理解字节码对于优化程序性能、调试错误以及深入了解 JVM 运行机制非常重要。IntelliJ IDEA 作为最流行的开发工具之一,为开发者提供了查看 .class 文件字节码的功能。在本文中,我将带你一步步探索如何…...
NodeJS 利用代码生成工具编写GRPC
生成的 gRPC 代码优点 自动化和效率: 减少手动编码:生成代码自动处理了消息的序列化和反序列化、服务接口的定义等,减少了手动编码的工作量。一致性:生成的代码确保了客户端和服务器之间的一致性,避免了手动编码可能带来的错误。跨语言支持: 多语言兼容:gRPC 支持多种编…...
uni-app基础语法(一)
我们今天的学习目标 基础语法1. 创建新页面2.pages配置页面3.tabbar配置4.condition 启动模式配置 基础语法 1. 创建新页面 2.pages配置页面 属性类型默认值描述pathString配置页面路径styleObject配置页面窗口表现,配置项参考pageStyle 我们来通过style修改页面的…...
Linux:进程控制(三)——进程程序替换
目录 一、概念 二、使用 1.单进程程序替换 2.多进程程序替换 3.exec接口 4.execle 一、概念 背景 当前进程在运行的时候,所执行的代码来自于自己的源文件。使用fork创建子进程后,子进程执行的程序中代码内容和父进程是相同的,如果子进…...
LeetCode279:完全平方数
题目链接:279. 完全平方数 - 力扣(LeetCode) 代码如下 class Solution { public:int numSquares(int n) {vector<int> dp(n 1, INT_MAX);dp[0] 0;for(int i 1; i * i < n; i){for(int j i * i; j < n; j){dp[j] min(dp[j …...
python爬虫--某动漫信息采集
python爬虫--tx动漫 一、采集主页信息二、采集详情页信息三、代码供参考一、采集主页信息 略。 二、采集详情页信息 如上图所示,使用xpath提取详情页的标题、作者、评分、人气、评论人数等数据。 三、代码供参考 import csv import time import random import requests fr…...
使用Rollup.js快速开始构建一个前端项目
Rollup 是一个用于 JavaScript 项目的模块打包器,它将小块代码编译成更大、更复杂的代码,例如库或应用程序。Rollup 对代码模块使用 ES6 模块标准,它支持 Tree-shaking(摇树优化),可以剔除那些实际上没有被…...
10.15学习
1.程序开发的步骤 定义程序的目标→设计程序→编写代码(需要选择语言,一种语言对应一种编译器)→编译→运行程序→测试和调试程序→维护和修改程序 2.ANSI/ISO C标准 1989年ANSI批准通过,1990年ISO批准通过,因此被称…...
mongodb-7.0.14分片副本集超详细部署
mongodb介绍: 是最常用的nosql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片副本)集群。 环境准备 系统系统 BC 21.10 三台服务器:192.168.123.247/248/249 安装包:…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...
