聯發青春職記|My Days in MediaTek:Part-2

目錄

從起點談起

從大學到研究所一路誤打誤撞,最後學了滿身的“硬/芯”知識,完全符合整個晶片設計產業的核心。我大學畢業於讀國立交通大學電機資訊學士班,專業方向為積體電路,研究所則畢業於交大電子研究所系統組,專注於積體電路設計。我的碩士論文題目為具有低功耗與低操作電壓的28奈米製程256Kb 6T 靜態隨機存取記憶體。畢業前一年開始積極找取研替工作,陸續收到不同公司的offer(瑞昱、群聯、晨星、Ambarella),職缺都是IC Designer,儘管底薪都是76k,如果當時選任何一家的分紅都超過發哥,我待在發哥的三年期間不巧是公司最慘澹的幾年,獲利一路下探,當時瑞昱的主管甚至提出30萬的簽約獎金,與同學互相討論,在發哥三年少領五六十萬是跑不掉的,算一算選擇“名牌”的代價不可謂不小。

2015年獲利幾乎被腰斬

最後換選擇發哥有三點原因:

  • 一、所學即所用:發哥是所有offer職缺中唯一在做我的碩論記憶體設計的
  • 二、公司招牌:發哥少說也是台灣IC設計龍頭、世界排名也在前位,就算三年研替自己沒學到東西,至少也能在經歷上漂亮(我後來在德國找實習才瞭解,大部分的軟體公司根本不認識發哥,對他們來說就是來自於亞洲的某家手機公司)
  • 三、補償遺憾,我對於當初大學沒上當時的第一志願,台大電機一直有遺憾,現在有機會去IC屆的第一志願當然要把握,按我大學長黃柏蒼教授的說法,『大部分(電機系)學生都以畢業後能夠加入聯發科為榮』,這又讓我想起來以前上3D IC的老師,他在年輕的時候錯過加入剛成立不久的聯發科,跑去美國念博士,他開玩笑地講說,當初應該恨不得把手中的英文參考書直接從天橋上丟下去,義不容辭跟他同學去聯發科。

總之,最後錄取MTK的記憶體設計部門,歸在HPT(High Performance Technology)(這個部門現在也還有非常多實驗室的學長姊在裡面工作,我還找到當初面試我副處的linkedIn),當時我心中也是充滿忐忑,主要當時台灣已經越來越多軟體新創,而我的專業是硬中之硬,圈子很小一但踏入大概很難轉行,多次自問「把自己限制真的是一個好選擇嗎?」但也沒有個答案。替代役入營前幾週的一個晚上收到錄取部門主管的一通電話,通知說因為組織內部調整所有新進的研替都要被收到WCT(Wireless Communication Technology),主管說很抱歉我不能去他們的部門,約莫後幾週安排跟新處長面談,確定加入MSP(Modem Signal Processing),這個輪調讓我的專業從晶片設計大轉成韌體通訊,更間接促成我日後走上大齡男青年轉碼農之路。(事後知道會又這個輪調,是公司內部希望加碼4G,所以把當屆可用的研替全部都調到WCT底下)

新處長Trista面談的只問一個專業問題:「你會寫C嗎?」,想到我上次寫程式語言是在大一,只敢簡單答會而不深討論,大一當時資工不比電機,軟體的課程對我暨挫折也沒有吸引力,導致我再也沒有朝軟體前進。知道接觸通訊我滿頭大的,我研究所只有修過一門很水的通訊系統,大學跟通訊相關的更是屈指可數,抱著戰戰兢兢的心情,我於2015年的倒數第四天加入MTK服研發替代役,這是我的第一份全職工作,接著三年半我先後擔任4G LTE與5G NR RX PHY韌體工程師。

我履歷上自己整理的工作經驗
我在公司求職網站上搜尋到跟我工作最像的職缺,使用關鍵字modem

工作二三事

我在MTK的職稱是工程師(更上面的title是資深工程師),位於 CSD (Communication System Design)下的Modem Signal Processing(MSP)。

簡單來說,我的工作內容是行動通訊演算法嵌入式系統韌體開發(聽起來一點都不簡單啊!)。我也是工作兩年之後才逐漸摸清我的守備範圍,許多觀念與定義更是離職後整理才明白

行動通訊 Mobile Communication

Mobile communications refers to a form of communications which does not depend on a physical connection between the sender and receiver and who may move from one physical location to another during communication. (https://itlaw.wikia.org/wiki/Mobile_communications). 從最早的2G, EDGE(2.5G) , 3G, 4G, WiMx, 到5G就都屬於行動通訊,每一種/代通訊都有屬於自己的協定(protocol),定協定的目的是要讓不同的裝置能夠通訊,不同的手機製造商製造出的手機、與不同基地台製造商的基地台,在不同電訊運營商的網路下互相通訊,舉例來說,我使用蘋果的手機搭配中華電信的號碼,能夠打給使用三星手機用遠傳門號的媽媽,中間可能經過由諾基亞製造,台灣大運營的基地台。這些協定必須要由各方開會制定(角力)出規格Technical specification (TS)。像是4G的規格是由3GPP這個組織與成員制定,WiFi則是由IEEE。通訊協定中的每個層layer會分在不同的spec裡,像我實作的4G physical layer的channels and modulation標準就是訂在36.211,procedure則定在36.213。

spec裡面大部分都是數學公式與文字敘述,非常的不易讀,spec的目的是規範各層是資料(data)如何交換,觀念上類似於接口Interface,基本上只用傳達what,how跟why都不會寫在上面,如何實作就看各個廠商的本事,厲害的廠商如高通,推自己佔有優勢的規格,通常是他們已經有ready的產品,只等技術一通過,馬上就可以使用,正所謂time-to-market。發哥做為行動通訊的晚進者,5G之前在一直走在spec後面,市場戰術上就顯得比較被動。另外值得一提的是,spec並不會把理念講出來,還是要靠學養去理解。比如說,我之前一直不知道為什麼4G的resource grid在freq與time上是這樣的間隔,後來聽部門學姊報告才知道是對天線頻偏與移動(速度不超過300km/hr)有所假設。我們部門的新人訓練,一開始就是先讀spec之後才看實作的code,單讀spec不易理解,所以都需要再製作出圖表,觀念可以更清晰,spec的報告就是新人訓第一階段的里程碑。

通訊驅使科技產業向前進的根本,蔡董當初就是看到這個市場的規模與潛力才決定投入的。

36.211部分spec內容,看起來陌生又熟悉
spec都是很硬的,基本上只用傳達what,how跟why都不會寫在上面
單獨spec不易理解,所以有需要再製作出圖表,觀念可以更清晰

同一代spec,會隨著時間的演進陸續加入新的功能,相對應的,營運商也會升級新功能,手機廠商也會要求晶片要持續更新規格,對已經出貨的手機則可能要求透過韌體OTA升級。同樣是4G,不同國家的營運商會對於規格與頻段有不同程度的支持或偏好,聯發科晶片為了要滿足最大利益,會盡量支持規格。比如說VoLTE就是後來4G的規格,美國的營運商喜歡打FDD,中國則因為3G有TSCMDA,4G的場景更容易遇到TDD,中國營運商非常重視側高鐵測項,美國則因為沒有高鐵所以反而不在乎。又再舉例,5G的毫米波頻段在各國中的也不盡相同。同樣是聯發科4G產品對於不同規格的支持也會不同。

不同國家的營運商會對於規格與頻段有不同程度的支持或偏好 http://ipsnews.net/business/2020/06/30/cheat-sheet-which-4g-lte-bands-do-att-verizon-t-mobile-and-sprint-use-in-the-usa/
5G的毫米波頻段在各國中的也不盡相同

嵌入式系統

Embedded System: A software system which is embedded to a larger system which main purpose is not computation (e.g. fuel injection in a car). Most embedded systems are real-time systems.

以上講到的行動通訊演算法是實作在聯發科自己的行動運算平台(mobile computing platform),平台由兩部份AP(application processor)、MD(modem)組成。AP就是廣為人知的general purpose processor,幾乎清一色都是arm cortex-a,運作android系統,PM會根據產品定位去決定每個平台的core,像是發哥一開始最為人知的就是地表八核,到後來的十核。MD則是modem,也就是數據機,可以理解為手機的無線網卡,是一個嵌入式系統,這點也是我離職之後才明白嵌入式系統的定義,嵌入式系統可大可小,小到控制洗衣機或是加油裝的MCU,大到手機modem都是,主要的功能就是提供控制,而非計算,絕大多數時候,嵌入式系統就是一個realtime系統,定義如下:

Real-time system: A computer system in which not having a results available in exactly the specified timeframe will yield a failure or even the loss of the entire mission. Correctness of the systems depends on being in time – always.

modem既是嵌入式系統,也是real-time system,嵌入式的點來自於提供AP(Android系統)來自網路的數據,real-time是來自於收發資料的time-dependency,行動通訊本身是同步的,spec定義的time-limit,也就是說資料傳到後必須在幾個symbol/subframe-time中解出來,不然就當作傳輸失敗,必須要重傳。連發科的modem又由MCU與DSP兩個元件組成,MCU主要負責控制,進駐的module大多屬於上層(相對於physical layer),DSP主要負責訊號處理,是一個vector processor,執行Single instruction, multiple threads (SIMT),類似於一般所知的GPU架構。4G產品中我就是在叫Coresonic的DSP上實作通訊演算法,這顆DSP來自於公司首購瑞典公司Coresonic AB,我在網路上甚至有查到林雪平大學電機系的碩士論文在比較Coresonic的performance(當然有經過公司授權)。DSP完全是聯發科一手設計,說是整家公司的核心競爭力一點也不為過。

韌體

firmware[a] is a specific class of computer software that provides the low-level control for a device’s specific hardware. Firmware can either provide a standardized operating environment for more complex device software (allowing more hardware-independence), or, for less complex devices, act as the device’s complete operating system, performing all control, monitoring and data manipulation functions.

開始上班的時候,韌體的概念對我來說非常模糊,就維基百科的定義,韌體也是軟體的一種(untangible component),在整個抽象層裡面介於SW跟HW之間,意思是FW相較於SW看得到HW,並且有一部分的作用就在設定HW。DSP可以再細分為以下幾個component,FW的code就跑在controller上面,控制著HW,跟DSP core,也就是真正執行vector運算的部分。code基本上是用c為基底,加入很多mtk自己的library,看起來非常的複雜。我記得在一開始review 4G code非常痛苦,就是因為code裡面多一大堆陌生的library/header/macro,然後文件(documentation)又不全(這可以算是台廠人力吃緊的副作用吧),有的文版本常常不是最新,再加上系統是interrupt/event-drive,光從code上來看根本就不知道function entry point跟enqueue的timing dependency,直到後來review到更common module如scheduler之後,才越來越懂整個modem的架構跟行為。

5G產品在架構上有所精進,許多HW都被整合到DSP的core componet裡面,也提供近乎高階語言的API,對開發者更加友善,我憑僅存的記憶參考java寫了一段偽代碼在下面,從這段偽代碼就可以看出FW coding的幾個重點。DSP最主要集中在向量運算與記憶體存取,如何分配有限的內存空間,搭配使用適合的addressing mode與運算實踐出算法是困難點。與一般高階的編程,根本不太會考慮到記憶體配置的問題,因為compiler或intepreter會自動配置,但是DSP編程基本上就是針對天線收進來signal做各種處理(processing),最終解算(demoulation and decode)出data給應用層去做運算(computation)。我身為開發者,必需在design time根據spec所定義的場景分配記憶體。signal常常會用到不同的processing operation,像是filtering常用到的矩陣運算,內積、外積、kronecker product,又或是算correlation等等,把運算搭配好的addressing才可以讓整個系統達到高效率!另外,從偽代碼可以看出來,因為是使用低階的語言,基本上都是在flow control,並沒有高深的資料結構可以用,最常用的不外乎就是if-else, for/while迴圈, 基本就沒了!說到底韌體還是跟硬體緊緊結合,雖然說我們盡量讓同一代project共用codebase,但是難免會有一些HW差異,這些差異有可能來自於產品定位,所以規格也要跟著改,比如說支援3CA的產品在DSP就必須要比只支援1CA的產品多3倍記憶體空間,所以address base會不同;又再說,HW可能在早期產品有bug,在特定場景下沒辦法使用,這個時候就會針對特定project上FW workaround patch,但後續產品HW bug就被修掉,所以control flow就不需要走這路patch。說到底,FW其實很可憐常常要幫HW跟SW擦屁股,HW有bug但因為是硬體改不動,只能找FW求救,SW明明改的了,不過他們module眾多跟procedure盤宗錯節,加上codebase太大,常常擔心牽一髮動全身,不太敢改也不願意,最後又是推到FW這邊,說是我們底層行為相對單純,最後的結果就是,FW code裡面常常一大堆patch,非常混亂!

演算法

Algorithm: method for solving a problem.
Data structure: method to store information.

我在《刷題到底考什麼》中講到:「軟體工程師與數學邏輯清晰的人的差異並不是在於解法獨道,是在於可以用程式的觀點去分析/解構(reduce)問題,重點在於選擇算法、數據結構、分析時間與空間複雜度,與最重要的實作(implementation)。」

物理層的算法跟一般資工系認知的算法基本上是完全沒有相關,絕大多數都是如何處理信號,或是更常見的叫做濾波,由於現在都是數位系統,自然所有的濾波器都是數位(離散的)。

物理層算法主要就是負責通道估計。基地台(eNB)對移動終端(UE,也就是手機)會發送已知的參考訊號(reference signal/pilot),手機會透過此訊號估計出當前下行(downlink)的通道,,之後針對收到帶有資訊的訊號(data signal)先進行demodulation,還原訊號之後再去decode,解調出我們所知的1/0 data。

我主要的工作是實作出算法,算法的評估跟設計則是交由CSD。CSD設計好之後會release block diagram,我就會根據BD中的flow把code寫出來,算法屬於公司的核心競爭力,也因此所以BD文件都有被加密,並且設置權限,閱覽的時候公司電腦安裝的保密軟體會啟動,不讓電腦做任何截圖或分享的動作!CSD會針對不同的通道環境去做模擬,選出一個performance最好的,在通訊的世界裡,performance就是被BER vs SNR給定義。CSD會去做很多的tuning,最後跑出一張圖說,x算法在y場景可以最多有zdB的gain,我們MSP都笑稱他們是科學家,主要是他們的結論都是模擬出來的,並且沒有考慮到實作上的complexity,也沒有考慮到真實情況場景出現的機率。真實環境中有可能干擾很多,導致根本沒有gain,又或是模擬的場景幾乎打不到,所以在開發前期的討論上,就常常有很多討價還價。到了開發後期,會有越來越多performace issue,比如客戶會說我們MTK的手機在高鐵上downlink速度不如高通,這個時候就只能倚靠CSD想新算法!

做過4G跟5G project過後,會發現CSD的算法來回來去也就是那幾招只不過會多加一些判斷場景的條件,最主要的原因是,使用simple and robust的算法,會遠比那些發在paper號稱performance很好的算法來的經濟與現實。畢竟許多的procedure已經有現成硬體,code也可以reuse。

以下舉一個很常見簡單的例子說明通道估計算法,在x, y已知的情況下,算法要能夠解出通道H,直覺會想說求反矩陣,這叫做inverse filtering,然而因為現實中有noise,所以出來的performance會很差。通常的情況是假設noise是white,使用wiener filtering就可以達到很好的效果。Wiener filtering許多的參數則是由CSD模擬得出,比如說常用到的SNR,可能會在過低的情況下設一個floor,在過高的情況則卡一個ceiling,至於要卡多少,在什麼時候卡,SNR是拿哪一個訊號做計算都是CSD的守備範圍。

工作的日常

工作內容多樣與繁雜。以晶片開發角度,我的工作可以簡單分成三個階段:晶片前期的評估,中期的開發與後期的驗證。

由於晶片的特性,開發模型都是waterfall,基於的理由是行動通訊網路本身的建置就是線性。

maintenance是新手入手的task, 手機開發會有好幾個mile stone, internal MP (mass production), customer MP, market release,每個階段都有不同的測項要過,有手機商、有通訊商、有網路商, Maintenance就是在解來自不同測項的CR(change request), CR千奇百怪, 可分為兩種:behavior issue跟performance issue。前者是在運行行為上不符合預期,手機測著測著就掛掉當機了(掉線),舉例是雙卡切換的問題。後者是,某個測項不符合標準,比如說高鐵下載速度,上傳速度,不達標。有issue還必須從log分析起,這邊就仰賴聯發科自己開發的logging軟硬體。

log中會紀錄當前的網路configuration跟一些重要的量測參數:RSRP, SNR, SNIR。有時候不是數據機行為錯誤,而是網路打得訊號不符合spec,(之前還遇過CMCC打過特定場景spec violation)

當掉只是症狀:有可能是assert、exception、timeout,不足而一,因為韌體夾在中間,只要是上家(SW)跟下家(HW)任何一個行為不一致就會導致錯誤。常常遇到的問題是,HW改不動、SW不願意改,最後workaround/patch就只好靠我們默默吞掉。

工作上主要使用C/C++在聯發科技自行設計的DSP (Digital Signal Processor)上面進行嵌入式系統的開發,會使用assembly language進行優化,許多驗證的流程與pattern的前後製處理都需要使用python/perl,另外針對部分的情況會使用Matlab進行訊號回放(replay)分析。除了對上述程式語言熟悉,工作上需要具備計算計結構、數位通訊與數位訊號處理的知識。聽起來要求很高,但很多知識實際上只會用到基本的觀念,只要有修過相關課程就一定能掌握,完全沒有接觸過則會非常搞不懂程式到底要寫什麼,也不理解公式背後的物理意義。

針對專案可以細分為三個開發階段,MTK是手機晶片設計商,因此每個階段會包含不同的任務:

開發前期pre-silicon

開發前期pre-silicon:會根據演算法需求針對整個數據機的系統架構進行評估,所謂晶片設計金三角(Performance 、Flexibility、Cost)就在這時出現。架構要決定memory大小、 BW、DSP運算能力、HW accelerator的需求,評估過後會決定最適合的架構並開始設計。HW Designer設計好的硬體會被納入模擬平台,這時後就由韌體工程師出場,在晶片流片前,韌體會分四個階段模擬驗證: Unit-Test (UT)、IT (Integration Test)、CoSIM(HW-FW Co-simulation、FPGA四個階段。 UT為針對Physical layer中單一module的功能的驗證,IT則是把各個module串接起來確定各個module在interface與data的形式是正確的,CoSim則是專注在FW/HW間的行為,FPGA則是與通訊設備儀器先行對接進行基本測項的驗證。module的功能會由algorithm team 評估後release,我會針對系統的模擬結果會再回報給出修改演算法的建議,一個最容易理解的錯誤即是quantization error,演算法團隊在設計演算法時皆是以floating point六十四位元運算,但考量到晶片成本與價格,DSP則是fix point十六位元(IEEE 1/5/10, sign/exponet/matissa, IQ總共32位元),因為能夠表示的值域不一樣,在特定case產生的performance mismatch,CSD同仁就可能需要針對數值做保護。

開發中期 sample-back

開發中期 sample-back:晶片回來之後會進行開機(bring-up)測試,最終的目的是要能phone call(4G上網),這是最為刺激的,因為對project team來說是分秒必爭,必須要在期限內完成基本功能測試,才可以把晶片大量發放給各HW, SW,FW team去做模塊驗證,都達到標準之後達到internal MP,把晶片打件成工程機,給客戶進行更測試。開機測試期限很短,對成熟專案通常就是二三天,對新專案像是5G則可能會長到兩三週,project team事前會畫好bubble chart,遇到任何卡關就是需要開review meeting,要owner報告最新情況,最危急的情況可能會by hourly review,非常煩人。開機完成後晶片會大量打件發放,FW拿到後會進行DVT(Design Verification Test)驗證,通常都是從IT pattern中選取幾個典型並且各個module都會toggle到的case,確認FW/HW在IC上面的行為與模擬結果的ㄧ致性。5G test chip剛回來的時候,完全沒有假日可言,每天早晚有兩次issue review meeting,週末也都要on-call,情況最危機的時候,project team要求每個team不只是on-call,更押一個人在實驗室,為的就是第一時間可以解issue!

開發後期 post-silicon

開發後期 post-silicon :  數據機打件成手機之後我們會與通訊設備儀器在實驗室做完整的測次(In-Lab Test)之後會與基地台設備進行Interoperability Development (IODT)與全球各地電信商進行Interoperability Tests (IOT) ,我們自己也會派出驗證團隊在全球各大城市進行Field Trial(FT),中間有遇到測項不達標時,會DSP的log中紀錄的場景進行分析,補足演算法。我自己曾在2018年底去北京的Keysight出差,與他們的儀器做5G SA的對接測試,對於從來沒有出差過、也從來沒有跟儀器商面對面合作的我,此次出差是一個非常難忘的經驗。

在2016~2017,我參與到4G專案的中、後段。這兩年間我專注4G LTE PHY層 RX receiver 的DSP(digital signal processing)演算法實作,我擔任DMRS moduler owner。此時處於MT6291、MT6292專案的後期(也是4G LTE的成熟期,3GPP Spec基本不更改),大部分功能feature已經開發完成,主要處理客戶在外場與營運商測項驗證上的所打到問題,並不會針對code base進行大改,比較像是maintain code並且根據需求加入補丁(patch)或是workaround。

自2018開始,我參與到5G專案的前、中段,因為5G MT6297專案開始,我轉為擔任5G NR PHY層 RX receiver演算法實作,此事則是擔任CDMRS moduel owner。這是一個全新的專案,專案Spec也因連3GPP Spec同步在制定同時修改。雖然5G可看成基於4G技術的大改版,但由於全新Spec,對整個通訊產業鍊帶來巨大挑戰,自晶片設計公司、手機品牌公司、電信運營商與設備製造商都需要從零開始。

「加兩行 code 為什麼要花兩天?」

部門二三事

講完我的工作內容,接下來談談我的工作夥伴們,我們部門是CSD/MSP/MSP1,在我離開的時候有將近二十個人,在MTK裡面算是相當大的部門。部門內大部分人都是交大的學長姐,幾乎所有人都是通訊所畢業,通訊的底子相當紮實,很多人的碩論就是做其中一個模塊。部門內有一半人年資超過五年,我當初進去的時候跟同屆菜頭是部門裡最菜的兩個(菜頭之所以叫菜頭是因為他姓蔡,不是因為年資菜!),後來才又陸續進來許多新的學弟妹。許多資深的同事是從MSP還只是一個二級單位,不是現在的處級單位時的WCT/CD2/MSP就加入,他們在3G的時代就已經參與開發,我的直屬主管Jerry有年資十年,工號在百位數,從聯發科的2.5G EDGE時代(當時錄的log還是存在一片片光碟之中…)與公司征戰至今,想一想非常不可思議,因為他們的經驗與知識持續累積,對於4G 5G的開發貢獻非凡,負責的內容是更困難的跨module開發,例如:DSP task scheduling、memory management這些看似直覺的功能非常仰賴過往經驗(),差的排程與記憶體管理不單只會浪費數據機資源,甚至在不同場景下導致不同模塊功能異常。他們也才能完整的評估數據機韌體架構的合理性。如前幾節所述,我的同事們都非常專業,在我遇到問題的時候都很願意討論一起,我的主管非常棒,外部會議時非常支持我們、出現資源問題都會盡力協調、內部討論有遇到問題也沒有無理性的急迫盯人。在出社會之前,我其實並沒有體會過“同事”這種人際關係,我體會的都是家庭、朋友此類因個人情感所構築的人際網絡(有人稱為熟人社會)。與同事的情誼基本上是建築於工作,同事不等同於朋友,我不需要非常了解同事的個性與喜好也要能/必須能與同時共同協作(),同事在工作上幫助我們也不用出於好意,因為這次工作帶來的基本要求。然而,這不代表我們不能或是不用跟同事成為朋友,畢竟工作愉快三要素其中一項就是有好的人際關係。說起來滿現實的,但事實就是如此,因此主管同時負起維持同事情誼的責任:定時如請或揪大家吃下午茶、聚餐、與各種活動(如尾牙遊戲、打保齡球、出遊、路跑),中午揪吃飯更是必須。要能夠吸引大家用自己的下班時間參加部門活動也不光只是主管出錢這麼簡單,餐廳跟活動性質都要挑過。我必須承認在很長一段的時間裡,我不太瞭解經營同事關係的重要性,所以我常常中午也沒有跟大家吃飯,對許多同事的消息或是私下的生活並不是很瞭解,常常都是事後才知道,這樣其實不是很好。我很幸運地加入一個氣氛不錯的部門。

工作之餘, 我也參與許多公司的社團活動。MTK的社團也相當多元豐富,這是作為一個大公司的好處。我自己參加過登山社、國標社、熱音社(儘管只上了一期吉他社課、小成發還跑掉),這也是MTK跟其他公司不一樣的地方,其他公司常常受限於員工人數少、同好不足導致沒辦法有多元的社團,必須要去外面參加比較貴的活動或是課程。除個人所繳交的社費、公司對社團額外補助,所以社團活動都相對便宜,就拿國標社來講,請的老師其實不輸台北很多舞蹈教室的老師,費用卻是六折,公司的韻律教室也樂勝外面壅擠的空間、登山社主辦的活動也因為帶團的是自己人,都只需負擔基本費用,不需要自己開車就可以輕鬆去爬許多山,還有許多老手互相聊天實在是一舉多的。能夠參加各種社團活動不但為生活多加樂趣,也多少補足學生時期沒有參加社團青春的缺憾!

聯發青春職記|My Days in MediaTek:Part-2 有 “ 3 則迴響 ”

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s