# 實習Dcard心得 哈囉~我是肯尼,目前在 Dcard 擔任 Web Backend Intern 已經半年了,跟大家分享一下目前實習下來的心得。 ## 為何選擇Dcard實習 原因主要有兩者: + 因為 Dcard 在台灣擁有高流量的使用者,身為一個 Backend Developer 如果沒有設計過高流量系統的經驗是無法快速成長的,以往我實習過的公司都沒有如此高的使用者量,不然就是我沒有接觸高流量系統的機會。而有高流量的系統通常公司就會有很厲害的工程師值得我進去學習。 + 因為 Dcard 的主要使用者族群是大學生,那公司的風氣必定會是創新開放的,也相信對於技術方面不是守舊的,會積極跟上目前技術的趨勢並勇於嘗試。 ## 面試準備 面試準備我寫了詳細的內容在我個人Blog文章了:[面試經驗分享-Dcard公司的Web-Backend-Intern面試](https://blog.kennycoder.io/2020/07/05/%E9%9D%A2%E8%A9%A6%E7%B6%93%E9%A9%97%E5%88%86%E4%BA%AB-Dcard%E5%85%AC%E5%8F%B8%E7%9A%84Web-Backend-Intern%E9%9D%A2%E8%A9%A6/)。如果想看更詳細的介紹可以去看,這邊就簡單的分享給大家。 我以前熟悉的程式語言算是 Java 跟 Python ,但因為跟上我大 Google 乾爹的腳步,我就跑去玩玩 Golang 了,剛好 Dcard 也是在應徵會 Golang 的 Intern 。要學好一個程式語言最好的方式就是做做專案或是去公司上班挑戰囉~ + 作業題目是設計 rate-limit 的 middleware,最需要注意的就是 race condition 的問題。 + Golang 語法細節與 RDBMS 相關效能調教問題。 ## 加入 Dcard 團隊後 這邊主要分兩個部份來講,一個是公司文化及制度,一個是 Backend Team 學到的東西。 ### 公司文化及制度 公司的福利我相信在 Dcard 的夥伴很多人都會說源源不決的零食及飲料,這個一開始我是有點驚訝的,雖然我以前實習的公司也有遇過有這些福利的,但是數量級別上確實 Dcard 豐富了許多,並且週二跟週五公司都會出錢請手搖杯給員工喝,我覺得真的是Coding時的幸福小物,而且星期二還會免費請午餐,雖然很多次都是健康餐居多,很明顯是替公司的員工的健康著想但我沒有很喜歡 QQ,沒有大量的肉怎麼能幸福的Coding呢! 在公司大家都是使用 slack 軟體作為溝通的管道,在 slack 上面可以看到大家很踴躍發言並發表自己的意見,並且很多 Emoij 狂人,這在上班的時候看到其實會覺得滿有趣的。 在加入 Dcard 後也常常與PM開會的時候也可以感覺工程師與PM並不太像是上對下的關係,而是大家都是平等的交換意見與想法,而且其實工程師最怕的就是PM對於程式沒有 sense ,但是可以發現公司的許多 PM 以前可能就是這方面的科系或是曾是工程師,我認為這樣的基礎下與工程師討論功能開發是很有幫助的。 在公司每個月都會開一次重大會議,執行長會講公司目前的方向以及各部門的進度跟績效如何等等,但感覺整體會議都是採取比較歡樂的感覺,並且可以感受到執行長與底下的員工的互動比較像是朋友而不太像上對下的關係,而且都會讓所有公司員工都能自由發表意見。 ### Backend Team 其實我一開始加入後並沒有很快上手是因為很多工具並不是我以前有過經驗的,因為公司後端架構採用 Microservice 的方式,並且 service 與 service 的溝通使用大量的 GRPC 及 MessageQueue 的方式,並且後端的 service 非常的多,所以一時之間要了解每個 service 的功能是有點困難的。 再來 Backend Team 這邊開發了許多輪子供快速開發,所以第一步也是要先熟悉這些輪子怎麼使用才能運用在我自己開發的專案上。而且也要懂一些 script 腳本的撰寫,當然 container 的建立與 Kubernetes 的 deploy 機制也是需要了解的。 Backend Team 會定期舉行讀書會這點我覺得很棒,因為同事之間都會分享新的技術或是新的看法來互相交流,雖然我沒有勇氣在讀書會中分享,因為同事對我來說都太厲害啦,我只是一個非常 junior junior的 backend developer,而且有幾個同事還是有 fullstack的經驗,個人覺得自嘆不如。在有空閒的時間我也會與其他 Backend Developer 請教我不懂的技術層面,他們也都會樂意解答我的問題我覺得很感激,我覺得這個是成長的最好機會,巴著大神問問題就對了XD。 目前我進來到現在做過許多小專案或是加幾個小 feature 在現有專案,或是解決歷史 bug。例如抽卡通知、隱藏特定看板、實作使用者上傳圖片的圖床管理、新生季通知需求、首顆愛心通知需求等等。而我覺得我自己對於性能調教還是經驗不足,希望可以在透過更多大專案來讓我成長及學習。 其實我實習還有快半年的時間要繼續,那就期望我自己能夠更上一層樓,可以成為一個再也不 junior 的工程師幫助 Dcard 公司新功能上線或是修復 Bug。所以目前我都會積極寫Blog文章記錄我學了哪些東西,有興趣的人可以去看:[肯尼攻城獅部落格](https://blog.kennycoder.io) ## 給未來想要投遞實習計畫的話 如果未來有想應徵 Dcard Web Backend Intern 的朋友,可以看我部落格的面試文章哦會有幫助的。因為現在 Dcard 很多後端專案都是採用Golang的,所以我覺得熟悉Golang是必要的,Node.JS也可以熟悉一點會比較好。