|
DA/DS 求职刷题指南(中)
楼主
来源:Young@youngtsai 7/15/2021 9:19:00 PM
前两天提到了大家对DA/DS存在的误区,分享了想申请DA/DS岗位,要从哪些方面去准备的部分要素。 Recap一下,Data Scientist/Data Analyst 通常需要集中准备的分为以下几块内容: * Machine Learning * 统计,概率与 A/B testing * Online coding(Python + R) * SQL * Product sense * Project * Extra Skills 今天将继续分享,SQL, Product Sense, Project, Extra Skills 该如何准备! 四、SQL 1. 常见面试问题 * What is the difference between union and union all? where and having? * Table【in_app_purchase】: uid: unique user id. timestamp: specific timestamp detailed to seconds. purchase amount: the amount of a one-time purchase. This is a table containing in-app purchase data. A certain user could have multiple purchases on the same day Question 1: List out the top 3 names of the users who have the most purchase amount on '2018-01-01' Question 2: Sort the table by timestamp for each user. Create a new column named "cum amount" which calculates the cumulative amount of a certain user of purchase on the same day. Question 3: For each day, calculate the growth rate of purchase amount compared to the previous day. if no result for a previous day, show 'Null'. Question 4: For each day, calculate a 30day rolling average purchase amount. * Table【Friending】 time = timestamp of the action date = human-readable timestamp, i.e, 20108-01-01 action = {'send', 'accept'} actor_id = uid of the person pressing the button to take the action target_id = uid of another person who is involved in the action. Question: what was the friend request acceptance rate for requests sent out on 2018-01-01? * 题目二涵盖了简单的 aggregate 问题,cumulative 问题,rolling window 问题等 等。搞定这些,其他的都只是一些简单变形。 题目三涵盖了 self-join,并且有一些 tricky 的大于等于号的应用,有兴趣可以在地 里查一下 Facebook 面经的解答。 其他的题目无非是多了一些 table,join 麻烦一些或者加了一些 case when,难度 都不会有太大的变化。做好几个经典题,然后自己整理好就可以以不变应万变了。 2. 相关资料准备 * 扫盲网站:SQL ZOO 和 W3schools,非常实用,适合翻阅。 * 两个 Udemy 的 SQL 课:SQL - MySQL for Data Analytics and Business Intelligence 和 The Ultimate MySQL Bootcamp * 刷题的话,Leetcode上有一些题,可以做一下。还有好心人直接做了个整理,在这里: summary of sql in leetcode。 * Hackerrank 上的题自然是要全刷光的,因为难度非常简单,快的话一两天也许就做完了。 * DataCamp: Data Gathering- Why API Medium https://lnkd.in/gvahtsN Intro to SQL https://lnkd.in/giWs-3N Complete SQL Bootcamp https://lnkd.in/gsgf_fF Data Visualization Medium https://lnkd.in/g3FSRgY * 更多的网站:18 best sql online learning resources * 建议自己下载一个 My SQL 装到电脑上,模拟真实的 SQL 环境来学习。Mysql 里关于Windows function 和 frame clause 的教程: Windows function ,Frame Clause。这个非常重要,windows function 可以说是 SQL 面试里的大杀器,非常节省时间而且思 路清晰。 * 建议也学会用 WITH common_table_expression。可以让你的 SQL 看起来非常整洁和容易理解。 * 最最重要的来了。如果你觉得刷完题或者学完以上的内容就万事大吉了,那还真的不 是。我一开始也有这样的误区。实际上刷完 Hackerank 也并不能帮你很快的做出我给的例题。而其实,对于 metrics 或者 product 的了解能够帮助你很好的准备 SQL 面 试,因为所有的 SQL 面试都是围绕着**与 business 相关的 metrics**而展开的。举例而言,游戏公司一定会考 DAU(daily active user)或者 purchase rate, Facebook 就会是 friend request 相关的,以此类推。所以熟悉你申请公司的业务再针对性准备 SQL,一定会事半功倍。 |