Contents

面试准备和相关学习

我的情况

面向 Data Engineer 求职。

在学校学过基本的 ML, R, 算法和数据库,能写代码能做题,做过一些简单的项目和实习。

但对于产品应该怎么设计,为什么要用某件工具,用了这些工具/方法有什么好处,是不太了解的。

鉴于前一次面试失败,面试官给的评价是「没用过 Jenkins,不懂 CI/CD」「没用过 Lambda」,我开始了解 System Design。

 

System Design 基础怎么补

  • 找到我曾经用过的工具和他们的竞品,了解各自特点(比如数据库中的 RedShift, MongoDB 和 BigQuery,再比如Hadoop 和 Spark)。

  • 看 job description 时,如果看到没有用过的工具,就去看 Demo 和 Tutorial (比如 Terraform)。

  • 这支 YouTube 短片帮助啥都不懂的我大致了解 System Design 是什么,问什么,为什么需要考虑这些问题

  • 这里有一些补充知识点:GitHub Repo

  • 97 Things Every Data Engineer Should Know 靠这本书快速了解细节。

  • Designing Data-Intensive Applications 看到好多次这本封面是豪猪的书了。

  • 计算机教育中缺失的一课

  • DevOps Exercises 有大量相关的题目。

  • Alex Xu 的博客,可以免费订阅他的 newsletter。Alex Xu 的 System Design 这本书也可以看看。这里有他的Github

  • Seattle Data Guy 的博客。

 

具体的案例

  • Data Engineer 如何保证 Privacy Concern 数据安全。这里提到几个点:

    1. Data Suppression,直接删除关键信息列;
    2. Data Tokenization,把敏感信息换成不那么敏感的可公开信息;
    3. Encryption,加密;
    4. Data Generalisation,比如把具体的个体数据用整体的数据分布表示。
  • Data Engineer 如何保证 Data Quality 数据质量:

    1. Data Profiling
    2. Data Auditing
    3. Data Validation
    4. Data Cleaning
  • Database Capacity Planning:

    1. 预估CPU需求
    2. 预估数据量
    3. 预估响应时间,延迟
  • SQL优化常见手段之indexing

  • MySQL Cluster搭建和应用。

  • Grafana Alloy如何监控数据库状态。

  • System Design Questions有部分经典system design问题和答案可以参考。

  • Vamei的协议森林简单讲解各类协议的功能和作用。

  • 美团的A/B Testing方案

  • Facebook 在 2019 年的文章提到过 Scribe 如何处理每小时 petabytes 级别的日志数据

  • 参考这个网站的面试问题 比如 Redshift 和 Spark 的优缺点一类的。

  • Confluent - Kafka in Netflix Studio 这篇博客简单说明 Netflix 怎么使用 Kafka。如果不了解 Kafka,可以看看这里

  • NEU CS 教授的 Ian Gorton 的 Medium 博客,可以免费阅读。

  • Streaming data 可能遇到的问题和怎么处理(参考 YouTube)。

  • Taylor Swift 演唱会的抢票系统应给怎么设计,才能保证不管从欧洲还是北美抢票都不会被延迟打乱顺序?

 

刷题

 

Machine Learning

以下是曾经遇到过关于Machine Learning的思考题:

  • 如何从一个人的手机地理位置数据看出来这个人是在汽车上还是在火车上?
  • 如果有两个人两部手机,都在同一辆轿车上,拿到手机的数据之后怎么判断谁是司机谁不是?

 

其他