前端工程師是業界所需的重要角色一已經不是一兩天的事情了,現在的網站也比從前複雜許多,光靠一個人建構並維護一個大型的網站,已經幾乎是不太可能的事情了。大型的工程基本上都是要切分出多個工作項目來實現的。

我們可以拿蓋房子當作比喻,每當有一個新的建案,建設公司都會需要與多個部門或是公司合作。要討論設計圖、材料、工程、預算、裝潢、未來行銷等重要問題。這一連串的事情,可能都由不同的人進行,最後再做整合,並實施、執行任務。對前端工程師來說,一個項目大約就是這樣的感受。

想要更了解軟體工程師的細節的人,可以參考Glints的精選文章:【前端軟體工程師職責是包含什麼?如何找到高薪前端職位?】。這篇文章Glints要與大家討論對於前端工程師,在業界最夯的語言是哪3個語言。

現在先來看看AlphaCamp的一份調查,2021年度最常被使用的語言:

top 10 front end programming languages in 2021

前端3大語言

JavaScript

JavaScript在網頁的設計屬於非常見的,大部分時間是用來呈現網頁動態效果的程式語言。比如說,電商平台網站的購物車:在我們把商品加入購物車的時後,就會有提醒的訊息彈出來,這樣的效果就是靠JavaScript寫的。

這裡也特別提到,JavaScript與Java是不一樣的語言,兩者時常會被混為一談,被認為是類似的語言,但是其實他們就跟狗和熱狗一樣,是完全不一樣的東西。

特點:

  1. JavaScript是一種解釋性腳本語言,不會像C、C++等程式語言都是先編譯後執行,是不進行預編譯,而是逐行解釋運行的。
  2. 基於對象的語言,它不僅可以創建對象,也能使用現有的對象。
  3. 以嵌入HTML頁面,也可寫成單獨的js文件。
  4. 多平台運行,在大部分瀏覽器的支持下,可以在多種平台下運行比如Android、iOS等。

常見框架:

  1. jQuery:快速而簡潔的 JavaScript 庫,由 John Resig 在2006年創建,它有一個很好宗旨:寫得少,做得多。
  2. Vue.js:具有適應性,簡化了與其他JavaScript庫的項目集成,中文開發。
  3. React.js & Native:善於開發大型專案,彈性高、資源多。(Native用於行動裝置開發)
  4. Angular.js:穩定,能提供容易開發的與維護的選擇。

Python

Python是一種廣泛使用的高階程式語言﹐屬於通用型程式語言。而作為直譯的程式語言﹐Python的設計強調code的可讀性和語法的簡潔性(比如說,使用空格縮排劃分編碼區塊﹐或是使用大括號以及關鍵詞)。相較於C++或是Java,Python讓開發者能夠用更少的編碼表達想法。不管是小型的還是大型的程式項目﹐Python都能夠讓程式的結構變得清晰明了。

特點:

  1. 具有物件導向的特性,雖然不要求一定要使用物件導向的方式撰寫,但是彈性會相對的高。
  2. 對於程式新手較為友善,腳本語言的特性,可以以簡單的一行程式碼去做執行,是一個相對簡單易學語言
  3. 擁有強大的跨平台性,可以不用修改,能夠同時在Linux與Windows平台上執行,且撰寫的程式可通過模組包裝,直接安裝於各種平台上。
  4. 能夠輕易的以C/C++、Fortran撰寫高效率的模組,容易擴充。
  5. 可以透過內建的GUI程式庫tkinter來開發圖形介面軟體,也可以透過Django或Flask開發網頁後端,甚至可以用來做數據分析,使用網頁爬蟲抓取資料,可以說是用途極度廣泛。
  6. 未來需求非常高,大數據分析、物聯網、人工智慧的趨勢慢慢崛起,Python的多功能性,是許多人與企業的首選。

常見框架:

  1. Django:功能非常全面和成熟,開發文檔很完備。宗旨就是儘可能的提供所有功能,讓你用儘可能少的代碼完成業務。
  2. Flask:設計目的是幫助構建一個穩定的Web基礎應用。它的靈活性體現在,它的模塊化設計可以輕鬆適合開發者的需求。
  3. Tornado:就是IO性能優秀。輕量、異步非阻塞IO處理方式、出色的抗負載能力、協程帶來優異的處理性能。

Java

Java是一種廣泛使用的電腦程式設計語言,它擁有跨平台、物件導向、泛型程式設計的特性。廣泛應用於企業級Web應用開發和行動應用開發。Java也是做網站的主流語言,在電子商務和網站開發上有著廣泛的運用。

特點:

  1. JAVA在使用特性上加以簡化而使之易於使用,例如字串在Java中的處理就更為簡單,開發人員可以在較短時間內瞭解使用方法。
  2. 擁有物件導向設計(Object-oriented Design),使用物件導向的思考方式來設計問題的解決方案。
  3. 非常高的效能,提供了“準實時”(Just-in-Time,JIT)編譯器,在需要更快的速度時,可以使用JIT編譯器將位元組碼轉換成機器碼,然後將其緩衝下來,這樣速度就會更快。
  4. 具有高度的安全性,在安全性方面考慮很仔細,做了許多探究,基本上是程式語言中最安全其中之一。

常見框架:

  1. Spring MVC:Spring專案裡面的一個重要部分,能和Spring IOC容器結合,擁有松耦合、方便配置、程式碼分離等特點,讓JAVA程式設計師開發WEB專案變得更加容易。
  2. Velocity:是一個基於Java的模板引擎,簡單而強大的模板語言為各種Web框架提供模板服務,來適配MVC模型。
  3. Grails:提供強大的功能,包括編譯時元編程,異步編程和領域特定語言。採用強大的視圖技術,集成的NoSQL/ORM支持,插件和Spring支持的依賴注入進行更新。
different programming languages on a screen
Programming Language Coding Developer Software Concept

特別提名

TypeScript

TypeScript是一個基於JavaScript的超集合 (superset) 語言,是這幾年內成長的速度飛快的一個前端語言之一。對JavaScript是完全相容的,JS檔改成TS副檔名就能夠馬上使用,並且能漸進式的學習,是一個相當方便的語言。

為什麼越來越多的前端工程師開是使用TypeScript?

以下是一些前端工程師轉向TypeScript共同認知的原因:

  • TypeScript增加了程式碼的可讀性和可維護性
  • TypeScript包容性非常高
  • TypeScript擁有活躍的社會體、社群

TypeScript潛在的缺點:

  • 有一定的學習成本,需要理解介面(Interfaces)、泛型(Generics)、類別(Classes)、列舉型別(Enums)等前端工程師可能不是很熟悉的概念。
  • 短期可能會增加一些開發成本,會需要多寫一些型別的定義。
  • 整合到建構流程需要大量的工作量
  • 和某些函式庫結合的不是非常的完美

在科技報橘TechOrange的一篇文章【2021 開發者生態報告出爐!TypeScript 崛起,哪些程式語言工程師用起來最滿意?】中,他們也有特別提到TypeScript的崛起,以及各種原因。有興趣的人可以去更深入的了解。


其他

以下是一些不是程式開發語言,但卻是前端軟體工程師一定要知道的其他語言:

HTML

HTML (Hypertext Markup Language),中文是「超文字標示語言」,是一種用來組織架構並呈現網頁內容的程式語言,用於網頁上的標示語言。HTML是由描述超文件的SGML(Standard Generalized Markup Language) 所制訂出的網頁語言,基本上現行的瀏覽器都可以讀取HTML,使用HTML可以編輯設計出網頁,也可以在網頁中加入所有HTML語言可支援的方式,例如表格、表單、圖片、文字、連結、程式等等。

CSS

CSS (Cascading style Sheets),中文是「層疊樣式表單」,也能夠稱作為「層疊樣式表」。CSS語言是一組樣式,用於網頁排版的標記性語言。由W3C協會制定並發佈的一個網頁排版式標準,是對HTML語言功能的補充。主要的用途是對網頁中的字體、顏色、背景、圖像及其他各種元素的控制,使網頁中的設計能夠更有彈性,並能符合設計者的要求。

SQL

SQL (Structured Query Language),中文是「結構化查詢語言」,也就是詢資料庫的一種程式語言。SQL是一種特定目的程式語言,用於管理關聯式資料庫管理系統,或在關係流資料管理系統中進行流處理。基於關係代數和元組關係演算,包括一個資料定義語言和資料操縱語言。它的功能範圍包括資料插入、查詢、更新和刪除,資料庫模式建立和修改,以及資料存取控制。


結論

前端工程師這個職位早在三、四十年前就成為了科技產業不可或缺的人才。不過即便如此,前端的技術也是一直在成長,如果跟不上時代,還是非常有可能會被淘汰掉。看完這篇文章,相信對想成為前端軟體工程師的人,或是已經是前端軟體工程師的人,對自己所需要的程式語言技術會有更深的了解了。

把上述3個前端開發最常見的語言之一的其中一項學起來,就能更確保自己能夠在職場上更有競爭力。

如果你希望可以得到更多資訊,可以追蹤Glints的臉書粉絲頁,每個星期都可以看到熱門職缺與職涯資訊 。

你也可以到Glints – Taiwan去了解更多!或是註冊帳號,收到職缺通知!

延伸閱讀:

對軟體工程師求職有興趣的人,可以看看Glints的其他精選文章

About Author

Passionate writer, who love to tell stories that are both informative and impactful!

Leave A Comment

Your email address will not be published. Required fields are marked *