要做軟件工程師,而不是前端工程師

最近幾個月一直有些事情沒有想通,但可幸的是,有些問題的答案逐漸開始明朗起來了。好久沒寫文章,籍此獻上一篇短文。
當初準備畢業(yè)的時候,其實并沒有想過要當前端工程師,畢竟當時基本都是全棧(PHP + jQuery)。但由于并不是科班出身(大學讀Business),自信心不足,以及機緣巧合,就成為了一名前端工程師。
選擇這份職業(yè),其實也領略到它所擁有的魅力,更快捷的開發(fā)方式,更緊貼時代的發(fā)展,跨端的兼容等等,可以算是享受了前端這幾年飛速發(fā)展的紅利。但工作三年之后,也逐漸發(fā)現(xiàn)只是圍繞前端來發(fā)展,有很大的局限性。
大約是有那么兩件事觸動到我吧。
第一件事是, React Native, Weex, Node.js 這事技術的發(fā)展,仿佛是給前端鋪平了進入客戶端和后臺的道路。但真正開發(fā)過的人才知道,在這些技術里玩得溜的,其實還是從安卓、IOS轉(zhuǎn)過來的客戶端開發(fā)或者從JAVA, C++轉(zhuǎn)過來的后臺工程師。
第二件事是,如果未來,需要你帶技術團隊,只懂前端技術足夠嗎?其實是不夠的,精通前端技術,然后懂點后臺、客戶端皮毛呢?我覺得也是不夠的。就這樣,能與后臺和客戶端達到更良好的技術溝通與理解嗎?能在他們給出非最佳方案的時候提出自己的見解嗎?萬一部門的前端人力富余了,有能力帶團隊做后臺嗎?做些客戶端的東西呢?能做,但能做得優(yōu)秀嗎?如果沒有技術儲備,我覺得上述的問題完全解決不了。

所以,未來一兩年,希望自己能朝著軟件工程師方向發(fā)展,而不僅僅是將自己局限為前端工程師。不過,一個人的精力真的有限,未必能把各方面的技術都學得很透徹。但我對自己的要求是,精通一門端技術和一門后臺技術應該是比較好的搭配,這樣整個產(chǎn)品的技術開發(fā)都基本能 Hold 得住。不過,具體怎么搭配,可能還是跟自己的職業(yè)發(fā)展和興趣愛好有關,同時掌握端兩門端技術、后臺 + AI 技術、等等,我覺得這些搭配也不差。
技術能力拓寬之后,你未必能馬上能管理團隊、更好地掌握一些跨端技術,盡管如此,你在前端領域的一些想法,可能會有更不一樣的轉(zhuǎn)變。

比如說,如果公司內(nèi)的團隊,每個人都至少掌握一門端技術和一門后臺技術,好多時候人力都可以動態(tài)調(diào)配,聯(lián)調(diào)的時候也能減少。某個需求,如果后臺人力太緊,導致聯(lián)調(diào)時間滯后,之前前端團隊最喜歡的做法是,我們來寫個數(shù)據(jù)Mock平臺,自己在上面寫一些假數(shù)據(jù),調(diào)完之后,后臺好了,再跟后臺調(diào)。但如果我本身就會這門技術,我直接把接口寫好就行了,在接口傳假數(shù)據(jù),雖然可能還要跟后臺的數(shù)據(jù)對接,但總體來說,實質(zhì)上還是少了些Mock的功夫。
由于動態(tài)調(diào)配帶來的好處除了節(jié)省開發(fā)時間,其實是更有利于技術部門組建 feature team。國內(nèi)許多大公司主要都是將技術分得很細很細,每個組的成員,幾乎就只會一門技術。如果一個部門里缺少了某種技術的組,或者盡管有但人力不足,要孵化的新項目需要這項技術,估計就因找不到合適的人才而難產(chǎn)了。
看完我所說之后,結(jié)合自身的發(fā)展,不知道是否也有所感觸呢?
如有謬誤,懇請斧正。
