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

by TibaMe小編
學習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在近十年的發展與使用人數上,居於鰲頭。可見在向前向後的相容性與穩定性持續發展。以及市面上大量完成的應用系統領域範圍來說,是值得投資的程式語言。

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

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

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

圖三 具有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. 資料庫存取設計能力

這些還算是網站系統該具備有的基礎能力,如此你大致上可以開發一個使用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提供Python撰寫進行擴充模組應用),如此即可實現你的Java邁入AI系統開發領域。

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

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

您也許會喜歡

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料