學會 Java 程式語言,可以從事哪些工作?

已更新:2021年8月31日



如何選取一個程式語言作為敲門磚


進入資訊領域開發行列,尤其是想進入程式設計師領域的第一個要件,往往需要具備有一個主要的程式語言開發能力。而一個初學者,往往在面對市面上諸多電腦程式語言環境時,如何選擇一個程式語言,當作一個程式設計師的敲門磚時,常常變得無所適從。


在挑選的程式語言要件裡,我們需要設定若干個前提,那就是你將來想進入哪一種應用程式設計領域?一般可以區分為:


  1. Mobile 行動裝置系統

  2. 網站系統

  3. Window GUI 桌上型系統

  4. IoT 物聯網系統

  5. 雲端服務系統


配合這些系統領域的切割,其實又往往需要再混合開發的需求下,決定一個程式語言的方向,可以綜合下列的要件:


  1. 開發者眾多,市面資源豐沛

  2. 具有開發多面向系統能力

  3. 語言精簡與穩定,並且具有持續發展的特性

  4. 向後向前相容性,持續系統穩定轉版

  5. 具有穩定的 Framework 支援

  6. 物件導向架構完整

  7. 易學習與易使用,開發工具豐富

  8. 安全性機制高


簡單地說,如果容易學習,資源豐沛,又可以達到不同的應用系統需求開發, 且具有豐沛的整合環境與工具(第三方模組與工具庫 )。我想,這就是您可以選擇作為進入程式設計的敲門磚。


圖一 2020年十大程式語言排行榜(來源:IEEE Spectrum)


如圖一所示,Java 程式語言雖排行第二,但在整個系統開發的領域上,橫跨網際網路系統到行動裝置,以及桌機系統開發,唯獨定義在 AI 領域開發較為欠缺;實際在這一塊 AI 開發仍是可以補足上去的。


如果我們追求的不是一個曇花一現且持久技術的層面來看,如圖二所示,我們可以發現 Java 在近十年的發展與使用人數上,雖在2020年有開始下滑的趨勢,但仍然佔據程式語言排行前三名。可見在向前向後的相容性與穩定性持續發展。以及市面上大量完成的應用系統領域範圍來說,還是非常值得投資的程式語言之一。


圖二 2021年程式語言 Top 10 排名走勢(來源:TIOBE)


在不同的學習階段,可擔任何種工程師?


如果先期只學會 Java 程式語言基礎與物件導向程式設計能力,其實您可以進入Window GUI圖形化系統開發領域;或者是直接進入Andorid APP行動裝置系統開發。當然亦有人直接使用 Java 配合 Raspberry(樹莓派)進行物聯網開發 (Raspbian(Linux)作業系統下)。這也是另一種選擇 。

圖三 具有 Java 程式語言基礎能力可以朝向的應用系統


即使我們直接投入在這些相關的系統開發裡,仍需要具足相關的 Framework 或者延伸的技術範圍。也就是說程式語言只是一個基礎,必須配合應用系統特性, 學習到相關的擴充技術與框架,才能開發自如。

圖四 使用 Java 程式語言基礎進入的應用系統領域延伸的技術範圍


尤其是 Andorid 行動裝置系統開發,資料來源往往需要整合遠端的 RESTful API,這時候您更需要具備有 HTTP 網際網路通訊協定溝通的能力,否則無法順利完成一支 APP 與資料整合的需求。


開發網站系統須具備哪一些技術?


如果您具有 Java 程式設計基礎之後,欲進入 Java 網站系統開發,那就需要具備有如下的基礎能力:

  1. Servlet API 設計能力

  2. JSP Page 設計能力

  3. 資料庫存取設計能力


這些還算是 Java 網站系統最基礎的能力,如此你大致上可以開發一個使用 Server Side為架構的動態網站系統。


圖四 Java Web 程式開發具有的基礎能力



假如您只是修練在一個 Server Side 的 Java 網站系統開發能力,具備有 Servlet/JSP 與資料存取的設計能力,應足以擔任大任。但建議在講求系統開發的快速與穩定性與模組化架構下,可能還需要學會若干的 Framework,用來支撐網站系統持續與快速與維護的穩定性開發,尤其是相對的軟體工程技術。


這時候,您就需要若干具備有市面上持久發展與大量被使用的 Framework 才支撐系統開發 。


圖五 Java Web 市面上使用的 Framework


倘若,您必須強化網站在使用者 UI 互動設計上,如電子商務系統,或者設 計 Web APP 使用在手機上,那得將網站系統設計能力,從 Server Side 推向前端開發能力(Client Side),這時候得透過前端基礎語言與框架進行強化;一般需要強化相關技術為:


  1. HTML 5.0

  2. JavaScript 程式語言設計

  3. jQuery Framework 等

  4. RWD 網站設計能力

  5. CSS 樣式表設計能力


您需要具備有將 Server Side 網站系統開發能力朝向 Web API 開發邁入,且透過前端 JavaScript 採用 AJAX 進行非同步呼喚與處理整合應用。


圖五 強化網站前端處理能力需要整合的技術規範


具備有介接能力,開發整合 AI Service


隨著各種載具不斷的推陳出新,前端與後端的分工要越清楚分割越好,而RESTful API正是可以通過一套統一的介面為 Web、iOS和Android提供服務。對於這些大型平台商來說,比如 Facebook、Google、微博開放平台...等,我們可以選擇不需要有前端的顯示,只需要一套提供服務的介面,來達成跨平台、跨作業系統的困境,RESTful 便是最好的服務撰寫模式。


在邁入 RESTful API(Web API)開發領域的前提下,我們更需要具備有 Java Servlet 與 Web 網站系統開發基礎,尤其對於 HTTP 通訊協定運算架構更需要投入。進而進入雲端服務元件開發,進而整合各類型服務與資源存取的能力。

圖六 RESTful API 整合架構

在現今使用 APP 進行聊天通訊的應用趨勢下,普遍架構在 RESTful API 開發 WebHook(網際網路掛勾)架構,與 Lint Bot(聊天機器人)進行訂閱資訊的延伸,甚至延伸到 AI 服務進行推測與回應。


這讓人機介面與 AI Service 分離開發的情況下,透過 RESTful API 進行異質環境與服務的整合。讓系統可以在各自的強項下進行更大功能的擴充與延展。