① 前端開發遇到的問題與怎麼解決的
前端和後端沒有可比性
前端的開發,如果沒有總體的設計思路,會成為一種碎片似地程序,一個效果一坨代碼,一個功能一灘腳本,一個需求片邏輯,我曾經遇到過,因為ue調整,把整個前端的代碼除了核心數據處理函數保留,其餘的全部修改的情況。
基本上前端的開發,處於dom操作,數據處理,數據交互三部分,如果合理的分配這三部分的功能,那麼前端的代碼就很容易擴展和調整。可惜現在優秀的前端開發者很少,因為前端門檻很低。
那麼接下來我回答挑戰所在:真正的前端開發的挑戰,還在於開發者的思路,兼容性,布局,css
js都不是問題,問題在於如何合理的組織語言邏輯,如果正確抽象出需求中的模塊,在如何用代碼處理。清楚的用代碼表達出思路,清楚的寫好注釋,給後續維護者一個可閱讀的思路。
前端的改動量,是後端的數倍,前端沒有絕對,只有跟隨需求不停的修改。
② 2020年,web前端還好找工作嗎
2020都快過去了,一個魔幻的一年!但是,2021年會更加困難,因為從低谷上爬上去,必定是一個涅槃重生的過程。web前端們找工作雖然難,這是一個整體擇優的方式,更應該振作起來。
本人系統收集了一下,2020-2021年web前端工作趨勢表現為:
會全棧技術更有優勢,基於Node.js, PHP, Python, Java等技術開發中小型項目,微服務和serverless更促進了全棧技術趨勢,劉潤老師說「成長提升就是要榨乾自己所能學到的東西」,如果有全棧技術概念,一定能做更好的技術生涯規劃。
3D演示 - 隧道可視化項目演示 ThingJS
2. 跨平台跨終端開發經驗,包括移動端、桌面端、網頁、H5(微信生態)、App內的小程序,這些新技術逐漸被前端滲透,輕量化技術凸顯優勢,「stay hungry, stay foolish」,才不會被時代淘汰
3. 瀏覽器支持開發生態,尤其3D可視化的技術實現,ThingJS是國產可視化PAAS開發平台,利用JavaScript調用API功能,在線就能夠搞定一個3D項目。其他衍生領域如Web AR、音視頻、iotjs,使得3D可視化交互生態更豐富,不學會3D開發恐怕會落伍了。
總結來說,前端門檻很低,精通一兩個常用框架,對功能點都熟悉,就可以具備一年的初級前端基礎能力了。為何還有企業說招不到人呢?不要什麼都了解一點,卻沒有精通的,根本原因在於缺乏實戰經歷,理論的東西是膚淺的。
推薦關注【物聯網3D開發師】這一崗位,前端轉3D開發一點都不難。ThingJS是一個基於WebGL的3D框架,推薦來【官網注冊】,不需要建立3D專業知識儲備,讓你短時間內樹立信心,迅速做出一個實戰項目作品!
③ 為什麼整個互聯網行業都缺前端工程師
現在,幾乎整個互聯網行業都缺前端工程師,不僅在剛起步的創業公司,上市公司乃至巨頭,這個問題也一樣存在。沒錯,優秀的前端工程師簡直比大熊貓還稀少。
每天,100offer的HR群都有人在吐槽招不到前端工程師。實話說對這些需求,Betty也無能為力,因為在供不應求的前端招聘市場上,優秀的前端工程師才是有話語權的那一方。
放眼全球,不僅在國內的互聯網行業,在國外,前端工程師一樣是需求旺盛、供不應求的香餑餑。
舉個例子,根據indeed.com抓取的數千家網站的職位顯示:目前前端的熱門崗位——「HTML5」是需求增長最快的開發崗位,在所有開發職位中排名第一,MongoDB和iOS緊隨其後位列第二、第三。
jobgraph
可見,HTML5可以說是最熱門的前端崗位了,在2010年和2014年底有兩次爆發性增長,現在在美國的崗位需求甚至超過了iOS。
所以市場上優秀的前端工程師相對較缺少,是一個世界性難題。
原因一:前端相對來說是一個新領域,當今的web需求要求更多的工程師供應
可能很多人認為前端開發和web開發類似,而web開發已經有20多年的歷史,所以前端並不是一個新領域。然而,前端工程師的概念中的「介面技術實現和用戶體驗作為一個專業的工作領域」,卻無疑是很新的。大概幾年前,前端開發的技術增長迅猛,如下圖所示:
過去幾年前端工程師的可視化增長趨勢 by Google Trends
15年或更久以前,web的可視化設計和技術實現所需要的資源是平均分配的。隨著網站的發展——網站不僅是一個登錄頁面,工程資源的需求越來越明顯。人們開始專門學習網站專用的JS、後端技術、UX、資料庫,甚至系統設計。
今天,一個像AirBnB/Facebook/Quora的Web應用程序,投入的工程資源比設計資源多得多。換句話說,如今,做出網頁的視覺設計比技術實現要更快,所以當今的web需求要求更多的工程師供應。
現在,一位合格的前端工程師,必須對視覺設計有興趣(或者樂於做一個受虐狂▼)。
CSS.jpg
很顯然,要處理大量的Web應用程序需求,技術任務就要進行分類,以便於多人同時處理網站請求。事實上現在已經不可能一個人快速地解決所有的技術細節了。
現在還有一類人是獨自處理一個Web應用程序的所有問題,即「全棧工程師」,但是優秀的全棧工程師同樣如大熊貓一般數量稀少。
現在,一個創業公司想要成功,幾乎要覆蓋一個Web應用程序的諸多技術方面:前端、後台、DBA、運營等。雖然已經有一些服務可以讓企業購買登陸頁面的前端模塊和組件;但是如果你想要創造一些真正的Web應用程序,除了求助前端工程師,別無他法,就像你要創立一個品牌你也繞不開請一位設計師一樣。
原因二:對前端,普遍存在巨大的誤解,其實前端一點也不簡單
大多人都認為前端開發是一個「相對於其他模塊來說更簡單的領域」,在他們心中的前端工程師是這樣工作的:
1、把Photoshop文件、圖片或者線框做成一個頁面;
2、偶爾設計Photoshop文件、圖片或者線框;
3、用JS實現動畫、過渡效果;
4、用HTML和CSS編程,實現網頁的內容和形式。
事實上,前端工程師在做的是:
1、在設計師和工程師之間創建可視化的語言;
2、根據設計稿定義一組代表內容、品牌和功能的組件;
3、為Web應用程序的框架、需求、可視化的語言和規格設定基準;
4、根據設備、瀏覽器、屏幕、動畫來劃分web應用的工作劃分;
5、用QA基準來保證指南來確保品牌忠誠度、代碼質量、產品標准;
6、調節Web應用程序的樣式,包括間距、字體、標題、圖標、布局等等;
7、根據不同解析度、橫屏豎屏等,調節Web應用程序的樣式;
8、標記 Web 應用程序,使之語義化,SEO 友好;
9、通過API獲取內容要考慮友好性、電池消耗性、設備和客戶端的特性;
10、開發客戶端要考慮動畫的流暢、延遲載入、交互、應用工作流程,大多數時間用來考慮漸進增強和向後兼容的標准;
11、保證後台連接安全,採取跨地資源共享( CORS )的程序考慮,防止跨站點腳本( XSS)和跨站點請求偽造( CSRF ) ;
12、最重要的是,盡管有嚴格的期限、利益相關者的要求,以及設備的限制,無論現在還是將來永遠是「客戶第一」。
為了實現上述目標,前端工程師採用了從可視化到編程的多種工具 ,甚至有時要照顧市場、 UX 到內容tweakes等等。
原因三:大量糟糕前端工程師的存在,擾亂了市場
這或許是難以招到優秀前端工程師最明顯的原因。由於前端工程師的入門門檻非常低,JS、CSS、HTML並不是很難入門掌握的語言,似乎只要花一點時間,誰都可以通過網上教程和書本學會它。對的,前端工程師市場就是被這些淺嘗輒止的傢伙搞壞的。
糟糕的前端工程師是這樣做事的:
1、濫用 JavaScript 庫,因為他們實際上並不了 JavaScript 的核心(e.g. 一切都用 jQuery);
2、濫用 JavaScript 插件,無節制的復用別人的代碼,哪怕自己根本讀不懂;
3、不看需求、設計,也不做比較或評價,就給 Web 應用程序添加 CSS 框架,卻只用到框架的一小部分;
4、認為只要用了 CSS 框架,網站就是響應式的,或是對響應式設計的意義理解不到位;
5、一邊在說著「響應式 Web 設計」,卻對伺服器端解決方案技術一無所知;
6、用 CSS 編程時不做預處理器、命名規范等;
7、忽視性能、內存泄露(並不理解內存泄露的真正含義),不會檢測代碼;
8、不會用指標衡量一個產品,或者這種指標旨在自己的電腦、瀏覽器、設備有效;
9、忽視 30 年來的軟體工程技術,閉門造車。
要知道,入門容易精通難,計算機和軟體的基礎對你用JS或瀏覽器編程都非常重要。web可能是最有影響力的平台和環境之一,在那裡執行的程序必須被小心對待。一位優秀的前端工程師不僅要考慮web技術和語言,並且還要了解所有不同的組件、系統和概念。
以下是優秀的前端工程師在即時面對普通的任務也會做的事情(這才是市場急需的前端):
1、DNS 解析,使用 CDN,把資源請求分散到多個域名上去;
2、理解 HTTP Headers (Expires、Cache-Control、If-Modified-Since)
3、Steve Souders 的所有高性能網頁優化規則(參考:High Performance Websites 一書)
4、如何解決 PageSpeed、YSlow、Chrome Dev Tools Audit、Chrome Dev Tools Timeline 等工具列出的所有問題;
5、何時把任務傳到伺服器,何時適合傳到客戶端;
6、緩存,預取和延遲載入技術的使用;
7、原生 JavaScript,知道何時從頭開始做,何時參考別人的代碼,同時可以評估這樣做的優缺點;
8、 最新的 MVC Javascript 庫知識以及用法;
9、CSS 標準的知識與用法;
10、JavaScript的計算機科學部分的知識(內存管理,垃圾收集演算法等等)
換句話說,如果說精通HTML+CSS+JS,了解後端知識,只是60分的合格前端;那麼要想成為受追捧、拿高薪的80分優秀前端,要對業務需求和、架構設計有真正的運用;而100分的頂級前端,則必須要能夠兼顧技術和設計,更接近「以前端開發為主的全棧工程師」了。
100offer 說:市場不是缺少前端,而是缺少優秀的前端工程師
現在,前端工程師終於前所未有的在web中佔有了一席之地。隨著多設備、瀏覽器和Web標準的演變革命,前端正在成為兼顧邏輯、性能、交互、體驗的綜合性崗位。
雖然現在互聯網行業普遍缺少前端工程師,但是我們相信越來越多的人將會加入前端的大軍。不僅是因為大多數前端工作提供的優渥薪水和辦公環境,也是因為web中的前端編程變得越來越有挑戰和意義。
最後,分享一組3~4月的100offer拍賣數據,給前端們鼓鼓勁:
前端工程師人均收獲8.2個面試機會,已入職的前端工程師平均薪資漲幅達39%。其中,前端offer之王共收獲47個offer,最高offer薪水38k*16 ,開自某土豪電商。
加油吧,前端!
④ 怎樣成長為一個優秀的 Web 前端開發
優秀的前端工程師應該具備快速學習能力。推動Web發展的技術並不是靜止不動的,沒錯吧?我甚至可以說這些技術幾乎每天都在變化,如果沒有快速學習能力,你就跟不上Web發展的步伐。你必須不斷提升自己,不斷學習新技術、新模式;僅僅依靠今天的知識無法適應未來。Web的明天與今天必將有天壤之別,而你的工作就是要搞清楚如何通過自己的Web應用程序來體現這種翻天覆地的變化。
⑤ 怎樣成長為一個優秀的 Web 前端開發工程師
1. 多寫。很多問題都是積累得來的。寫了,遇到了,才能去真正理解解決方案,才會隨著自己的不斷成長而有進步。別人問我為什麼知道那麼多 CSS 兼容解決方案,為什麼一看就出的時候,我只能告訴他,我寫了 20 幾個 Wordpress 主題。-,-
2. 看書。看 BLOG 或者一些網上的教程,都很難讓你全面理解一個東西的。堅持看書,至少前端相關的語言都看一本。CSS 的推薦 《精通CSS》,JS 推薦 《Javascript 高級程序設計》現在都是第 2 版了。
3. 讀 BLOG。最後你會發現,很多東西大家都會。但只有某些人才解決得了某些細節性的東西,這些人就是我們所謂的高手。很大牛在 BLOG 不會寫一些簡單的 List, 而是針對某個問題深入研究。這時看 BLOG 對於進階非常有幫助。
4. 去學一門後端語言。怎麼說呢,實際用到會很少。但會很有利於一些問題的理解。比如 Ajax。還有 HTML5 中像 Web sockets、post message 之類的 API。
5. 去用很多產品,至少去愛一個產品。你不止是一個前端,你還應該是一個設計者,去用很多產品,你才會發現技術為什麼有用,去愛一個產品,你才會把技術用得更好。
⑥ 在國內前端領域里優秀的人很多,為什麼沒人
1、框架:永遠只是工具 框架底層的核心:相關基礎知識
2、熱門的前端框架:BootStrap
3、前端框架的側重點在於:布局上
4、國內沒有自己開發的前端框架原因很多:主要在於技術問題 不是說你前端這塊你有精通、多擅長?在怎麼精通、在怎麼擅長 你搞的還是應用層、你與那些相對於底層比較了解和應用層都比較精通的人來說差很遠。
5、並且相對於前端開發來說:技術含量並不高 比JAVA技術含量還要差 不過卻有非常重要。在市面上你可以看見的大部分軟體開發相關的框架都是國外寫的。還是那句話:1、技術問題。2、沒有必要:居然有成熟框架了,我為什麼還要去寫呢?與老外的想法完全不一樣。
⑦ 你們知道為什麼市場上優秀的前端這么少嗎
原因其實很簡單,就是因為FE這個職位,就是一個充滿矛盾的職位,這個職位的存在就是一個大BUG啊!入門及其容易,精通極其困難。一個智商正常的高中畢業生,一個星期,絕對能寫出基本的HTML頁面,附上CSS,還有簡單的JS。讓他學C,一個星期可能還學不到指針呢,指針要多久能跨過去還不知道呢。但是,只要你的資質不差,努力肯學,那麼隨著你的項目經驗豐富和自己的鑽研,RD(C、Java,甚至PHP)升級到高級工程師到資深工程師不難。但是前端,看看現在市場上的資深工程師有幾個,北極廠裡面能到T7、T8的,其他廠類似等級前端工程師有多少就知道了,JS的作為一個從函數式編程過來的語言,很多比較低級的工程師因為理解不了他的思想導致很容易裝撞上天花板,然後再也邁不過去了。
錦上可以添花,雪中不能送炭,現在因為大家對移動端重視,對交互要求高,看了國外的好東西多了,審美也上來了,所以才覺得前端重要,交互重要。但是客觀說,一個網站/APP,沒有好的前端,就是交互不好、頁面不美觀,就當作一個醜人吧。但是沒有後端,功能實現不好,性能上不去,那就是缺胳膊少腿的殘疾人了。所以很多用人的CEO、CTO、HR喊缺前端的時候,心裡想的是這個錦上缺朵花,但是絕對不會給你炭的地位。充滿BUG的開發環境。是的,計算機的一個重大的特點就是兼容性的問題。這個任何開發都不否認。
⑧ 西安web前端市場是否已經飽和了
你科班出身計算機專業,也算是有基礎,當然要堅持呀
飽和意味著沒有市場需求。但現實的情況是:很多公司喊著找不到人,很多求職者喊著找不到工作
說飽和的人都是找不到工作的人
這是為什麼會出現這樣的情況:技術水平無法滿足企業的招聘需求
學校的應屆畢業生,在學校沒好好學,基礎沒學好,也沒有項目經驗,所以很難找到工作
一部分自學的夥伴,只學了基礎就去找工作了,沒項目經驗
......
所以,能不能找到工作,並不是因為你是應屆生還是往屆生,關鍵看你的技術水平是否能達到企業的招聘需求。
如果你通過系統的學習,能給企業做相應的工作,那麼工作也是好找的!
加油!