2023 Dcard Android Intern — 我寫的程式碼在 Dcard App 中!

WANG HUI TING
Dcard Tech Blog
Published in
6 min readApr 3, 2024

嗨~我是 2023 Dcard Android Intern — Rena,今天想跟大家分享一下從面試到實際在 Dcard 工作這九個月來的點點滴滴,一起來感受一下這趟精彩的旅程吧!

背景介紹

畢業於臺灣科技大學資訊管理系,目前就讀陽明交通大學資訊管理研究所。
大二時,由於學校的必修課程,我開始接觸 Android 程式開發,因此對 Android 產生興趣,大三也在專題組內擔任 app 開發者。

一開始學的時候是用 Java 語言,這次寫 Dcard 的作業時才第一次嘗試用 Kotlin 作為開發語言。

面試流程

先附上當時的時程表,跟我自己實際收到相關通知的時間點如下:

  • 4/13 收到第一次面談邀請
  • 4/26 第一次面談
  • 5/2 收到第二次面談邀請
  • 5/8 第二次面談
  • 5/15 Offer Get !

第一次面談(1 hr)with Senior Android Developer

第一次面談是線上進行,由兩位資深工程師輪流問問題,首先讓我簡單的自我介紹,接著詢問作業相關的問題,像是為什麼選這個工具,或是寫法上可能會發生的問題(邊聽提問邊驚訝地想:他們也把作業看太細了吧!)我認為作業除了完成度外,你瞭不瞭解自己的程式碼到底寫了些什麼也是相當重要的。

接著問了一些程式方面的問題,像是各元件實現的方式,或是開發時的概念,同時也問到物件導向、演算法、資料結構、網路傳輸相關的基礎問題。
我認為第一階段注重程式能力與概念,在自我介紹的過程中,如果能與資深工程師交流自己在這方面的經驗與想法,我覺得也是個不錯的作法。

第二次面談(1.5 hr)with People Team(HR) + Engineering Manager + Engineering Director

二次面談有三組面試官依序進行,每組大約是 30 分鐘左右,主要是讓面試官回答你想知道的事情,同時也讓彼此評估文化是否相同,Dcard 非常重視五個核心價值:

  • Be Open-minded
  • Keep Breaking
  • Take Ownership
  • Move Fast
  • Focus on Impact

像是我認為自己過往主動參與 Google 線上的學習活動、找尋有興趣的 Codelabs 課程,就與 Keep Breaking 的價值觀相互對應。

另外,在 Dcard Tech Blog 也有各職位實習生的心得以及人資分享的面談技巧,像是我寫履歷時就有參考 成為 Dcard Frontend Intern 前,面談的 12 個心法! 雖然是針對 Frontend 寫的求職技巧,但內容也能通用在工程相關的職位上,所以想要加入 Dcard 的同學們也可以多逛逛這些文章!

加入 Dcard 後

專案經驗

對我來說,實習過程中,最寶貴的是與團隊合作的經驗,像是 Dcard 以不同產品線分支的 delivery team,每個 team 裡都會有 Product Manager、Engineering Manager、Designer、Frontend / Backend / iOS / Android 工程師。

我負責過的專案主要可以分為頁面優化及頁面重構,這兩種類型的專案也分別學到不同的東西。在頁面優化的專案中,我們需要根據需求與設計稿建構新的畫面,若在過程中發現任何問題,則需要馬上與團隊成員進行同步,並一起想出解決的方案;而在頁面重構時,在程式碼中發現存在很多舊的寫法或架構,這時我的 mentor 會告訴我原先的寫法有什麼問題,新的寫法可以更符合什麼原則等,因此重構也能更好的瞭解並學習不同寫法之間的優劣。

當專案完成 QA 測試之後,就需要透過 GitHub 的 Pull Request 將所撰寫的程式碼請求合併回開發分支。在此過程中,reviewer 會仔細檢查程式碼是否符合團隊的 coding style,並評估是否有更簡潔的寫法,以及是否存在閃退風險等。有時,reviewer 可能對程式碼的寫法感到困惑,這時就需要進一步討論。因此,撰寫有品質的程式碼並在 Pull Request 中以簡潔明瞭的方式進行說明,是專案負責人的重要任務。

最後,這份實習讓我感到最有影響力的時候,就是看到隔週的 app changelog 出現自己的名字,這代表我負責的專案、我寫的那些程式碼真正進入到了 Dcard 的 app 之中,讓我有一種真正付出了什麼的感覺。

學習氛圍

Android team 每週都有讀書會,分享的主題非常多元,像是在各自在專案中遇過的問題、 Android 相關元件改版的比較、舊有架構的調整與新版使用方法等等。而我也試著在讀書會中分享過關於 build type / flavor 設定以及 UX 相關的主題。另外,今年在 Android team 也額外舉辦雙週一次的小型讀書會,由工程師們分享 Clean Architecture 的閱讀心得,並試圖在專案程式碼中找出那些符合或違反原則的部分,我認為這對於了解架構的重要性起了很大的幫助。

另外,剛開始實習的前兩週,我的 mentor 都會定期與我分享一些開發相關的知識。有一次其他 app 工程師聽到教學主題是 git 指令後,都表示想一起聽。於是,他就開了一場分享會,除了介紹各個指令的用法之外,也和其他工程師也一起討論了 git 在 CLI 和 GUI 使用的優缺點。

除此之外,在辦公室內也不難發現各種討論的聲音,而且並不僅限於技術上的,每週五到辦公室時,總能聽到同事們討論寵物、美食、3C、投資等各式各樣的主題,有一次旁邊的同事甚至邊吃著下午茶的鯛魚燒邊開始分享彼此的日本旅遊經驗!

工作氛圍

不免俗簡單的介紹一下福利,每週最期待的就是下午茶,只要 Slack 一跳出下午茶來了,整個辦公室的人就會瞬間朝公共區衝刺想拿到自己喜歡的口味,那個景象真的看了幾次都不適應ww

結語

真正加入 Dcard 後,我認為整個實習過程比我想像的豐富,你可以在這裡負責完整的專案、學習更深入的領域知識、認識擁有不同專長的同事、享受各式各樣的公司福利等等,我認為絕對是充實的實習生活。距離收件截止只剩幾天了,如果你也想體驗 Dcard 的實習生活,趕緊點擊下面的連結投出履歷吧!

2024 Backend Intern
2024 Frontend Intern

--

--