後端程序員該如何學習前端?

作為後端程序員當然寫過模板啦,對 HTML 的各個標籤算得上熟悉。之前也有用 Node.js 做過幾個項目, 所以對 Javascript 語言也不算陌生。

但是以前在 W3C 看過教程,對 CSS 一頭霧水,對於各種定位浮動也是記不清。看 CSS 文件的時候覺得在讀天書。

另外覺得最近前端領域變化太快,阮一峰老師就說了:

前端變化有多快?兩年前,大家都用 Grunt 構建,去年用 Gulp + Browserify 構建,今年用 Webpack 構建,明年可能會使用純 ES6 的構建工具。每變一次,前面的那些工具就全沒用,都白學。要知道,這些工具每一個都是軟體系統,單單 Grunt 就有 4 千個插件,然而全沒用了。

所以在這個時候學習前端的話,面對眾多的框架和流派該如何選擇呢?


一口吃不成胖子,一步登不了天。

阮老師那句推特我認為是事實描述錯誤,其次,不是越先進的框架就越受到選擇性傾向,關鍵看綜合的技術選型。

依我看,流程依然沒有變化的太多,不能說現在MV*大行其道,就不用學基於DOM的開發模式了,jQuery -&> Backbone -&> ng/react/vue 這樣的過程依然是有意義的。如果DOM不熟,像Angular什麼的,也學不會。


等你真的入了門,再問不遲:

從熟悉這個https://developer.chrome.com/devtools開始,熟悉以後會事半功倍

用Google或者Baidu找一個簡潔流暢的HTML,CSS,Javascript的教程

去這裡jQuery Learning Center學會jQuery

你現在對前端的觀念是偏頗的

Grunt/Gulp/Webpack/Browserify是工作流工具,不是前端核心技術,他們就像你的IDE,一次配置完後,平時只是小量調整,放著CSS和JS的技術和藝術不學,而糾結於外部工具,自尋煩惱;再者,工具的演化更多時候是好事,等你有了技術品味,自然能作判斷,恐懼沒有必要;理解CSS和JS開發的核心概念才重要,什麼核心概念是你初學要涉獵的。


開發語言只是工具,人不應該被工具指揮。

對於項目而言,為了更好的開發協作效率,從崗位職責上劃分為「後端」、「前端」、「設計」等工種,對於企業而言是非常有必要的,但對於開發者個人而言,其實沒有必要刻意地將自己限制在某個領域,而不去了解或嘗試其他領域的事情。

如果你想把前端做好,那麼就得把自己當前端來對待,甚至嘗試去做一份前端的工作或項目,那麼你的問題就不再是問題。

不過人的精力是有限的,不可能無限的去了解太多開發語言,而是有選擇性地去關注或選擇你要關注的開發語言,避免過渡關注太多不同類型的語言將有限的精力分得太散。

當然,這其實是一個權衡的過程,因人而異。題主自己掂量著辦,精力無限的,多了解幾門開發語言或嘗試多個工種也是沒問題的。

最後,我認識的優秀前端開發者基本都是後端php/java轉過來的,題主如果你對前端感興趣,不妨嘗試一下。


不過也快結束了 asm.js結束所有戰爭


許多後端程序員對於前端都略微有點鄙視,覺得前端就是做做頁面、寫寫交互效果而已。可能在幾年前的WEB2.0時代確實是這樣的,但是在WEB3.0時代的今天,許多網站、Web App都追求UI的精美、交互體驗良好,此時就不僅僅只是謝謝HTML標籤、隨便謝謝CSS那麼簡單了。

一個UI界面精美、用戶體驗良好的Web App要經過視覺設計師設計視覺稿、交互設計師設計交互流程、前端工程師還原視覺稿(將psd文件還原成靜態HTML文件)、前端工程師實現交互稿、前端工程師實現與後台介面的數據交互等流程。不同的公司可能略有精簡或增加,但大致都是這樣一種思路。後端程序員學習前端其實不存在很難的東西,反而會覺得很有趣,因為前端許多東西都是所見即所得的東西,很容易或者成就感。但是後端程序員學習前端的一個很大的問題就是,總覺得前端是沒有什麼實質性內容可學的,不值得花費大量精力系統去學習。如果這種想法不根除,那麼你永遠沉不下心來學好前端,因為前端有些東西還是很考驗你的耐心的,比如多瀏覽器的兼容問題。

後端程序員學前端,我推薦可以去報名學學網易雲課堂推出的前端微專業課程。我也是後台開發工程師,大學的時候也開始零零碎碎地看DIV+CSS布局類的書籍,直到半年前我對前端還是沒有一個成體系的認識,什麼定位的浮動、絕對定位,block、inline-block的特性的,都搞不清楚。6月份的時候咬了咬牙付了1000多報名了前端微專業。現在我已經學完了全部課程,也完成了最後的一個大作業的實踐(你可以點擊這裡看看:網易教育產品部)。學完之後我對前端的知識體系有了一個整體的認識,對前面說的浮動,絕對定位,block inline-block的特性啥的都有了更進一步的認識。雖然說第一期的網易前端微專業被吐槽得很多,但網易前端微專業的系統性還是值得我們點贊的。她能讓我們系統地認識並學習前端的知識點,而不是在網上東拼西湊、而且找不到他們之間的聯繫。

學前端微專業的另一個好處就是有一批跟你一起學的人,你們可以一起相互促進學習。有些人可能會覺得這沒啥(包括之前的我),但我想說這個真的很重要。在學習微課堂的過程中,我遇到了許多志同道合學習前端的人,這其中不乏有在國外的朋友。其中有一個朋友真的很努力,他把所有的視頻都做了筆記放到GitHub上面,而且筆記上不僅僅只有問題,還有配圖,不僅僅有配圖,還有動圖!動圖!在別人都在糾結要不要做筆記,要不要做這麼詳細的時候,他做了,而且做得超乎你的想像!之後我也跟著他學到了很多東西,包括用Markdown寫筆記、用Git Page發布GitBook等等,我也在他的筆記本(https://li-xinyang.gitbooks.io/frontend-notebook/content/)的基礎上,對內容進行進一步的修改跟著做了一個前端開發筆記本(介紹 | Frontend Notebook),很高興他也採納了我的一些修改。之後我們還一起嘗試著弄了一個前端交流社區(http://frontseat.io/),我們有什麼問題都在這上面交流。雖然社區沒啥人訪問,但我們都覺得很開心。我想,如果沒有參加微專業,也就不會有機會認識那麼優秀的人,也學不到那麼多得東西了。從這一點想想,還是蠻值的!(*^__^*)

回到樓主的問題,眾多的框架和流派該如何選擇?有其他知友說了,其實重要的不是框架,框架只是幫助你快速開發的工具而已,重要的是框架背後的東西。好好把HTML/CSS/JavaScript學好,對前端有了系統的認識,你再去看那些框架,或者你就不會再有這種困惑了。最後,系統學下前端的知識點,可以嘗試一下網易的前端微專業。傳送門:前端開發工程師微專業


技術的更新速度是在太快了喲,基礎學好再去學其他的吧


後端做前端只有哭 寧願多給我每個月1w工資 我都不做前端 太累糾結 更新太快 學的不比後端少 不比後端難


推薦閱讀:

2016 年中國前端界發生的大事件都有哪些?
後端所謂複雜的問題是什麼?
面試前端工作7年以上的人,總感覺他們水平一般般?
入門程序員如何選擇方向前端?後端?還是JAVA(安卓)?
Teambition 與 蘑菇街 這兩家公司對於前端應屆生該如何選擇?

TAG:前端開發 | JavaScript | 前端入門 |