撰稿者:陳宗興
如何選取一個程式語言作為敲門磚
進入資訊領域開發行列,尤其是想進入程式設計師領域的第一個要件,往往需要需要具備有一項主要的程式語言開發能力。而一個初學者,往往在面對市面上諸多電腦程式語言環境時,如何挑選一個程式語言當作一個程式設計師的敲門磚時,常常無所適從。
在挑選的程式語言要件裏,我們需要設定若干個前提,那就是你將來想進入哪一種應用程式設計領域,一般可以區分為:
- Mobile行動裝置系統
- 網站系統
- Window GUI桌上型系統
- IoT物聯網系統
- 雲端服務系統
配合這些系統領域的切割,其實又往往需要再混合開發的需求下,決定一個程式語言的方向,可以綜合下列的要件:
- 多人使用,市面資源豐沛
- 具有開發多面向系統能力
- 語言精簡與穩定,並且具有持續發展的特性
- 向後向前相容性,持續系統穩定轉版
- 具有穩定的Framework支援
- 物件導向架構完整
- 易學習與易使用,開發工具豐富
- 安全性機制高
簡單地說,如果容易學習,資源豐沛,可以達到不同的應用系統需求開發,且具有豐沛的整合環境與工具(第三方模組與工具庫 )。我想,這就是你可以選擇進入學習的程式語言。

如圖一所示,Java程式語言雖排行第二,但在整個系統開發的領域上,橫跨網際網路系統到行動裝置,以及桌機系統開發,唯獨定義在AI領域開發較為欠缺,實際在這一塊AI開發仍是可以補足上去的。
如果我們追求的不是一個曇花一現的持久技術層面來看,如圖二所示,我們可以發現Java在近十年的發展與使用人數上,居於鰲頭。可見在向前向後的相容性與穩定性持續發展。以及市面上大量完成的應用系統領域範圍來說,是值得投資的程式語言。

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

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

尤其是Andorid行動裝置系統開發,資料來源往往需要整合遠端的RESTful API,這時候你更需要具備有HTTP網際網路通訊協定溝通的能力,否則無法順利完成一支APP與資料整合的需求
筆者,總是這樣定義一個Android工程師,如果無須撰寫Web API,只是整合Web API,這樣的Andorid工程師屬於前端APP UI設計工程師。並非是一個Full Stack(全端)工程師。
開發網站系統須具備哪一些技術?
如果你具有Java程式設計基礎之後,欲進入Java網站系統開發,那就需要具備有如下的基礎能力:
- Servlet API設計能力
- JSP Page設計能力
- 資料庫存取設計能力
這些還算是網站系統該具備有的基礎能力,如此你大致上可以開發一個使用Server Side為架構的動態網站系統。如ERP系統與一班事務處理資料庫系統等。

假如你只是修練在一個Server Side的Java網站系統開發能力,具備有Servlet/JSP與資料存取的設計能力,應足以擔任大任。但建議在講求系統開發的快速與穩定性與模組化架構下,可能還需要學會若干的Framework支撐網站系統持續與快速與維護的穩定性開發。
這時候就需要若干具備有市面上持久發展與大量被使用的Framework才支撐系統開發。

倘若你必須強化網站在使用者UI互動設計上,如電子商務系統,或者設計Web APP使用在手機上,那得將網站系統設計能力,從Server Side推向前端設計能力(Client Side),這時候得透過前端基礎語言與框架進行強化;一般需要強化相關技術為:
- HTML 5.0
- JavaScript 程式語言設計
- jQuery Framework等
- RWD網站設計能力
- 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通訊協定運算架構更需要投入。進而進入雲端服務元件開發,進而整合各類型服務與資源存取的能力。

在現今使用APP進行聊天通訊的趨勢下,普遍架構在RESTful API開發WebHook(網際網路掛勾)架構,與Lint Bot(聊天機器人)進行訂閱資訊的延伸,甚至延伸到AI服務進行推測與回應。
這讓人機介面與AI Service分離開發的情況下,透過RESTful API進行異質環境與服務的整合。讓系統可以在各自的強項下進行更大功能的擴充與延展。

統合你的Java程式語言到Java Web與Jersey Framework,進行 RESTful API服務開發,最後更能夠進行AI Service建模佈署後的RESTful API進行整合(有些AI Service提供Python撰寫進行擴充模組應用),如此即可實現你的Java邁入AI系統開發領域。
《讓你在一個語言下,整合前端到後端服務與介接異質環境與服務,如虎添翼一般的讓系統飛起來。》
