攻克前端開發的難點,還怕找不到工作嗎?

前言

你要問前端開發難不難,我就得說計算機領域里常說的一句話,這句話就是『難的不會,會的不難』,對于不熟悉某領域技術的人來說,因為不了解所以產生神秘感,神秘感就會讓人感覺很難,也就是『難的不會』;當學會這項技術之后,知道什么什么技術能做到什么做不到,只是做起來花多少時間的問題而已,沒啥難的,所以就是『會的不難』。

前端開發

但是,對于前端開發這個方向,即使『會了』……依然感覺很難,唉,說多了都是淚呀,我用三個親身經歷的怪現象來說明吧。

怪現象一:誰都可以指手畫腳的前端開發

我職業生涯很長一段時間都在做前端開發,我也做過后端開發,兩者一對比,給我影響最深的不是技術差異,而是——前端開發者聽到的『需求修改意見』要比后端多得多。

后端這東西,畢竟是藏在后面的,外行不懂就是不懂,裝不出來,他們也不好自取其辱亂比劃,但是,前端嘛……誰都能看得見,沒吃過豬肉還沒見過豬跑,所以,誰都可以指手畫腳提一點意見。

只看得見界面的產品經理可以提一些意見。

項目經理可以有一些意見。

啥也不懂的老板也可以提一些意見。

甚至連后端都可以來提一些意見。

……

正因為前端的產出是看得見摸得著的,所以造成了誰都可以『提一些意見』的現象。

前端開發最大的痛啊!

怪現象二:被鄙視但又十分搶手的前端

前端開發者,你懂的,居于開發者鄙視鏈的低端,業務邏輯大多都居于后端,超大并發量是后端實現的,超牛逼的AI、大數據分析、商業邏輯都在后端,前端要做的只是一個功能展示,所以,后端開發普遍看不上前端開發的工作,直到……到了公司舉辦黑客馬拉松活動的時候。

黑客馬拉松,就是讓程序員自行結隊,在幾天之內快速開發出來一個小型項目,到活動結束的時候,每個隊要演示自己的產品,于是,問題來了,平時你可以鄙視前端開發者,你可以把前端開發貶得一文不值,但是,到了黑客馬拉松的時候,才知道前端開發的必不可少,因為沒有前端你無法『演示』你的想法。

這時候,后端開發者也會發現,平時覺得前端開發很簡單,但是自己寫一個最簡單的AJAX form表單提交也要學半天,不管你的后端想法多么牛,如果最后沒有熟練的前端開發者,最后到了演示環節也要抓瞎。

所以,每到黑客馬拉松時,平時居于鄙視鏈最低端的前端開發者,突然就變成了最炙手可熱的紅人。

誰都覺得前端開發不重要,但是又離不開前端開發。

是不是很諷刺?

怪現象三:苦不堪言的多端開發

一個正經的產品,為了滿足用戶不同設備上使用的要求,需要提供多客戶端,最起碼要有網頁端、iOS端和安卓端,現在大部分產品還要考慮小程序端,這還沒算iOS要分iPhone和iPad,安卓也要考慮手機和平板,甚至要考慮機頂盒設備的界面……

各種設備、各種安卓版本、各種瀏覽器都有各自的特(bu)點(g),每個前端開發者都有體會,很多精力都消耗在處理某個特定平臺/版本/瀏覽器的bug上,唉,說到這里真想流淚……

因為要支持這么多不同的客戶端,一個產品的前端開發者種類也不止一個,要有網頁開發者、iOS開發者和安卓開發者,大一點的項目,靠一個人支撐一種客戶端就不行了,需要的是網頁開發團隊、iOS開發團隊和安卓開發團隊。

其實,不同客戶端實現的都是同一種功能,完全是因為這個世界存在這么多種客戶端,所以我們才被迫為各個客戶端寫一套代碼。

雖然多端的存在,增加了不少程序員的就業機會,但是,干過實際項目的都知道,這其實很麻煩,很麻煩很麻煩!為了給用戶最好的體驗,肯定希望各端提供一致的功能界面,如果有新功能,要上一起發布上線,但是,不同團隊之間開發周期肯定不同,很難保證同時完成任務,最后,花費開發時間最長的那一端的開發團隊就成為整個產品的短板。

每每想到這里,就緬懷秦始皇,秦始皇你要是不光把度量衡統一,把所有客戶端也統一了多好。

前端開發難在哪里?

好了,看完上面這三種行業怪現象,不難看出,前端開發很真的很有難度,我這里只列出最關鍵的兩點:

  • 當需求發生變化的時候,第一線中槍的往往就是前端,而且很多需求變化和后端無關,單純就是前端的改變。這些需求改變有的是不合理的瞎折騰,但是,客觀來說,也有不少是有必要的需求改變,應該用戶是上帝,用戶的喜好會變化,用戶的喜好我們也要反復揣摩,必須要伺候好用戶,也就是要適應需求變化,所以,難點就成了——如何讓前端開發適應快速變化的需求?
  • 前端的學習曲線其實挺陡,很多后端開發者以為前端只是玩一玩HTML,到了自己上手的時候發現其實要學很多,下面只是一個簡化了的網頁前端學習路線圖。
前端路線圖

如果要做到高性能,要考慮CDN優化、JavaScript Profiling、打包策略……

如果要做到安全,要防止注入攻擊,要防止XSS攻擊,要防止CSRF攻擊……

這說的還只是網頁前端,沒說安卓和iOS開發、小程序開發,如果把這些都帶上,需要學習的知識量又要翻倍。

而且,前端也不是說讀幾本書就可以上手做真實項目的,如果沒有對這個領域長時間的浸淫,做出來的東西很可能就是漏洞百出,這個難點就是——如何讓前端學習曲線變得不陡?

總結一下:

如何讓前端開發適應快速變化的需求?

如何讓前端學習曲線變得不陡?

長期以來,雖然無數仁人志士想要解決這些問題,也取得了一些成果,但是,前端是個被普遍低估了難度的開發活動!

前端開發的出路在何方?

未來前端的職業發展方向

1、Web APP開發

Web或者互聯網的核心哲學理念有三點:去中心化、避免信息孤島、萬物互聯。

而隨著互聯網速度和前端技術的發展,越來越多的大型企業開始將他們的軟件給搬到了WEB上,微軟就把他所有的office系列全部搬到了web上。

這些WEB APP才算是真正體現了互聯網哲學的核心精神:無需安裝、用完即走,而將這張未來藍圖親手描繪出來的就是當今的web前端工程師們。

2、全棧開發

全棧(full stack developer)起源于facebook中對工程師的一種稱謂,node.js的橫空出世,極大程度的降低了前端工程師向后端領域拓展的難度,越來越多的高級前端工程師向著全棧發展,一肩挑起了企業項目開發的所有環節。

3、前端大數據圖形展示html5

游戲從 2014 年 Egret 引擎開發的神經貓引爆朋友圈之后,就開始一發不可收拾。不過現在游戲開發變得越來越復雜,需要制作各種炫麗炫麗的效果,還要制作各炫麗于 2D 或者 3D 的場景。為了降低游戲的開發難度,加快游戲的開發進度,國內外不同廠商推出了眾多游戲開發引擎。

隨著html5的快速發展,flash已經在2017年正式被adobe公司判處了死刑,各種網頁游戲的開發和更新也由flash平臺轉戰為H5平臺,在2018年的云棲大會上還有一個前端領域異軍突起那就是前端的大數據的圖形展示,高級前端們可以輕松的使用Canvas和WebGL等技術開發各種在線游戲或是大數據展示平臺,又基于H5高度的適配性,無論是PC端、平板電腦還是移動端都能夠完美的運行而無考慮兼容性。

這個行業已經這么成熟了,應該有一種盡量通用的框架來抽象可重復使用的功能,像React、Vue和JavaScript這樣的前端框架,就是一種程度上的抽象。

vue.js的36個技巧

JavaScript是我們學習前端開發中非常重要的一個內容,也是一個大家經常掉坑里的難點。JavaScript現在可以說是互聯網時代使用率最高的腳本語言了,在網頁中,所有的數據渲染,特效的交互都需要利用JavaScript,來影響瀏覽器的顯示。

JavaScript不只是開發網頁特效和渲染數據的重要內容,在學習前端開發的后期,大量使用算法和框架的時候,對JavaScript基礎的考驗也是很多的。

JavaScript必備知識

在基礎階段,我們學習JavaScript需要注意:
1.基本關鍵字指令
2.基本數據類型、數組
3.函數
4.面向對象編程
5.原型鏈、閉包
6.JSON
7.Ajax
8.DOM(文檔對象模型 原生DOM操作)
9.事件捕獲、冒泡、代理
10.常用函數方法

基礎階段

在JavaScript部分學習,主要還是要去理解好交互的原理,把原理分析清楚,真的理解語法,那寫出多復雜的邏輯也是手到擒來。

我目前是在職前端開發,如果你現在也想學習前端開發技術,在入門學習前端的過程當中有遇見任何關于學習方法,學習路線,學習效率等方面的問題,你都可以申請加入我所在的前端學習交流裙:421374697。里面聚集了一些正在自學前端的初學者,轉行者,初階者,我這里也有我做前端技術這段時間整理的一些前端學習思維導圖,前端大廠面試題,前端開發源碼教程,PDF文檔書籍教程,文章中涉及到的①學習路線②vue.js的36個技巧③JavaScript基礎階段等pdf文檔需要的話都可以找裙豬獲取。

如果你還在猶豫要不要步入前端,我給你的建議是,與其把時間浪費在猶豫上,還不如認真的拼一把,把時間花在前端上。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容