全棧工程師這個頭銜在國內(nèi)還是少有聽聞,但是在美國早已大肆流行開來,縱關Facebook,Twitter,Amazon的招聘要求來看,有相當多的職位寫的是Full Stack Enginner,即全棧工程師。那么,到底什么樣的程序員才可以稱之為全棧工程師呢?
我們要先理解『?!贿@個概念。在編程行業(yè)中,棧指的是一個程序員或軟件工程師所擁有的技術量和技術水平?,F(xiàn)在的開發(fā)工作普遍分為前端,后端,移動端。而全棧則表示一名程序員懂得開發(fā)所有端的知識和技術,并且也懂得一些運維、產(chǎn)品和營銷知識,而且還了解大數(shù)據(jù)處理、機器學習、區(qū)塊鏈等,那么這個趨勢是怎么發(fā)展來的呢?隨著軟件技術和云計算服務越來越成熟,開發(fā)一項產(chǎn)品越來越簡單,我們可以用更短的時間去學習一門新的技術,然后用這門技術更快的開發(fā)出想要的結果。這樣下來,學習和開發(fā)成本的下降,造成了程序員不滿足單一使用某一項技術或開發(fā)某一端應用,比如后端工程師學習前端和移動端開發(fā)。
全棧工程師之所以在美國如此流行是因為當程序員自身了解的編程語言和架構知識以及其他像產(chǎn)品、運維之類的軟實力越多越透徹,就越容易開發(fā)出容易維護,可伸縮,高性能,且符合用戶使用習慣的產(chǎn)品。編程語言只是工具,當我們工具箱中的工具逐漸增多時,我們就會考慮該用哪種工具去解決哪類問題。比如要解決高并發(fā)的問題,我們可能會選用基于Node.js的后端JavaScript進行開發(fā),因為它是非阻塞I/O和事件驅動的編程模型,可以用更少的線程去處理更多的業(yè)務,從而減少系統(tǒng)資源的開銷。而對于一個大型的分布式系統(tǒng),我們可以用不同的編程語言去實現(xiàn)不同的功能模塊,有的需要實時處理的就用Node.js,而需要多線程操作的我們就用go,安全性要求高的我們就用Java。一個人掌握的越多,對軟件宏觀的思考就會越周到,所以公司們都十分青睞這樣的人才。
所以作為一名普通的程序員,我們應該如何提升自己,讓自己成功全棧工程師呢?我們可以從現(xiàn)有的技術棧開始拓展,比如當前是做后端開發(fā),那么或多或少的會用html,css和客戶端JavaScript寫一些界面,那么我們就可以在業(yè)余時間學習一下Vue.js或ReactJS,開發(fā)一個小型的單頁應用的demo,因為都是用同一JavsScript語法,所以學起來并不是很難,前端庫雖然多,但是都比較容易掌握。對于移動端,如果本身會Java的話,就可以去學安卓,至于IOS,有編程語言基礎的話學swift并不是很難,而且即使都不會,只要會JavaScript,就可以用React Native進行ios和安卓開發(fā),而且一套語言可以在兩個平臺共享,且性能接近原生。運維的話就可以看看比較火的docker,Spring Cloud,和kubernetes,其實都是差不多的,只不過需要配置很多參數(shù),這個只有實際運用的時候才能得到最佳解決方案,所以基本沒什么學習成本,只是用到的時候知道去哪查配置就好了。
成為一個全能型的全棧工程師可能會犧牲一些深度的,細節(jié)上的功力,但是得到的是一個有廣度的、知識儲備豐富、可拓展、可培養(yǎng)的人才,所以公司才如此渴求此類程序員,我們應該做的就是盡早準備,把自己鍛煉成既有宏觀把控能力,又有細節(jié)深究能力的優(yōu)秀工程師。
-
工程師
+關注
關注
59文章
1571瀏覽量
68536 -
程序員
+關注
關注
4文章
952瀏覽量
29809
發(fā)布評論請先 登錄
相關推薦
評論