---
# System prepended metadata

title: 李熙堃的網誌 - 履歷
tags: [轉職, 文組轉理工, 年薪百萬, 跨組, 文組轉資工, 我的網誌]

---

# 李熙堃的網誌 - 履歷
由於 `powerpoint` 等等 office 軟體需要付錢，我也比較傾向於公開我所有的經歷讓所有人檢閱，歡迎留言互相討論，若想要看我的心路歷程，請參考最下方的 "成為工程師的路徑"

若有問題想詢問我，歡迎 inbox：
* joshualee032190@gmail.com
* https://tw.linkedin.com/in/joshualee032190
* https://github.com/JoshuaLee0321
## 學歷
`2014/9 ~ 2017/6` 士林高商  資料處理科
`2017/9 ~ 2021/6` 國立台北科技大學 應用英文系
`2022/7 ~ 2024/9` 成功大學 資訊工程系

現職：聯發科韌體工程師
:::info
有些人不相信文組可以成功轉職成為工程師，以下為我的心路歷程，希望我藉由公開我的經歷，能讓更多人轉職成工程師時較有自信，而且也較有目的性的去修一些課程。藉由我自己的 `roadmap` 我希望能夠讓更多人更有目的性的去選擇修習一些課程，讓未來在工作上，不要一問三不知。
:::
---

## 履歷以及參與的專案
### 聯發科 AE
* Written a `complete code guide` for newcomers within 2 months
    * In this project...
        * 習得 scaler 為何?
        * Scaler 內部功能介紹 （非常多，例如 PIP PBP 等等），且在不同情況下都可以實作不同功能
* Completed `how to draw OSD` guideline in company wiki
* Completed a Demo Case for customer
    * "更熟悉如何作為一個 `韌體工程師` 與 `硬體工程師` 溝通"
        * 例如， `hardware pin define`, `hardware mux behavior`, `kvm`...
    * 更熟悉如何問問題
        * 在 Firmware 的世界中，大部分的問題其實一行就可以解決，若沒有看 log 與詢問學長，很難作為一個新人在短時間內寫完，除非 code flow 是自己設計的

### 暑期實習 CN3 (瑞昱)
* WIFI auto test (Indigo DUI tool)
* `python` `appium` audo UI test
* wireless testing
---
### 研究所時期
* `jserv related project` -> https://wiki.csie.ncku.edu.tw/User/JoshuaLee0321
* `kasih-cross lingual` -> https://hackmd.io/@JoshuaLee0321/B1yStm43T
    * [NSTC info](https://www.nstc.gov.tw/folksonomy/rfpDetail/5c7605ea-1264-4f76-bbb3-dce87467c6bc?l=ch)
    * [[kasih]](https://iog.ncku.edu.tw/p/406-1169-264543,r2694.php?Lang=zh-tw)
* [`論文` ](https://drive.google.com/file/d/1K-s3XOomsoieN93_0E4rTOFtjc3Ft2bW/view?usp=drive_link)
    * 具前後處理校正模型的領域特定命名實體增強型神經網路機器翻譯
    * 首先理解 Named Entity (命名實體)，為一 Language Model 的辨識系統
        * 例如
            * "李熙堃" 為 PERSON
            * "台北" 為 LOCATION
            * "123" 為 INTEGER
            * "tomorrow" 為 DATE
        * 這篇論文利用 Named Entity 搭配深度學習 (Transformer Model) 將詞彙限縮在一定範圍中
        * 這樣的優點為
            * `我想要去台北` 與 `我想要去印度` 模組認為是同一句，降低 garbage 出線的機率
        * 缺點為：
            * 有特定上下文的句子無法翻譯出更流暢的內容
            * NER 有辨識的極限，要是前面沒有辨識出來，後面也不會翻譯正確
            * 即使翻譯正確，也有些詞性是無法被正確處理的
    * ![image](https://hackmd.io/_uploads/rJhomCxQ1l.png)


## 自我介紹與能力
### coding 能力介紹

* `c/c++`
    * 參與過 [`jserv`](https://wiki.csie.ncku.edu.tw/User/jserv) 的課程，大部分系統級別的課程都是 `c/c++` 撰寫的
    * 旁聽過 [`張大緯`](https://researchoutput.ncku.edu.tw/zh/persons/da-wei-chang) 的嵌入式系統，那時候使用 STM32 做了一些小 project，除此之外也有自己購買一些 `extdevice` 來玩（溫度計）
        * 熟悉 `polling` 機制
        * 熟悉 `interrupt` 機制
        * 了解 `debouncing` 的用意
* [`scala/Chisel`](https://www.chisel-lang.org/)
    * 這是一個類似 verilog 的語言，可以讓使用者定義哪幾個 bit 要做哪些事情
    * Chisel 官方有做詳細教學 (https://github.com/ucb-bar/chisel-tutorial)
    * `jserv` 的作業為以下流程：
        * 利用 Chisel 製作 `risc-v` 的 CPU single cycle machine
        * 讓我們撰寫的 C 語言可以編譯成 `Risc-v` 並且跑在此 single cycle machine 上
        * 期末挑選了一個專案，完全由 `Risc-v` 撰寫的 jpeg encoder，也要可以跑在此 machine 上
* `Python`
    * 在瑞昱實習中，自動測試就是由 python + appium 撰寫
    * 整個論文系統也是由 python 撰寫
        * 其中包括 [`fairseq`](https://fairseq.readthedocs.io/en/latest/getting_started.html#)
    * 論文當中最重要的 `語料清洗` 也是由 python 做到
* `react/javascript`
    * 論文 demo 網站使用 react 撰寫，`python` + `flask` 部屬
    * 不使用 nginx 是因為，較麻煩沒有使用



## 成為工程師的路徑
### 1. 時空背景
首先要先講清楚我自己的看法，任何人都有不同的理由去轉跑道，而我轉跑道的理由屬於以下這幾點：
* 台灣文組發展受限
> 不得不說，若在台灣需要養家餬口，讀文組根本是不可能的事情，除非做自媒體，或是做比較偏門的工作，否則很難達到第一份工作就年薪百萬

* 個人在文組並沒有得到良好的發展
> 在修習 `新聞英文` 時，我發現即便我認真做整個學期的功課，也比不上有一些比較會報告的同學，那些同學比較懂得討教授歡心，而他們只需要花較少的時間，分數就可以輾壓我花了比他們更久的時間的內容

* 邏輯問題
> 還記得，在上 `演辯` 課程時，我發現，很多時候我沒有辦法理解別人的邏輯；原本以為是我自己的問題，後來釐清之後發現，簡易的 `p -> q` 等等邏輯都沒有辦法在文組中體會到，多的是 `jump to conclusion` 以及 `cherry picking fallacy`

不過主要是因為錢的問題，這邊絕對沒有在戰文理，主要出在個人問題以及社會問題。

---
### 2. 決定目標，並且修對的課程
決定目標絕對是最困難的事情，但當決定了，就必須要朝目的地大步邁進。我在==大二==時加入了管弦樂社（因為我喜歡彈鋼琴，而且我沒有甚麼社交圈、不太習慣與全女生的環境相處；而且有一位好友帶我進這個社團）。當初我在這個社團的時候，我發現了幾個現象：
1. 大部分的人都會專注於練樂器，而且專注的程度較高
    * 有一個令我印象深刻的人，他的樂器為豎笛，為我們整個社團的木管首席。整個社團都仰賴他的聲音，不僅節奏非常穩定、音色美麗、人也很好。==他每次花在樂器的時間都是整個下午，或是整個早上==。只要他開始練習，就沒有人能打斷他
    * 他也是能源系的系排第一，而且出了社會之後，目前也在國家的木管樂團吹豎笛，所謂神人
2. 在接近期中、期末時，基本上沒什麼人在社團練樂器，大家都在讀書
    * 所謂`玩音樂的小孩不會變壞` 原來就是指這個 :100: 
    * 大家都會不約而同地跑到社團讀書，那怕是有人想練樂器，都不會吵到他們
    * 那時候會一起看書的人現在都出社會，而且都拿到新人非常好的 offer
3. 身為一個文組的，我在期中、期末時，沒有甚麼事情可以做
    * 由於大部分的期中、期末皆為報告性質（那時候 chatGPT 尚未問世）而寫報告其實比考試簡單很多，大部分的人只需要引用幾句話，多寫幾句話就可以拿到不錯的成績
    * 另外一種期中、期末為上台演講，而我忘不了有一位好友，從頭到尾在講幹話，報告做的很好笑，然後就過了

正是因為我很愛這個社團，我幾乎每天都會到這個社團報到。但越是接近期中、期末，我就越覺得我與他們有根本上的差距。縱使我沒有必要與他們走相同的路，我也在某些時間點會感到與他們之間的距離感。

於是我在大二開始就開始一直思考，==我這樣真的行嗎?== 實際上最後的契機是在大三下時，那時候可以看到所有朋友都開始準備`研究所`、`出國留學`等等行程，而我到那時候對未來還是一知半解，完全沒有想過自己到底能夠做甚麼。
此時我想起了我國中的願望："我希望能夠寫程式"。所以我想說，那我要不要轉考看看`資訊工程`？
但轉考並非簡單的事情，我也不知道我有沒有那個能耐能夠考到任何一間學校。於是我允諾我自己：要是我能夠修過`北科大資訊工程部分基礎課程`，我就有這個能耐能夠考資訊工程。

於是，我在大四上修了以下幾門課：
1. 微積分(上)
    * 由於聽所有社團的人說，==微積分是所有高等數學的基礎== 所以我修了微積分
    * 內容：
    * 三角函數、極限、羅畢達
    * 微分、多項式微分、乘法公式、除法公式、Chain Rule
    * 繪製一多項式的所有曲點，包括反曲點（二次微分）等等
    * 基礎積分（記得要 +C）
2. 計算機程式設計（一）
    * 我修了北科大魔王，郭忠義老師的課程，課程內容如下：
    * https://sites.google.com/mail.ntut.edu.tw/jong-yih-kuo/programming-design-i?authuser=0
    * 我只能說，上機考真的有夠困難，在緊張的環境下，常常寫出來的程式一堆 bug


在修過以上課程之後，我發現我應該是有能耐可以挑戰資訊工程，於是我與我媽媽商量，能不能讓我拚一波，考資工
> 還記得那天我跟她說的時候，他直接帶我到大碩補習班，直接刷卡刷了 6 萬多的課程。也不顧我很久以前去報名聯成電腦的 `java` 課程，然後一次都沒有去上...
> ==我真的很感謝我媽還有我爸（因為是我爸全額付）==

於是，從 `2021/2` 開始，大學最後一個學期開始了，同時間我也要開始補習去。我多修了以下幾堂課程

1. 微積分（二）
    * 由於同時間要學補習班的線性代數，我已經忙不過來，於是最後退選了
2. 離散數學
    * 為 `謝東儒` 教授所授課
    * https://tjhsieh.github.io/anime/index.html
    * 他的教材其實意外的好，而且分數給得很甜（雖然我不需要）
3. 計算機組織
    * 為 `陳彥霖` 教授所授課
    * 因為補習班也有同時間教計算機組織，我為了補齊一些知識，同時間也修了這門課
    * 內容包括：
        * MIPS 組合語言
        * Single Cycle Machine (PC+4)
        * Pipeline
        * (pipeline and its hazard)
4. 計算機程式設計（二）
    * 還是同樣由郭老師授課，由於變成 `C` 語言了，難度與 python 根本不是同一個等級，要注意記憶體，要注意指標，指標還有指標
    * https://sites.google.com/mail.ntut.edu.tw/jong-yih-kuo/programming-design-ii?authuser=0
    * 我還記得每次我功課都有交上去，但期末考掛 0，我一個題目都沒有辦法達到標準

過了這個學期之後，我已經是畢業生了，我開始專注在補習上面。過著每天朝 9 晚 12 的生活。每天都讀書超過 10 個小時，而且當時為疫情的時刻，我只能在家上課（對了，我讀書那年是疫情第一年...）

至於讀書的方法，我相信 ptt 上面一堆，不用我自己打。反而有一件事想要特別提，那就是你需要有一群志同道合的好朋友陪你一起讀書（這樣只會事半功倍）

還記得當初我在大碩題庫班遇見了四位好夥伴，我們一起讀書，==互相教學==（這點是最重要的，如果你不會的話，沒辦法教人），我們彼此不藏私，有問題就問，別人不會就教，最後我們全部上了國立台科以上的學校。

### 3. 找教授、訂定未來的計畫

雖然最後如期考上`成功大學`，但找教授的路徑卻沒有這麼容易，有教授因為我的背景不收，而大部分的教授也都滿額了
![image](https://hackmd.io/_uploads/H1-6xSEQkg.png)
![image](https://hackmd.io/_uploads/ryk0gB47yx.png)
最後陰錯陽差的到了 [`盧文祥`](https://wmmks.csie.ncku.edu.tw/) 教授的實驗室。我對於教授的教學方法不予置評，我只感激他能夠收我而已。在實驗室這兩年內，我發現我們實驗室偏涼，可以修一些比較困難的課程，而我也勇於面對挑戰，修了一堆 [`jserv`](https://wiki.csie.ncku.edu.tw/User/jserv) 的課程。其中包括 `資訊科技產業專案設計`、 `Linux核心設計` 、`計算機組織` 等等課程，每一個課程都具有一定的難度，也需要對計算機更了解才能夠寫出對應的專案。就這樣，修了非常多 `jserv` 的課程之後，就結束了我一上、一下的時期。

在這其中多出了一個插曲，我在就業博覽會的時候，曾經只是為了獎品所以隨便填寫了瑞昱暑期實習的單子，而我並沒有想太多。等到瑞昱發了面試通知來了之後，我才發現，好像需要準備一下，剛剛好可以測試 [`資訊科技產業專案設計`](https://hackmd.io/@sysprog/info2023/https%3A%2F%2Fhackmd.io%2F%40sysprog%2FS11ooE4Rh) 學到的面試技巧。結果還真給我面上了 = =，我非常慌張，覺得好像這次實習是改變人生的實習，加上我們實驗室的老師對 `IC 廠` 與 `暑期實習` 這兩個關鍵字有點敏感。於是我說：「老師，我爸爸腿受傷，我要去台北照顧他」，乎弄了他兩個月...

而我去了之後，又發現，這是瑞昱 CN3，貌似是行業頂標的存在，所以我完全不後悔我呼弄了我們老師。

等實習了兩個月回去台南之後，我已經是另外一個人了，整個思維完全都不一樣，開發我們實驗室專案的速度也完全不一樣。也就是在此時，我在一個月內開發了 [`kasih`](https://fw.wda.gov.tw/wda-employer/home/activity/2c95efb38d611dc3018d637563580883) （然後我完全不會寫 app 呵呵）

最後就到 2024 年了，我藉由先前的種種經歷，與寫文章、報告的能力等等，順利獲得 `聯發科` 主管的欣賞，現在剛做兩個月

--- 