Web 前端的路该怎么走？
前天在车站上写的一些个人感想  ，有点点乱(好吧，很乱)，我还是再整理一下哈哈哈。 入门 前端的入门可能会比较容易，例如一些最基本的公司可能就仅仅要求css和html就可以了，排排页面，重构一下页面。可能一个10来天的学习就可以很好的胜任了。 然后更加深入一些，能够使用JavaScript对页面的改动，运用一些能够加快开发速度的工具，如jQuery之类的。这时候的前端我感觉就可以胜任很多工作了，例如一些基本的网站开发，和后端的协同开发(ajax)什么什么的。然后我个人觉得这里就开始出现分岔了。 我个人觉得学习方向可以从广度和深度两个方向去看。 首先是广度，前端能够涉及到的方面有很多: 可能一直就是喜欢工程型的开发，想继续寻找更多的可以让项目开发周期更短，让工程师开发起来是thinking of programing。而广泛接触不同的工具，例如grunt gulp的自动化工具，sass less,coffeescript之类的预编译语言，或者是typeScript一类的js超集，还有一些全栈解决方案，meteor,phonegap之类的。 或者是就是想钻研框架，就想知道jquery的选择器实现是怎样的，怎样解决冲突，angularjs的框架思想和jquery怎么不一样…… 又或对计算机网络，网站性能有兴趣。可以钻研http协议，ws协议，还有网站性能如何提升 还可以是就喜欢走前沿，html5的各种接口，svg,canvas。然后就可以顺便去钻研一下计算机图形学。 另外ecma2015，目标是构建大型应用，随着前端的能力越来越强大，前端要处理的问题也越来越多，因此语言特性增加了，这时候，需要深挖语言特性，需要处理数据结构 还有很多的一些，例如浏览器兼容的问题，兼容css3,html5的api(websocket,localstorage什么的)~。前端的安全问题xss,csrf，界面操作劫持等。都是可以深究的课题。 实在不喜欢，我还可以跳出html5的架构，我去玩玩flex架构的东西？ 广泛去接触是为了让我们有更多的知识积累，去接受一些我们即将遇见的问题，去提出一些可能的解决方案。花费的时间可能不多，但是会让你受益匪浅。甚至了解的领域可以不仅仅是前端的，后端的，操作系统，服务器，什么都可以去了解，说不定哪一天你就用上了呢？ 而知识的广度中，我觉得构建个人的知识结构图是很重要的(github上有开源项目就是类似这样的，fks，前段技能总汇)走了结构图，你就知道自己有什么东西是知道的，这样你会有成就感。有了结构图，你也可以经常性的回想一些已经了解过的知识。反正就是好处多多咯~ 还有一个就是如何收集一些新的信息和知识:github开源项目，工作接触，系统学习某一块知识时接触，一些论坛和团队(阿里的d2，腾讯的alloyteam，)，一些网站的问答和博客文章(csdn，cnblog，知乎) 而另一方面，学习的深度也是不可或缺的，这是为了使我们能够把表层的，停留在认知上的知识深化。这一步通过的是实践咯。开源项目，实习工作，学校项目，虚拟项目都是可以的。例如你想了解websocket的协议，要不就去为一个不支持websocket的浏览器写一个兼容库？这样你就深刻了解了ws的技术实现，也感受到了浏览器兼容的做法，连带着为了理解ws，http协议，socket你要不要也去了解一下？然后顺便来一下计网的osi七层模型，顺便买本http权威指南看一看吧……(๑• . •๑) 还有你对js有兴趣吗？毕竟jquery什么的可能会过时，但是基础的js你可是可以一直用的呢，(也不排除出来一个类似dart的，就取代js了，但是……我不信  )还有ecma2015诶，然后你对js的翻译过程有兴趣吗，我记得有开源项目js.js，可以去了解翻译过程。 或者angularjs,jquery的库的源代码也是可以读读。双向绑定的实现，脏检查，作用域…… 回答的很多，我想说其实前端东西涉猎可以很多，也可以不多，因为界限很模糊。但如果自己喜欢，也有时间，其实可以把这些东西都了解一下，说不定哪一天突然心血来潮，就下定决心在某一个领域钻研下去了呢。安全性，图形学，数据结构，数据库，计算机网络~框架和语言特性的深入摸索~全栈模式的探索~webapp和hybrid app的开发~html5的新接口……好多好多。 我是个学生啦   充其量是个实习了半年，好不容易拿到offer了的应届生。自己也没有完全确定一条自己的前端之路，因为我每走一步我都会发现好多好多。我是觉得自己并不需要这么快就定下来，我喜欢前端，我也喜欢实现自己的想法，所以我想去了解更多可以实现我想法的工具，了解一些新的技术，钻研一些旧的东西。 一切迷惘，我觉得都是因为了解的不够多，时间还没到。这时候，需要积累。我相信这样积累下去，直到某一天，我会突然发现自己应该前进的路。