常用資源
本頁目錄
此頁面記載了許多當初對我幫助極大的連結,期望能將那些曾經幫助到我的連結彙整起來,以幫助更多人!當然,若你有私藏的相關連結也請留言分享給我唷 :)
大型語言模型 (LLM)
首先,先來推銷一下我自己經營的社團~ Facebook "LLM Free Space",主要以分享 LLM 相關新知為主,包括超酷的 MCP demo、天氣介面實作、技術論文等等,包山包海的啦!
程式/演算法
互動式學習網站
- Snakify
tags:
PythonJavaScriptPython & JS 的基礎語法題目以及教學,每個基礎概念都有影片和文字講解,很適合初學者學習。這也是我剛開始學習 Python 所使用的網站~
- Kaggle
tags:
PythonMLDLCompetition作為 機器學習 與 資料探勘 的工程師,不可能不知道的網站之一!對於 Python, ML, DL 都有詳盡的教學,也有實作,其上有雲端環境可直接在遠端主機上運行,不用吃到本機的資源。另外有很多競賽,像是數據預測、辨識等等,附有獎金與面試等機會。
- W3Schools
tags:
Web languageSQLData Analysis有各種程式語言、數據分析套件和資料庫等教學,先是基礎概念講解,而後有填空、互動練習。
- picoCTF
tags:
CTFCTF (Capture The Flag) 奪旗賽,又稱資安攻防賽。該網站係美國提供給高中生練習 CTF 的網站,以 RPG 方式進行,非常容易上手,值得一試!
- R語言翻轉教室
tags:
R由 台大教授 Wush Wu 所建置的網站,其目的在於能夠在 R 語言的編譯器中同時使用教學系統,學習與實作都在本機上進行。個人以往上課時有使用過,難度由淺入深,很適合學習。
- HackerRank
tags:
AlgorithmData StructureAIProgramming Language主題式的 線上評測系統 (Online Judge),包含演算法、資料結構、人工智慧和不同語言,個人感想是蠻像 Leetcode 的,亦可以爭取排名。
- CodinGame
tags:
GameMLProgramming Language平台上有很多款不同的遊戲,每個遊戲係由程式所控制,你會控制你的角色和其他玩家對決,其中有不同階段,木頭3, 2, 1, 銅牌, 銀牌, 金牌和傳說七種階段,成為該階段的第一名並打敗 Boss 後才可升到下一階段。每季還有特別的遊戲,非常好玩,可以嘗試看看用程式玩遊戲的學習方式~
教學網站
- Node 入門
tags:
Node.js以實務的方式學習 Node.js,按照文章學習與實作後,便能建立一個可實際應用的網站,是一個很詳盡概念很清晰的網站,非常推薦!
- 演算法筆記
tags:
AlgorithmData Structure師大資工的學長姊撰寫的,講解各式各樣的演算法與資料結構,內容蠻清楚好懂的,可以來這裡喚醒你過往的記憶~
- C Programming
tags:
C資訊安全軟體工程計算機網路師大資工紀博文老師的教學網站,課程包括 C、資訊安全和軟體工程等等,課程教材都是公開的,包括了講義、教學影片和考卷,很適合想扎實建立程式設計基礎的初學者。
- Python-100天從新手到大師 (Github)
tags:
Python按進度與主題編排長達 100 天的筆記,除了詳細筆記外也有實作的程式檔~
- freeCodeCamp
tags:
Software developer Course提供許多免費且完整的課程,每一系列皆為 300 小時,包括了資料分析、資訊安全、機器學習和網頁應用等等,完成課程後還可拿到證書~
- Physcalの大魔導書
tags:
OJ Solution大神的 Online Judge 解題部落格,會分析題目,講解如何破題~
- Morris' Blog
tags:
blog大神的部落格,發表 CS 相關的網站,包括了解題、網頁設計和工作應用等等,很值得一逛。
- Huli Medium
tags:
blog文章都很優質!很多軟體業職涯上的建議與思考的文章、技術文章,講述概念時淺顯易懂,看他的文章真的是種享受,很推薦!
- AP325─從APCS實作題檢測三級到五級
tags:
APCSAlgorithm中正資工教授 吳邦一 針對 APCS 寫的書籍,預設給實作三級以上的學生強化概念使用,不過書籍撰寫由淺入深,還包括了 APCS 題目詳解,蠻適合新手觀看的~
資源統整網站
- 程式競賽網路資源統整
tags:
AlgorithmProgramming Contest這是一份由善心人士彙整的筆記,是有關程式設計競賽相關的學習資源彙整~
- 資訊培訓相關資源彙整
tags:
AlgorithmProgramming Contest高中以臺灣高中生視角彙整的有關資訊培訓相關的學習資源~
- 資訊之芽算法班
tags:
AlgorithmProgramming ContestProgramming Language臺大資工系固定會辦「資訊之芽」的營隊,講授演算法與程式設計,其會公開所有授課教材,內容淺顯易懂很適合初學演算法的人觀看~
- Free-programming-books
tags:
AlgorithmProgramming LanguageCS Basic Concept程式相關的學習資源彙整,包括了影片、課程網站等等。
Leetcode 集中營
- wisdompeak Leetcode Collection
人稱「官神」按照類別、難度標記的 Leetcode 題目們
- 代碼隨想錄 (GitHub)
網站主要是以「軟體工程師」求職的演算法試題為主,但卻是很有效的建立演算法觀念的步驟與練習 :P
- Leetcode Contest Rating Prediction
預測你參與 Leetcode Contest 後預計的 elo 分數為何,通常蠻準的,體感認為他是以較「悲觀」的角度去預估的
- Grind 75
幫你排 Leetcode 寫題計畫的網站
文章
- 當我們在學程式時,要學的到底是什麼?
- 如何自學程式
這篇文章蠻推的,作者是名學霸,也擔任區塊鏈共同創辦人,這篇文章說明了以他的視角而言,「為什麼學習程式?」、「為什麼喜歡?」以及「如何學習」,對於程式這塊領域感到迷茫的同學,不妨看看,也許能讓你看清自己的迷茫。當時看完後我的感觸也蠻深的。
研究生 (菸酒生!?) 專區
- Read This Paper
這網站你可以輸入你想閱讀的論文,接著他會利用知識圖譜等等的技巧去找出最佳閱讀路線,每篇論文可能都需要具備某些基礎知識才能了解,而他能夠透過引用論文資料的相互關係,進而推測最佳的閱讀路線,這工具很不錯用!
- Consensus
- SCISPACE
- ChatDOC
LaTeX
是一種排版語言,簡而言之他能在使用者沒有排版、程式設計經驗下,在幾天、幾小時內產生很美觀有質感的出版著作,尤其在科技、理工類上特別好用。現在大多 Markdown 會支援基本的 Latexjax 支援其產生數學式,而也有很多研究生會用 LaTeX 寫完整的論文。他能使我們專注在內容創作而不受格式所惱,非常之讚!
- LaTeX語法教學-HackMD
- Latexjax basic tutorial教學
- LaTeX 維基教科書
- LaTeX (簡體中文的教學)
- Web: Overleaf
能用 LaTeX 共編的平台,拯救了我無數課程的書面報告!
Markdown
Markdown 是「輕量級標記式語言」,這樣說好像很難懂。現在 GitHub, Notion, HackMD 都支援。我們可以簡單記憶幾個符號,就能做出粗體、標題等等,快速產出一個乾淨美觀的文件,因此現在尤其在科技相關產業上很受歡迎,有些 Markdown 甚至支援 HTML,就能做更多精彩的事了!
- Tutorial
Markdown 語法教學,以概念輔以實際操作的方式學習,是我認為能最快學會 MD 的網站。
- 教學文章
- Markdown風格─git教學
除 Markdown 外,也有 Git 的教學,我認為比較偏向重點條列式的方式,比較適合學過一段時間,但忘記想恢復記憶的人類。
- Web: HackMD
貫徹使用 Markdown 目前用起來最順暢的線上共編平台,由台灣人開發的,總之非常之推薦,從大學到現在同學全部都在用啊~
Git
Git 簡而言之就是檔案的「時光機」,他是一種分散式版本控制系統,意即版本紀錄可以在多台不同主機上,而非集中式的。他跟 GitHub 不一樣,GitHub 是以 Git 作為版本控制系統 的程式碼代管服務平台。現在 Git 在四處都很常見,可以在不同的節骨眼開發不同功能,最後整合,甚至還能夠自動測試,在程式產品開發上超級好用,是身為資訊人必學的一項技能!
- Learn Git Branching 一律淚推 (圖源)
- Git 實務圖解
- 寫給大家的 git 教學
- 連猴子都能懂的 git 入門指南
- Git 教學 + Gif 操作動畫
- Git shareslide 分支教學
- GitKraken
這是 Git 可視化的工具,將 git 相關檔案丟入後,會將 Commit 狀況視覺化,還蠻不錯的,也有提供編輯器。過度使用的話可能要付費購買~
- 30 天精通 Git 版本控管
這是 IT 邦幫忙 鐵人賽 30 天系列的文章,概念清晰且寫的好懂,同時是平台上的熱門文章,無論是學習還是學過想強化概念,我都覺得這系列文章很值得一看。
APP Developer
- Android for Developers
由 Google 設計的一系列 Android 開發課程
Unity
開發遊戲的強大工具!!!
- Unity Learn
Unity 本身就是做遊戲的引擎,也因此這網站上有很多熱心的人以「目標」導向,你能夠選擇想做的主題、類型,去選出一個 Tutorial,還會幫你安排時程學習關鍵概念,當你學習完後,就能夠完成一款遊戲。
- Unity for Beginners (raywenderlich)
- Unity for beginners
- Unity 教學
- HackMD Unity 教學 (Author: Bogay)
- Youtube: Unity Beginner Tutorials
- 給 Unity 程式入門者的 C# 教學
Online Judge
Online Judge 簡稱 OJ,由於程式碼解題批閱不易,因此有人想出了一個方法,那就是統一規定好輸入、輸出格式,每道題目都有若干個測試資料,只要一一執行程式,比對測試資料的正解,那就可以某程度上的驗證程式碼寫的對不對了。故 OJ 常常用來指派作業、程式練習等等,能在很短的時間內就知到結果。不過缺點則是要遵循格式相當麻煩,對於初學者會有些不友善。
- Virtual Judge
這是我們系上一位老師最愛用的網站,原因是我們可以在這網站上選取不同平台的題目,還能自己建立比賽、建立題目清單去練習與模擬正式比賽。唯一的缺點是平台有時會炸掉,主因也是因為使用者人數不少啦~
- LeetCode
求職時的傳統是:「你刷過 LC 嗎?」LeetCode 上很多面試時經典的白板題,求職前可以來這邊攢蹙累積一下,或許面試時剛好就會問出來了!!
- Coderbyte
類似 LeetCode 的網站,身為大佬的你刷完 LeetCode 也可以來這邊練個手感~
- 競程日記
學生自發性發起的 OJ,且又是少見的中文資源,題目也適合初學者~
- 高中生程式解題系統
同為少見的 中文 OJ,非常多基本題,但要難題也不少。很多初學者都會先來這邊練習~
- Codeforces
俄羅斯的 OJ,系統蠻穩定的、介面也很乾淨。有比賽以及排名系統,想練習比賽可以來這邊~
- Uva online judge
很有名的題目網站,大學生程式能力檢定 (CPE) 就是以該網站的題目為題庫抽選的,網站最大的缺點就是系統遲緩,較建議去 Virtual Judge 練習 Uva 的題目可能比較省事。
- Lucky 貓的 UVA 園地
如果你選擇 Uva 的題目練習,你一定很喜歡這網站。他翻譯了許多 Uva 的題目~
- Google code jam
身為半出社會人士的我,之後很喜歡的比賽。它是由 Google 舉辦的,有好幾階段的比賽,重點是題目的品質非常好,如果你對程式已經有一定程度的自信,我會很建議來這邊試試。
Vim
如果說 Emacs 是神之編輯器,那 Vim 就是編輯器之神了,他有「眼到即手到」的美名,但由於其陡峭的學習曲線而令許多人望之卻步,可見下圖:
(Source)
因為他需要在初學階段,就記憶相當多的組合按鍵。不過其理論就是能夠讓你集中在鍵盤敲打區域上,而不要去用滑鼠,藉此達到相當高效的編輯效率,因此這樣古老的工具至今仍所向披靡。只要按部就班學習,就能在一兩小時能達到如「記事本」上的速度,而在熟悉一兩天,則可以略快於 IDE (不使用額外套件),是個越學越覺得水很深的工具。
2023.05.12 補:最近迷上了 neovim,彷彿從 Windows 轉到 Linux 的舒暢感 (?),體感最大差別在 Plugin 易用性、好看度、好用度和方便性吧,另外載入速度快太多了,彈性也大不少,越用越香 (推坑)
How to exit the Vim editor? (XD)
- Vim
很詳盡的 Vim 教學文章,文章名為「精通 vim,此文就夠了」,不過其實你還有 Plugin 和其他的內容需要研究探討XD
- Vim 遊戲版教學
- VimGenius
- Interactive Vim
- 基礎vim教學
- Vim Tutorial (tutorialpoint, linuxconfig)
- Learn vim For the Last Time: A Tutorial and Primer
- Learn Vim in Github
Youtube教學
- Vim Tutorial / YouTuber: ThePrimeagen
我個人很喜歡的教學,講的清楚且逗趣,教的也很精華能學會實際上最慣用的技巧,推推!
- Vim Tutorial (time:
1 hour) - How to use vim (time:
8 mins) - Vim Basics in 8 Minutes
延伸
- cVim(指令教學列表、介紹)
這是一款使你能用 Vim 的方式控制瀏覽器的工具。目前 cvim 已經壞掉了,而因不錯用,後續有人 fork 出 "vb4c" 持續維護~
- Markdown plugin for vim
- 高效做筆記: vim + markdown
- 21 Best Vim Plugins
自然語言處理 Netural Language Processing (NLP)
- LeeMeng - 淺談神經機器翻譯 & 用 Transformaer 與 TensorFlow 2 英翻中
- LeeMeng - 進擊的 BERT:NLP 界的巨人之力與遷移學習
- 李宏毅老師 - DEEP LEARNING FOR HUMAN LANGUAGE PROCESSING 2020 SPRING
- 史丹佛大學 cs224n:NLP 課程
- 史丹佛大學 cs224u:NLU 課程
- LLMSurvey: 大型語言模型 大熔爐!!
大型語言模型 Large Language Models (LLMs)
- 李宏毅老師 - 機器學習
- 影片著重在 最新 的 LLM 發展,講的超淺顯易懂。而且作業精心設計,像是 Hw2,我記得是讓你寫一個 LLM Agents,他能夠依照你給定的機器學習任務敘述、資料集等等,不斷自我修正產生能應用於你給定的機器學習任務的程式碼,這幾乎是可以當一個 side project 等級了,還有很多很多,可以在這邊挖寶!
- 李宏毅老師 - 生成式人工智慧導論 春季班
- The Rise and Potential of Large Language Model Based Agents: A Survey
- 提示工程指南 (Prompt Engineering Guide)
語音處理
- 2023 - 語音基石模型 (Speech Foundation Models) by 機器學習助教 張凱為
非常用心且厲害的投影片,助教本身實力也超群,說是「厲害的學者」也不爲過,錄影可參考 2023 機器學習 的網站 :)
- 2022 - DSP 李琳山老師
李老師是在語音領域的大師,講課清楚且有智慧,課程作業也蠻有趣的,如:發音分類、中文數字發音分類、注音句子糾正 (e.g. ㄓ教作業ㄏ難 --> 助教作業好難),是入門語音相當好的課程。
- DSP 數位語音處理概論 - 李琳山老師 OCW 線上課程
- 音訊處理與辨識 - Roger
- 哥倫比亞大學 - 語音辨識 (EECS E6870)
- 語音辨識技術 - hackmd 筆記
- 機器學習應用於語音相關服務 - IT邦幫忙鐵人賽
人工智慧 Artificial Intelligence (AI)
Convolutional Neural Networks (CNN)
- CS231n
史丹佛大學的公開課程,課程紮實甚至許多公司作為面試的考題。
機器學習 Machine Learning (ML)
註記:李老師的課程主要偏向 Deep Learning,而軒田老師的課程則是「真」ML,兩者之間核心差異在於是否有使用 Neural Network (NN),可按照自己需求選擇之。李老師授課會用比較生活或貼近同學的事物來講述,如寶可夢、或在圖像生成時以動漫角色講述,每年課程都會跟上時事,如 2023 年授課就大幅度介紹了 chatGPT 背後的概念與原理。
- 2023-ML-台大李宏毅教授 (Generative Model Series)
- 2021-ML-台大李宏毅教授
- 2020-ML─台大李宏毅教授(origin web url)
臺大教授 aka 寶可夢大師,授課淺顯易懂,以較為實用生活的角度教課,課程一直都很熱門,修課人數屢屢突破臺大選課系統的限制。
- 機器學習基石與技法─台大林軒田教授(學習筆記 1、第一講筆記、第 1~7 講概略筆記)
- 《機器學習法則》繁中版(一)在機器學習之前
深度學習 Deep Learning (DL)
- 2019-ADL-台大陳縕儂教授
老師專長是和自然語言處理 (NLP) 相關,因此授課會以 NLP 相關的 DL 為中心講述,包括作業 (意圖分類、問答檢索和文章摘要) 也都以 NLP 為主。
正則表達式 Regular expression
- RegexOne
- RegexCrossword
- Try Regex
- RegExr
- Regex101
- Regex crash
- 要成為GA專家一定要懂的正規表示式
- 正規表達式教學,使用狀態機輔助說明-基礎篇
筆記
其它
雲端
資訊相關 粉絲專頁 / YouTuber
Source: IG@career_code & Me
YouTuber - Data Structure (DS) & Algorithm (Algo.)
YouTuber - APP Development
YouTuber - Artificial Intelligence (AI) & Machine Learning (ML)
YouTuber - Web Development
YouTuber - Cyber Security
YouTuber - Block Chain
YouTuber - Other
粉絲專頁
競賽
- T-Brain AI 實戰吧
由趨勢科技主辦的 人工智慧相關競賽,在這舉辦的比賽大多都有獎金、獎狀,從自然語言處理、語音到影像不同領域都有。
- AIdea 人工智慧共創平台
由工業技術研究院負責的競賽網站,有很多人工智慧相關的主題可以嘗試,題目比 TBrain 多很多,但不一定會有獎金,蠻適合當作練功坊的!
檢定
職場
求職平台
[Ref: https://www.ptt.cc/bbs/Salary/M.1554380867.A.29F.html]
工具
筆記類
- overleaf / LaTeX & 共編 [Online]
- HackMD / Markdown & GUI & 共編 [Online]
- notion / Markdown & GUI & 共編 [Online]
- typora / Markdown [Offline]
輸入法 / 教學類
- FISH UP 行列查碼
行列輸入法學習網站,學習、查碼和打字練習都有,行列輸入法一直以來資源都很少,這是近年來熱心人士所撰寫的網站,若不想記部首位置,又想學一種拆字系統的輸入法還蠻推薦的。
線上環境
小工具類
- ReadThisPaper
由中正資工所學生開發的「論文」利器,按照你查詢的論文,會幫你由淺入深推薦建議的論文閱讀順序,有關介紹可詳見作者的說明文
- HTML轉PDF工具
- Witeboard
疫情世代下討論的利器!線上共用白板,很像 Jamboard,但好用很多XD
- QRCode Generator
- ezgif
提供影片各種處理功能的平台,無論操作還是流暢度都很不錯。
文章匯聚網站
擁有自己的網站!!
文章
- 為你自己學 git
作者高見龍架設的網站,除了觀念教學外,也有練習場可以實際操作練習。
- Jeff Hu (Medium)
強者的 Medium,多半是分享區塊鏈的內容,但也有像 GRE 329 這類的準備歷程。
- Tina (Medium)
同為神人的 Medium,個人很喜歡他的文筆,在教學以及心路歷程上都寫得很詳盡清楚,作者品質一直都很好,很喜歡看他的文章。(github)
- 1700頁數學筆記火了!全程敲代碼:
一位數學系學生將 LaTeX 與 Vim 用到極致,能同步上課做筆記,兼顧速度與精美。這篇文章記載了他如何配置 Vim 以達到「神的境界」。
- 每一篇心得都有價值——為什麼初學者才更應該要寫心得筆記
Huli 寫的文章都很淺顯易懂相當推薦,這篇主要是在鼓勵你乖乖寫心得受用無窮這樣XD
後記
若有其他資訊相關的推薦連結,歡迎在下方留言~ 很讚的我就會收錄在清單中唷😄
These are resources that helped me learn, gathered here in the hope that they'll help you too. If you have a favorite resource to add, please share it in the comments :)
Large Language Models (LLM)
First, a quick plug for the Facebook group I run, "LLM Free Space"! I share LLM news, interesting MCP demos, weather interface projects, technical papers, and more.
Programming / Algorithms
Interactive Learning Websites
- Snakify
tags:
PythonJavaScriptBeginner-friendly Python and JavaScript exercises and tutorials, with video and written explanations of the basics. This is where I started learning Python!
- Kaggle
tags:
PythonMLDLCompetitionA useful starting point for machine learning and data mining, with detailed Python, ML, and DL tutorials and practical exercises. Cloud notebooks let you run code without using your own computer's resources. There are also competitions in prediction, recognition, and other areas, some offering prizes or interview opportunities.
- W3Schools
tags:
Web languageSQLData AnalysisTutorials on programming languages, data analysis libraries, and databases. Explanations of the basics are followed by fill-in-the-blank and interactive exercises.
- picoCTF
tags:
CTFA U.S.-based site for high school students to practice Capture the Flag (CTF) cybersecurity challenges. Its RPG-style approach makes it easy to get started—give it a try!
- R Programming Flipped Classroom
tags:
RCreated by NTU's Wush Wu, this resource lets you learn and practice directly in a local R environment. I used it in class and liked how the exercises build gradually from the basics.
- HackerRank
tags:
AlgorithmData StructureAIProgramming LanguageAn online judge with exercises organized by topic, including algorithms, data structures, AI, and programming languages. It feels similar to LeetCode to me, with rankings to compete for too.
- CodinGame
tags:
GameMLProgramming LanguageWrite code to control your character and compete against other players. The leagues progress through Wood 3, 2, 1, Bronze, Silver, Gold, and Legend; reaching the top of a league and defeating its boss lets you advance. Seasonal games add variety. It's a fun way to learn by programming games!
Tutorial Websites
- Node.js Introduction
tags:
Node.jsA practical introduction to Node.js that walks you through building a working website. The explanations are detailed and clear—I highly recommend it!
- Algorithm Notes
tags:
AlgorithmData StructureNotes by NTNU Computer Science students explaining algorithms and data structures. Clear explanations make this a good place to refresh what you've learned.
- C Programming
tags:
CInformation SecuritySoftware EngineeringComputer NetworksNTNU Computer Science Professor Chi Po-Wen's teaching site, covering C, information security, software engineering, and more. Public materials include handouts, lecture videos, and exams—a useful resource for building solid programming fundamentals.
- Python-100 Days from Beginner to Master (Github)
tags:
PythonA 100-day learning plan organized by topic, with detailed notes and code to practice with.
- freeCodeCamp
tags:
Software developer CourseFree, structured courses covering data analysis, information security, machine learning, web applications, and more. The 300-hour course series include certificates on completion.
- Physcal's Grand Grimoire
tags:
OJ SolutionAn experienced programmer's online judge solution blog, with problem analysis and explanations of how to approach each solution.
- Morris' Blog
tags:
blogA blog by an experienced programmer, covering problem solving, web design, and practical software applications. Well worth a visit.
- Huli Medium
tags:
blogTechnical articles alongside career advice and reflections on the software industry. Huli explains concepts clearly, and I always enjoy reading his work.
- AP325─From APCS Implementation Level 3 to Level 5
tags:
APCSAlgorithmAn APCS book by Chung Cheng University Computer Science Professor Wu Bang-Yi, aimed at students at practical level 3 or above. It builds concepts gradually and includes detailed problem solutions, so beginners can also find it useful.
Resource Compilation Websites
- Programming Contest Online Resources Collection
tags:
AlgorithmProgramming ContestA community-compiled collection of learning resources for programming contests.
- Information Training Related Resources Collection
tags:
AlgorithmProgramming ContestHigh SchoolComputer science training resources compiled from the perspective of Taiwanese high school students.
- NTU CSIE Sprout Algorithm Class
tags:
AlgorithmProgramming ContestProgramming LanguageNTU's Computer Science department runs "Sprout" classes on algorithms and programming. The public course materials are clear and accessible for beginners.
- Free-programming-books
tags:
AlgorithmProgramming LanguageCS Basic ConceptA collection of programming resources, including videos and course websites.
Leetcode Resources
- wisdompeak Leetcode Collection
LeetCode problems organized by topic and difficulty by wisdompeak, also known as "官神" in the community.
- 代碼隨想錄 (GitHub)
Focused on algorithm questions for software engineering interviews, with a structured approach that also helps build algorithmic thinking through practice :P
- Leetcode Contest Rating Prediction
Predicts your rating after a LeetCode contest. I've found it fairly accurate, though the estimates tend to be a little conservative.
- Grind 75
A tool for planning your LeetCode practice schedule.
Articles
- What Are We Really Learning When We Learn Programming?
- How to Self-Learn Programming
A strong student and blockchain co-founder shares why he learns programming, what he enjoys about it, and how he approaches learning. If you're unsure about your direction, this may help you find some clarity. It resonated with me when I read it.
Graduate Students Section
- Read This Paper
Enter a paper you want to read, and the site uses knowledge graphs and citation relationships to suggest a reading order. It helps you work through the background knowledge you may need before tackling the paper.
- Consensus
- SCISPACE
- ChatDOC
LaTeX
is a typesetting system that helps you create polished documents, especially in science and engineering. You can get started without previous typesetting or programming experience. Many Markdown tools support LaTeX-style math through MathJax, and many graduate students use LaTeX for their theses. I like being able to focus on the content rather than the formatting.
- LaTeX Syntax Tutorial-HackMD
- MathJax Basic Tutorial and Quick Reference
- LaTeX Wikibooks
- LaTeX (Simplified Chinese Tutorial)
- Web: Overleaf
A collaborative LaTeX platform that has helped me through countless course reports!
Markdown
Markdown is a "lightweight markup language": a few simple symbols let you add headings, bold text, and other formatting to plain text. It's supported by GitHub, Notion, and HackMD, among others. It's a quick way to create clear, readable documents, and some Markdown tools also support HTML for more flexibility.
- Tutorial
An interactive Markdown tutorial that combines explanations with practice. I think it's one of the quickest ways to learn.
- Tutorial Article
- Markdown Style─Git Tutorial
Covers Git as well as Markdown. Its concise notes are useful when you've learned the basics and need a refresher.
- Web: HackMD
A Markdown collaboration platform developed in Taiwan. It's the smoothest one I've used, and it has been a favorite among my classmates since university.
Git
Think of Git as a "time machine" for files. It tracks changes, and its distributed design lets each computer keep a copy of the repository's history. GitHub is a service for hosting Git repositories. With Git, you can develop features on separate branches and merge them later; it also fits into workflows with automated testing. It's an essential tool for software development.
- Learn Git Branching Highly recommended (Source)
- Git Practical Illustrated Guide
- Git Tutorial for Everyone
- Git Tutorial Even Monkeys Can Understand
- Git Tutorial + Gif Operation Animations
- Git ShareSlide Branch Tutorial
- GitKraken
A visual Git tool that displays a repository's commit history and includes an editor. I like its interface; some features may require a paid plan.
- Master Git Version Control in 30 Days
A popular 30-day series from the iT Help Iron Man Contest, with clear explanations of Git. I recommend it for both learning and reviewing the concepts.
APP Developer
- Android for Developers
A series of Android development courses from Google.
Unity
A powerful tool for game development!
- Unity Learn
Unity's learning site offers tutorials organized around what you want to build. Pick a game type or topic and follow a learning path through the key concepts to a finished game.
- Unity for Beginners (raywenderlich)
- Unity for beginners
- Unity Tutorial
- HackMD Unity Tutorial (Author: Bogay)
- Youtube: Unity Beginner Tutorials
- C# Tutorial for Unity Programming Beginners
Online Judge
An online judge (OJ) checks code against test cases. Each problem specifies an input and output format; the judge runs your program and compares its output with the expected answers. This gives quick feedback for assignments and programming practice, though strict formatting can be frustrating when you're starting out.
- Virtual Judge
A favorite of one of our department's teachers. It brings together problems from different platforms and lets you create contests and practice sets. It's useful for simulating a competition, though it can occasionally become unstable when busy.
- LeetCode
"Have you practiced LeetCode?" is a familiar question when preparing for engineering interviews. It has many classic interview problems, making it a useful place to practice before applying for jobs.
- Coderbyte
Similar to LeetCode—another place to practice when you want more problems to keep your skills sharp.
- Programming Contest Diary
A student-run online judge with Chinese-language problems suitable for beginners.
- High School Programming Problem Solving System
A Chinese-language online judge with plenty of basic exercises and harder problems too. Many beginners start practicing here.
- Codeforces
An online judge from Russia with a clean interface, contests, and a rating system. A good place to practice competitive programming.
- UVa Online Judge
A well-known problem archive used as a question bank for the Collegiate Programming Examination (CPE). I've found the site slow, so practicing its problems through Virtual Judge can be more convenient.
- Lucky Cat's UVA Garden
A helpful companion for practicing UVa problems, with many problem statements translated into Chinese.
- Google Code Jam
One of my favorite competitions as I moved from university into working life. Google's multi-stage contest had excellent problems. If you're comfortable with programming, I recommend trying the archived problems.
Vim
There's a joke that Emacs is God's editor and Vim is the god of editors. Vim's keyboard commands make editing fast once you're familiar with them, but its steep learning curve can be intimidating, as the figure below shows:
(Source)
There are quite a few commands to learn at first. The idea is to keep your hands on the keyboard instead of reaching for the mouse, which helps explain why this long-established editor is still popular. In my experience, learning step by step can get you editing at Notepad speed in an hour or two; after another day or two of practice, you may be faster than in an IDE without extra plugins. There's always more to learn.
2023.05.12 Update: I've been getting into Neovim lately—it feels a bit like switching from Windows to Linux (?)! I find its plugins easier to use, with a nicer interface and a more convenient workflow. It also loads much faster and gives me more flexibility. The more I use it, the more I like it!
How to exit the Vim editor? (XD)
- Vim
A detailed tutorial titled "Master Vim, This Article Is Enough"—though there's still a whole world of plugins and other features to explore XD
- Vim Game-based Tutorial
- VimGenius
- Interactive Vim
- Basic Vim Tutorial
- Vim Tutorial (tutorialpoint, linuxconfig)
- Learn vim For the Last Time: A Tutorial and Primer
- Learn Vim in Github
Youtube Tutorials
- Vim Tutorial / YouTuber: ThePrimeagen
One of my favorite tutorials: clear, funny, and focused on practical skills you'll use often. Highly recommended!
- Vim Tutorial (time:
1 hour) - How to use vim (time:
8 mins) - Vim Basics in 8 Minutes
Extensions
- cVim(Command Tutorial List, Introduction)
A tool for controlling your browser with Vim-style commands. cVim had stopped working when I wrote this, but a fork called "vb4c" continued its development.
- Markdown plugin for vim
- Efficient Note-taking: vim + markdown
- 21 Best Vim Plugins
Natural Language Processing (NLP)
- LeeMeng - Introduction to Neural Machine Translation & English-Chinese Translation with Transformer and TensorFlow 2
- LeeMeng - Attack of BERT: Giant Power and Transfer Learning in NLP
- Professor Hung-yi Lee - DEEP LEARNING FOR HUMAN LANGUAGE PROCESSING 2020 SPRING
- Stanford cs224n: NLP Course
- Stanford cs224u: NLU Course
- LLMSurvey: Large Language Models Great Melting Pot!!
Large Language Models (LLMs)
- Professor Hung-yi Lee - Machine Learning
- Clear explanations of the latest LLM developments covered in the course, with thoughtfully designed assignments. As I recall, Hw2 asked you to build an LLM agent that generates and iteratively corrects code for a machine learning task, using its description and dataset. That's substantial enough to be a side project, and there's plenty more to explore!
- Professor Hung-yi Lee - Introduction to Generative AI Spring Class
- The Rise and Potential of Large Language Model Based Agents: A Survey
- Prompt Engineering Guide
Speech Processing
- 2023 - Speech Foundation Models by Machine Learning TA Chang Kai-Wei
Carefully prepared slides by a very capable teaching assistant. For the recordings, see the 2023 Machine Learning course website :)
- 2022 - DSP Professor Lin-shan Lee
Professor Lee brings extensive expertise in speech processing and explains it clearly. Assignments include pronunciation classification, spoken Chinese digit classification, and correcting sentences with phonetic symbols (e.g. ㄓ教作業ㄏ難 --> 助教作業好難). It's an excellent introduction to speech processing.
- DSP Digital Speech Processing Introduction - Professor Lin-shan Lee OCW Online Course
- Audio Signal Processing and Recognition - Roger
- Columbia University - Speech Recognition (EECS E6870)
- Speech Recognition Technology - HackMD Notes
- Machine Learning Applications in Speech-Related Services - IT Help Iron Man Contest
Artificial Intelligence (AI)
Convolutional Neural Networks (CNN)
- CS231n
A solid open course from Stanford, covering concepts that also come up in technical interviews.
Machine Learning (ML)
Note: Professor Hung-yi Lee's courses focus more on deep learning and neural networks, while Professor Hsuan-Tien Lin covers machine learning foundations and techniques. Choose according to what you want to learn. Professor Lee uses relatable examples, including Pokémon and anime characters, to explain concepts such as image generation. His courses also follow developments in the field; the 2023 course explored the ideas behind ChatGPT in depth.
- 2023-ML-NTU Professor Hung-yi Lee (Generative Model Series)
- 2021-ML-NTU Professor Hung-yi Lee
- 2020-ML─NTU Professor Hung-yi Lee(original web url)
NTU's "Pokémon Master" explains concepts through practical, everyday examples. The course is very popular, with enrollment repeatedly exceeding NTU's course registration limits.
- Machine Learning Foundations and Techniques─NTU Professor Hsuan-Tien Lin(Study Notes 1, First Lecture Notes, Lectures 1~7 Brief Notes)
- Rules of Machine Learning Traditional Chinese Version (1) Before Machine Learning
Deep Learning (DL)
- 2019-ADL-NTU Professor Yun-Nung Chen
Professor Chen specializes in natural language processing (NLP), so the course focuses on deep learning for NLP. Assignments include intent classification, question answering and retrieval, and text summarization.
Regular Expression
- RegexOne
- RegexCrossword
- Try Regex
- RegExr
- Regex101
- Regex crash
- Must-Know Regular Expressions to Become a GA Expert
- Regular Expression Tutorial with State Machine Assistance - Basics
Notes
- Programming Environment Setup
- Vim-like Tools Introduction
- Programming Contest Summer Training
- Programming I Shared Notes
Others
Cloud Computing
IT-Related Fan Pages / YouTubers
Source: IG@career_code & Me
YouTuber - Data Structure (DS) & Algorithm (Algo.)
YouTuber - APP Development
YouTuber - Artificial Intelligence (AI) & Machine Learning (ML)
YouTuber - Web Development
YouTuber - Cyber Security
YouTuber - Block Chain
YouTuber - Other
Fan Pages
Competitions
- T-Brain AI Arena
AI competitions hosted by Trend Micro, covering natural language processing, speech, and image processing. Most offer prizes and certificates.
- AIdea AI Co-creation Platform
A competition platform run by the Industrial Technology Research Institute, with a wide range of AI tasks to try. I've found more tasks here than on T-Brain, though prizes aren't always offered. A good place to practice!
Certifications
- CPE - Collegiate Programming Examination
- APCS - Advanced Placement Computer Science
- ITSA - Programming Ability Online Self-Assessment
- CSF - Programming Speed Contest
Career
Job Platforms
[Ref: https://www.ptt.cc/bbs/Salary/M.1554380867.A.29F.html]
Tools
Note-taking
- overleaf / LaTeX & Collaborative [Online]
- HackMD / Markdown & GUI & Collaborative [Online]
- notion / Markdown & GUI & Collaborative [Online]
- typora / Markdown [Offline]
Input Methods / Tutorial
- FISH UP Array Code Lookup
A site for learning the Array input method, with code lookup and typing practice. Resources for Array can be hard to find, so this community-built site is helpful if you want a Chinese input method based on character components without memorizing radical positions.
Online Environments
- Repl.it
An online development platform with an Ubuntu shell for writing code and connecting to GitHub. It used to be one of my favorites!
- HEROKU
Small Tools
- ReadThisPaper
A paper-reading tool developed by Computer Science graduate students at Chung Cheng University. Given a paper, it recommends a reading order from background material to more advanced work. See the author's introduction for details.
- HTML to PDF Tool
- Witeboard
An online shared whiteboard that was useful for remote discussions during the pandemic. Similar to Jamboard, but I found it much easier to use XD
- QRCode Generator
- ezgif
A collection of video processing tools with a smooth, straightforward interface.
Article Aggregation Websites
Have Your Own Website!!
Articles
- Learn Git for Yourself
Will Kuo's site explains Git concepts and includes exercises for hands-on practice.
- Jeff Hu (Medium)
Jeff writes mainly about blockchain, but also shares experiences such as preparing for a GRE score of 329.
- Tina (Medium)
I enjoy Tina's writing: both her tutorials and accounts of her learning journey are detailed and clear. Her articles are consistently a pleasure to read. (github)
- 1700-Page Math Notes Went Viral! Full Code Writing:
A mathematics student uses LaTeX and Vim to take polished notes in real time during lectures. This article explains how he configured Vim to balance speed and presentation.
- Every Experience Has Value——Why Beginners Should Write Experience Notes
Another clear, approachable article from Huli, encouraging beginners to write about what they learn and reflect on their experiences.
Epilogue
Have another computing resource to recommend? Feel free to share it in the comments! I'll add useful suggestions to the list!😄