剛好看到前面有人在問 Intel 和 Line 實習該選哪一間的文章,雖然在 intel 的實習還
剩一個月,想說疫情在家閒著也是閒著就來寫點實習的心得,我大學做過三間實習,但第
一間是台大的新創,受眾應該不多就先跳過。
1. 國泰金控 雲端科實習生
我參加的是學期中的 CAP 計畫,和重視 networking 的暑期實習 CIP 計畫有很大的不同
,這個計畫只招收台大的學生,待遇倒是挺不錯的,我參加的那屆工作總時數只要求要
>200 小時,完成計畫會給一筆獎金,算下來時薪大概接近五百。
我加入的是數數發的雲端部門。這個部門在我加入時才剛成立半年、我主管只比我早進來
一個月,所以他們一開始對實習生好像沒有什麼具體的規劃,就放牛吃草的讓我研究我有
興趣的東西,主管也會看到什麼有趣的主題就把資源傳給我,雖然說有點隨性,但每次上
班都會在一開始先跟主管 sync 今天要做的事情,下班前也會找主管匯報進度,所以學習
的步調還算有在正軌,這段時間碰了 Drone、Line 推播、Prometheus/Grafana、接Slack
API 等等。
中期的工作開始就比較有系統,這時的內容大致上分兩個部分,一部分是研究 aws 的各
項服務,這種典型的一天就是挑一個 aws 服務一邊看官方文件一邊實作,最後再把流程
寫成 md 給主管看;另一部份則是和另一個實習生同事合作,他寫 spring boot 的
linebot,我幫他建一個全雲端的 CI/CD Pipeline。這段時間有研究的 aws 服務包含
EC2 (Auto Scaling, Load Balancer), DMS, SES, CodePipeline, Lambda, cdk 等等,
而 Linebot 的 CI/CD pipeline 最後用到的服務包含了 EKS, S3, DynamoDB, Route53,
也在 EKS 內用 sidecar 的方式建了一個 vault 放一些 token 之類的,kubernetes 大
概就是一些 loadbalancer, deployment, service 之類的簡單應用,最讓人挫折的應該
是 irsa,沒真正搞懂過這東西。
前期學的東西可能還是以前做 side project 的延伸,中後期碰到的這些雲端、
kubernetes 等技術就真的是頭一次碰,又受限於時間,大致上每項服務大概都是碰個入
門而已,即使如此也已經收穫非常多,可以用公司的資源開雲端的服務真的超划算,平常
自己玩根本不會想要花錢買方便,都是一台機器硬幹 cache, db, dns server 之類的,
我就窮XD
這份實習最明顯的收穫就是大大拓廣了視野吧,幾乎每天上班研究的都是一項不同的技術
,而且碰的都是系統架構面的東西,這本來應該在很多公司是 senior 才會需要考慮的事
情,我卻有幸在實習的階段就得以從這麼高的角度來檢視、實作系統,也是在這段時間我
開始學習思考技術選型,像是部門開周會的時候問我應不應該將在 gitlab 的程式碼搬遷
到 CodePipeline,我回答他們雖然搬到同一個平台有利於整合,但 CodePipeline 功能
不算完整,也要考慮設定檔重寫的搬遷成本。最後他們不知道有沒有考慮我的意見,不過
的確沒有搬。當然,我只玩了 CodePipeline 兩三天,寫出這段大概會貽笑大方,但這的
確是一段很寶貴的經驗,讓我在下一份實習或做 side project 時都盡可能地先深入思考
該選哪一門技術,或者該不該引入新的系統等等。
另外值得一提的是這個部門的向心力滿好的,同事互動良好,而且學習慾都很高,群組會
互相交流社群的資訊,也會開技術的讀書會(是認真到會排進度,大家輪流發表的那種)
,我要走的時候他們正在研究 DDD,下一屆的實習生好像也是做這方面相關的。
也是很幸運在雲端科剛成立沒多久時就加入,才能有機會參與到新的技術從零到一,建立
或引入的時期,唯一可惜的地方是沒什麼 networking 的活動,所以不太會認識到其他部
門的實習生,但既然在技術上的收穫滿滿,也就不貪心多求什麼,總之很推薦這個部門和
這份實習機會!
2. Intel Chrome Automation
前兩份實習的公司或部門都是偏新創的風氣,想說去大公司體驗不同的環境,就選了
intel。大家想到 intel 應該都是想到韌體或硬體工程師吧?不過我在 Chromebook 部
門做的這個 Automation 實習,做的事情大致上還是滿軟的。主要內容就是 optimize 一
個給客戶使用的 python script 的 CI/CD Pipeline,他們在我進來前有土炮用 gitlab
弄了一個能動的,但嫌太慢。
我拿到程式碼的權限之後開始研究,嗯這的確是...滿土炮的,就是常見的用 Docker 當
VM,在裡面跑 shell script。我用 docker build 會有 cache 的特性,幫他們把套件
安裝的步驟 cache 住,然後切 stage,生 artifact 等等,這部份說來容易,一些稍難
的地方是他們 CI 有用 python 寫一個簡單的 script,大約幾千行的 code 要轉成
dockerfile、shell script、ci 的 yml,而且不同 CPU 代號要弄的 Pipeline 不同,
大概這些點比較麻煩而已。
我從進公司開始邊內訓邊看 code,大約花了十五個工作天完成這件工作,也是運氣好剛
好前一份工作幾乎都在跟 gitlab 打交道才能這麼快就有產出,很榮幸的沒多久就被問到
要不要延長實習(本來是只有暑期);暑假後半段幫他們弄了 CD 的部分(其實就是把程
式碼傳到實體機器去 run 一些我自己寫的 pytest 的 code),再之後就是接一些內部
scan tool 的 API,把本來手動上傳 scan 的流程整進 Pipeline,或偶爾會幫忙寫一些
簡單的韌體的 code;這段時間比較閒都在當薪水小偷,到最近由於公司 policy 變更,
開始研究怎麼從 gitlab 搬到 github 才開始比較忙。
雖然現在 intel 是過街老鼠人人喊打,我還是有感受到很多優點啦,首先是重視 1-1 (
雖然應該很多 Big Tech 都有類似的文化),可以跟公司內的任何人約一對一面談,像我
有些實習生同事就和台灣的 Site Manager 聊了不少,當然,定期和主管 1-1 是少不了
的,每次的交談收穫都很豐富,也有點遺憾沒有趁這個機會多找一些做韌體的前輩聊;權
限對我也滿開放的,雖然都要事先申請(畢竟大公司該走的流程還是要走),但只要是我
工作需要幾乎都不囉嗦,特別提這點是因為和在微軟實習的朋友閒聊,他 refactor 弄完
沒有手動 build 的權限,只能用發 PR 的方式去觸發 Pipeline 才會知道自己有沒有寫
爛;我聽到的當下挺傻眼的,還好在 intel 沒有經歷到這種鳥事,反而我常常需要主動
的去和國外的 IT 團隊打交道,討資源、開 issue 等等。
在 intel,會找實習生進來的主管多抱著盡社會責任的心態,或者如我主管是想要看看學
生能不能用新的技術帶給團隊一些啟發,在這樣的背景下,實習生其實是很被允許犯錯的
,我感覺到的氣氛是,只有敢不敢做的問題而不需要擔心能不能做(當然內部該跑的流程
還是得跑),甚至也不用擔心做不做得完,他們很多時候找人進來交付的任務根本沒預期
會做得完XD 所以去大膽的尋找自己有興趣的來做吧,這是我覺得下一屆實習生可以好好
把握的部分。
值得一提的是我這一屆好像是公司第一次有招暑期實習生,HR 們也在暑假幫實習生們辦
了很多的活動,包含一個禮拜一次的 session,會邀請內部員工來分享職涯,在這些
session 的過程中實習生有滿多 networking 的,加上 intel 在我這屆收了特別多海歸
的留學生(也許下一屆還是?),大家社交的風氣又更盛了,在這裡我是交到滿多好朋友
的,只可惜今年疫情,這些活動大概會縮編甚至消失吧。
剛結束國泰來 intel 的時候有些不適應,習慣了辦公室有點吵鬧、群組還算熱烈的交流
,intel 的辦公室稍嫌冷漠,但後來就想通了,是這樣的環境才能讓人可以自主的決定上
班時間和要不要在家上班,自主性和團隊的向心力有時是挺難兼顧的。
至於其他缺點都是一些大公司的通病,倒是常常和同事一起抱怨公司的怪現狀居然變成上
班的樂趣之一XD
很個人的一篇心得,希望能對一些些人有收穫就值得了。