在前一篇文章討論全端工程師究竟可以做什麼事之後,大家對於全端工程師的負責範圍應該有些了解了。不過全端工程師究竟需要何種能力呢?或是說需要具備什麼能力,才能去應徵全端工程師呢?
文章目錄
全端軟體工程師需要做什麼?
如同前一篇文章說的,全端軟體工程師負責範圍可以切割成前端和後端兩種,然後有些還會要求具備硬體伺服器管理的能力。而前端的部分又有些要求需要具有設計的能力,也有些不用。
這些都是因為全端工程師的定義其實沒有統一的標準,所以不同的情況下會要求不同的東西。不過還是有些基本的必備技能,這裡就來討論看看,全端究竟需要具備什麼能力。
直接看看全端軟體工程師的應徵要求吧
想要知道究竟怎麼樣才算是個合格的全端工程師,最好的方法就是看看業界的情況。而要觀察業界的情況,最好入門的就是調查求職資訊,看看應徵全端工程師至少需要具備什麼樣的能力。
在這裡我們就透過求職網站,尋找台灣的全端工程師職缺,年資則是選擇不限或是兩年以內。首先第一間公司的要求是這樣子。
第一份工作的要求
- 具撰寫前端程式語言HTML, JavaScript, CSS, JQuery與框架Vue.js, Vuex的能力
- 具一年以上,撰寫後端語言Node.js的經驗與能力
- 具web API使用與API撰寫能力
- 具使用MongoDB, PostgreSQL, graphQL等Database經驗
- 具使用Google Cloud Platform經驗
- 具普通英文聽、讀、寫的能力
- 具高度熱忱學習所需相關知識,獨立研究開發能力
- 具主動協調溝通以及分析判斷能力
- (加分) 具DevOp的經驗
- (加分) 傭有使用Content Management System的經驗
- (加分) 熟悉C/C++
- (加分) 擁有使用webRTC的經驗
從這份工作的要求,就可以呈現出全端工程師確實分為前端和後端這兩部分,另外還須具備伺服器的管理,在這裡則是要求Google Cloud Platform (GCP) 的相關能力。另外還有一些偏向人格特質的部分,像是具有學習熱忱。
第二份工作的要求
再來看看第二份工作有何要求,如下。
- 熟悉 ReactJS, NodeJS 相關 SPA 經驗
- 熟悉 HTML5, CSS3, ES6+ Javascript
- 熟悉測試腳本 Jest
- 熟悉 Docker 建立及管理專案
- 使用 AWS, Google Cloud, Azure 經驗
- 使用 MySQL 及 MongoDB 經驗
- 使用 Nginx / Apache web server 經驗
- 熟悉 NPM, Yarn 管理模組經驗
- 熟悉 Git 開發管理專案
- 熟悉 DevOps 自動化開發流程
- 開發過 API 系統 (REST 或 GraphQL)
- 使用 Redis 相關快取經驗
- 良好的溝通能力
以及加分項目
- 加分項目:
- 熟悉 Redux
- 熟悉 Webpack
- 熟悉 SASS or LESS
- 熟悉 Docker Compose 撰寫
- 熟悉 JS Design patterns
- 使用 ElasticSearch, Solr 搜尋引擎經驗
- 使用 Apache Kafka 經驗
- 使用 socket.io 經驗
- 使用 PHP 7+ 開發經驗
- 使用 Laravel framework, Zend framework 開發經驗
- 使用 Solidity開發區塊鏈智能合約
- 開發 SaaS 服務經驗
從這裡就可以開始觀察出一些模式了,一個工程師的能力有對程式語言的掌握,像是前端的HTML、CSS、JS和後端資料庫,然後還有伺服器的處理。再來還有開發的能力,包含Git、Docker這種開發會用到的軟體。最後還有個人能力,像是溝通能力這些。而加分項目其實也是圍繞這些發展。
第三份工作的要求
● 具豐富的網站前端或後端開發經驗
● 能熟練使用 git
● 滿足以下至少三項: ○ 能熟練使用一種程式語言及該語言之網頁框架 ○ 能熟練使用一種 SQL 資料庫 ○ 能熟練使用一種 NoSQL 資料庫 ○ 能熟練使用一種網站前端框架 ○ 熟悉 CSS,能配合 UI 設計師出圖切版及套版
- 加分項目
● 能熟練使用 node.js/express
● 能熟練使用 php/laravel
● 能熟練使用 MySQL
● 能熟練使用 MongoDB
● 能熟練使用 react.js
● 能熟練使用 docker/docker-compose
● 能撰寫各項測試如單元測試 (unit test)、整合測試 (integration test) 等
一個基本的全端工程師所需能力
看完以上三個工作之後,其實可以大略了解所需能力了。其他的工作我看過,要求其實也差不多,所以就不貼上來佔用版面了。這邊就來統整一下吧。
首先是前端的部分,基本需要了解HTML、CSS、JS這三個最基本的工具。
然後還必須了解至少一個前端框架,Vue、React更是最常被提到的框架。
後端的部分包含至少要了解一個後端程式語言,而且最好能了解至少一個框架。Node.js、PHP更是常被提到。API的開發也是一大重點。還有資料庫,除了SQL資料庫,像是MongoDB、PostgreSQL、graphQL。No-SQL資料庫也懂一些就更好了。
然後伺服器也要有能力管理,從基本的Nginx、Apache,到雲端平台GCP、AWS、Azure至少要懂一個。
以上都是前後端的程式技能,還需要開發相關能力,像是Git的使用、Docker,良好的溝通能力與開發經驗。