前端小伙伴们:【刚入门,但迷茫人群】,请认真读完 下面的 淘宝web 大神总结,如果你对前端是真爱的话,并且坚信可以作为职业去改变你的生活,慢慢日积月累,按这个来吧,真的!
上半部分是 技术路线, 下半部分是掌握的知识框架+面面俱到,欢迎转载,但请注明出处!
JS前端实用开发QQ群 :147250970  欢迎加入~!
张帅,大前端
(前端变化太快,以下内容我会不定期更新,第三方网站请不要转载,如果实在想转载,请只转载摘要,并保留原文链接,谢谢)

网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑。其核心价值在于对用户体验的追求。可以按如下思路学习系统学习:

基础知识
1. html + css 这部分建议在 w3school 在线教程 上学习,边学边练,每章后还有小测试。 之后可以模仿一些网站做些页面。
2. javascript 要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,还是建议先在 w3school上学习。之后建议马上看《javascript语言精粹》,js是一门很混乱的语言,这本书能够帮助你区分哪些是语言的精华,哪些是糟粕,对于语言精华,应该深入学习。糟粕部分能看懂别人写的代码就行,自己就不用尝试了。

对于习惯看视频学习的同学,以上内容也可以在 慕课网-国内最大的IT技能学习平台 上学习。虽然我没用过,但好几位同学推荐过了,大概看了下,内容还不错。

进阶
有了以上基础,就可以进行一般的静态网页设计,不过对于复杂的页面还需要进一步学习。

1. css。截至今日(2015.12.08),天猫、淘宝、支付宝都已停止对ie6,7的支持,未来相信大多数网站都会停止对ie6,7的支持,ie8的市场份额也不像两年前那么高了,webkit内核已成为市场主流。对于css的学习,我推荐分三块:“基础概念”,“css2.1规范”,“css3规范”。必看 精通CSS(第2版) (豆瓣),看完这本书你应该对:盒子模型,流动,block,inline,层叠,样式优先级,等概念非常了解了。这本确实有些年头了,但基础概念部分讲述非常清晰,可以称之为经典。ie6,7相关的内容可以不看。css3的部分可以参考:CSS3实用指南 (豆瓣)。这本书同样有些老,只是最新出版的书中没发现有特别好的。

2. javascript。上面提到内容还不足以让你胜任js编程。在有了基础之后,进一步学习内容包括:

a) 框架。推荐 zepto,简单易用,在w3school简单学习js后,直接上手 zepto 即可完成一些简单的项目。zepto 源码简单清晰,也适合新手阅读。补充: 可以使用 codecademy 学习 javascript,zepto,用户体验真的很好(感谢 TonyOuyang )。最近比较热门的框架是React, VUE, Angular这些, 根据需要稍作了解即可。随着ie浏览器市场份额的下降,以及移动端的发展,标准原生js已经可以在实际项目中使用(目前还需要借助es5shim、babel等),重点还是ES5, ES6, ES7。

b) javascript 语言范式 。这个名字可能并不恰当,只是我找不到可以描述“面向对象”,“函数式”这个两个概念的概念。javascript不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。javascript的很多语言特性,都是因为他具有函数式语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,维基百科,百度百科会是你的帮手,另外推荐《object oriented javascript》,应该有中文版。对与函数式编程可以参考这篇文章:JavaScript 中的函数式编程实践

c) javascript 语言内部机制。必须弄清如下概念:js中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,‘this'指向的是谁。这部分内容你会在《javascript语言精粹》中详细了解。

d) dom编程,这个web前端工程师的核心技能之一。必读《dom编程艺术》,另外《高性能javascript》这本书中关于dom编程的部分讲的也很好。

e) ajax编程,这是另一核心技术。ajax建议在网上查些资料,了解这个概念的来龙去脉,百度百科,维基百科上的内容就足够了。真正编程是很容易的,如今几乎所有框架都对ajax有良好的封装,编程并不复杂。另外,ajax未来几年会被 Fetch Standard 取代,也需要了解。另外关于xhr2,cors(跨站资源共享),formData文件上传,也需要了解。

f) es5, es6。现在开发js大部分基于es5的,ie8以下通过es5-shim。但利用一些工具,现在已经可以直接写es6代码了,尤其在reactjs,nodejs类型的项目中。对于从es5,es6每个阶段js发生了哪些变化都需要系统学习,学习顺序建议是 JavaScript基础 -> es5 -> es6,越靠前的越重要。一些参考链接:ECMAScript 5 compatibility tableECMAScript 6入门ES5 « 张鑫旭

3. html5。需要了解html都提供了哪些api,然后项目中用起来。这部分没有什么难理解的,关键在于能用html5解决业务问题,以及不支持html5的浏览器的降级方案。这部分体现了前端的一个思想:面向未来编程,今早将新技术引入业务中来,而不是过分考虑兼容性问题,进而导致面向过去编程。

再进一阶 · 代码层面
有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:1易维护,2可测试,3高性能,4低流量(移动端)。
1. 易维护。对于页面你该理解‘样式’,‘数据’,‘行为’三者分离,对应的当然就是css,html,js。对于js代码,你最好了解设计模式,重构,MVC等内容。
2. 可测性。
3. 高性能。必读《高性能javascript》
4. 低流量。移动端关注比较多。

再进一阶 · 工程层面
前端项目同样面临软件生命周期的各个环节,首先是代码管理,你必须学会使用svn和git。其次是代码的构建,如今前端代码构建已经不是简单的压缩一下了,需要进行依赖管理、模块合并、各种编译,必须要学会使用grunt、gulp等前端构建工具。

然后呢?
以上内容只是简单说了前端学习的顺序。前端工程师应该有的知识结构请参考这里:JacksonTian/fks · GitHub

补充
对于前段开发,基本内容就这些了,可以根据自己的兴趣爱好选择性学习以下内容。
1. 交互设计。大公司依然有专业人士搞这些,不过不懂交互的前端一定不是好前端。推荐《简约至上》。
2. 后端。应该说前段工程师必须至少了解一门后端语言,不过如果爱好也可深入学习,入手难度比较低的应该是php了。这部分由可分为基于页面,基于框架两种。大型项目都是基于框架开发的,建议至少了解一个MVC框架,比如php的ci, yii, yaf 等,好还框架的设计思想都大同小异。如今NodeJs在大公司已经得到普遍的使用,推荐大家使用在Node上使用Express框架做一些后端服务的开发。
3. Android和ios开发。时至今日,前端的工作领域已经非常广泛,native的界面开发本质上也是前端开发,个大公司都面临着Native环境和web环境页面同时维护的问题,如果能够在技术上得到统一,将会有巨大的价值。对于学有余力的同学,应该了解Native开发的基本流程,至少了解到界面构建的技术。
4. 如果你能够认真看到这里,说明你对前端有真爱,最后说一个编程习惯的问题,绝对是保你工作平安,少出故障。代码提交前必须做的三个事情:A. git diff(svn diff),检查所有变更;B. 跑一边单元测试;C. 手动运行一遍所有demo.

如果你以上内容你都已掌握,想加入一个牛B的前端团队,可以私信我。坐标:杭州·天猫·前端

(以上内容最初发布于2012年上半年,已经更新过几次了,我会持续维护,希望对后来人有帮助。加油、共勉!最后更新时间:2016-3-26 09:42)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

还记得@jayli 的这幅前端知识结构图么。

图片的形式具有诸多的不便。缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目。我们可以通过协作的方式来共同维护这个项目。Git的历史记录也可以见证前端行业的一些变迁。

可视化效果

前端开发知识结构

  • 前端工程师

    • 浏览器

      • IE6/7/8/9/10/11 (Trident)
      • Firefox (Gecko)
      • Chrome/Chromium (Blink)
      • Safari (WebKit)
      • Opera (Blink)
    • 编程语言
      • JavaScript/Node.js
      • CoffeeScript
      • TypeScript
    • 切页面
      • HTML/HTML5
      • CSS/CSS3
      • Sass/LESS/Stylus/postCSS
      • PhotoShop/Paint.net/Fireworks/GIMP/Sketch
    • 开发工具
      • 编辑器和IDE

        • VIM/Sublime Text2
        • Notepad++/EditPlus
        • WebStorm
        • Emacs EmacsWiki
        • Brackets
        • Atom
        • Lime Text
        • Light Table
        • Codebox
        • TextMate
        • Neovim
        • Komodo IDE / Edit
        • Eclipse
        • Visual Studio/Visual Studio Code
        • NetBeans
        • Cloud9 IDE
        • HBuilder
        • Nuclide
      • 调试工具
        • Firebug/Firecookie
        • YSlow
        • IEDeveloperToolbar/IETester
        • Fiddler
        • Chrome Dev Tools
        • Dragonfly
        • DebugBar
        • Venkman
      • 版本管理
        • Git/SVN/Mercurial
        • Github/GitLab/Bitbucket/Gitorious/GNU Savannah/Launchpad/SourceForge/TeamForge
    • 代码质量
      • Coding style

        • JSLint/JSHint/jscs/ESLint
        • CSSLint
        • Markup Validation Service
        • HTML Validators
      • 单元测试
        • QUnit/Jasmine
        • Mocha/Should/Chai/Expect
        • Unit JS
      • 自动化测试
        • WebDriver/Protractor/Karma Runner/Sahi
        • phantomjs
        • SourceLabs/BrowserStack
    • 前端库/框架
      • jQuery/Underscore/Mootools/Prototype.js
      • YUI3/Dojo/ExtJS/KISSY
      • Backbone/KnockoutJS/Emberjs
      • AngularJS
        • Batarang
      • Bootstrap
      • Semantic UI
      • Juice UI
      • Web Atoms
      • Polymer
      • Dhtmlx
      • qooxdoo
      • React
      • Brick
      • vue.js
    • 前端标准/规范
      • HTTP/1.1: RFCs 7230-7235
      • HTTP/2
      • ECMAScript3/5
      • ECMAScript6
      • W3C: DOM/BOM/XHTML/XML/JSON/JSONP/...
      • CommonJS Modules/AMD
      • HTML5/CSS3
      • Semantic Web
        • MicroData
        • RDFa
      • Web Accessibility
        • WCAG
        • Role Attribute
        • WAI-ARIA
    • 性能
      • JSPerf
      • YSlow 35 rules
      • PageSpeed
      • HTTPWatch
      • DynaTrace's Ajax
      • 高性能JavaScript
    • SEO
    • 编程知识储备
      • 数据结构
      • OOP/AOP
      • 原型链/作用域链
      • 闭包
      • 编程范型
      • 设计模式
      • Javascript Tips
    • 部署流程
      • 压缩合并

        • YUI Compressor
        • Google Clousure Complier
        • UglifyJS
        • CleanCSS
      • 文档输出
        • JSDoc
        • Dox/Doxmate/Grunt-Doxmate
      • 项目构建工具
        • make/Ant
        • GYP
        • Grunt
        • Gulp
        • Yeoman
        • FIS
        • Mod
    • 代码组织
      • 类库模块化

        • CommonJS/AMD
        • YUI3模块
        • webpack
      • 业务逻辑模块化
        • bower/component
      • 文件加载
        • LABjs
        • SeaJS/Require.js
      • 模块化预处理器
        • Browserify
    • 安全
      • CSRF/XSS
      • CSP
      • Same-origin policy
      • ADsafe/Caja/Sandbox
    • 移动Web
      • HTML5/CSS3
      • 响应式网页设计
      • Zeptojs/iScroll
      • V5/Sencha Touch
      • PhoneGap
      • jQuery Mobile
      • W3C Mobile Web Initiative
      • W3C mobileOK Checker
      • Open Mobile Alliance
      • React Native
    • 前沿技术社区/会议
      • D2/WebRebuild
      • NodeParty/W3CTech/HTML5梦工厂
      • JSConf/沪JS(JSConf.cn)
      • QCon/Velocity/SDCC
      • JSConf/NodeConf
      • CSSConf
      • YDN/YUIConf
      • HybridApp
      • WHATWG
      • MDN
      • codepen
      • w3cplus
      • CNode
    • 计算机知识储备
      • 编译原理
      • 计算机网络
      • 操作系统
      • 算法原理
      • 软件工程/软件测试原理
      • Unicode
    • 软技能
      • 知识管理/总结分享
      • 沟通技巧/团队协作
      • 需求管理/PM
      • 交互设计/可用性/可访问性知识
    • 可视化
      • SVG/Canvas/VML
      • SVG: D3/Raphaël/Snap.svg/DataV
      • Canvas: CreateJS/KineticJS
      • WebGL/Three.JS
  • 后端工程师

    • 编程语言

      • C/C++/Java/PHP/Ruby/Python/...
    • 网页服务器
      • Nginx
      • Apache
      • Lighttpd
    • 数据库
      • SQL
      • MySQL/PostgreSQL/Oracle/DB2
      • MongoDB/CouchDB
    • 数据缓存
      • Redis
      • Memcached
    • 文件缓存/代理
      • Varnish
      • Squid
    • 操作系统
      • Unix/Linux/OS X/Windows
    • 数据结构

前端书籍推荐

★越少越简单,越适合入门,★多的要么是难度比较高,要么是比较适合在后面看,比如讲性能之类的书.

CSS

  • Eric Meyer 谈 CSS(卷二)★★★
  • CSS权威指南 (第3版)★★
  • 精通CSS★★★
  • HTML & CSS设计与构建网站★

JavaScript

  • JavaScript & jQuery交互式Web前端开发★
  • JavaScript DOM编程艺术 (第2版)★
  • JavaScript高级程序设计(第3版)★★
  • 锋利的jQuery★★
  • 高性能JavaScript★★★
  • JavaScript语言精粹★★★
  • JavaScript权威指南★★★
  • 编写可维护的JavaScript★★★
  • JAVASCRIPT语言精髓与编程实践★★★
  • Effective Javascript★★★
  • Secrets of the JavaScript Ninja★★★
  • JavaScript模式★★★
  • JavaScript设计模式★★★★
  • 基于MVC的JavaScript Web富应用开发★★★

性能实践

  • 高性能网站建设指南★
  • 高性能网站建设进阶指南★★
  • Web性能实践日志★★★
  • Web性能权威指南★★★

版本控制工具

  • 版本控制之道 (git)★★
  • Pro Git★★★
  • Git权威指南★★★★

后端书籍推荐

Linux管理

  • Linux 系统管理技术手册
  • 鸟哥的 Linux 私房菜
  • Linux 101 Hacks
  • UNIX Shell Scripting
  • The Linux Command Line
  • Linux Network Administrator's Guide

Linux编程

  • Linux程序设计
  • Linux系统编程
  • Unix环境高级编程
  • Unix编程艺术
  • The Linux Programming Interface
  • 程序员的自我修养
  • 深入理解Linux内核
  • Unix网络编程
  • TCP/IP高级编程

C/C++

  • Linux C编程一站式学习
  • C和指针
  • C陷阱与缺陷
  • C专家编程
  • C语言核心技术
  • 彻底搞定C指针
  • 征服C指针
  • C++编程思想
  • 高质量程序设计指南---C/C++语言
  • Inside the C++ Object Model
  • A Tour of C++
  • The C++ Programming Language
  • The C++ Standard Library - A Tutorial and Reference
  • The C++ Standard (INCITS/ISO/IEC 14882-2011)
  • Overview of the New C++

前端工作面试

  • 前端工作面试问题
  • 前端开发面试题(中文)

内容贡献者

除了感谢Jayli提供了知识结构图的原本来,还感谢以下的内容贡献者们,结果由git-summary生成于2014-01-03:

project  : fksrepo age : 1 year, 3 monthsactive   : 53 dayscommits  : 108files    : 4authors  :56  Jackson Tian            51.9%9  吴晓兰               8.3%5  liyinkan                4.6%3  chriscai                2.8%3  fengxiaolong            2.8%3  XiNGRZ                  2.8%2  monkadd                 1.9%2  Johnny                  1.9%2  weiwenqing              1.9%2  Yinkan Li               1.9%2  Copypeng                1.9%2  左岸                  1.9%2  Jakukyo Friel           1.9%2  Glowin                  1.9%1  李亚川               0.9%1  Evan You                0.9%1  Mickey                  0.9%1  Mickey-                 0.9%1  Qi Junyuan              0.9%1  browsnet                0.9%1  doabit                  0.9%1  guoxiangyang            0.9%1  linkgod                 0.9%1  popomore                0.9%1  vipzhicheng             0.9%1  zhaqiang                0.9%1  Colin Luo               0.9%

入坑方式:   欢迎加入~!气氛热情,欢乐多,妹子多!

web前端 聚集地,汇聚了全国顶尖的web前端热爱者,最新技术,最炫潮流,最靠谱的话题:
  做好现在!技术只是为了改变生活!JS前端实用开发QQ群 :147250970

 扫描屏幕下方的二维码,可以关注 我的前端公众号 。听说妹子挺多的,及时更新一些前端解惑和段子

前端搬运工:零基础的前端开发初学者应如何系统地学习?前端掌握技能的学习路线相关推荐

  1. 零基础的前端开发初学者应如何系统地学习?前端技能汇总 Frontend Knowledge Structure

    本文转自 张帅 于知乎<零基础的前端开发初学者应如何系统地学习?>中的回答. 知乎原文:https://www.zhihu.com/question/19834302 GitHub项目:前 ...

  2. 前端搬运工 零基础的前端开发初学者应如何系统地学习 前端掌握技能的学习路线

    前端小伙伴们:[刚入门,但迷茫人群],请认真读完 下面的 淘宝web 大神总结,如果你对前端是真爱的话,并且坚信可以作为职业去改变你的生活,慢慢日积月累,按这个来吧,真的! 上半部分是 技术路线, 下 ...

  3. 零基础的前端开发初学者应如何系统地学习?

    网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑.其核心价值在于对用户体验的追求.可以按如下思路学习系统学习: 基础知识: html + css 这部分建 ...

  4. 【视频回放与课件】零基础入门AI开发

    今天上午,受广州图书馆邀请,在第一讲<零代码上手人工智能>的基础上,以<零基础入门AI开发>为主题,分四步解锁人工智能学习的概念与开发工具,让您在一小时内轻松掌握人工智能开发要 ...

  5. 视频教程-前端工程师零基础到就业全套课程-JavaScript

    前端工程师零基础到就业全套课程 北京八维研修学院技术工程师,5年大型项目实战开发经验,3年授课经验. 孟宪杰 ¥399.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 ...

  6. WEB前端全套零基础视频教程+软件2021最新编程视频需要留邮箱

    WEB前端全套零基础视频教程+软件2021最新编程视频,已经整理好,分享给需要的小伙伴!!!

  7. java开发技术有什么意义,零基础学Java开发技术有哪些优势和好处?

    零基础学Java开发技术有哪些优势和好处?Java开发技术有下列优势:Java编程语言简单.面向对象集中于对象及其接口.分布式处理TCP/IP协议.鲁棒性.安全性.体系结构中立性.可移植性.解释执行. ...

  8. php mysql好学吗_零基础小白PHP开发好学吗

    零基础小白PHP开发好学吗,PHP知识点有哪些呢,如果分段学习PHP技术,你所知道的方法有哪些呢? 第一阶段 2048.扫雷.贪吃蛇游戏项目贯穿 内容管理 文件操作 PL/SQL编程 HTTP服务器开 ...

  9. 零基础到CS开发高手通用权限管理系统全程实录

    零基础到CS开发高手通用权限管理系统全程实录(Devexpress.FastReport.NET.WebService.智能客户端) 课程讲师:闲筝 课程分类:.NET框架 适合人群:中级 课时数量: ...

最新文章

  1. pythonWeb UI自动化最流行的工具 解放双手 双手打字以示清白!
  2. Visual Studio 2013 在使用 razor无智能提示的解决办法
  3. python numpy使用
  4. drupal 6.0 入门教程
  5. 赛门铁克公布Q3财报 亏损68亿美元
  6. 全国计算机等级考试题库二级C操作题100套(第62套)
  7. java单链表 提供增删改查_java实现单链表增删改查的实例代码详解
  8. el表达式的转义字符。
  9. [Ting's笔记Day9]活用套件Carrierwave gem:(4)使用Imagemagick修改图片大小
  10. 2018手机用户体验的11个设计趋势
  11. 大型高端OA协同办公系统源码分享
  12. 环比同比YOY\QoQ及QQ\PP图Q-Q\P-P…
  13. c++高效位运算函数之 __builtin_
  14. mybatis中更新mysql时间多了一秒
  15. 看板方法:寻找切入点 | Agilean学院 | David博客系列 | 刘永鹏 译,杨柳 校、李淳 审...
  16. Ionic之button标签ng-click无反应解决
  17. 301、404、200、304、500等HTTP状态,代表什么意思?
  18. 利用微信小程序实现web监控界面
  19. xv6 makefile详解
  20. 刺激战场服务器无响应ios,绝地求生刺激战场IOS系统更新后玩不了 绝地求生刺激战场苹果手机更新后进不去...

热门文章

  1. Replication(上):常见的复制模型分布式系统的挑战
  2. ARP欺骗数据帧转发之MAC修改
  3. RoboCup2d学习——WorldModel
  4. P型半导体、N型半导体定义
  5. hive跑mr时报错,java.lang.IllegalArgumentException: The value of property yarn.resourcemanager.zk-address
  6. 类似华为麒麟鸿蒙类的名字,华为除了“麒麟”,还有四款顶级芯片,名字背后隐藏寓意令人感动...
  7. 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法
  8. 【潍坊seo公司】普通人都能学会的SEO,让你打破网络营销瓶颈
  9. Cadence Allegro 17.4 IBS文件处理(IBIS模型)
  10. Spring Boot+Vue项目学习总结