作为一名前端应该具备的

了解 JavaScript 这门语言,包括 闭包、IIFE、this、prototype 及一些底层实现(ES、VO、AO)、熟悉常用的设计模式与 JavaScript 范式(比如实现类与私有属性)。另外,新的 ES6 已经问世,包括 class, module, arrow function等等

了解前端常用的网络及后端知识,包括 Ajax、JSON、HTTP 请求、GET/POST 差异、RESTful、URL hash/query、webSocket、常用的跨域方式(JSONP/CORS、HTTP 强缓存/协商缓存,以及如何利用 CDN 、静态网站/动态网站区别、服务器端渲染/前端渲染区别等等

学习使用进阶的 CSS,包括熟悉 CSS 3,使用 Scss/Less 等编译到 CSS 的语言,使用 autoprefixer 等 PostCSS 工具,了解 CSS 在 Scope/Namespace 上的缺陷,你还可以学习 CSS Modules、CSS in JS 这些有趣的新玩意

了解前端的模块化规范,AMD和CMD的作用原理和规范以及CommonJS 与 ES6 Modules 你必须要了解

熟悉 Git 与 Shell 的使用,基于 git 的版本管理、分支管理与团队协作,包括简单的 Linux/Unix 命令

熟悉并且习惯使用 Node,包括了解 npm、使用 Grunt/Gulp/Browserify/Webpack 优化你的工作流、对代码进行打包、混淆、压缩、发布,使用 Express/Koa 配合 MongoDB/Redis 涉足到后端领域,或者尝试用 Node 做后端渲染优化首屏体验

了解各种 HTML 5 的新 API,包括 Canvas,webGL、File API、App Cache、localStorage、IndexedDB、Drag & Drop、更高级的 DOM API、Fetch API 等等

学习 JavaScript 的单线程与异步编程方法,包括 setTimeout/setInterval,回调与回调地狱、事件与event loop、还有 Promise 甚至 Async/Await

了解浏览器,包括主流浏览器的名称、内核与差异、包括私有属性与 -webkit- 等厂商前缀,需要学习如何使用 Chrome DevTool,需要了解浏览器渲染的 reflow/repaint 来避免 Jank 并进行有针对性的性能优化

学习 Mobile Web,因为移动互联网是趋势。包括 viewport、CSS pixel、 touch 事件、iOS/Android 浏览器的差异与兼容、移动端的性能优化、300ms delay 等等…需要知道 Hybrid 是什么,包括 Cordova/Phonegap,更复杂的比如和 iOS/Android 通信的机制,比如 URI Scheme 或者 JS Bridge

学习一些非常火热的前端框架/库,理解其背后所蕴含的思想。包括 Backbone、Angular、Vue、React、Polymer 等等、了解它们背后的双向数据绑定、单向数据流、MVC/MVVM/Flux 思想、Web Component 与组件化等等

学习如何构建 web 单页应用,这是 web 的未来,包括利用 history API 或者 hash 实现路由,包括基于 Ajax + 模版引擎或者其他技术的前端渲染、包括组织较为复杂的软件设计等等

学习更多的计算机知识,包括简单的计算机体系结构、更广泛的编程知识(面向对象/函数式等)、栈、堆、数组、队列、哈希表、树、图等数据结构、时间复杂度与空间复杂度以及简单的算法等等

很强的自学能力、对技术有热情并且不断跟进。学习新的技术,比如 Universal JavaScript、Isomorphic JavaScript、前端测试、HTML5 页游、WebRTC、WebSocket、CSS 4、SVG、HTTP/2、ES 7、React Native、Babel、TypeScript、Electron 等等

内容来自:设计师如何学习前端 from 黄玄