面试不是一场遭遇战
引言
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 安装包:…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
