![](https://static.wixstatic.com/media/nsplsh_663737426833696e557045~mv2_d_5184_3456_s_4_2.jpg/v1/fill/w_980,h_653,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/nsplsh_663737426833696e557045~mv2_d_5184_3456_s_4_2.jpg)
如何選取一個程式語言作為敲門磚
進入資訊領域開發行列,尤其是想進入程式設計師領域的第一個要件,往往需要具備有一個主要的程式語言開發能力。而一個初學者,往往在面對市面上諸多電腦程式語言環境時,如何選擇一個程式語言,當作一個程式設計師的敲門磚時,常常變得無所適從。
在挑選的程式語言要件裡,我們需要設定若干個前提,那就是你將來想進入哪一種應用程式設計領域?一般可以區分為:
1.Mobile 行動裝置系統 2.網站系統 3.Window GUI 桌上型系統 4.IoT 物聯網系統 5.雲端服務系統
配合這些系統領域的切割,其實又往往需要再混合開發的需求下,決定一個程式語言的方向,可以綜合下列的要件:
1.開發者眾多,市面資源豐沛 2.具有開發多面向系統能力 3.語言精簡與穩定,並且具有持續發展的特性
4.向後向前相容性,持續系統穩定轉版
5.具有穩定的 Framework 支援
6.物件導向架構完整
7.易學習與易使用,開發工具豐富 8. 安全性機制高
簡單地說,如果容易學習,資源豐沛,又可以達到不同的應用系統需求開發, 且具有豐沛的整合環境與工具(第三方模組與工具庫 )。我想,這就是您可以選擇這程式語言,作為進入程式設計的敲門磚。
![](https://static.wixstatic.com/media/f2bece_70e9285c88c6473389ecaae380c48ca1~mv2.png/v1/fill/w_730,h_764,al_c,q_90,enc_auto/f2bece_70e9285c88c6473389ecaae380c48ca1~mv2.png)
圖一 2019 年十大程式語言排行榜(來源:IEEE Spectrum)
如圖一所示,Java 程式語言雖排行第二,但在整個系統開發的領域上,橫跨網際網路系統到行動裝置,以及桌機系統開發,唯獨定義在 AI 領域開發較為欠缺;實際在這一塊 AI 開發仍是可以補足上去的。
如果我們追求的不是一個曇花一現且持久技術的層面來看,如圖二所示,我 們可以發現 Java 在近十年的發展與使用人數上,居於鰲頭。可見在向前向後的 相容性與穩定性持續發展。以及市面上大量完成的應用系統領域範圍來說,是值得投資的程式語言。
![](https://static.wixstatic.com/media/f2bece_fd10fea28fcc48d4824966d8b5671251~mv2.jpg/v1/fill/w_966,h_452,al_c,q_85,enc_auto/f2bece_fd10fea28fcc48d4824966d8b5671251~mv2.jpg)
圖二 IOBE 程式語言 Top 10 排名走勢(來源:TIOBE)
在不同的學習階段,可擔任何種工程師?
如果先期只學會 Java 程式語言基礎與物件導向程式設計能力,其實您可以 進入Window GUI圖形化系統開發領域;或者是直接進入Andorid APP行動裝置系統開發。當然亦有人直接使用 Java 配合 Raspberry(樹莓派)進行物聯網開發 (Raspbian(Linux)作業系統下)。這也是另一種選擇 。
![](https://static.wixstatic.com/media/f2bece_d51eb60be4884f4e9da36023d8a4d13a~mv2.png/v1/fill/w_902,h_566,al_c,q_90,enc_auto/f2bece_d51eb60be4884f4e9da36023d8a4d13a~mv2.png)
圖三 具有 Java 程式語言基礎能力可以朝向的應用系統
即使我們直接投入在這些相關的系統開發裡,仍需要具足相關的 Framework 或者延伸的技術範圍。也就是說程式語言只是一個基礎,必須配合應用系統特性, 學習到相關的擴充技術與框架,才能開發自如。
![](https://static.wixstatic.com/media/f2bece_913eca7b010547b0ad53cdd642d0d3d5~mv2.png/v1/fill/w_980,h_183,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/f2bece_913eca7b010547b0ad53cdd642d0d3d5~mv2.png)
圖四 使用 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系統與一班事務處理資料庫系統等。
![](https://static.wixstatic.com/media/f2bece_b6ec3593a2884e41b625a8b857b7cce3~mv2.png/v1/fill/w_980,h_553,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/f2bece_b6ec3593a2884e41b625a8b857b7cce3~mv2.png)
圖四 Java Web 程式開發具有的基礎能力
假如您只是修練在一個 Server Side 的 Java 網站系統開發能力,具備有 Servlet/JSP 與資料存取的設計能力,應足以擔任大任。但建議在講求系統開發的快速與穩定性與模組化架構下,可能還需要學會若干的 Framework,用來支撐網站系統持續與快速與維護的穩定性開發,尤其是相對的軟體工程技術。
這時候,您就需要若干具備有市面上持久發展與大量被使用的 Framework 才支撐系統開發 。
![](https://static.wixstatic.com/media/f2bece_bd355c4e61764c78b8a33e1a5444c2c8~mv2.png/v1/fill/w_980,h_217,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/f2bece_bd355c4e61764c78b8a33e1a5444c2c8~mv2.png)
圖五 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 進行非同步呼喚與處理整合應用。
![](https://static.wixstatic.com/media/f2bece_bf18d0f389ed417daedde12cbd697b9f~mv2.png/v1/fill/w_906,h_550,al_c,q_90,enc_auto/f2bece_bf18d0f389ed417daedde12cbd697b9f~mv2.png)
圖五 強化網站前端處理能力需要整合的技術規範
具備有介接能力,開發整合 AI Service
隨著各種載具不斷的推陳出新,前端與後端的分工要越清楚分割越好,而RESTful API正是可以通過一套統一的介面為 Web、iOS和Android提供服務。對於這些大型平台商來說,比如 Facebook、Google、微博開放平台...等,我們可以選擇不需要有前端的顯示,只需要一套提供服務的介面,來達成跨平台、跨作業系統的困境,RESTful 便是最好的服務撰寫模式。
在邁入 RESTful API(Web API)開發領域的前提下,我們更需要具備有 Java Servlet 與 Web 網站系統開發基礎,尤其對於 HTTP 通訊協定運算架構更需要投入。進而進入雲端服務元件開發,進而整合各類型服務與資源存取的能力。
![](https://static.wixstatic.com/media/f2bece_f2547001470142d2b37463c66520ccb1~mv2.png/v1/fill/w_934,h_724,al_c,q_90,enc_auto/f2bece_f2547001470142d2b37463c66520ccb1~mv2.png)
圖六 RESTful API 整合架構
在現今使用 APP 進行聊天通訊的應用趨勢下,普遍架構在 RESTful API 開發 WebHook(網際網路掛勾)架構,與 Lint Bot(聊天機器人)進行訂閱資訊的延伸,甚至延伸到 AI 服務進行推測與回應。
這讓人機介面與 AI Service 分離開發的情況下,透過 RESTful API 進行異質環境與服務的整合。讓系統可以在各自的強項下進行更大功能的擴充與延展。
![](https://static.wixstatic.com/media/f2bece_edc9d6de37d74cdd960ed3f8cddc3d78~mv2.png/v1/fill/w_980,h_567,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/f2bece_edc9d6de37d74cdd960ed3f8cddc3d78~mv2.png)
圖七 RESTful API 介接 Line Bot 與 AI Service 應用架構
統合您的 Java 程式語言到 Java Web 與 Jersey Framework,進行 RESTful API 服務開發,最後更能夠進行 AI Service 建模佈署後的 RESTful API 進行整合(有些 AI Service 提供 Ptyhon 撰寫進行擴充模組應用),如此即可實現您的 Java 邁入 AI 系統開發領域。
《讓您在一個語言下,整合前端到後端服務與介接異質環境與服務,如虎添 翼一般的讓系統飛起來。》
![](https://static.wixstatic.com/media/f2bece_723f3886e12e45daae1fd96e2163fc93~mv2.png/v1/fill/w_980,h_572,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/f2bece_723f3886e12e45daae1fd96e2163fc93~mv2.png)
圖八 RESTful API 讓您整合各種異質環境的與功能
JAVA系列課程
![](https://static.wixstatic.com/media/f2bece_643d634d1a2d4beaa6e6ba30784ac7e1~mv2.png/v1/fill/w_980,h_551,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/f2bece_643d634d1a2d4beaa6e6ba30784ac7e1~mv2.png)
![](https://static.wixstatic.com/media/f2bece_78335a9618fb4c9e85ec471f782a7e0d~mv2.png/v1/fill/w_980,h_551,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/f2bece_78335a9618fb4c9e85ec471f782a7e0d~mv2.png)
![](https://static.wixstatic.com/media/f2bece_f861bea64ec54963b8156b00f880d26f~mv2.jpg/v1/fill/w_980,h_549,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/f2bece_f861bea64ec54963b8156b00f880d26f~mv2.jpg)
C#系列課程
![](https://static.wixstatic.com/media/f2bece_63b74da0da9a42709ee69328967bd1da~mv2.jpg/v1/fill/w_980,h_553,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/f2bece_63b74da0da9a42709ee69328967bd1da~mv2.jpg)
![](https://static.wixstatic.com/media/f2bece_18db3fed36aa48e880f6388e2821c6b6~mv2.jpg/v1/fill/w_980,h_542,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/f2bece_18db3fed36aa48e880f6388e2821c6b6~mv2.jpg)
Comments