[草稿]面試經驗-4

基本資料

時間:

2023年 1月

公司:

之前參加的線上讀書會在徵志工。

職位&工作內容:

  • Job Title - Data Analytics Engineer 資料分析工程師(隸屬於 Data Team)
  • Requirements - 需求條件,建議至少接觸過一項
    • 心態準備
      • 對 團隊正在努力的方向有認同感,期望從資料面切入帶給團隊更多想法
      • 習慣用資料強化解釋一件你想表達的事情
    • 工具操作
      • 使用過 python pandas 處理資料,理解如何對 DataFrame 這個資料型態做 join 或 merge 等操作
      • 使用過 SQL 撈取關連式資料庫
  • Responsibility - 加入後的生活
    • 工程端
      • 建立資料管線 (data pipeline)
      • 目前我們使用 airflow,還在初期的階段
      • 將各種來源的資料透過 pipeline 匯入資料倉儲 (data warehouse)
      • 包含官網資料、批改系統資料、GTM 等等
      • 目前尚未建立,可能使用 AWS RDS
    • 分析端
      • 介接視覺化工具以建立資料儀表板 (dashboard)
      • 可能使用 AWS 服務或是開源 BI Tool (metabase)
      • 和 PM 合作,規劃資料應用功能
  • Needs to know - 必須先知道的
    • 資料量不大,是嘗試新技術的好機會。但離 ML 應用可能有點遠
    • 前期會碰比較多工程的技術,例如 git, CI/CD。基礎建設搭起來後才有比較多分析可以玩
    • 我們有些經驗可以指引,但無法完全手把手教學,你得花時間一起摸索
    • 預期平均每週投入時間約 6~8 小時

申請表單

4. 自我介紹(簡述學經歷、專長或興趣)
  • 學經歷:
    • SEO專員 (3 years)
    • 廣告投手 (4 months)
    • 主修應英系 / 輔修資管系
  • 專長或興趣:
    • 表演藝術(戲劇、電影、樂團表演、靜態展演)
    • 出去玩,山與海
    • 社會議題
    • 解決問題
5. 想要加入 團隊的動機/原因
  • 給自己一個機會練功(當初參加團隊則是給自己一個藉口好好學Python)
  • 認識大師們,互相學習(當初參加團隊則是想認識能一起學習的夥伴)
  • 真正參與過之後,確定自己喜歡團隊的氣氛,想認識大家
7. 請詳述報名(一)職缺的原因及列舉相關經歷
  • 熟稔GTM,安裝追蹤數十家網站,能使用JavaScript, Data Layer 追蹤自訂事件,曾透過自訂HTML實作 json-ld markup,目前正在設計範本,供公司自開發的CMS使用。
  • 有SQL撈取資料經驗,利用SQL來 mapping 網站DB以及 Google Analytics 資料,找到網站表單bug。
  • 有BigQuery經驗,前陣子在設計GA4的資料格式,供未來分析使用。最近在處理GCP權限問題。
  • 在讀書會專案中有使用pandas經驗,由夥伴寫出初步程式碼後,我負責優化。除了資料處理外,也使用pandas視覺化。
  • 瀏覽過所有職缺後,「資料分析工程師」是目前唯一與我興趣、專長,及未來方向三者皆重疊的職缺。
  • 雖對AWS生態系統不熟,也沒有接觸過airflow,但若能對團隊有貢獻,又有機會累積Pandas & SQL 的經驗,會是我理想的職缺。
8. 若你成功擔任(一)職缺的角色,你最想做什麼改變
  • 做好基礎建設
  • 呈現資料的價值,使團隊助益

一面 (75 min.)

過程:

    對象是未來的主管,之前讀書換作專案時就有看過他,也在其他次的線上討論中有打過照面,所以不太有壓力。

    第一階段

    一開始,面試官主動自我介紹後,才請我自我介紹。他問問題的方法都是讓我分享經驗(eg., 你在專案中通常扮演甚麼角色、可不可以分享一下妳之前工作的經驗)。現在回想起來在問題的背後應該有想知道某些事情,或我某方面的工作習慣,但當下回答的邏輯很混亂,就真的只是在分享一件事情給他聽,講到最後我也不太確定他當初問什麼,所以我反覆跟他詢問&確認問題,搞得我很胡言亂語的感覺。

    第二階段

    接下來是很多的情境題例如「希望加入團隊後可以做什麼」或「團隊現在正在處理什麼題目,我有什麼想法」。有些實際上的問題我沒有想過,很難回答,例如「現在團隊是用臉書社團來當學員的討論區,那我會怎麼去分析」,我提了幾個方向像是API或爬蟲,雖然第一階段都回答得還可以,但這個情境題階段應該從回答聽得出來我很菜...

    第三階段

    接下來是考SQL,面試官給了我一份doc檔大致如下:

Background

基礎班讀書會最重要的環節 ——「專案實作」

在分組籌備時,常會遇到學員無法找齊規定組員數量的問題。

  1. 如何找出尚未提交專案的學員名單?

  2. 如何計算組員數量分布及對應組數?

  3. 如何找出已經提交專案,但組員數量不合規定 (3-4人) 的組別名單?


Table Schema

project_students (僅含當期專案)

id

project_id

student_id

1

201

7001

2

201

7002

3

202

7003

4

202

7004

5

202

7005


users (僅含當期學員)

id

email

7001

a700001@gmail.com

7002

a700002@gmail.com

7003

a700003@gmail.com

7004

a700004@gmail.com

以上為doc
我看到題目覺得邏輯上不難,但因為平常太少用SQL,怎麼樣都寫不下去。我硬著頭皮先跟考官釐清問題跟期望的答案,然後說我做完在寄信給考官,他也很佛心的說可以。下線後我用先用Excel製作一份假資料,丟進Navicat裡面試寫SQL,最後把我的code跟執行的截圖貼到doc上。
資料表




第一題

SELECT
	users.id
FROM
	`users`
LEFT JOIN `project_students` ON project_students.student_id = users.id
WHERE
	project_id IS NULL
-- 未考量多對多情境


第二題

SELECT
	*
FROM
	(
		SELECT
			num_of_students,
			COUNT(project_id) AS num_of_project
		FROM
			(
				SELECT
					project_id,
					COUNT(student_id) AS num_of_students
				FROM
					project_students
				GROUP BY
					project_id
			) AS FORM_1
		GROUP BY
			num_of_students
	) AS FORM_2
ORDER BY
	num_of_students -- It's sooo ugly but ORDER BY doesn't work with GROUP BY


第三題

SELECT
	*
FROM
	(
		SELECT
			project_id,
			COUNT(student_id) AS num_of_students
		FROM
			project_students
		GROUP BY
			project_id
	) AS FORM_1
WHERE
	num_of_students NOT BETWEEN 3
AND 4



===寫到這,待補CODE===
之前有人走?->介紹創立跟架構
把data拆出來是我想要的
如何拿FB的資料
多少人應徵:6-7

心得:

考試讓我深深體會自己的不足
「我可以做」是未來的事,在那之前要證明,所以要刷題。不是看到題目「阿這個我會,應該是這樣那樣」就跳過,我就是缺少實戰
說話邏輯混亂,應該要適時帶到知識點
太散漫,好險洗澡有想一些問題
最後SQL直接烙賽,還一堆人線上看我題目,我還是弄出來了
之後還真的有努力刷題

二面 (45 min.)

過程:

如何決定二面人選:只是看看人格特質,需要有想法跟正能量的人,如果只找一個仁近來工作,效益太低
未來:曝光現有內容、讓更多人學py、進階工作坊、要更多錢不管從學員、募款、企業
難點:別人太會行銷(誇大)而不選擇我們

很健康,在意團隊跟團隊個人的成長
地推高中生,缺人力跟規劃的人
讀書會 / 教學網站 / 行銷團隊 共30~40人
優勢:助教、題庫跟judge系統

我的優勢:廣告投放、看法想法(他看過我的fb)、運用工具

上了至少確定我的人格特質沒問題

多少人應徵:沒回

後記

錄取後幾次開會,主管都有recall我面試的想法,讓我覺得他好認真反而我好混

留言

這個網誌中的熱門文章

如何在BigQuery內呈現類似舊版GA的事件表格

學習紀錄 - 1

面試經驗 - 2