從前端到“錢”端,前端程式員的出路

来源:https://www.cnblogs.com/dou485/archive/2019/09/06/11475219.html
-Advertisement-
Play Games

過去十年,是前端覺醒的十年。 前端這個行業很年輕,更早時候其實是有前端工作但是沒有前端崗位。大家覺得這個東西程式員做也行,設計師做也行。前端工作一直存在,但是沒有人認為它是一個獨立的工種和崗位,也沒有人去發展它的工程體系,更沒有人去找它的核心價值。所以如果說過去十年前端是什麼樣的十年,我認為是覺醒的 ...


過去十年,是前端覺醒的十年。

前端這個行業很年輕,更早時候其實是有前端工作但是沒有前端崗位。大家覺得這個東西程式員做也行,設計師做也行。前端工作一直存在,但是沒有人認為它是一個獨立的工種和崗位,也沒有人去發展它的工程體系,更沒有人去找它的核心價值。所以如果說過去十年前端是什麼樣的十年,我認為是覺醒的十年。

在過去十年中,前端技術的發展大致經歷了三個階段:

首先是青銅時代,就是 2008 年前後那段時間,前端圈子裡流行的是各種特效,比如滑鼠跟隨、Flash,當時覺得非常炫酷,今天看來有點 low。

其次是白銀時代,大約是 2009 年到 2011 年這段時間。大家的觀念開始轉變了,從單純的說我要做一個什麼樣的效果,開始關註我怎麼樣做這個效果能夠更方便。如果回頭來看,jQuery 抓的兩個點是很準的:第一點叫做 API 的應用性;第二點叫做瀏覽器的相容性。jQuery 以這兩點為核心,打造了一套這樣的開發框架,白銀時代其實就是最終以 jQuery 大獲全勝落幕。

另外就是黃金時代,也是移動前端開始抬頭的時間點。這個時候不管是移動前端還是桌面開發前端,都開始進入到了一個正規化階段,開始關註工程體系,開始關註自身價值,開始關註質量與效率,同時這個時期也是 Node.js 崛起的時期。

在畢業找工作的時候,就有意識地去看前端崗位,但是因為那個時候前端崗位級別不高、工資跟客戶端也有差距。

前端 Leader 的焦慮感:為什麼沒了你不行,有了你一定能有什麼東西?

在阿裡有幾個大的前端團隊,這些大的前端團隊的 Leader,其實內心的焦慮感是很強的——前端作為一個新生職能,怎麼才能夠像服務端、客戶端一樣,給團隊找到核心價值?如果你的團隊只是接需求、做需求,技術再好的人,最後也會變成一個“看攤兒”的人。

這個裡面有一定的必要性,就是說沒了你不行;當然還要有一定的充分性,就是有了你就有了什麼東西。所以說前端團隊其實可以分成兩條線,一條是對內的工程上面的一些操作和一些設施的建設,這樣能夠提升效率,你工程上做得越深越好,結構越合理,你最後的產出就越多,這個是針對必要性的;還有一條線就是充分性,我們做性能、做跟客戶端的融合,這些能夠給公司帶來新的價值。

工程思想在大公司萌芽,僅靠管理方法吃不開。

其實相對於大公司來說,社區產生的還是一些工具的思想,工程的思想還是在大公司產生,主要是因為會有一個大型團隊協作上的需求倒逼你一定要這麼做,而社區其實是通過規則來保證團隊協作的。

靠規則建立協作,太慢,大公司是接受不了的,它一定需要強有力的推動。比如說我們今天用的東西版本太舊,是不是大家要統一升個級?如果我們用純粹的管理方法,我寫一封郵件要求大家都升級,不升級的今年沒有獎金,這是管理的思想。但是其實我們工程團隊還有更好的辦法,乾脆就是對你用的舊版本給你提示,甚至強行推薦你在網上下載最新版本。這個工程思想對於前端行業來說意義深遠,但其實前端行業在這個上面已經有點太晚了。另外,未來伴隨項目複雜性的提升,工程思想一定還會再進化,再去衍生出更多新的想法。

全棧不是把別人的東西搶過來,而是把自己的東西賦能出去。

工程之後,還有一塊比較重要,就是全棧。其實全棧這個想法也是從社區逐漸滲透到公司里的,一開始大家對全棧的理解是很狹隘的,一些前端同學覺得現在有 Node.js,他們也能寫服務端的東西。後來發現出現了不可調和的矛盾,尤其是在阿裡這樣的公司,服務端這麼多年下來有很多很重要的基礎設施,你去 Node.js 體系下再發展一遍,一是沒有必要,二是沒有資源,阿裡有很多中間件團隊,你不管怎麼做,都不可能有他們的深度。

另外這也是我當時犯的一個很基礎的錯誤:前端本來就缺人,你把前端轉成全棧去做服務端的事情,你前端更缺人了。後來發現逐漸有人探索出一條路:全棧不是說把自己的能力堆上去,而是你要把自己強勢的東西給它賦能出去,讓別人具有全棧的能力。

圈兒里很多人開玩笑說你們現在都是“錢“端了,因為掙錢多。實際上現在看一個同等水平的前端,他的價格還是略低於服務端的,不過前端最近可以說是漲得快,而且前端勝在競爭少。雖然前端基數大,但是實際上真正懂技術、會寫代碼的前端非常少。大部分前端就是市場上的前端,基本上是切個圖,做一些機械性勞動,對於大企業來講,是不要那種單純只會去做機械性勞動的前端的。

今天我們很多人其實是在嘗試把“錢端”的天花板弄得再高一點。其實我更願意這樣看:其實 前端本身不是你的天花板,你的個人能力才是你的天花板。

今天很多前端同學其實就是關註如何把設計師的設計稿變成一個用代碼寫出來的樣子,那麼你對業務的介入是淺的,你也就這樣了。其實工程師應該做什麼?從工程方面來講,你怎麼樣能讓更多的團隊、更大規模的團隊一起去協作?怎麼樣做出來更大規模的產品?其實還是需要我們把視角轉一下——你能夠真正以公司利益、以公司業務為導向,去思考你應該做什麼,才能真正有晉升機會

前端技術的更新如此迅速,在這樣的大環境下,前端工程師保持自學能力就顯得尤其重要了。因此,“學什麼”“怎麼學”就是我們要迫切解決的問題。這是我的前端交流學習qun:前面是四八四,中間是七五七,後面是七六零。如果需要學習資料在裡面下載。我做這行十多年,有問題隨時來問我,學習方法,學習效率等等問題。

前端未來:沒有什麼東西是做不了的

如果讓我來展望前端發展的話,我認為有兩個方面不容忽視:

一是 AI 與前端的結合,智能研發是我非常看好的領域。我們技術圈裡有一個比較流行的觀點:一切機械勞動最終都是可以被電腦替代的。

另一個我比較看好的發展領域就是圖形學。因為前端相對來說是一個在封裝好的環境下去工作的一個代碼環境,所以我認為前端未來應該會更下沉,跟圖形學有更多的結合。今天我們前端還是有很多東西說我做不了,當你能夠去從更底層去做的時候,就沒有什麼東西是你真正做不了的。我們就不會看到一個 C++ 的程式員說這個東西我做不了,因為理論上講它可以操作電腦的所有部件,而且能以非常高的性能去做。

前端很有意思,它充滿著工程上面妥協的味道

你做技術總是希望盡善盡美,希望把每個細節都做到最好,但其實 前端是一個建立在標準之上的工作,標準本身又是工業化之後的一個妥協的產物,所以前端的 API 也好,語言也好,包括今天很流行的一些開源實踐項目也好,裡面有大量今天去看非常差的設計。

這些比較遺憾的東西,將來始終會作為一個包袱讓我們背負著前進,這是前端的一個無奈。我們為了一些事情去付出這樣的代價,但是大家還是會嘗試逐步去解決這些陳舊的問題,今天我們已經看到很多舊的問題不是說把舊的改掉,而是設計一些新的東西來逐步替代它,它是一個很漫長的過程。所以有人說前端程式員喜新厭舊,說前端同學追新追的很厲害,新框架基本上隔個 4、5 年就出一個新的工具,所以很多人抱怨學不過來了。

雖然有很多不完美,但是前端也帶來了很多新機遇。怎麼說呢,這就是前端了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、背景圖片練習 解釋:這個例子需要註意的是,我們背景圖片嵌套到另一個圖片之中。我們設計的註意點在於,怎麼定位到我們想定位到的地方。 總結:背景圖片就是一塊一塊的,我們想把塊的位置定位好(一般就是寬和高的相等),然後再對圖片在“塊”中進行位置調整就可以了 二、精靈圖 1.什麼是CSS精靈圖 CSS精 ...
  • 我們知道在react中,常用props實現子組件數據到父組件的傳遞,但是父組件調用子組件的功能卻不常用。文檔上說ref其實不是最佳的選擇,但是想著偷懶不學redux,在網上找了很多教程,要不就是hook的講的太少,要不就是父子組件傻傻分不清,於是只好再啃了一下文檔,就學了一下其它hook的api。 ...
  • 向DataGrid數據表格增加查詢搜索框 效果如下: js代碼: $(function(){ var dg = $('#dg').datagrid({ url:"${pageContext.request.contextPath}/OfferServlet",//servlet路徑 columns: ...
  • 一個box中,點擊其中的任意位置,會有煙花從正下方升起到點擊處,並燃放出一圈圓形的煙花。代碼如下: 首先是佈局以及樣式: 只給一個盒子的佈局,燃放的煙花以及綻放的小煙花都是中js代碼中創建。 js代碼: 順便把我封裝的一些實用的函數分享出來: 若有不足,還望指出。可以一起互相交流學習一下 ...
  • 問題講解:在使用vue版本的ElementUI中的table功能的時候還是遇到了一些問題,可以說餓了麽團隊在這個UI框架的文檔撰寫已經非常不錯了,不過還是有一些方法乍一看讓人摸不著頭腦,有些table的常用功能示例代碼提供的不是非常詳細,所以這次針對這個可展開表格實現手風琴效果寫一篇博客探討一下。 ...
  • 1.nodejs安裝,地址 https://nodejs.org/en/ 2.在本地項目中運行npm run build 命令將開發好的項目打包生成.nuxt文件夾,然後把.nuxt文件夾、nuxt.config.js、static文件夾、package.json (如果有自己創建的文件夾也需拷貝) ...
  • 首先在要使用的靜態文件代碼中引入‘./sliderVerify/sliderVerify.js‘ 先看看效果 示例代碼 另外 如果你不是用的layui的form提交 那麼這裡提供了一種方法 可以拿去放在你自己想要驗證的form中 作為校驗依據 或者你可以配置一下滑動成功時的回調 使用該方法可以將組件 ...
  • <!doctype html><!--聲明文檔類型 網頁文檔--> <html lang="en"><!--根目錄標簽 父級--> <head><!--網頁的頭部 用戶看不見的--> <meta charset='UTF-8'><!--國際編碼 字元的編碼格式--> <!--網頁三要素 title ... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...