前端大牛们都学过哪些东西?

最近在看bootstrap,发现除了大一的时候看过的html+css,和一些js,JQuery之外,几乎没学什么关于前端的东西。偶尔了解过一些html…
关注者
6,135
被浏览
1,012,071
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

一步一步来。

CSS不能编程?用

Less

Sass

Stylus

、甚至直接用

Absurd

,框架除了

Bootstrap

还有很多。JS写多了很麻烦?

jQuery

。移动开发?

Zepto.js

。结构不好?找框架,

Backbone.js

是MVC,

AngularJS

Ember.js

是MVVM,Twitter还弄了个事件驱动框架

Flight

。库多了要优化加载?

RequireJS

代码质量成问题?

Jasmine

QUnit

Mocha

做单元测试。各种浏览器都要测?用

Karma

。测试通过了部署还有问题?持续集成,用

Travis CI

。用户行为也要测?用

Selenium

。样式测试还有

Viff

。觉得JS都够麻烦的?用

CoffeeScript

想做动画?Canvas或SVG还有CSS3帮忙,干掉Flash。SVG太难画?用

Snap.svg

。想开发游戏?用Canvas。自己写FPS太低?用框架,

CreateJS.

。2D太幼稚?

three.js

帮你用WebGL开发3D,还不够给力?

asm.js

让你在浏览器中拥有虚幻3引擎。

这一堆东西都要配置部署,麻烦,用

Grunt

,库太多?用

Bower

管理,项目开始要创建各种文件文件夹?用

Yeoman

。开源项目太多了,

GitHub.

上找,不会?学

Git

。顺便用

Jekyll

托管博客,不是吧还有

Ruby

这玩意...SASS也是Ruby写的,等等

Sublime Text

Python

写的,要写插件?也学一下。调试太难?用Chrome开发者工具,一堆API和功能。

光在电脑浏览器上跑不给力?移动开发HTML5,离开网络就渣了?HTML5离线应用。不如原生应用?用

PhoneGap

。想调用原生API?开发

Firefox OS

应用吧。浏览器应用也得会吧,Chrome Firefox都有自己的文档。接着是不是把后端甩了,自己来,装N

ode.js

,所以还得学点服务器知识,想用npm管理node包?linux技巧shell神马的也得学。想前后端通吃?再看看http协议。Web精通了?

node-webkit

让你可以写桌面程序了,继续学吧。

想学模块化开发?看看

CommonJS

AMD

规范。理解JS有偏差?看看

ECMA-262

,等等不知道什么时候第6版就要出了。浏览器各不相同,弄不清该怎么兼容?看看

W3C

标准,HTML写出来人看的懂,机器读不懂?要SEO,要支持残障人士?看HTML语义化,全会了但IE就是不支持?叫不出名字的浏览器尼玛连JS都不知道是啥?渐进增强。想一次把各种设备全搞定?响应式设计。

然后上面这些不过是一些讨巧的小技术。公司做什么业务的?了解一下行业信息。面向大众的产品?交互设计。美工不给力?UI设计。外包和咨询?设计模式、重构方法、算法、数据结构。知道软件工程吗?了解一下

敏捷开发

,或许还可以试试TDD、ATDD、BDD。

看了这么多东西,第一反应是不是求中文文档?学英语去吧。

这些也不过是我目前所能看到的一小部分,而且每段基本都是到了一个边界,并不是没得学了,而是继续学又是另一片天地。真心希望有人能帮我填补知识盲区。另外,我仅把一些知识点串起来,不全或不对的地方请见谅。

吐槽:知乎的链接功能至少浪费我15分钟时间。


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

本来不想更新,不过看到一直有人看到这个答案,担心时间过太久误导了大家,所以再说两句。其实我一直都在说,我只是看这个问题是疑惑该学点什么,所以摆了些工具和框架。但我发现许多人都只看标题,只记得“大牛”两个字,其实技术栈层面的前后端之分根本就很滑稽,无非是JavaScript和某某语言的区别罢了,对资源分配策略或者说思维的不同才是前后端之分的本质区别。如果没有领会到这一点的话,还是好好学技术,别管什么前端后端的了,项目需要你做web做页面,你就学前端再学点Java, Ruby, PHP之类的都可以。不要把前端这个概念当成懒得学其他技术的借口。未来JavaScript会变成相对浏览器来说的底层语言,开发者用各种各样语法的语言开发之后编译成JavaScript在浏览器上跑,如果还是只会前端三板斧,那注定被前端如火如荼的浪潮覆灭。

TypeScript

相比CoffeeScript已经有了一些质变,还有类似Haskell语法的

Elm

, 加上

webpack

的催化,这种趋势会越来越明显。