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