如何看待《為什麼我不想成為Web前端程序員》這篇文章?

原文Why I don"t want to be a front-end web developer

譯文為什麼我不想成為Web前端程序員 - 碼農網

感覺現在業界對前端工程師的尊重還不是很大,總是有「後端就是複雜和前端就是簡單」的印象,這是否存在偏頗。


從作者的角度來說,這是挺有道理的。

作者是 consultant,本資上就是可以挑客的 contractor,因此不能有了一份工作就長期不看簡歷和職位說明。從他的角度來說,他需要長期監測市場變化。從你的角度來說,只要你簽了 FTE (full-time employee) offer,接下來幾年你幹什麼是你和你經理之間的事情。如果你經理把你當 contractor 來管,他會跟你說「你之前三個月的合同是前端,你做得非常好。但接下來三個月我們只要你寫後端,你的簡歷會按新合同重新做匹配,匹配上的話我們會重新面試你。」然後你怎麼辦?

很多 hiring manager 想不清楚自己要什麼,在職位說明上說不清楚自己要什麼,也不知道市場上到底有什麼,recruiter 只能硬著頭皮去招。如果一個項目需要招一個前端的 contractor,很可能前端不是這個項目的重點,hiring manager 自己也不是特別懂前端,前端僅僅是一個必須填掉的坑,無論這個 contractor 以何種方式總之把坑填了就可以。

在 hiring manager 自己也不是特別懂前端的時候,他只能描述這個坑長什麼樣子的,不能描述他需要什麼人。他會說,他需要一個能填 Angular 坑的人,但這個坑可能不夠大招不到一個全職。然後他會說,他還需要一個能填 SCSS 坑的人。為什麼呢?因為他的全職工程師團隊主要做後端,然後有人寫界面時用了 SCSS,所以就有了這個坑。這兩個坑大概可以撐起一個全職 contractor 的工作,那職位說明怎麼寫呢?就叫做前端吧。

不要忘記了一件事情,如果你是 FTE 你的經理要對你的職業發展負責任。他要知道你現在的能力出於什麼級別,你要晉陞到下一級別的話需要獲得什麼能力,如何才能獲得你想要的能力。至於 contractor,就跟「雲備胎」一樣,hiring manager 只需要有人來填坑,不需要考慮這個人如何能夠晉陞。所以作者特別在意自己的職業發展路線,不能總去填那些沒人填的坑。如果只填前端的坑,那就需要追著新技術跑,但無法把經驗打包起來用於晉陞。我覺得這是挺有道理的。

當然人家說了那麼多,都是從 consultant 的角度講的,跟你 FTE 有什麼關係呢?



恕我直言,作為一個前端,我覺得這篇文章不怎麼樣,篇幅不長,卻充滿了對前端這一行的嘲笑,什麼是「低價賤賣自己」?!

當我看到這篇文章的以下觀點時,我發現我連平心靜氣都做不到:

CSS簡單易學,但要非常擅長卻是很難的。值得慶幸的是,SASS/SCSS和LESS等工具可以幫助我們。任何技術水平和任何程度經驗的Web開發人員都可以在60分鐘或更少的時間內學會使用這些CSS預處理器。簡單又有效。

我真的不知該說什麼好,作者也太小看Csser了吧,SASS等預處理器只是幫助我們提高效率的工具, Css的核心從來就不是這些東西!

還有這段:

如果你像我一樣,也不擅長於設計前端和框架——那也沒關係,Bootstrap和Foundation等也可以幫助大多數開發人員掩蓋此技能的差距。

好一個沒關係,好一個掩蓋差距!

Photoshop也有其專門的領域世界。其荒謬的複雜程度和它超乎想像的功能集剛好相匹配。甚至於會安裝和運行就是一個賣點。

呵呵。。。

剩餘的我也不說了,跟國內那些鄙視前端的一個口吻,無非就是「前端門檻低,賺錢少,我大後台工資高,逼格高,啥都好。。。」

這樣的論調國內都夠多了,不缺這一篇譯文。


所以說微軟當年是對的,客戶端就應該用 C++ 開發。世人覺得客戶端技術簡單,就用 C++ 的複雜度來平衡,這樣是最好了。

曾幾何時,做客戶端的 C++ 程序員鄙視 java 和 C# 簡單,對方說什麼都沒用啊,「呵呵,你們的 socket 代碼是自己寫的嗎」,裝完逼就跑。而且那會兒做 VC 的賺的挺多的……

以上為段子,說點正經的。

前端和後端的技術取向是不一樣的,按一般規律,前端的難度主要在複雜業務邏輯和複雜展現技術上,後端的難度主要在性能、穩定性和伸縮性上(不包含一些特定業務,比如搜索、推薦引擎)。對照這樣的格局我們大致可以看到web系統未來會怎麼演變——

* 業務邏輯前移,後端專註於數據介面,提高服務質量,只做不能前移的業務邏輯。

* 前端展示技術趨向複雜,各種渲染技術就位後,web 前端的「web 味兒」會越來越淡。

* 純粹的 web 會邊緣化,但是 app 和 web 技術全面打通,客戶端和前端將變為同義詞。

在這樣的藍圖中,顯然是不需要多少堆業務邏輯的後端程序員的,他們早晚要改行做前端。這麼想,會不會讓你心裡平衡點?

ps:不過作者說前端薪水低這一點,目前似乎是事實。在國內來說,25k月薪對前端來說是很不錯的薪水了吧?但是對 java 程序員來說,可能只是稍微有點經驗,能幹活的水平(我是聽做java的人說的,別打我啊……)。


每天都會看到為什麼系列:

為什麼我不想成為Web前端程序員

為什麼說現在學Java不是一個好主意

為什麼說學C語言已經過時了

為什麼說PHP將很快沒落

為什麼說JavaScript是一種垃圾語言

為什麼說你應該學NoSQL不應該學SQL

為什麼說現在學iOS開發已經晚了


畢業後做過一年多的前端,也一直保持著對這個專業領域的關注。更新快確實是一個特點,es6還不能在瀏覽器廣泛運行,就開始藉助babel做翻譯,各種框架工具層出不窮。

如果說開源社區新出了什麼,就要當成一種主流去學習,確實挺累的。但其實看多會發現,前端領域在瀏覽器內的基本要素並沒有什麼實質的變化,html+js+css,這三者的交互方式也沒有什麼實質變化,所以基礎功底紮實的話,去理解學習一個新的框架或工具應該不是什麼問題,改變的只是基於各種框架的對數據,對dom的操作方式。

相比層出不窮的框架學習而言,我個人覺得,前端人員的發展今後在工程化研究、通訊方式研究(http2、websocket)、新api的落地場景的研究,等方面,更能在技術上有所積累。而框架的學習做到大概的知己知彼,合理選型,使用的時候多加研究我覺得就可以了。


當他作為一個後端程序員,遇到一個複雜的前端問題不能解決的時候,他雖然不著急,但是沒有人能解決的問題,出現了一個可以解決的人,這個人的工資肯定會比他高,只不過這種場景和需求目前來看比較少,但我相信一定會越來越多,後端也一樣,所以觀點我不認同,為了錢沒問題,但是別局限領域啊,畢竟菜雞多的地方,不能解決的問題出現的概率要比都是大神的領域要多多了。這不是一個職業選擇題,而是一個策略邏輯問題。


別前端後端的,幹什麼不是搬磚。


早些年工作時候有個極其噁心的要求,兼容ie456,因為政府機構問題,還得寫activeXobject,其他人不想搞推給我,噁心吐了,又是flash插件,然後一邊開著ps一邊設計一邊做頁面,當然政府機構的色調都有特定要求,也比較簡單。那時候照樣有人說干這行的不如寫ios/android/java。

那時候他們嚷嚷著嚎:你們干這個肯定沒前途了,趕緊寫後端吧,以後前端肯定能自動生成。

我寫python爬蟲時候,別人還說java php要統治世界呢,現在python反而火了。

喬布斯還說大屏沒人用呢,那你看你現在是不是用著大屏手機。

看這些還不如踏實幹事,技術硬了能解決別人解決不了的問題那才是硬道理。


所以現在招個好的前端真的好難。計算機科學基礎紮實的程序員大多不願做前端,好不容易面試到幾個經驗豐富點兒的,各種框架都玩過,說得頭頭是道,結果出個程序題就露怯了,感覺大學都沒學過數據結構似的。


身為一個前端工程師 看了這篇文章 特別想把自己title 簡化成為工程師


15年6月的文章,看待個毛線,現在他媽2017了


我也不想寫web前端,其技術水平並不低,也更不是嫌棄它技術水平低,而是嫌棄要花莫名其妙的時間在莫名其妙的事情上面。

從我司的前端寫代碼的表情就能看出來,前端寫代碼大部分時間在糾結於其他莫名其妙的事情,所以我個人來說比較抵觸寫web前端,自認為做不來,但是看到寫前端的勇士,我是心生敬佩的。


我覺得前端(包括web前端、Android、iOS)雖然入門容易,但深入進去的話一點都不簡單額。

各種UI適配兼容

用代碼高度還原出設計師的作品

還有就是,技術變化確實飛快,說不定剛剛用熟手的技術就過時了,要保持不斷快速學習和應用技術的戰鬥力。。。

所以我一直很敬佩前端攻城獅們~


這篇文章寫在時間早了,在15年作為前端可能被很大部分開發者和公司所看不起,稱之為「頁面仔,切圖仔」等,但是現在已經是新世紀(2017年)了。近幾年前端更新太快,湧現出不少的優秀框架,也對前端的要求在不斷的提升,當然文章裡面的說的薪資這一塊也有了很好的改善(雖然我的工資不怎麼高),前端還是很好的~~


剛才有人問我怎麼看這篇文章,反正從我的角度,這個作者我是不會招的——無論作為FTE還是consultant。因為雖然他似乎啥也沒說錯,但是他的文字邏輯亂糟糟的,看了半天搞不清楚他到底想表達什麼,完全撐不起這個標題(黨)。相反本題下catchen的回答就一針見血了——這就是差距。


瀉藥,不一句一句評論了,前端這兩年的確出了很多很多新東西,有迷茫是正常的。

但是,要認清楚自己是在做低水平的重複,還是不斷解決問題,提高能力。

就拿學習框架來說,是僅僅停留在調用簡單的 api,還是理解框架的思想,深挖框架的技術。

拋開前端,學習能力對每個程序員都是很重要的。

最後,想起前段時間寫的文章 『前端的10000小時』,希望對你有幫助,共勉。


1. 發展太快,確實有點,但是只是對於新手吧。如果你本身就會很多東西了,看前端新的東西像是在補番。

2.工錢普遍的確沒有後端高,的確是的,不過要看個人,統計規律和個人是不一樣的。不行還可以改稱全棧。

3.做設計確實也有很多工作會和前端有些讓一些人混淆,行業內這樣的人並不是很多。

另外作者說了很多名詞,實際上大多數都只會是n選1,大多數時候並不是全部都要很懂,有個大概理解就好。就跟補番和看劇情簡介的區別差不多。


覺得很多東西,不要紙上談兵。起碼嘗試過才會發現樂趣。前端取決於 看你想寫的是簡單的前端。還是前端的簡單。


為什麼大家都說前端程序員不受待見,那是五年前的觀點吧……現在網上哪裡不是前端程序員話語權最高,最火。


推薦閱讀:

網站前端有必要學習bootstrap么?
BAT 前端工程師面試對演算法一般有怎樣的要求?
可以通過什麼途徑了解前端研發的最新資訊?
2017前端開發的行業狀況是怎樣的?對於自學web前端的人從業有何建議?
MAC版本的Sublime Text有哪些常用的快捷鍵?

TAG:Web開發 | 前端開發 | 程序員 | 後端技術 | 前端工程師 |