Upgrade to Pro — share decks privately, control downloads, hide ads and more …

twjug-lite-17 結束了幾個月的 Java Web 培訓 站在人蔘迷途的我

twjug-lite-17 結束了幾個月的 Java Web 培訓 站在人蔘迷途的我

Ching Yi Chan

July 20, 2021
Tweet

More Decks by Ching Yi Chan

Other Decks in Education

Transcript

  1. 結 束 了 幾 個 ⽉ 的 Java Web 培

    訓 站 在 ⼈ 蔘 迷 途 的 我 TWJUG LITE JA V A 1 補充部分的 Notion URL
  2. 我 ⼈ 物 背 景 ⼯ 作 了 幾 年

    因 疫 情 的 關 係 ⽽ 失 業 靈 機 ⼀ 動 來 轉 職 當 ⼯ 程 師 吧 你 問 我 為 什 麼 選 Java? 其 實 我 從 來 沒 寫 過 程 式 選 什 麼 都 差 不 多 不 是 嗎 先 前 聽 完 說 明 會 就 報 名 了 費 ⽤ 挺 貴 的 但 是 有 就 業 媒 合 就 衝 ⼀ 波 吧 你 問 上 課 都 上 些 什 麼 嗎 來 這 是 課 程 架 構 Java 框架技術 Hibernate / Spring MVC / Spring / 專案建構工具 Web 後端開發 JSP / Servlet / Java / MVC Web 前端開發 JavaScript / 網頁程式設計 / AJAX / jQuery 雲端開發實務 在 AWS 部署 Java 應用程式 專案開發方法 敏捷軟體開發 軟 體測試 版本控制 程式語言 Java 物件導向程式 (基 礎 / 實務/ 應用) / JDBC 資料庫 Web 前端設計 資料庫設計 (RDB /NoSQL) / MySQL 網頁設計入門 / HTML5 / RWD 小組合作專題開發 Java 雲端服務系統實作 / 專題指導/ 專題成果發表 實作 課程 進階
 與
 實務 課程 基礎 課程 2 ⼤概 600 ⼩時
  3. 課 課 程 內 容 課 程 內 容 看

    起 來 挺 豐 富 的 這 些 內 容 將 近 六 百 ⼩ 時 真 的 上 得 完 嗎 課 程 的 架 構 會 隨 著 整 個 班 級 的 學 習 進 度 調 整 但 除 了 進 度 還 有 臨 時 的 事 件 要 處 理 像 是 今 年 五 ⽉ 中 疫 情 升 溫 所 有 教 育 機 構 都 要 改 成 線 上 教 學 了 但 線 上 教 學 的 效 果 與 是 否 好 吸 收 知 識 差 異 挺 ⼤ 的 ⾄ 少 我 挺 喜 歡 ⼀ 堆 ⼈ 擠 在 ⼀ 起 討 論 的 感 覺 線 上 課 程 有 錄 影 的 也 有 即 使 視 訊 的 型 式 錄 影 的 好 處 是 能 ⼀ 直 重 複 觀 看 沒 有 聽 仔 細 的 部 分 但 我 也 很 懷 念 線 下 ⼀ 起 討 論 實 作 的 時 光 程 3
  4. 課 課 程 內 容 你 覺 得 上 這

    樣 的 就 業 班 優 缺 點 是 什 麼 呢 嗯 這 是 個 好 問 題 我 覺 得 他 的 優 點 即 是 他 的 缺 點 缺 點 即 是 他 的 優 點 以 我 這 般 的 轉 職 素 ⼈ 來 說 我 根 本 無 法 知 道 要 進 入 業 界 的 ⾨ 檻 是 什 麼 ⾄ 少 他 幫 我 搭 配 好 的 ⼀ 整 組 的 套 餐 讓 我 不 ⽤ 像 ⾃ 學 習 ⼀ 樣 ⾯ 臨 選 擇 障 礙 也 無 法 知 道 飲 食 是 否 均 衡 缺 點 則 是 要 在 時 間 內 完 食 但 每 個 ⼈ 的 吸 收 速 度 其 實 不 同 的 有 些 跟 不 上 了 就 先 咬 個 幾 ⼝ 嚐 過 味 道 求 個 不 浪 費 食 物 的 ⼼ 態 現 在 回 憶 起 來 實 際 上 真 的 能 充 份 吸 收 的 是 ⋯⋯ 專 題 開 發 程 4
  5. 實 專 題 開 發 戰 你 是 說 整

    個 課 程 架 構 裡 ⾯ 最 實 ⽤ 的 部 分 是 專 題 開 發 這 是 當 然 的 我 們 最 後 的 ⼆ 個 ⽉ 都 忙 著 弄 專 題 雖 然 主 要 的 規 劃 依 賴 訓 練 中 ⼼ 的 老 師 幫 忙 但 是 實 作 的 部 分 我 可 以 很 有 ⾃ 信 地 說 出 來 哪 ⼀ 個 部 分 是 我 寫 的 喔 那 除 了 專 題 開 發 之 外 有 哪 些 是 你 覺 得 吸 收 較 好 的 呢 覺 得 應 該 是 Web 前 端 設 計 的 部 分 吧 因 為 寫 前 端 的 時 候 可 以 立 即 看 到 結 果 可 以 ⼀ 邊 調 ⼀ 邊 看 畫 ⾯ 最 後 使 ⽤ 網 站 的 ⼈ 也 是 看 到 網 ⾴ 畫 ⾯ 上 的 東 ⻄ 操 作 的 5
  6. 來 談 談 後 端 部 分 唄 畢 竟

    Java Web 實 作 的 部 分 主 要 是 後 端 的 領 域 後 端 的 話 就 寫 Servlet 還 有 JSP 再 結 合 jQuery 發 送 AJAX 操 作 更 新 前 端 ⾴ ⾯ 那 主 要 是 實 作 什 麼 功 能 呢 就 看 是 要 做 哪 個 模 組 了 在 ⼩ 組 的 實 作 中 我 們 有 分 配 負 責 的 模 組 寫 Servlet 收 參 數 然 後 呼 叫 DAO 對 資 料 庫 讀 寫 再 來 ⽤ JSP 產 ⽣ 要 顯 ⽰ 的 畫 ⾯ 有 些 功 能 是 要 登 入 會 員 才 能 使 ⽤ 的 就 會 再 ⽤ Session 判 斷 有 沒 有 登 入 還 有 什 麼 覺 得 比 較 進 階 的 功 能 嗎 像 是 實 作 照 片 上 傳 然 後 存 入 資 料 庫 中 跟 把 資 料 庫 中 的 照 片 顯 ⽰ 在 網 ⾴ 上 還 有 的 話 像 取 出 同 ⼀ 個 參 數 名 稱 但 有 多 筆 值 的 ⽤ 法 我 們 還 有 在 AWS 上 開 MySQL 存 資 料 寫 JDBC 跟 SQL 語 法 實 專 題 開 發 戰 6
  7. 課 程 的 內 容 幾 乎 完 結 專

    題 實 作 也 在 收 尾 中 那 麼 接 下 來 應 該 就 是 進 ⾏ 求 職 準 備 囉 訓 練 中 ⼼ 有 提 供 ⾯ 試 準 備 的 諮 詢 像 是 履 歷 修 改 專 題 報 告 的 素 材 製 作 成 果 展 ⽰ 影 片 專 題 說 明 ⽂ 件 與 展 ⽰ ⽤ 的 投 影 片 還 能 互 通 有 無 分 享 近 期 媒 合 廠 商 常 考 的 問 題 集 在 ⾯ 試 上 的 準 備 可 以 ⼤ 概 抓 個 ⽅ 向 像 是 圖 片 上 傳 與 顯 ⽰ 的 實 作 ⽅ 法 或 是 有 沒 有 使 ⽤ 過 ⼀ 些 Framework 的 經 驗 最 常 被 提 到 的 ⼤ 致 就 是 Spring 與 Hibernate 了 吧 但 他 們 有 什 麼 不 同 呢 由 於 最 後 預 留 給 專 題 實 作 的 時 間 不 多 在 實 戰 中 沒 ⽤ 上 他 們 單 純 看 上 課 資 料 只 知 道 ⽤ 上 Framework 可 以 省 ⼒ 可 是 我 還 沒 有 真 實 的 經 驗 說 不 上 來 他 們 可 以 做 到 什 麼 ⾯ 求 職 準 備 試 7
  8. 先 前 看 過 了 你 做 的 模 擬

    ⾯ 試 錄 影 介 紹 的 挺 流 暢 的 不 過 我 覺 得 你 ⼤ 概 在 進 ⾏ 到 3 分 鐘 時 就 會 被 停 下 問 各 種 問 題 囉 那 是 我 介 紹 的 內 容 不 好 嗎 我 覺 得 內 容 可 以 但 ⼤ 致 上 會 膩 因 為 都 是 在 重 複 CRUD 的 結 構 ⾯ 試 是 講 求 互 動 的 作 為 新 ⼈ ⾯ 試 者 的 ⾯ 試 官 會 找 機 會 跟 你 互 動 例 如 當 你 提 到 有 些 功 能 是 需 要 會 員 登 入 的 會 ⽤ Session 判 斷 就 是 個 很 好 的 互 動 時 機 所 以 我 遇 到 了 這 個 問 題 就 答 request.getSession().getAttribute(...) 來 判 斷 使 ⽤ 者 有 沒 有 登 入 囉 這 樣 的 回 答 有 ⼀ 點 微 妙 通 常 當 ⾯ 試 官 問 怎 麼 實 作 是 問 ⼀ 個 概 念 想 知 道 你 有 沒 有 概 念 ⽽ 不 是 程 式 具 體 長 什 麼 樣 ⼦ 這 只 是 ⼀ 個 簡 單 的 開 頭 後 續 還 有 ⼀ 連 串 的 Session 相 關 的 提 問 像 Session 是 什 麼 樣 的 概 念 Servlet Container 使 ⽤ 哪 些 機 制 進 ⾏ Session Tracking Cookie 與 Session 的 關 係 是 什 麼 呢 或 是 再 回 到 Servlet 中 的 Session 它 是 ⼀ 種 Scope Object 那 麼 順 便 問 ⼀ 下 所 有 的 Scope Object 很 合 理 互 ⾯ 試 攻 防 動 8
  9. 所 以 我 應 該 以 回 答 概 念

    為 主 這 聽 起 來 真 的 很 抽 象 啊 現 在 想 想 我 幾 乎 被 問 到 東 ⻄ ⼤ 多 是 回 ⼀ 些 具 體 的 程 式 碼 怎 麼 寫 或 是 我 先 前 準 備 的 問 答 筆 記 中 的 內 容 那 份 問 答 筆 記 借 我 看 ⼀ 下 ⋯⋯ 內 容 保 密 中 ⋯⋯ ⼤ 致 看 了 筆 記 的 內 容 多 是 ⼀ 問 ⼀ 答 的 簡 答 型 式 這 看 起 來 不 像 是 ⼀ 個 有 組 織 的 知 識 體 系 我 猜 也 許 你 ⽬ 前 腦 中 擁 有 的 知 識 可 能 也 跟 這 份 筆 記 的 型 式 相 似 所 以 你 的 思 考 與 回 應 ⽅ 式 總 是 很 片 段 那 我 該 怎 麼 把 它 整 理 好 呢 待 續 ⋯⋯ 互 ⾯ 試 攻 防 動 9
  10. 就 業 活 動 10 我 完成了訓練所需要的課程 參與專題實作製作網站應⽤程式 ⾯試 ⼯作

    ⾯試準備 ⾯試⾺拉松 投履歷⾺拉松 開⼯啦! ⼈蔘不是只有這條路
  11. ⼯ 具 箱 11 完成了訓練所需要的課程 參與專題實作製作網站應⽤程式 技能盤點 Java 框架技術 Hibernate

    / Spring MVC / Spring / 專案建構工具 Web 後端開發 JSP / Servlet / Java / MVC Web 前端開發 JavaScript / 網頁程式設計 / AJAX / jQuery 雲端開發實務 在 AWS 部署 Java 應用程式 專案開發方法 敏捷軟體開發 軟 體測試 版本控制 程式語言 Java 物件導向程式 (基 礎 / 實務/ 應用) / JDBC 資料庫 Web 前端設計 資料庫設計 (RDB /NoSQL) / MySQL 網頁設計入門 / HTML5 / RWD 小組合作專題開發 Java 雲端服務系統實作 / 專題指導/ 專題成果發表 實作 課程 進階
 與
 實務 課程 基礎 課程 ⼤概 600 ⼩時 微懂 微懂到略懂之間,
 總之我能實作出來就好了唄!? 略懂 略懂 比較熟 在懂跟不懂之間 ⽤過 部分⽤過 花了最多時間,最⼤⼼⼒的部分,我超努⼒的!
  12. 技 術 ⾯ 試 12 小組合作專題開發 Java 雲端服務系統實作 / 專題指導/

    專題成果發表 實作 課程 花了最多時間,最⼤⼼⼒的部分,我超努⼒的!
  13. 技 術 ⾯ 試 13 Web 後端開發 JSP / Servlet

    / Java / MVC Web 前端開發 JavaScript / 網頁程式設計 / AJAX / jQuery 進階
 與
 實務 課程 略懂 比較熟
  14. 技 術 ⾯ 試 14 程式語言 Java 物件導向程式 (基 礎

    / 實務/ 應用) / JDBC 資料庫 Web 前端設計 資料庫設計 (RDB /NoSQL) / MySQL 網頁設計入門 / HTML5 / RWD 基礎 課程 微懂 微懂到略懂之間,
 總之我能實作出來就好了唄!? 略懂
  15. 技 術 ⾯ 試 15 Java 框架技術 Hibernate / Spring

    MVC / Spring / 專案建構工具 在懂跟不懂之間
  16. ⾝ 為 ⼀ 個 Web 應 ⽤ 程 式 開

    發 者 你 能 說 出 使 ⽤ 者 打 開 瀏 覽 器 後 到 他 看 到 完 整 的 畫 ⾯ 之 前 發 ⽣ 了 哪 些 事 嗎 使 ⽤ 者 打 開 瀏 覽 器 輸 了 服 務 的 網 址 他 會 連 到 某 隻 Servlet 這 個 Servlet 會 依 URL 的 參 數 去 決 定 要 顯 ⽰ 什 麼 最 後 由 JSP 去 顯 ⽰ ⾴ ⾯ 聽 起 來 是 個 不 錯 的 開 始 了 但 我 希 望 聽 到 更 多 技 術 性 的 描 述 想 知 道 ⽬ 前 你 所 學 到 的 東 ⻄ 深 度 與 廣 度 到 哪 裡 接 著 來 我 試 著 引 導 你 ⼀ 起 優 化 這 ⼀ 版 的 回 答 唄 我 們 先 暫 時 忘 記 Java Web 開 發 者 的 ⾝ 份 先 ⽤ Web 應 ⽤ 程 式 相 關 的 規 格 或 協 定 來 描 述 可 能 會 出 現 的 是 HTTP Client Server HTML 之 類 的 東 ⻄ 應 技 術 ⾯ 試 ⽤ 16 瀏覽器 Servlet JSP 使用者輸入了服務的網址
  17. 那 我 知 道 了 如 果 是 以 Web

    應 ⽤ 程 式 的 話 它 最 的 傳 輸 是 HTTP 協 定 ⽽ 瀏 覽 器 是 扮 演 Client 端 的 ⾓ ⾊ 接 著 就 這 麼 改 吧 如 改 是 改 成 這 樣 如 何 有 比 較 好 些 嗎 乍 看 之 下 還 不 錯 但 總 覺 得 少 了 點 什 麼 ⾸ 先 Servlet 只 是 ⼀ 組 規 範 與 API 不 能 直 接 把 它 寫 成 HTTP Server 另 外 你 覺 得 在 哪 個 部 分 會 回 應 HTML 呢 最 初 的 版 本 我 們 漏 了 回 應 給 瀏 覽 器 囉 應 技 術 ⾯ 試 ⽤ 17 瀏覽器 Servlet JSP 使用者輸入了服務的網址 HTTP Client (瀏覽器) HTTP Server (Servlet) HTML (JSP) 使用者輸入了服務的網址
  18. 開 始 回 想 起 上 課 學 過 的

    Servlet 是 跑 在 Servlet Container 之 中 的 ⽽ Servlet Container 同 時 也 有 HTTP Server 的 功 能 所 以 我 決 定 把 Response 畫 在 Servlet Container 上 但 這 畫 上 了 Response 後 就 讓 下 ⽅ 的 HTML 處 境 尷 尬 了 記 得 JSP 是 在 第 1 次 執 ⾏ 時 被 編 譯 成 Servlet 的 你 的 觀 察 正 確 確 實 不 會 有 再 往 下 指 到 HTML 因 為 它 在 HTTP Response 中 可 以 是 各 種 資 料 應 技 術 ⾯ 試 ⽤ 18 HTTP Client (瀏覽器) HTTP Server HTML (JSP) 使用者輸入了服務的網址 HTTP Response Servlet Container HTTP Client (瀏覽器) HTTP Server HTML / JavaScript / CSS / Binary Data 使用者輸入了服務的網址 HTTP Response Servlet Container
  19. HTTP Client HTTP Server HTML / JavaScript / CSS /

    Binary Data HTTP Response Servlet Container DNS Lookup SSL Certification Verification Load balancer Reverse proxy Servlet URL Pattern Database JDBC Browser Render by content-type Content Renderer JavaScript Engine dispatch event: document loaded CDN
  20. ⋯⋯ 進 持 續 改 善 步 20