學習 Java 語言,可以從事那些工作?



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


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


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

1.Mobile 行動裝置系統 2.網站系統 3.Window GUI 桌上型系統 4.IoT 物聯網系統 5.雲端服務系統


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

1.開發者眾多,市面資源豐沛 2.具有開發多面向系統能力 3.語言精簡與穩定,並且具有持續發展的特性

4.向後向前相容性,持續系統穩定轉版 5.具有穩定的 Framework 支援 6.物件導向架構完整 7.易學習與易使用,開發工具豐富 8. 安全性機制高

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














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


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

如果我們追求的不是一個曇花一現且持久技術的層面來看,如圖二所示,我 們可以發現 Java 在近十年的發展與使用人數上,居於鰲頭。可見在向前向後的 相容性與穩定性持續發展。以及市面上大量完成的應用系統領域範圍來說,是值得投資的程式語言。





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


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

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








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

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

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

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

筆者,總是這樣定義一個 Android 工程師,如果無須撰寫 Web API,只是整合Web API,這樣的Andorid工程師屬於前端APP UI設計工程師。並非是一個 Full Stack(全端)工程師。


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

如果您具有 Java 程式設計基礎之後,欲進入 Java 網站系統開發,那就需要具備有如下的基礎能力: 1. Servlet API 設計能力 2. JSP Page 設計能力 3. 資料庫存取設計能力

這些還算是 Java 網站系統最基礎的能力,如此你大致上可以開發一個使用 Server Side為架構的動態網站系統。如ERP系統與一班事務處理資料庫系統等。

圖四 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 進行異質環境與服務的整合。讓系統可以在各自的強項下進行更大功能的擴充與延展。

圖七 RESTful API 介接 Line Bot 與 AI Service 應用架構

統合您的 Java 程式語言到 Java Web 與 Jersey Framework,進行 RESTful API 服務開發,最後更能夠進行 AI Service 建模佈署後的 RESTful API 進行整合(有些 AI Service 提供 Ptyhon 撰寫進行擴充模組應用),如此即可實現您的 Java 邁入 AI 系統開發領域。


《讓您在一個語言下,整合前端到後端服務與介接異質環境與服務,如虎添 翼一般的讓系統飛起來。》

圖八 RESTful API 讓您整合各種異質環境的與功能

JAVA系列課程

立即暸解JAVA Spring framework課程


立即暸解REST Web Service 課程

立即暸解JAVA 自然語意分析 課程

C#系列課程

立即暸解C# LUIS AI自然語意解析 課程


立即暸解C# LUIS AI自然語意解析 課程

323 次瀏覽