4 tips để vượt qua phỏng vấn Data Science
Hello mọi người! Mình là Tuấn Đoàn, 1 thành viên của Vietnam Tech Society, hiện đang làm Senior Data Scientist tại Quora. Tới hiện tại mình đã phỏng vấn khoảng rất nhiều bạn cho data scientist/senior data scientist positions, cũng như tự mình đi phỏng vấn khoảng gần chục công ty (startup, FAANG, hedge fund, etc.) cho các vị trí data/applied scientist nên hy vọng những chia sẻ hôm nay sẽ có ích cho nhiều bạn đang tìm những vị trí tương tự.
1. Biết mình phỏng vấn cho vị trí nào?
Data science vẫn là 1 lĩnh vực rất mập mờ, mỗi công ty định nghĩa 1 kiểu, nên trước khi phỏng vấn các bạn nên xem kĩ job description hoặc hỏi recruiter và hiring manager xem job scope của bạn sẽ như thế nào.
Có những role sẽ nặng về product analytics: nếu thế thì bạn sẽ gặp rất nhiều câu hỏi về how users use your product, và nên dùng metric gì để optimize for success.
Có những role nặng về experimentation: với những role này thì bạn sẽ gặp nhiều câu hỏi về A/B testing and how to analyze results, corner cases.
Có những role thiên về doing applied research on inference, prediction, or optimization problems: những role này thường yêu cầu PHD và advice của mình là bạn nên đọc nhiều white paper/ blog post của các công ty để hiểu được cách mà họ giải những bài toán trong thực tế.
2. Coding và SQL thì sao?
Tất nhiên là nên review coding và SQL, nhưng đừng dành quá nhiều thời gian cho việc này. Đa phần các công ty đều sẽ có 1 số vòng technical và sự khác biệt giữa các công ty ở vòng này khá cao. 1 số công ty chỉ hỏi mình SQL căn bản như window function, self join, 1 số công ty lại hỏi mình knapsack problem và dynamic programming nên ¯\_(ツ)_/¯.
Nhưng đối với data scientist positions thì goal của vòng này không phải là để xem bạn có code được nhanh hay không (bạn có phải SWE đâu), mà để đánh giá xem bạn có basic coding skills và có khả năng communicate với interviewer để tìm ra solution hay không. Vì lý do này mà mình thấy ít ai bị đánh rớt về coding/sql, nhưng chủ yếu là do những kỹ năng khác như product intuition, a/b testing không mạnh, cái này mình sẽ nói sau.
Nói thêm về Python và coding: hầu hết công ty sẽ tìm kiếm những kỹ năng tương tự nhau.
Ứng viên có thể khái quát hóa vấn đề thành những hàm gọn nhẹ và reusable được không?
Ứng viên có biết sử dụng những cấu trúc data cơ bản như array hay dictionary không?
Ứng viên có biết phân tích độ phức tạp (time/ space complexity) không?
Nếu giải không ra, ứng viên có thể tương tác với người phỏng vấn để tìm phương án hay không?
Nếu phỏng vấn cho tra tài liệu, ứng viên có thể tìm câu trả lời 1 cách hiệu quả hay không?
Còn thực hành thế nào thì trước khi interview nào thì mình cũng ngồi leetcode chừng 10 câu về very basic stuffs like array, hash map, sorting, etc. (I honestly cannot invert a binary tree to save my life). Nếu interview hỏi khó hơn thì mình xem nó như 1 cái problem để ngồi giải cùng interviewer.
3. Hiểu biết về chính sản phẩm đó
Bạn cần dùng thử và rút ra 1 số nhận xét cho riêng mình về sản phẩm của công ty mà mình phỏng vấn. Thông thường, data scientists sẽ có rất nhiều ảnh hưởng đến quá trình ra quyết định khi xây dựng tính năng sản phẩm, do đó người làm data phải hiểu những thông số về sản phẩm. Theo mình thấy thì cái khó nhất trong công việc của 1 data scientist là break down a big, open-ended problem into smaller problems. Một khi bạn đã nắm được cốt lõi vấn đề, getting the data to solve the problem is the easier part. Vì thế mà hầu hết các cty sẽ có case studies để hỏi bạn về product intuition và metric để hiểu hơn về quá trình làm product và những tradeoffs khác nhau.
Vậy phải làm gì? Tips của mình đó là các bạn cứ chăm dùng different type of product and ask yourself all kinds of questions.
How can Facebook App be improved?
What kind of metrics would you define to measure Instagram success?
What tradeoff Youtube was making by showing me 2 ads every video?
How does Doordash balance a 3-sided marketplace?
How would you define engagement on a SaaS product?
What kind of user features Tiktok would use to make my feed as engaging as possible?
etc.
Bạn cũng có thể tìm đọc technical blog về Data của các công ty lớn. 1 bài mình mới đọc gần đây và khá tâm đắc là bài này về Network Effect ở Doordash chẳng hạn: https://doordash.engineering/2022/02/16/balancing-network-effects-learning-effects-and-power-in-experiments
4. Nắm stats và A/B testing thật vững
Có 1 thực tế đó là rất nhiều bạn tập trung vào fancy ML/ Deep Learning techniques nhưng lại rất yếu về applied statistics. Đối với các bạn phỏng vấn product data science thì các bạn nên nắm thật vững 3 topics: hypothesis testing in the context of A/B testing (và rộng hơn là causal inference), linear regression and logistic regression.
If you run an A/B test, would you randomize on a user-level or a page load level?
Can you use a t-test if the distribution of the metrics does not look normal?
What if the Central Limit Theorem was not satisfied?
What would you think about the network effect when Uber experiments with the Surge Pricing experiment?
Nếu các bạn phỏng vấn applied/data scientist in an ML-based team thì thường nên nắm thêm về basic ML và đặc biệt là tree-based model như Random forest hay GBDT. Mình recommend quyển Trustworthy Online Controlled Experiment của Ron Kohavi nếu các bạn muốn đọc thêm về applied statistics và A/B test (https://www.amazon.com/Trustworthy-Online-Controlled-Experiments-Practical/dp/1108724264)
====================================
Hiện tại thì mình mới nghĩ ra được đến thế này. Nếu các bạn thấy useful thì mình sẽ viết thêm. Bạn nào có câu hỏi follow up gì thì có thể book 1:1 với mình ở
https://techsphere.app/mentors/tuan_nguyen_doan nhé.
1Photo
Photo background credit: Electronic circuit vector created by liuzishan - www.freepik.com