無論是前端工程師,還是后端工程師,都會面臨危機(jī)。
前端工程師:
前端的端,是個非常廣泛的,目前端有 IOS,Android,Chrome,IE,小程序,未來還會有全息影像的設(shè)備、穿戴設(shè)備、人機(jī)接口等技術(shù),最終都將歸于端內(nèi)。即使你是大前端,也不可能從都到尾負(fù)責(zé)所有的終端產(chǎn)品的開發(fā),你一樣要和別人去配合完成自己最擅長的內(nèi)容。而這些端會隨著技術(shù)的進(jìn)步可能會被新的端取代,比如以前的 windows Phone,諾基亞,及正在走向衰落的 IE,那么與之對應(yīng)的技術(shù)棧也將被淘汰。
要成為大前端,原來的 Web 工程師需要學(xué)習(xí)原生應(yīng)用的開發(fā),移動工程師則需要進(jìn)入 JavaScript 這個極為復(fù)雜的 Web 領(lǐng)域,除此之外,有許多前端框架層出不窮,JQuery,Bootstrap,Vue,Reac,Angular,后面還有更多 ui 框架,以有生之年逐無盡之技術(shù),做為前端的你能學(xué)的過來么?
除了技術(shù),大前端還需要你能更好的理解產(chǎn)品和用戶體驗,并與產(chǎn)品經(jīng)理、設(shè)計師和交互體驗師進(jìn)行順暢的溝通,這里面要學(xué)習(xí)的知識一點也不比技術(shù)領(lǐng)域少。
后端工程師:
早期的編程大概是這樣的:2000 年左右時使用 Perl 寫 CGI 程序(Perl + HTML 混合編程),后來陸續(xù)學(xué) JavaScript、Java、C#、Python、Objective C、Go 等技術(shù),早期的項目或產(chǎn)品基本上都是從前做到后,除了設(shè)計之外,從切圖、前端頁面到業(yè)務(wù)邏輯、持久化、連接池、異常、緩存、日志、集群等等,基本上都要自己參與編程或獨立實現(xiàn),在那個年代,你很難以專業(yè)細(xì)分的方式運作項目,因為根本找不到那么多程序員。
現(xiàn)在的情況完全不一樣了,以前都是需要后端工程師或者架構(gòu)師搞定的事情,現(xiàn)在,云計算廠商都替你搞定了。比如阿里云的虛擬主機(jī)(ECS)、數(shù)據(jù)庫(RDS)、負(fù)載均衡(SLB)、文件存儲(OSS)、Redis、CDN、日志、NAS 等服務(wù)。后端工程師可以看看云計算廠商提供的基礎(chǔ)服務(wù)范疇,看看有沒有覆蓋你的知識和技能領(lǐng)域。類似亞馬遜阿里云這樣的云計算廠商,上千的技術(shù)人員除了滿足自己系統(tǒng)的需求,其他資源都會投入到公共云的建設(shè)上,這些優(yōu)秀的工程師做出來基礎(chǔ)服務(wù),無論是穩(wěn)定性還是擴(kuò)展性,都會大大超過創(chuàng)業(yè)公司里幾個人搗騰出來的技術(shù)組件。而且這是一種不可逆轉(zhuǎn)的趨勢。
看到這里,你是否有種危機(jī)呢,大家都用云了,還要后端工程師干嗎?
破解之道
互聯(lián)網(wǎng)的高速發(fā)展需要技術(shù)上更為專業(yè)、更為精深的編程人員,所以前后端技術(shù)體系的分離,就成了大勢所趨,形成了一種“反模式”。 每個人發(fā)揮自己最強(qiáng)的那部分,才能做出最好的產(chǎn)品,每個人都生產(chǎn)自己最擅長的產(chǎn)品,并交易(合作),整個社會的經(jīng)濟(jì)就會快速發(fā)展。
其實,不論是哪個技術(shù)領(lǐng)域,如果你想在這個領(lǐng)域不斷深入,還是應(yīng)該把最寶貴的時間花在可遷移的技能上——那些永不過時的技能。不要被那些五花八門的框架和庫迷了眼。
那什么是永不過時的技能呢? 極客時間作者左耳朵耗子的答案非常具有參考性,就是:編程能力、架構(gòu)能力和工程能力。
編程能力,就是用代碼解決問題的能力
你編程能力越強(qiáng),就能解決越復(fù)雜的問題,細(xì)分之下,要有調(diào)試能力、算法、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)原理等基礎(chǔ)技能的支撐,你才能解決各種麻煩的問題。
架構(gòu)能力,就是掌控復(fù)雜系統(tǒng)的能力
當(dāng)一個系統(tǒng)足夠復(fù)雜時,你會寫每一塊代碼、能解決每一個問題,不等于你能搞定整個系統(tǒng),這就需要架構(gòu)能力。架構(gòu)能力包含了一些意識,也包含認(rèn)識業(yè)務(wù)建立抽象模型,還有一些常見的模式等。
工程能力,其實核心就是成事的能力
要知道,當(dāng)系統(tǒng)規(guī)模越來越大時,光靠你一個人是沒辦法完成的。那如何保證幾個高手能夠互相配合好?如何保證項目里面水平最差的人不拖后腿?工程化建設(shè)往往會跨越多個業(yè)務(wù),又如何保證質(zhì)量和代碼風(fēng)格呢?
這三項能力不管對于前端還是后端開發(fā)來說,可以說都是從初級、中級走向高級必須要跨越的鴻溝,也是作為一名程序員永不過時的技能。
-
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68587
發(fā)布評論請先 登錄
相關(guān)推薦
評論