2021 Dcard Web Backend Intern 面試經驗分享

距離收到錄取通知已經有兩個月了,決定來分享一下當初去 Dcard 面試的心得跟過程~

雖然我本來就有在新創公司工作,但是新創公司樣樣都要自己來,而且沒有一個 Mentor 帶領,產品也比較沒有流量,很難判斷自己做出的系統架構是不是一個好的架構,因此今年決定申請 Dcard 實習,來體驗看看高流量的 backend 開發!

面試流程

Dcard 的面試流程算是滿透明的,基本上分成 3 大關,履歷審查、第一次面試跟第二次面試。

整個流程走的也算滿快的,大概一個月就會把整個面試流程走完,而且各個階段有沒有通過都會寄信通知,非常棒~

履歷審查

一開始當然是附上履歷!履歷的部分我是寫滿一頁整而已,基本上就是寫上工作經歷、寫過比較重要的 Side Project、黑客松、讀書會等等。

因為我個人認為 Dcard 還滿看重你的自學能力以及你是不是喜歡與人分享交流,所以放的內容都是比較偏自學、交流性質的活動,一些在學校做過的助教跟網頁開發的打工倒是都沒有放進去。

如果想要參考履歷要怎麼寫的話,可以到 關於我 頁面查看。

申請 Dcard 實習有個比較特別的地方是要交一份作業,是實作一個 Rate Limiter Middleware,也就是如果在一定時間內超過一定數量的 Requests 要回傳 429 Too Many Requests,基本上語言方法不限,我是用 NodeJS + Redis 來實作的。詳細可以參考我的 Github Repo

另外申請實習是可以附上應徵信的,裡面可以附上一些履歷沒有提到的內容(履歷主要以技術背景為主),例如我在應徵信裡面提到了我為什麼會想來 Dcard 參加實習以及一些個人特質。想參考的可以看這裡

第一次面試

Talent Operation Team (HR)

首先是 HR 面試,總時間是一小時(但我不到一小時就結束了)。一開始是 5 分鐘的自我介紹,想參考的可以看這裡。再來就是回答 HR 的問題,基本上我個人感覺 Dcard 很在乎你對公司的看法、你來參加的動機等等,比如說我有被問到「為什麼會在大三的時候就想要來做 Intern?」或是「為什麼會走 Backend 這條路而不是其他方向」。HR 也會針對你的履歷提出問題,例如我有被問到「為什麼會寫 Blog?」,讓我真的覺得 Dcard 的 HR 很用心也很親切,在聊天的過程中就能體會出來你的履歷有被認真的看過,而且 HR 對於資訊這方面的知識也都略知一二。

總之 HR 面試關整體來說就很像在聊天一樣,重點就是履歷一定不能造假!最後會問你有沒有任何想問的問題,如果沒有的話就會進到開發面試。

Development Team

由 Backend 的成員來面試,總時間也是一小時(但我也是不到一小時),聽說本來是有 Backend Team 的主管會來的,但我去的時間好像剛好主管在開會,所以就是兩名 Backend Engineer 來幫我面試~

這關主要就是考驗你的技術實力了,不過我覺得問的問題還滿隨性的,除了最後一題之外,其他問題都是圍繞著你的履歷上面有提到的技術,跟一些滿基礎的 Backend 知識來提問的。我有被問到的問題跟我的一些回答包括:

  1. RDBMS v.s NoSQL 分別是什麼?
    RDBMS 主要利用資料正規化來分割資料庫,建成一張張表後利用 Join 的方式來合併資料。
    NoSQL 給了方便的彈性,有很多類型,例如:Document based、Graph、Key-Value…
  2. RDBMS v.s NoSQL 要怎麼做出選擇?
    RDMBS 跟 NoSQL 的 use case 不太一樣,RDBMS 比較適合被用在需要確保 ACID 的資料上,以確保資料的一致性;而 NoSQL 通常都是希望可以分散式來提高可以性以及可擴充性。另外還有一個考量的點是 RDBMS 的 Join 會使得他不適合用在微服務上,因為跨 services 的 transactions 需要額外的 effort 來實作。
  3. ACID 是什麼?
    A 是 Atomic,原子性,一個事務不是全部成功就是全部失敗。
    C 是 Consistency,事務完成後資料正確無誤。
    I 是 Isolation,事務有隔離級別,確保同時發生的事務不會發生錯誤。
    D 是 Durability,事務一旦成功資料就不會遺失。
  4. Authentication 跟 Authorization 的差別。
    Authentication 驗證身份,例如帳號密碼;Authorization 驗證有沒有權限使用這個功能。
  5. Authentication 怎麼做?
    可以用 JWT。
  6. 簡單的說明 JWT 的技術。
    JWT 是 JSON Web Token,主要分成三段,用 . 連接起來。第一段是 header,第二段是 payload,前兩段都用 Base64 編碼,最後一段是前兩段的加密文。可以用來防止攜帶的資訊被修改,因為竄改者無法知道第三段的加密結果為何。
  7. 給你兩個很長的 SQL 跟他們的 Explain 結果,請你講解兩段 SQL 做了什麼,以及他們的差別。
    這題基本上是最難的了,因為那時候對 PostgreSQL 還不是很熟,所以其實沒有回答的很好。但主要就是要對 SQL 語法有基礎的知識,特別是常常使用 ORM 而不是直接寫 SQL 的,至少要知道 SQL Join 怎麼使用。

總之我覺得回答的重點就在於,不要提到自己不熟的技術,因為他們很有可能繼續追問你在回答中講到的技術。而這部分的題目大概也是因人而異,我被問到的題目跟我在準備時看到其他人分享的題目也是完全不相同,所以在履歷裡面也近量別寫自已不熟的技術吧xD,不然大概有大機會會被問倒。

最後也會詢問有沒有什麼想問的,基本上我有詢問他們用的框架、他們的開發流程等等。

第二次面試

Talent Operation Manager (HR Manager)

這關是 30 分鐘。基本上跟第一次面試的 HR 面試差不多,但內容會偏向更大方向的討論。一樣真的要稱讚一下 Dcard 的 HR,都非常的親切&準備充足。

CEO - Kytu

首先,CEO 的名字的念法跟 Kit 是同音的,這個我在去面試前查了好久才查到xD。

這關是 30 分鐘。基本上在別人的面試分享有看到,就是跟 CEO 的聊天關。基本上一坐下就會問你有沒有什麼想問的問題,所以一定要提前準備一些你想要問的問題,除非你的臨場反應真的很好。

基本上想要跟 CEO 聊什麼都沒問題,我有詢問關於 Dcard 從一個 10 人團隊到現在 200 人的管理問題,還有詢問一些職涯規劃,討論讀研、是否要出國等問題。

問題可以盡量準備多一點,因為 CEO 回答的速度還滿快的。

總結

Dcard 的面試總體感受是滿好的,非常看重你對公司的看法。第一次面試時還會帶你參觀辦公室,帶你到他們的零食區拿食物;第二次面試時 CEO 還請喝星巴克,雖然我根本不敢在當下喝就是了xD

基本上如果說要準備的話,我強烈建議多去看看一些關於 Dcard 的文章報導,或是 CEO 的演講也可以稍微看看,會對你在面試時的應答還滿有幫助的~

雖然面試整體過程是走比較輕鬆的路線,但我認為 Dcard 對實習生的審核是非常重視也不隨便的!我認為 Dcard 還滿重視面對問題的邏輯思維和主動學習的能力,所以如果你有在寫 blog 的話,應該是大大加分!

最後,如果這篇文章對你有幫助的話,可以幫我按個喜歡、或是留言!各位的支持就是我寫作的最大動力。有任何想問的問題也可以在底下留言喔~