beanfun! Platform Team 實習經驗分享

Platform team intern

beanfun! Tech
beanfun
Oct 2, 2023

--

蒸溽的酷暑漸漸夾帶一絲涼意,也象徵著我在beanfun!將近兩個月的實習到了尾聲。人生中的第一個實習,讓今年的暑假成為自己近幾年以來最為充實又有成長的時光。有時會覺得距離我第一次與橘子華麗壯觀的大樓相遇也才過了七、八週; 與此同時卻又會想著,這麼快就在橘子待了快一個暑假了啊。

從國中畢業以後,我就陸續有不少打工的經驗,其中有利用自己成績優勢,在補習班教學的;也有完全靠體力,讓我體會到賺錢怎麼能這麼累的。但隨著將從資工系大學部畢業,並緊接著要在這條路越走越遠,我發現,若沒有將自己所學好好發揮,絕對會是我的一大遺憾。

在大學期間,我曾數度為學習感到迷惘與徬徨,如果能提早獲得實習的經驗,對自己的人生規劃、該學什麼,以及為何而學,應該會更有體悟;但矛盾的是,當時所學不精的我,又要怎麼找到一個有加分效果的實習機會呢?

今年一月推甄上岸了之後,原本找的教授規定我們暑假就開始進實驗室,那時我也相當樂意接受安排,當然沒有任何找實習的打算。直到五、六月,隨著即將入學,我開始對這個實驗室和研究領域越來越惶恐。終於,最後我下定了決心,更換到另一個我更喜歡的實驗室,老師沒有規定要暑假就開始做事,於是我內心想到了之前對於實習的念頭,開始瘋狂的準備。

那時很多實習的機會都已經招滿了,就在我經歷了多家公司的面試和筆試之後,我看到求職網站的推薦職缺出現了遊戲橘子的網頁實習。我想是因為那時投的幾個職缺都是前後端開發相關,而會選擇這個方向則是因為我預期的研究領域:人機互動,在某方面可以與前端有很大關係。如果之後是往這方面發展,很大的機率我需要的技能組會和前端工程師重疊。

那時求職網站上對於工作的內容寫的比較模糊,因此我對於這個工作最大的認識,就只有遊戲橘子這個對我來講相對響亮的名號了。小時候和爸爸常常會玩大宇的“大富翁”,那是我對於遊戲的第一個啟蒙。從那之後我就體驗過許多類型的遊戲,成為了一個midcore gamer。那些遊戲中雖然沒有與遊戲橘子相關的,但畢竟對於遊戲公司我就是抱持著好奇心。

於是,我也沒多想,就投遞了履歷。幾天後收到了面試邀請,我抱著平靜的心情接受了面試,和面試官 — 也就是我後來進入的platform team的manager — 面對面聊了一陣子。過程中發現兩件令我驚訝的事,其一是發現團隊對實習生最重視的並不是技術能力,而是個人特質與背景;其二則是從面試官的介紹中,聽到公司的文化相當活潑自由,雖然當下有些半信半疑(畢竟,台商…),但卻開始對公司有了不同期待。從介紹中我也才逐漸了解,我要加入的是遊戲橘子旗下的beanfun,隸屬的團隊則是platform team。這個組,顧名思義,一方面為beanfun服務架設面對使用者的網站,另一方面也負責beanfun內部營運團隊要使用的管理平台。

兩天後,我接到了實習錄取的通知,當下感到有些驚喜,考慮一下後我便決定來體驗看看。於是,我暫時成為了橘人,開始了不長不短的暑期實習生活…。

如同面試中manager所提到的,這份實習會有蠻多的學習空間,包含了許多時間是讓我自行去學習指定的內容。因為manager還有另一個團隊要帶,因此她也找了一位mentor專門帶我。剛進來的前幾天,便是mentor帶著我熟悉大大小小的事物,讓我能夠快速地融入到這個環境中。之後,我接收到的第一個任務,是學習Vue.js的框架應用,並且要實作一個簡單的todo list,mentor給了我不少教學網站。在此之前,我雖然有自學過前端,但那已是兩年前的事,而且接觸的都只是最基礎的那種,前端框架這類東西,雖然一直都有耳聞,但那時的我還真的對它是什麼沒有想法。而在學習框架之前,我也發現對前端的東西真的已經只剩印象,於是第一週,我都在複習之前的所學。platform team的同仁對我真的很包容,有一位跟我一樣是成大的學長,還介紹我一個youtube頻道,裡面收錄了各種網頁相關的教學,方便我快速學習。並且替我解惑一些js的基礎觀念。第二週的週三,我便進行了第一次的成果發表,讓大家看看我這一週半來學習並實作的狀況。成大學長和mentor給了我很多建議,我也學到了不少軟體工程的觀念,包括如何降低程式碼的耦合性。

從第二天開始,我每天都會加入團隊的「站會」中,大家輪流報告自己前一日的進度,以及今日預期完成目標。這樣聽了三十幾次,從一開始完全聽不懂報告內容,到後來已經大概知道在做什麼了。透過站會我可以對團隊的大家各自的分工有更深入的了解,也能參與到SCRUM流程之中,感受敏捷開發的工作節奏和方式。前期會有PM過來參加我們的站會,那時我已經進行到第二個任務(在Jira上拿到了第二個單),要將後台的Landing Page預覽按照UI/UX那邊的新設計進行調整。因此,我能對以前常常聽聞的跨部門合作和溝通有更實際的了解,我們作為engineer就有點像產品的下游端,負責實現PM和UI/UX團隊的需求規劃和設計。我也在這個任務中學會怎麼看Figma — 這個以前在了解UI/UX工作內容的時候就有聽說過的工具。

在Landing Page預覽的開發中,我發現我對css相當不熟,許多排版的東西跟一般寫程式相比更需要knowhow,這讓我折騰了一段時間。有問題時我會先上網查詢,嘗試自己解決問題,有時真沒辦法自己解決時我便會私訊mentor,她會視狀況複雜度選擇訊息回覆,或是直接到我位子上手把手帶我。我真的很感謝我mentor的耐心教導。在一開始他可能會直接告訴我答案,到後來他會漸漸轉為引導,讓我自己去思考可能的問題為何,並梳理自己目前的理解。這也讓我不會僅限於死背答案,而能夠真正的培養出一點對於前端debug的能力。

實習的任務和學校比起來,不一樣的點是整個專案並非從0開始,而是已被前人構築出一個相對完整的架構,我所要做的是看懂這個架構,並且在不改動其他人心血的情況下,為整個架構增加一點錦上添花的功能。這種體驗真的是以前在學校不會有的。在學校,即使要和別人協作一個專案,我也是最初參與的元老,同時因為開發時間不長,團隊規模也不大,因此對於程式碼自然很熟悉。但在這裡或是任何公司,自己單打獨鬥是行不通的,要怎麼各司其職,並且每個人的程式碼不會打架、共同協作,就是重中之重了。除了避免code conflict以外,code style也是非常重要的是,除了可以讓程式碼更簡潔一致,也能讓其他人來看的時候不會有太多困擾。我認為自己在大學期間已經有相對注意自己的code style,包括命名原則、換行、註解等等,但在這裡才發現仍然有許多進步空間。

在我自認Landing Page預覽的開發“差不多”告一段落後,mentor帶我認識了一下大家協作用的gitlab。我大學期間用的比較多的是github,這倒影響不大,問題是我對git本身的概念就不是很熟,尤其是在版本間如何同步和避免衝突更是一直一團混亂,只知道有幾個危險但好用的指令可以用(git push -f …好暴力好刺激XDD)。現在加入團隊,當然不允許這樣亂搞了。mentor和成大學長跟我仔細說明,包括rebase和merge的區別。我首先將程式push到我的origin,接著發了MR,請小組內的成員幫我過目。不出所料地被抓到了各式各樣的大小問題,在經過幾天的修修改改後,總算reslove all threads,可以被merge進stage裡了。

mentor接著帶了我跑了一次上版的過程,我也見識到了CI/CD的威力,看似繁雜的測試在幾分鐘間就自動完成了。上版完成後,接著就會正式接觸PM,請他檢視是否完成了需求。想當然還是有一些小問題是單獨看一個檔案不會有的,但放到整個環境中,暴露在各種條件下,就會導致出錯。那時我剛好去參加人機互動相關的工作坊請假,多虧團隊成員出手,他們三兩下就把問題解決了。我也真的佩服團隊各位的實力,每個人對於自己在做的事都信手捻來,明明看起來年紀也沒比我大太多,但是卻各個經驗老道。

第二個任務結束後,我進入了後端的領域,由團隊中專門負責後端的成員帶我了解專案中有關後端的框架,主要是處理各個功能會用到的api,以及去資料庫存取資料的過程。我一樣花了幾天大概認識一下node.js和nest.js的觀念,因為時間不算非常充裕,所以很快就開始跳進去實作流程中了。這一部分相比第二個任務沒有太大困難,因為有其他類似架構的不同檔案可以參考,所以就是大概看懂那些檔案寫的代表甚麼之後,照著修改就可以了。不過網頁間處理http request的流程和處理資料庫的過程都有點抽象、陌生,這部分感覺未來還要再多花時間去熟悉。這部分能夠處理的還算順利一樣是有賴於後端團隊的學姊積極地回答我的問題、關心我寫的狀況,只能說大家真的很照顧我。

實習的這段期間雖然我大部分都在學習,而不是帶著滿滿的即戰力投入到platform team主要的工作中,但透過參與前後端的那兩個專案,我也對整個網頁開發的流程和細節更加了解,也稍稍的分擔了一些小任務。我在這個領域還沒有太多經驗,多虧組內的各位前輩們不厭其煩地引導我,讓我能夠像一塊海棉快速而充分地吸收。但另一方面我對自己的學習力是有自信的,在請教前輩們的過程中我也時不時舉一反三,希望在某種程度上我們雙方是教學相長的。

在橘子beanfun實習的這兩個月,我享受著公司自由如外商的文化,每天在寬敞明亮高級舒適的環境辦公,中午享用普橘島如同餐廳等級的私廚餐,著實令人感到滿足,也徹底打破我對遊戲橘子的既定印象。而工作內容所給我帶來的體驗,更是完全的達到我原本應徵實習的目的,讓我對業界的工作狀況,有了深刻的體悟。我也在實習過程中,逐漸了解自己的優勢與劣勢,並讓未來的人生藍圖愈發清晰。我很感謝橘子和manager給我這個機會,讓我在大學畢業之後,有了一個非常不一樣且難忘的暑假。

筆者Leo Wang於2023暑期間加入beanfun!實習計畫

Leo’s linkedin

--

--