coding road


基本程式概念

  1. 輸入與輸出 (input and output)
  2. 變數型態與宣告變數
  3. 運算子 (算術、比較、位元、邏輯、關係)
  4. if 選擇結構
  5. for、while 重複結構
  6. 一維陣列 (array)

演算法 (algorithm)

  • 排序
  • 遞迴
  • 堆疊
  • 佇列
  • 二元樹
  • 圖論
  • 雜湊
  • 暴力法
  • 分治法
  • 動態規劃

C&C++

技能樹

  1. 字串 (string)
  2. 多維陣列
  3. 函式 (function)
  4. 標頭檔
  5. 指標 (pointer)
  6. 參考 (reference)
  7. 結構 (struct)
  8. 建構式
  9. 解構式

常用函式

  • abs (絕對值)
  • pow (次方)
  • sqrt (開根號)
  • random (亂數)
  • length (字串長度)
  • sort (陣列排序)
  • min (取兩數中較小值)
  • max (取兩數中較大值 )

常用函式庫

  • iostream
  • algorithm
  • cctype
  • string
  • math
  • cstdlib
  • iomanip

Java

Java 初階工程師

  1. 類別 (class)
  2. 管理資料夾 (package)
  3. 物件 (object)
  4. 方法 (method)
  5. 轉型 (強制轉型、隱含轉型)
  6. 存取修飾字 (public、private、protected、default)
  7. 建構子 (constructor)
  8. ArrayList
  9. 介面 (interface)
  10. 列舉 (enumerations)
  11. 集合 (Set)
  12. 抽象類別 (abstract class)
  13. 多載 (overload)
  14. 覆寫 (override)
  15. 例外處理 (exception)
  16. I/O 操作
  17. Lambda 表達式
  18. 執行緒
  19. JDBC (資料庫操作)

Java 高階工程師

  1. Java AWT
  2. Java Swing
  3. Java Spring
  4. Java MVC
  5. Servlet
  6. Hibernate
  7. JSP
  8. Tomcat、TomEE
  9. RESTful api
  10. Web container

Python

網站開發

  • Django 網站框架
  • Flask 網站框架

物理模擬

  • VPython

遊戲開發

  • Pygame

視窗開發

  • Tkinter
  • Kivy

網頁爬蟲

  • Request
  • BeautifulSoup

資料視覺化

  • Matplotlib

AI 實作

  • Tensorflow
  • Keras
  • OpenCV
  • PyTorch
  • Numpy
  • Pandas
  • Scikit-learn (機器學習)

R 語言

IDE:RStudio

dplyr 套件

  • filter():篩選符合條件的觀測值
  • select():選擇變數
  • arrange():依照變數排序觀測值
  • summarise():聚合變數
  • group_by():依照類別變數分組,通常搭配 summarise() 函數一起使用

ggplot2 套件 (資料視覺化)

  • aes():負責將素材綁定至 X 軸與 Y 軸 
  • geom_histogram() :直方圖  
  • geom_boxplot() :盒鬚圖
  • geom_line() :線圖
  • geom_point() :散佈圖
  • geom_bar() :長條圖

C# (C sharp)

  • ASP.Net
  • Window Forms
  • MVC
  • Web API
  • .Net Framework
  • .Net Core

Android 行動裝置開發 (以 Java 為例)

Java 基礎

  • Java object、class、method
  • Hashmap 原理、集合(Set)、執行緒
  • ArrayList 與 LinkList 聯繫
  • GC (Garbage Collection) 機制
  • Java 泛型
  • Java Synchronized
  • ThreadPool 原理

Java 進階

  • Java JVM (虛擬機)
  • Java 物件生命週期
  • HTTP 協定、HTTPS 協定
  • Socket 協定
  • TCP / IP
  • 序列化與反序列化
  • ThreadPool 實現
  • 資料庫操作 (DataSource)

Android 架構

  • MVC (Model-View-Controller) 模式
  • MVP (Model-View-Presenter) 模式:視圖由表示器初始化,它呈現用戶界面(UI)並接受用戶所發出命令,但不對用戶的輸入作任何邏輯處理,而僅僅是將用戶輸入轉發給表示器
  • MVVM (Model-view-viewmodel) 模式:有助於將圖形化使用者介面的開發與業務邏輯或後端邏輯(資料模型)的開發分離開。
  • CLEAN 模式:依賴應該是從外到內,因此在實現上,率先實現內層,再實現外層,而每一層都會把內部那一層完全包裹起來,形成一個類似洋蔥的結構。
  • 組件化開發
  • 跨平台開發:Flutter

Android 基礎

  • Application 生命週期
  • Android Activity 生命週期
  • Android Service、IntentService
  • Activity 的 onNewIntent
  • BroadcastReceiver 使用
  • Android 消息機制
  • Binder 機制,共享內存實現
  • Android Event 分發機制
  • Android 多工實現:Thread、HandlerThread、AsyncTask、IntentService
  • ActivityThread 工作原理
  • View 的繪製
  • RecyclerView 與 ListView
  • Android ADB

Android 進階

  • Android包 管理機制,核心 PackageManagerService
  • Window 管理,核心 WindowManagerService
  • Android Activity 啟動和管理,核心ActivityManagerService
  • Context 關聯類
  • 自定義 LayoutManager,RecyclerView中如何自定義 LayoutManager
  • OKHttp3 的使用,網路請求中的 Intercept
  • Dagger 依賴注入

混合開發 - Android WebView 應用

  • App 調用 WebView 加載 url
  • WebView 封裝、WebSettings 配置、WebViewClient、WebChromeClient
  • WebView 和 Native 雙向通信機制

伺服器 (Server)


資料庫 (Database)


物聯網 (Internet of Things,簡稱IoT)

物聯網設備

物聯網實作平台

  • 中華電信 CHT IoT 平台
  • Google Cloud IoT
  • AWS IoT 服務
  • Azure IoT

Line Bot

  • Line Login
  • Line Message API
  • Line Chain Service (區塊鏈服務)
  • LIFF (LINE Front-end Framework)

Git 版本控管

版本控制系統是一種軟體工程的開發技巧,可以透過這個系統讓每位成員的軟體版本可以方便同步和維護管理。一般在軟體開發中又分為中央式系統與分散式系統,中央式版本控制系統的工作主要在一個伺服器進行,由中央管理存取權限「鎖上」檔案庫中的檔案,一次只能讓一個開發者進行工作。而分散式系統讓不同開發者直接在各自的本地檔案庫工作,並容許多個開發者同時更動同一個檔案,而每個檔案庫有另外一個合併各個改變的功能。分散式系統讓開發者能在沒有網路的情況下也能繼續工作,也讓開發者有充分的版本控制能力,而不需經中央管理者的許可,但分散式系統仍然可以有檔案上鎖功能。


Artificial Intelligence (AI) 實作

影像辨識

  • OpenCV
  • Tensorflow
  • Keras
  • ImageAI

自然語言處理

  • Python NLTK (Natural Language Tool Kit)
  • Microsoft Azure LUIS (Language Understanding Intelligent Service) -> Intent、Entity
  • Google Cloud Natural Language API
  • Amazon Comprehend

文字分析

  • Microsoft Azure 文字分析

語音辨識

  • Google Cloud Speech-to-Text
  • Microsoft Azure Cognitive Services
  • Amazon Transcribe 語音轉換為文字

演算法練習

  • 費氏數列
  • 疊代演算法 (階乘)
  • 回溯演算法 (老鼠走迷宮)
  • 陣列資料結構 (二階行列式)
  • 枚舉演算法 (找質數)
© 2022 王嘉暐 我的心路歷程
Webnode 提供技術支援
免費建立您的網站! 此網站是在 Webnode 上建立的。今天開始免費建立您的個人網站 立即開始