當前位置:
首頁 > 知識 > 寫給初學前端工程師的一封信

寫給初學前端工程師的一封信

寫給初學前端工程師的一封信

大家好:

從去年開始不少朋友讓我幫忙介紹前端工程師,絕大部分忙都沒幫上,原因是真找不到人。我當時是這麼跟他們分析的:過去的客戶端以browser為主,所以html/css/javascript是唯一選擇,現在可是mobile first,於是大量前端開發者被native開發分流,以及原本想做前端工程師的後備力量應屆生們也選擇學native開發,導致前端人荒。隨著情況改變,H5(HTML5的大眾昵稱)在傳播上體現的商業價值巨大,無論是創業團隊還是巨頭自然重視這塊低成本高收益的事。好像前端開發的春天又來了,但局面是後備人才不足,想轉前端開發的又會發現貴圈比以前還亂,除了標準依然滯後,各種框架、工具冒出來,沒一兩年又淘汰,過去好像會jQuery就可以混,現在的門檻確實高不少。沒辦法創業團隊要招到優秀的前端工程師只能靠情懷和燒錢,巨頭們需要重新培育起好的技術文化吸引人才,尤其是肯花錢和時間在前端技術的培訓、積累和創新上。之前有人說web已死,現在看說這話的人可以去死了。在前端技術儲備上加大投入,很長一段時間內都是非常值得的。

回到主題,標題其實是病句「初學前端工程師」。前端工程師是種崗位的title,怎麼用學呢。我想將錯就錯說說職業的問題。前端社區三類人:前端工程師、前端開發者、「玩票」者。首先要明確前端工程師是種職業,是專職為公司業務提供前端開發服務的一個工種。前端開發者意義更廣,凡是用前端技術開發的都算,但這裡我想狹義上指前端開源社區貢獻者和自由前端開發者。「玩票」者,指原本是其它語言的開發者,因喜愛前端技術經常參與社區互動並貢獻開源項目的人。前端工程師和後兩者的主要區別就是——職業性,後兩者主要關注和解決通用問題(提高前端開發的生產力啊、推進標準的實現和發展啊),而前端工程師的職能是解決所在公司的產品開發中的前端工程問題。明確定義後,開始談談我做了這麼多年前端工程師的一點感受。

「他是我見過的最好的前端工程師」,這是多年前一位前同事對我的評價,我自己會克制的在後面加上「之一」。如果他說的是「最好的前端開發者」,我絕對不會接受這種評價。我的github如此冷清,編程上也沒有突出的才能,也沒貢獻過任何有影響力的開源項目。但我覺得自己是很好的前端工程師,我參與的產品開發效率很高,對技術發展很敏感,很少走偏,多少還有點前瞻性。身在一線,對技術上的或人上的問題看的比較准。共同之處:追求更好更有效的解決工作上的實際問題。我不會盲目追求「最流行」的技術,更不會把它強加給產品,除非我覺得它真的適合這個項目,切實解決問題為導向。剛到豆瓣時,我問自己:豆瓣產品前端的最大問題是什麼?不是統一UI、不是搞個新框架,而是要通過建全基礎設施,改變開發方式將原來集中式的業務代碼徹底解藕才是癥結。這裡面有技術問題還有跨角色合作的問題,因此不能孤立前端團隊,搞合作不搞對立。當時組建的通用工具組集合了各種背景的資深工程師,一起討論方案,成果對後面支撐公司業務的快速發展起到了重要作用。做這些事情要忍耐默默無聞、要經常跳出自己的舒適區,到另一個不熟的領域甘心當小白,目的只有一個——切實有效的把產品中的問題解決掉。對個人而言,通常這麼做可以收穫到更多更深刻的經驗和知識,所以我也樂此不疲。不理解的人或許會覺得這人不牛逼啊,別人的看法不重要,收穫到實實在在的有價值的東西才是硬道理。新人不該看重虛名,裝逼不健康。沉浸到每一個項目中(別。挑。活),做到具體問題具體分析,不生搬硬套,獨立思考,虛心交流一定會快速成長起來。不要拿追求「完美」當幌子,不願做沒技術含量的事,這樣的話乾脆別干前端了。

擁抱變化是我在前公司工作時被灌輸的價值觀。對於剛走上前端工程師崗位的同學們來說,要慢慢習慣前端技術的快速變化,並且擁抱它。要stay hungry, stay foolish。其中也有重點,在不易變的方向上多花時間學習越深入越好,不糾纏、執著於那些易變的東西。對新技術始終保持好奇心。

  1. 工具是最易變的,工具包括從各種庫、框架到構建工具、編輯器等等。我對工具的態度是實用至上、喜新厭舊。對於新人來說儘可能多的體驗各種工具沒壞處,從工具的設計思想上也能學到不少知識,但是要清醒的認識到,會用很多工具不是工程師核心的開發能力,也不是個人的核心競爭力。

  2. 前端技術本身的變化是演變,不像工具那樣完全棄用變成全新的。比如多花些時間學習CSS2.1一點都不會浪費,多研究一些Javascript的基礎特性也不會輕易過時。然後有預見性的學習新技術,在項目中積極擁抱新標準,比如ES6。幸運的是現在有大量工具讓我們可以提前在產品開發中應用新標準。

  3. 開發思想不存在過時的問題,這些需要在長期的開發實踐中不斷的總結、反思,比如分離關注點是70年代提出的,從它衍生出很多開發理念,它永遠不會過時。這些好像很「虛」的東西,在駕馭複雜的項目中非常有用。

我覺得前端工程師是所有工程師角色中最有也最需要「工匠精神」的。前端工程師的基本職責就是還原設計,把一個躺在設計圖上的死的設計變成可以用的活的設計。所謂「工匠精神」體現在這個「活」字上。可視方面,一個動畫的過程是否順暢,一個交互動作全部狀態是否都做到位,適配上是否足夠靈活。代碼方面,一段通用代碼是否足夠通用,代碼冗餘是否最小,性能是否足夠快等等。簡單的實現是最低要求,剩下的部分產品經理、項目經理不會要求,那是優秀的前端工程師發揮的空間。前端工程師的成長就是一個修鍊的過程,修鍊的開始就是在學會了那些書本上可以學到的編程知識後。在前端工程師的素質中,我認為應用能力是最重要的。這種應用能力可看成是一種產品的塑造能力,前提要有產品思維和設計思維,能自主發現並彌補產品、設計的空白和不合理環節,可以很好的控制代碼的複雜度,高效高質量的完成開發需求。提升這種能力,紙上談兵不行,只能在各種項目中摸爬滾打,如同醫生不斷積累臨床經驗一樣。如果公司項目不能滿足,就自己找項目做。我在剛畢業的時候,接過不少私活,通常這類項目發揮空間大。

每個開發團隊都有自己的一套遊戲規則:代碼規範、code review、git或svn的用法、開發流程等等,先按照規則玩,再想著如何添磚加瓦。團隊意識是一種職業態度。在一個好的團隊里工作會很開心,團隊會促進個體更快的成長。但一個好團隊也是靠所有個體共建。不要抱怨自己所在的團隊不夠好,用更開放的心態分享和交流,慢慢的一個好的氛圍便會形成。

最後再說說前端工程師的態度問題。前端技術發展很快,因此要不斷學習,不應該輕易自滿。之前在知乎里回答過一個問題,我是這麼寫的:「程序員容易陶醉在自己的代碼中,甚至有某種自戀。我也有過這種時候,我甚至認為不夠自戀就不是好程序員,藝術家沒有不自戀的。但如果跳出自己的世界看,你寫出來的東西到底價值有多大,產品因此成功?到底能影響什麼,一二個同事,一個團隊,整個行業?跟心目中大神的差距?這個時候會冷靜一些,原來只是比以前的自己進步一些而已。」

前面並沒有說成為一名優秀的前端工程師具體應該學習什麼技術,會不會有些失望?因為具體的技術會變,不變的是那些特質和觀念。希望我的分享對新入行的前端工程師有所啟發和幫助。

-前端攻城獅

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PHP愛好者 的精彩文章:

一位程序員工作10年總結了這些忠告
劣質代碼產生的五個原因
數據分析沒價值?——深思對業務的洞察有多少?
深度學習成功應用的三大領域
和你一起了解外觀設計模式

TAG:PHP愛好者 |

您可能感興趣

一文揭秘前端工程師的成長路徑
前端工程師的未來在哪裡?
前端工程師眼裡的大前端
工程師的時間
一名合格前端工程師的進階指南
一級消防工程師:是自學還是跟著課程學?
一個IC工程師,學啥斷舍離?
一篇文章告訴你AI工程師到底怎麼學!
金立前設計師手撕華為工程師「我帶產品的時候你還在穿開襠褲」
給你一個選擇法國工程師學院的理由
創新工程學
軟體工程師,請敬畏你的每一行代碼!
石材工程的工程標準
從設計師到工程師
專啃硬骨頭 這位女工程師出手的工程都是精品
史上最具影響力的8大工程,一工程仍在使用,一工程和秦始皇有關
放代碼,釣工程師
傢具把手設計中的人體工程學
那些被淡忘的油脂工程師
他學醫三年後轉專業到計算機,竟又輟學當了軟體工程師