天天看點

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

1)JavaScript

JavaScript 應該說是前端吃飯的家夥,深度、廣度要兼備。基本上主流的前端架構都是基于 JavaScript 開發的,像 Vue,是由前端大神 @尤雨溪 開源的 JS 架構;像 React,是 Facebook 開發的一款 JS 庫。下面這些知識點,是一名前端開發必須要掌握的。

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

2)HTML 和 CSS

随便打開一個網頁,按下 F12 就可以看到大量的 HTML 和 CSS 代碼。一個網頁美不美觀,能不能得到使用者的喜歡,除了 UI 設計,除了 JavaScript 來控制邏輯,剩下就是 CSS 樣式了。

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

3)運作環境

浏覽器作為 JavaScript 的一種運作環境,為它提供了:文檔對象模型(DOM),描述處理網頁内容的方法和接口,一名合格的前端得了解:

浏覽器提供的符合 W3C 标準的 DOM 操作

浏覽器的差異性、相容性(Chrome、Safari、IE 等等)

可以使用 Node.js 搭建前端運作環境

可以使用 Node.js 操作檔案、操作資料庫等等

注:Node.js 是一個能夠在伺服器端運作JavaScript 的跨平台運作環境

4)架構和類庫

有一說一,前端的架構和類庫真的是層出不窮,我學過的就有 Flex、ActionScript、jQuery、Bootstrap、TypeScript、React、Vue,有些已經淘汰了,有些快被淘汰了,有些是當下的主流。

對了,前端裡還有 Flutter,一個由谷歌開發的開源移動應用軟體開發工具包,用于為 Android、iOS、Windows、Mac、Linux、Google Fuchsia 開發應用。

吹個小牛逼,我之前還為京東大佬的《Flutter 實戰入門》的書寫過推薦序,雖然後來隻在封皮上留下了這段話。

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

前端的 UI 元件也非常多,比如 Ant Design、EChart,還要掌握 GIS 開發架構,比如百度地圖的 API,還有可視化開發架構,比如 Three.js、D3。

前端還需要懂一些計算機基礎,比如說:

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

雖然大部分前端對資料結構和算法這部分知識有些欠缺,甚至抵觸,但真的想要摸到更高的天花闆,資料結構和算法是必會的。

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

另外,要熟練使用浏覽器提供的調試工具,比如說 Google Chrome,還有微信基于 Chrome 核心魔改版的可用于調試公衆号和小程式的調試工具。

前端不再是單純的寫寫 JavaScript 和 CSS,也需要工程化,是以需要了解 npm、yarn 等依賴包的管理原理,還有前端打包工具 webpack 的編譯原理等等。

對了,還有性能優化這塊。尤其是啟動頁,使用者第一時間看到的,如果加載速度慢,頁面的響應速度慢,使用者可能就直接離開了。

我之前在做微信公衆号的小商城時,可沒少在首頁的加載速度上下功夫,要壓縮 CSS 和 JavaScript,要使用 CDN 内容分發,要減少 HTTP 請求的數量,要實作圖檔的懶加載,還要後端配合一些緩存等等。

這麼一套前端的知識體系下來,是不是就不會再有那種刻闆印象了,前端真的那麼簡單嗎?懂的人永遠不會說簡單。

貼一張位元組跳動的面試題吧,想走前端路線的同學可以感受下。

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

還有一張前端的技能圖譜:

絕不誤人子弟!零基礎應該選擇學習Java、PHP,還是前端?(2)

真乃學無止境也!

最後,簡單說幾句。

真沒想到!憤怒!竟然還有學校還在教 Java 的 Swing這篇文章會這麼火!完全超出了我的預期!

很多人在評論區噴我,看得我是心裡笑呵呵~~~~

沒必要!沒必要!沒必要!

我一沒打算讓學校放棄教 Java,二沒打算讓 Intellij IDEA 的團隊不用 swing 開發,我隻是說兩句心裡話,能聽得進去的,大學畢業後一會不會覺得虧,畢竟國内的計算機高校還是有一些問題存在的,如果不問青紅皂白就忽略這些問題,我覺得很可怕!

學校給不了的,我給了,你聽進去了,多年以後你會來感謝我說的真心話,聽不進去的,想噴的,随意,真的,開心就好。

最後的最後,還是那句話,與其把時間花費到這些沒用的知識點上,真不如:

1)癡迷于資料結構與算法

算法題就好像科舉考試時代背的八股文,是知識改變命運的代表作。你不刷,就很過算法題這一關,因為不僅要考,還能提高你的程式設計功底。我給你推薦的 BAT 大佬的刷題筆記,一定要下載下傳下來刷一刷(可以點選下面的連結去下載下傳)。

他喵的,BAT 大佬的這份刷題筆記太強了!

2)熱衷于 ACM

3)嘗試 Unix、Linux 環境下程式設計

4)醉心于網絡程式設計和多線程程式設計,對 TCP/IP、HTTP 等網絡協定有很深的了解

好了,今天的分享就到這吧。吹個牛逼,二哥影響力已經擴散到兩岸三地了,正在服兵役的小哥哥,加油呀!

我是二哥呀,希望能給學弟學妹們一些幫助和啟發,記得點贊喲~