Appearance
為何要選擇技術路線
學程式,最難的往往不是寫代碼,而是「選路」。
打開技術論壇,你會看到 Python、JavaScript、Rust、Kotlin... 這些名詞像潮水一樣湧過來。很多人告訴你「這個最紅」或「那個最好找工作」,但卻很少有人告訴你,這些技術背後的邏輯是什麼,以及它們是否真的適合「現在的你」。
這篇文章不會只教你選熱門的工具,而是要帶你從開發者的視角,看清楚不同技術路線的風景與坑洞。
通用
如果沒有特別偏好也沒有專業需求的話,我建議選擇 Python,Python 具有最多、全面的功能,涵蓋數據分析到網站設計,甚至 AI 相關都有,雖然在許多專業的場景中他的表現不如許多其他的語言,但是廣泛的功能性決定了他是入門的最佳選擇之一。
網站開發
網站開發是 最好入門的 GUI(圖形化介面),因為只要一個瀏覽器,你的程式碼就能立刻變成視覺畫面。但我並不推薦初學者在一開始就選擇網頁開發,原因在於其混亂的依賴關係與破碎的語言特性,這不利於建立嚴謹的計算機科學架構。
如果你是為了資工系打基礎或追求職涯長遠發展,建議遵循以下技術路徑,並盡量不用使用套件與框架:
- HTML (結構): 理解網頁的骨架,學習標籤(Tag)的語意化。
- CSS (樣式): 學習排版邏輯,這部分對工程師來說通常是最痛苦的。
- JavaScript (邏輯): 這是重中之重。不推薦 PHP,因為 JS 透過 Node.js 已經可以達成全棧開發,且語法演進更符合現代程式設計趨勢。
JS 經驗分享
我在高一的時候有做一個專案 - DC 報氣象機器人,那時我大概學了一年的C++,一開始用python做都很順利,但後來 Discord API 改版,所以我只能去官網查教學(英文)並使用,那簡直是個地獄,我不僅要忍受難懂的程式語法,還需要看頭痛的英文教學,我最後花了大概一個學期才做完。
手機應用
Android 開發我有些基本了解,如果你不熟悉程式設計,這不是一個很好的入門選擇,雖然他的環境相對安定,但是複雜的套件管理與高層次軟件設計概念 (如OOP等) 會讓初學者感到困惑,以下為四個當前主要的語言與環境選擇:
- Android Studio (Kotlin/Java): Android 最佳,支持很多新的功能,且 Kotlin/Java 常見於現代開發。
- Flutter (Dart): 上手極快,通用 Adnroid 與 IOS 但部分功能會無法使用,Dart 這個語言也就這裡能看到他了。
- React Native (JS): 通用,但通常是學過 React (網頁開發) 才來學他的。
- Xcode (Swift): 只有需要深耕 Apple 生態才需要學 Swift。
遊戲
與網站開發和手機應用一樣,我不推薦從遊戲開始上手,遊戲開發需要處理比手機應用更複雜的專案配置,許多時候需要自己尋找素材,程式部分也需要高階的程式設計能力。
- Unity (C#)
- Unreal (C++)
系統性學習
我比較推薦初學者入門從底層語言開始學習,更能建立完整、系統性的認識,可以通過練習寫演算法和刷題增進邏輯能力,初學者不建議刷 leetcode。 每種語言都有他擅長的領域與侷限,沒有完美的語言,很多時候項目會使用不只一種語言,都懂一些可以增進團隊效率,建議從三個類別都學一個並專精一門。
- 底層: 性能好、難調整
- C/C++: 專業必選,最扎實與基礎
- Rust: 較C安全,也是現在很流行的語言
- Runtime: 性能較差,但更改簡單
- Java/Kotlin: 較主流
- C#
- 腳本語言
- Python: 最通用選擇
- JavaScript: 快速開發
其他語言與工具
這些都是與開發關係較小或是不太像傳統程式的,但在特定領域有不可取代的效果。
MATLAB: 數據分析
SQL: 資料庫使用
Blender: 動畫與建模
總結
對於初學者而言,選擇語言時,請先釐清你的動機:
無特定目標: 選 Python。它能幫你解決 80% 的日常問題,且學習門檻最低。
追求深耕: 從 C++ / Rust 開始。這會讓你理解電腦運行的本質,之後轉任何語言都能快速上手。
剛入門很難做出可以使用的軟體,請不要感到挫折。
看到這裡,你可能會覺得我一直在打壓網頁或手機開發。其實不然,這些領域的產出最有成就感,也是現代科技的基石。
我的核心觀點是:「不要把工具當成基礎。」
如果只想要快速解決問題或是興趣實驗,產出快速的 JS 和 Flutter 也是完全可以考慮的選項,大部分程式語言與應用並沒有那麼的雷,但我必須保證我不會推薦學習曲線陡峭的方式。