LEARNING
↑ 經常接觸、較為熟悉的領域 ↑
Java
第一個接觸的程式語言,透過它學習基礎的物件導向觀念,以及資料結構演算法實作。
工作後開始學習使用 Spring Boot 框架進行軟體開發,能熟練運用 JPA、RESTful API、JWT、Spring Security 等套件,並以 Gradle 進行專案建構與套件管理。
Python
學完基本語法後,主要透過實作去學習其他套件的使用,如運用 selenium 製作 Popcat 點擊程式、pygame 設計飛船街機遊戲、串接 Line API 設計 LineBot 聊天機器人等。
工作後開始接觸到 Django 框架與,熟悉內建的 Model-Serializer-ViewSet 開發工具,並以 uv 進行專案建構與套件管理。
資料庫
在大三的時候學習到基本的 SQL 語法,製作專題時也嘗試過將 Firebase 串接到 Unity。
工作後開始深入接觸 Oracle 資料庫管理,包括運用 SQL Developer、DBeaver 進行資料庫連接、SQL 查詢與產出 ERD,並透過序列、觸發器設計可自動填入資料的功能。
擁有在專案中與同事協作開發的經驗,熟悉 Git 的分支管理、merge 與 rebase 等操作,以及運用 GitHub 進行程式碼審查、包括 pull request、remote、clone 等版本控制流程。
- 略有接觸、初步了解的領域 -
大三的網路程式設計曾經接觸過 ASP.Net,製作畢業專題時也有在Unity 的 VR 遊戲開發使用過。主要用於處理遊戲物件碰撞與流程控制,後端資料傳遞與資料庫串接。
在網路上自學為主,接觸過 HTML,CSS,javascript 與 php,具備基本切板與串接 API 的能力,也透過 GitHub Pages 架設過幾個簡易的靜態網站。
在大三的時候接觸到 Flutter,對於 Dart 語法、元件運用和排版有基礎的認知。
包含 MarkDown 與 LaTeX,在用 HackMD 整理考研筆記時有接觸過。
在準備研究所考試時接觸過,對於基本語法和指標的應用可以理解。主要應用於實作演算法。
Project
基於 Vue.js 前端框架與 Spring Boot 後端技術,獨立開發的簡易社群媒體系統。系統核心功能包含使用者註冊登入、瀏覽所有貼文、貼文留言互動、個人貼文的新增、編輯與刪除,以及運用分頁與無限滾動機制優化使用者體驗。
由於當時公司在大樓尚未有固定配額的停車位,因此員工如果要開車上班,就需要每週向大樓提交臨時車位申請。為了簡化預約流程,我和同事們協作開發此系統,讓辦公室同仁可以清楚確認每週申請狀況,減少寫信、寄信等書面往來的時間成本。
前端使用 Vue,後端使用 Spring Boot 進行開發,在 GitHub 進行程式審核與版控,並用 Trello 追蹤團隊開發進度。
在公司培訓時針對金融相關專案的開發練習,主題是電影購票系統。使用情境為用戶訂購電影票後產生訂單紀錄,包含 RESTful API、列表查詢、非同步查詢等設計,也有撰寫 Unit Test 並生成 Swagger 文件提供測試。
在巴哈姆特、PTT、Dcard、FB、IG 等論壇與社群軟體,經常能看到網友使用日本動畫「BanGDream It's MyGO!!!!!」的動畫截圖替代文字留言進行溝通。出於好奇,我在巴哈姆特動畫瘋點開了這部動畫,沒想到這部以樂團少女為主題的作品,不只是音樂優秀,對於主角群彼此的心理刻劃,以及表情、台詞等傳達訊息的手法,表現得相當精煉、細膩。我想這或許就是 MyGO 的截圖,能形成迷因文化的一大特色與優勢。
最初是想到以前網路上有人做過的 LINE 梗圖機器人派星機,基於推廣和嘗試的心態,也想參考派星機做一個以 MyGO 為主題的梗圖機器人。目前透過動畫瘋 plus 收集了3000張以上的動畫截圖,並透過 Python 設定找圖條件,以及自動建立圖片索引,結合ChatGPT輔助,得以在一個星期就將程式架構建立完成。
參考派星機的功能包含:使用者可以透過輸入編號查找梗圖,或是輸入關鍵字查找圖片編號;不過和派星機不同的是,除了用編號查詢圖片以外,特定的關鍵字可以不需要編號直接回傳圖片;另外,也支援搜尋 MyGO 樂團原創歌曲的功能。
巴哈姆特動畫瘋作品受眾分析
(至2023年4月)
參考巴哈姆特 Jia(g919233) 大大的文章,透過 python 的 beautifulsoup 與 openpyxl 套件,從動畫瘋的「所有動畫」區域,以每個作品屬性之每種播放類型的順序,爬取共1475部動畫名稱、時間、集數與觀看數,在 Excel 清理收集到的資料後,再用Power BI 整理成視覺化報表。
第一頁以時間的角度分析:呈現各時段的作品數量、屬性類別分布、總觀看數與指標性作品;指標程度用來呈現一個時間區段中,指標性作品觀看次數的比例,呈現更準確的影響力。
第二頁以作品屬性的角度分析:呈現作品類別的製作、逐年的作品數量變化、以及更詳細的作品列表。
第三頁是排行榜:呈現歷年動畫瘋作品觀看數前10名的作品,以及各屬性最受歡迎的作品。
2015~2023中華職棒選秀會分析
這個作品滿突然的。在7/12中華職棒選秀會結束後,隔天我突然想到:有沒有辦法用 Power BI 將歷年中職選秀的結果整理成視覺化圖表?到台灣棒球維基館的網站確認後,發現上面的資料可以從時間、球團、學校、層級、守位等方向去做分析,於是當天蒐集並清理完資料後,7/14 開始將資料匯入 Power BI 製作圖表;7/15 完成美編並上傳至 Power BI 與個人網站。
第1頁從時間軸綜觀歷年選秀分布、
第2-4頁從年份、學校隊伍與守位觀察選秀狀況,
第5頁是比較特別的分析:將參與過一次以上選秀的選手整理出來,比對他們的輪次與順位。
按住 Ctrl 點擊,可在儀表板上篩選複數條件。
112年1月高雄市交通事故儀表板
大四選修的商業智慧實務期末作品,要自己從政府開放資料平台尋找一份資料,完成 Data Cleaning 後設計維度資料表,並做成 Power BI 的儀表板。當時正好是台灣交通問題被媒體大肆報導的時期,所以就決定去整理家鄉高雄市的交通事故資訊,並依資料類型大致劃分成重點資訊、路況資訊、道路資訊和車道資訊四個部分。
在大四選修的資訊系統實作裡,我們要用 LineBot 套件去製作一個聊天機器人當作期末作品,當時我選擇的是解謎遊戲,因為基於寫作的經驗,我想嘗試看看撰寫遊戲文本,這也是我第一次嘗試將寫作融合程式設計的作品。
在當時發生了一個小插曲:原本課堂上的教學都是用 Heroku 作為雲端主機佈署機器人的程式碼,但 Heroku 宣布從2022年11月底就不再提供免費方案,所以1月初期末發表如果還要用 Heroku,就要付費了。
所以我上網尋找了其它方案,一開始選擇 fly.io,但試了兩天發現它的伺服器相當不穩定,網路上也經常有網友反應,明明昨天顯示佈署成功,隔天卻又跳回失敗。所以在不斷尋找之下,這回找到了 render.com,不過因為這是相對冷門的雲端主機,所以我只能從它的文件去摸索使用的方法,但它的操作的確比較簡單,搭配 Github 使用,10分鐘左右就佈署好了。
總結來說,這是一個內容沒有太漂亮,但過程讓我印象深刻的作品。
大四的時候曾經參加過在學校舉辦的微軟工作坊活動,當時的課程就包含了 Power Automate 的基本教學。課程結束後,我嘗試用 Power Automate 自己做一個簡易的當日天氣預報:每天早上9點,會發送一則訊息給我的手機,說明設定的位置今天的天氣狀況簡述,降雨機率、最大風速、相對濕度高/低點等資訊。
大一到大二這段期間對網頁設計萌生了興趣,因此在 Youtube 上瀏覽了許多網頁設計的教學,像是 Kevin Powell、Online Tutorials 和 DarkCode 等頻道的範例影片,學法相當的土法煉鋼,就是照做一遍,遇到不懂的英文或程式語法就查,並寫上註解確認自己能明白為止,到大二結束前也默默累積了二十幾個作品。
大二的時候想要自己嘗試寫點 javascript 的作品,於是就參考網路上的做法,加上一點個人的設計,做出了這個小工具。選擇日期與時間後,按下 START 就會開始倒數計時,結束時會播放音樂,按下 STOP 就會重置計時器。
大二的時候無意間在網路上看到六角學院的廣告,當時對網頁算是滿有興趣的,就去嘗試看看,內容主要以 HTML 和 CSS 基礎與法、切版和專案教學為主,讓我獲益良多。
2020年新冠疫情再度流行時,學校開始嚴格控管校園各建築的出入口,除了只能從單一入口出入外,還要用學校的 APP 掃描 QR Code 回報體溫,並給大門志工確認有掃描該建築對應的 QR Code 後才可以進入建築物。
當時因為自己正好在學網頁的程式設計,所以就萌生了一個念頭:有沒有辦法將所有建築物的 QR Code,把他們對應到的連結全部整合到一個網站呢?這樣只要先打開網頁,點擊對應建築物的按鈕,就可以通關了。
於是就去收集了幾個建築物的 QR Code,發現網址是有規律的,只要修改後面對應的建築物代號,就可以找到其它連結,於是這個系統就順利做出來了。雖然成效有限,但這是我第一個從發想到製作,完全由自己執行的程式作品,對我來說還是滿值得紀錄的。