前端如何學習?

来源:https://www.cnblogs.com/TT485480/archive/2020/06/04/13043553.html
-Advertisement-
Play Games

結合個人經歷總結的前端入門方法,總結從零基礎到具備前基本技能的道路,學習方法,資料,由於能力有限,不能保證面面俱到,知識作為入門參考,面向初學者,讓初學者少走彎路。 互聯網的快速發展和激烈競爭,用戶體驗成為一個重要的關註點,導致專業前端工程師成為熱門職業,各大公司對前端工程師的需求量都很大,要求也越 ...


結合個人經歷總結的前端入門方法,總結從零基礎到具備前基本技能的道路,學習方法,資料,由於能力有限,不能保證面面俱到,知識作為入門參考,面向初學者,讓初學者少走彎路。

互聯網的快速發展和激烈競爭,用戶體驗成為一個重要的關註點,導致專業前端工程師成為熱門職業,各大公司對前端工程師的需求量都很大,要求也越來越高,優秀的前端工程師更是稀缺。個人感覺前端入門相對容易,但是也需要系統地認真學習,在打好基礎後堅持學習,成為優秀前端工程師也只是時間問題。

學習任何知識最重要的都是興趣,如果經過一段時間的學習感覺不喜歡,那可能強迫自己學習是很痛苦的,效果也不會好,畢竟這很可能就是以後很多年生存的技能。

不過隨著互聯網行業的發展,前端必然是Web開發人員需要學習的知識,有時候是沒有專業前端工程師一起合作的,所以即使不做專門的前端工程師,掌握基本的前端技能為工作帶來方便。

必備基礎技能

以下是個人覺得入門階段應該熟練掌握的基礎技能:

HTML4,HTML5語法、標簽、語義。

CSS2.1,CSS3規範,與HTML結合實現各種佈局、效果。

Ecma-262定義的javascript的語言核心,原生客戶端javascript,DOM操作,HTML5新增功能。

一個成熟的客戶端javascript庫,推薦jquery。

一門伺服器端語言:如果有伺服器端開發經驗,使用已經會的語言即可,如果沒有伺服器端開發經驗,熟悉Java可以選擇Servlet,不熟悉的可以選PHP,能實現簡單登陸註冊功能就足夠支持前端開發了,後續可能需要繼續學習,最基本要求是實現簡單的功能模擬。

在掌握以上基礎技能之後,工作中遇到需要的技術也能快速學習。

基本開發工具

恰當的工具能有效提高學習效率,將重點放在知識本身,在出現問題時能快速定位並 解決問題,以下是個人覺得必備的前端開發工具:

文本編輯器:推薦Sublime Text,支持各種插件、主題、設置,使用方便

瀏覽器:推薦Google Chrome,更新快,對前端各種標準提供了非常好的支持

調試工具:推薦Chrome自帶的Chrome develop tools,可以輕鬆查看DOM結構、樣式,通過控制台輸出調試信息,調試javascript,查看網路等

輔助工具:PhotoShop編輯圖片、取色,fireworks量尺寸,AlloyDesigner對比尺寸,以及前面的到的Chrome develop tools,

FQ工具:lantern, 壁虎漫步

學習方法和學習目標

方法:

入門階段反覆閱讀經典書籍的中文版,書籍中的每一個例子都動手實現併在瀏覽器中查看效果。

在具備一定基礎之後可以上網搜各種教程、demo,瞭解各種功能的實際用法和常見功能的實現方法。

閱讀HTML,CSS,Javascript標準全面完善知識點。

閱讀前端牛人的博客、文章提升對知識的理解。

善用搜索引擎。

目標:

熟記前面知識點部分的重要概念,結合學習經歷得到自己的理解。

熟悉常見功能的實現方法,如常見CSS佈局,Tab控制項等。。

入門之路

在整個學習過程中HTML CSS JavaScript會有很多地方需要互相結合,實際工作中也是這樣,一個簡單的功能模塊都需要三者結合才能實現。

動手是學習的重要組成部分,書籍重點講解知識點,例子可能不是很充足,這就需要利用搜索引擎尋找一些簡單教程,照著教程實現功能。以下是一些比較好的教程網址

可以搜索各大公司前端校招筆試面試題作為練習題或者他人總結的前端面試題還有個人總結的面試題(帶參考答案)。

原生javascript是需要重點掌握的技能,在掌握原生javascript的基礎上推薦熟練掌握jQuery,在實際工作中用處很大,這方面的書籍有《Learning jQuery》或者去jQuery官網。

建一個賬號,保存平時學習中的各種代碼和項目。

有了一定基礎之後可以搭建一個個人博客,記錄學習過程中遇到的問題和解決方法,方便自己查閱也為其他人提供了幫助。

經常實用Google搜索英文資料應該經常找到來自的高質量答案,與到問題可以直接在這裡搜索,如果有精力,註冊一個賬號為別人解答問題也能極大提高個人能力。

經典書籍熟讀之後,可以打開前面必備基礎技能部分的鏈接。認真讀對應標準,全面掌握知識。

繼續提高

有了前面的基礎之後,前端基本算是入門了,這時候可能每個人心中都有了一些學習方向,如果還是沒有。可以參考前面必備技能部分提到的那兩個項目,從裡面選一些進行發展學習。以下是一些不錯的方面:

Grunt:前端自動化工具,提高工作效率

less css:優秀的CSS預處理器

bootstrap:優秀的CSS框架,對沒有設計師的團隊很不錯,與less結合使用效果完美

requirejs:AMD規範的模塊載入器,前端模塊化趨勢的必備工具

Node.js:JavaScript也可以做後臺,前端工程師地位更上一步

AngularJS:做Single Page Application的好工具

移動端web開發:智能手機的普及讓移動端的流量正在逐步趕超PC端

Javascript記憶體管理:SPA長期運行需要註意記憶體泄露的問題

High Performance JavaScript(Build Faster Web Application Interfaces)

Best Practices for Speeding Up Your Web Site:重要技能

語言基礎

JavaScript:

作用域鏈、閉包、運行時上下文、this

原型鏈、繼承

NodeJS基礎和常用API

CSS:

選擇器

瀏覽器相容性及常見的hack處理

CSS佈局的方式和原理(盒子模型、BFC、IFC等等)

CSS 3,如animation、gradient、等等

HTML:

語義化標簽

其他

有些東西不是考敲碼就能弄好的,我參與實習的時候感受到了很多,這些是我遇到的也是我感覺自己做的不好的地方

對於業務的思考:我個人這方面非常欠缺,所以放在最前面,在敲碼前要多思考業務

交流和溝通能力:這個非常重要,前端同時需要與項目經理、產品、交互、後臺打交道,溝通不善會導致很多無用功,延緩項目。

知識管理、時間管理:input和output的平衡,output是最好的input。如何做好分享,參與社區,做好交流,作好記錄。

對新技術的渴望,以及敢於嘗試。

入門書

入門可以通過啃書,但書本上的東西很多都已經過時了,在啃書的同時,也要持續關註技術的新動態。這裡推幾本我覺著不錯的書:

《JavaScript高級編程》:可以作為入門書籍,但同時也是高級書籍,可以快速吸收基礎,等到提升再回來重新看

《JavaScript權威指南》:不太適合入門,但是必備,不理解的地方就去查閱一下,很有幫助

《編寫可維護的JavaScript》和:

《Node.js開髮指南》:不錯的Nodejs入門書籍

《深入淺出Node.js》:Nodejs進階書籍,必備

《JavaScript非同步編程》:理解JS非同步的編程理念

《JavaScript模式》和《JavaScript設計模式》:JavaScript的代碼模式和設計模式,將開發思維轉變到JavaScript,非常好的書

《JavaScript框架設計》:在用輪子同時,應當知道輪子是怎麼轉起來的,講解很詳細,從源碼級別講解框架的各個部分的實現,配合一個現有框架閱讀,可以學到很多東西

《Dont make me think》:網頁設計的理念,瞭解用戶行為,非常不錯

《CSS禪意花園》:經久不衰的一部著作,同樣傳遞了網頁設計中的理念以及設計中需要註意的問題

《高性能JavaScript》和《高性能HTML5》:強調性能的書,其中不只是性能優化,還有很多原理層面的東西值得學習

《HTML5 Canvas核心技術》:我正在讀的一本書,對於canvas的使用,動畫的實現,以及動畫框架的開發都非常有幫助

《HTTP權威指南》:HTTP協議相關必備,前端開發調試的時候也會經常涉及到其中的知識

《響應式Web設計》:技術本身不難,重要的是響應式網頁的設計理念,以及移動先行的思想

《JavaScript語言精粹》:老道的書,也是普及JavaScript的開發思維的一本好書,非常適合入門

一些不錯的網站

github:沒啥好說的,多閱讀別人的源碼,多上傳自己的源碼,向世界各地的大牛學習

codepen:感受前端之美的必選之地,裡面有很多酷炫的效果和優秀的插件

echojs:快速瞭解js新資訊的網站

stackoverflow和segmentfault:基本上各種問題都能在上面獲得解答

google web fundamentals:每篇文章都適合仔細閱讀

static files:開放的CDN,很好用

iconfont:阿裡的矢量圖標庫,非常不錯,支持CDN而且支持項目

html5 rocks: 一個不錯的網站,很多瀏覽器的新特性以及前沿的技術,都能在這上面找到文章

css tricks:如何活用CSS,以及瞭解CSS新特性,這裡可以滿足你

JavaScript 秘密花園 JavaScript初學必看,非常不錯

w3cplus:一個前端學習的網站,裡面的文章質量都挺不錯的

node school:一個不錯的node學習網站

learn git branch:一個git學習網站,交互很棒

前端亂燉:一個前端文章分享的社區,有很多優秀文章

正則表達式:一個正則表達式入門教程,非常值得一看

各路大牛的博客:這個太多了,就不貼了,知乎上有很全的

各種規範的官方網站,不懂得時候讀規範

前端的定位

前端的定位關乎到你需要吸收什麼樣的知識和技能,決定在技術世界里你對什麼需要格外敏感。如果你認為前端僅僅停留在切頁面,實現交互和視覺的要求,那你對前端的認識還停留在初級階段。

阿裡終面的時候我問了考官這麼個問題:前端技術日新月異,範圍越擴越寬,標準越來越豐富,似乎任何一個觸角都能伸出很遠。怎麼給前端一個合適的定位?考官給我分析了半天,然後總結成一句話,就是用戶和網站的聯結者,用戶體驗的創造者(原話不是這樣,但大體是這個意思)。

也就是說前端的終極目標其實就是創造用戶體驗,提升用戶體驗,以用戶體驗為中心。不管你是從交互設計上下手,還是從性能優化出發,或者改進工作流提升工作流效率,最終都是為了創造和提升用戶體驗,最終都要體現到用戶體驗這一點上來。我認為這個總結非常有道理(當然“用戶體驗”這個詞太寬泛了,並且不僅僅是前端工程師的範疇,比如開發後臺的時候對一個數據處理過程進行優化,提升了整體性能,這也是對用戶體驗的一個提升)。

現在的前端工程師做到一定階段不可避免會接觸到很多比切頁面、實現視覺要求、實現交互等更深入的問題,比如前端自動化、圖像編程、性能優化等等,再往後推一點就是PHP/JSP/ASP/nodeJs,過去後端模板一般屬於後端的範疇,現在隨著前端架構的演進,可能會讓你去寫後端模板的代碼,需要用到後端語言(PHP/Java/C#等),這就是所謂大前端(然而這與前端的定位並不是相背離的,大前端處理的依然是與用戶接觸的部分,仍然是對用戶體驗的優化)。

可能最常見或者被談論最多的就是node,其實這幾種技術選型都可以,bat三家據說百度用PHP比較多,阿裡用node比較多。

以上是我對前端以及衍生出來的技術路線的一些淺薄理解,學習一個領域掌握它的整體上的走向和趨勢還是挺重要的。

小編也在前端混了有幾年,整理了一些學習資料,對web開發技術感興趣的同學
歡迎加入新建的Q群:603985993,不管你是小白還是大牛我都歡迎,希望大家誠心交流!
還有大牛整理的一套高效率學習路線和教程與您免費分享,與企業需求同步。
好友都在裡面學習交流,每天都會有大牛定時講解前端技術!


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

-Advertisement-
Play Games
更多相關文章
  • 1、一張表,裡面有 ID 自增主鍵,當 insert 了 17 條記錄之後,刪除了第 15,16,17 條記錄, 再把 Mysql 重啟,再 insert 一條記錄,這條記錄的 ID 是 18 還是 15 ? (1)如果表的類型是 MyISAM,那麼是 18 因為 MyISAM 表會把自增主鍵的最大 ...
  • pyetl是一個純python開發的ETL框架, 相比sqoop, datax 之類的ETL工具,pyetl可以對每個欄位添加udf函數,使得數據轉換過程更加靈活,相比專業ETL工具pyetl更輕量,純python代碼操作,更加符合開發人員習慣 安裝 pip3 install pyetl 使用示例 ...
  • 1. 前言 之前寫過一篇博客,講解的是Redis的5種數據結構及其常用命令,當時有讀者評論,說希望瞭解下這5種數據結構各自的使用場景,不過一直也沒來得及寫。 碰巧,在3月份找工作面試時,有個面試官先問了我Redis有哪幾種數據結構,在我講完後,面試官又問了我以下問題: 如何用Redis實現微信步數排 ...
  • 打開虛擬機進入linux系統 進入Hadoop目錄下 多用tab鍵 它可以自動補齊命令 1. 啟動Hadoop集群 start-all.sh 等價於 start-dfs.sh 和 start-yarn.sh 2. 關閉Hadoop集群 stop-all.sh 3. 查看啟動的服務進程 jps 4. ...
  • 什麼叫大數據,“大”,說的並不僅是數據的“多”!不能用數據到了多少TB ,多少PB 來說。 對於大數據,可以用四個詞來表示:大量,多樣,實時,不確定。 也就是數據的量龐大,數據的種類繁雜多樣話,數據的變化飛快,數據的真假存疑。 大量:這個大家都知道,想百度,淘寶,騰訊,Facebook,Twitte ...
  • 今天和大家分享一下,iOS開發3-5年應該掌握的技能。 大大小小參加過不下30+公司的面試,其中不乏BAT、TMD等一線互聯網公司,總結一下,發現大廠招聘都有一個共性。 對技術的要求很全面,有些開發者認為iOS掌握了基礎的UI、網路、記憶體、多線程等等就夠了,其實要想更好的應付iOS的面試,這些是遠遠 ...
  • 1.先說現狀 現在國內公司開全新項目,Swift 已經占壓倒性優勢了。 很多以前是 OC 的項目也轉向 OC/Swift 混編了。 但是也有對包大小非常敏感的項目,還是純 OC 開發。不少公司剛剛擺脫 MRC 不久,業務壓力大,歷史包袱重,沒有時間推進新技術。 2. 對比一下 OC 和 Swift ...
  • 下麵說一下我的感受吧 自學web前端8個月,我是怎樣拿下7K薪資的?自學兩個字,說起來很輕鬆,但真正做起來那真是絕非易事,說實話,在我收到HR發來的offer那一刻,眼淚差點掉下來,這個過程中吃的這些苦,真的只有自己才能知道,在自學的時候經常會碰到一些技術方面的問題,找不到老師教,只能去群里哪裡找大 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...