推荐一些学习前端的网站和书籍

对于一些前端小白来说,如何找到一些有用的学习前端的知识,以及及可能的不走弯路,下面我来提供一些学习前端的书籍以及网站,下面的书籍以及网站,亲测可用,而且还是很不错的。

入门书

入门可以通过啃书,但书本上的东西很多都已经过时了,在啃书的同时,也要持续关注技术的新动态。这里推几本我觉着不错的书:

《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学习网站,交互很棒

前端乱炖:一个前端文章分享的社区,有很多优秀文章

正则表达式:一个正则表达式入门教程,非常值得一看

阮一峰的博客和张鑫旭的博客:快速了解某些知识的捷径,但是如果需要深挖,还需要其他的资源

各路大牛的博客:这个太多了,就不贴了,知乎上有很全的

各种规范的官方网站,不懂得时候读规范

前端博客,如汤姆大叔的博客也是很不错的。后来开始更多的关注各路大牛的博客和一些比较深的书籍,以及关注一些新的知识和框架,并且不断地练手提交代码到github,这样也学到了很多知识。在实习的过程中,切身参与到实际项目开发之中,能学到很多在学校学不到的理念和思维,这点也有很有帮助的。



收集癖和知识管理

前端学习有个特点,很多东西都很零碎,分散,需要你自己去整理、归纳和总结。在微博、知乎上follow了众多的大神,你不仅仅是为了听八卦,大神们的只言片语有时候留下的是无尽的余味,很有可能一个不经意提到的一个词就成为你下一个学习的目标。收集这些信息,善用google,提问,思考。就像游戏里的收集要素,前端学习也是充满搜集要素的一个“游戏”,只不过你需要一个知识管理工具来充当物品栏和仓库,我所知道的大牛们无一不是知识管理工具的重度使用者。以前用的oneNote,那时候还没绑定到云存储,现在基本上用evernote。书签一直打算用delicious,因为它是基于tag管理的,但一直没用起来。当然重点不在于这些工具,但是趁手的工具可以提高你的学习效率。最关键当然是随时保持旺盛的学习欲望,你的目标是了解有关前端的一切(当然不是所有都要掌握,因为毕竟你的精力有限,而且现实的说这也不太可能)。

跟对神

这个可控性貌似不大…跟对老大这个就不多说了,一定程度要看造化。不过话说回来,多跟身边的高手交流是王道,这个高手不一定要多高,但是一定要对技术有热情。研一的时候热情高涨,每天7点进实验室门,然后发现有个家伙居然比我还早到。后来发现这家伙上午就走了,下午又来了,而且导师对此习以为常,原来这家伙晚上不睡觉通宵写代码,上午才跑回去睡。后来经常和这位神讨论问题,每次感觉经验值蹭蹭蹭的往上涨。然后实验室还有一位神,被前面这位通宵神形容为“只能望其项背,一直在追赶,从来没赶上”,两位神的特点都是什么都了解一点,所以什么都能跟你讨论得起来,和神们也能扯得很high了。

总之就是这两位神把我拉进了坑,或者说从一个坑跳进另一坑,虽然两位神都不是搞前端的,不过技术之间总有相通之处。



前端的定位

前端的定位关乎到你需要吸收什么样的知识和技能,决定在技术世界里你对什么需要格外敏感。如果你认为前端仅仅停留在切页面,实现交互和视觉的要求,那你对前端的认识还停留在初级阶段。阿里终面的时候我问了考官这么个问题:前端技术日新月异,范围越扩越宽,标准越来越丰富,似乎任何一个触角都能伸出很远。怎么给前端一个合适的定位?考官给我分析了半天,然后总结成一句话,就是用户和网站的联结者,用户体验的创造者(原话不是这样,但大体是这个意思)。也就是说前端的终极目标其实就是创造用户体验,提升用户体验,以用户体验为中心。不管你是从交互设计上下手,还是从性能优化出发,或者改进工作流提升工作流效率,最终都是为了创造和提升用户体验,最终都要体现到用户体验这一点上来。我认为这个总结非常有道理(当然“用户体验”这个词太宽泛了,并且不仅仅是前端工程师的范畴,比如开发后台的时候对一个数据处理过程进行优化,提升了整体性能,这也是对用户体验的一个提升)。

现在的前端工程师做到一定阶段不可避免会接触到很多比切页面、实现视觉要求、实现交互等更深入的问题,比如前端自动化、图像编程、性能优化等等,再往后推一点就是PHP/JSP/ASP/nodeJs,过去后端模板一般属于后端的范畴,现在随着前端架构的演进,可能会让你去写后端模板的代码,需要用到后端语言(PHP/Java/C#等),这就是所谓大前端(然而这与前端的定位并不是相背离的,大前端处理的依然是与用户接触的部分,仍然是对用户体验的优化)。可能最常见或者被谈论最多的就是node,其实这几种技术选型都可以,bat三家据说百度用PHP比较多,阿里用node比较多。

玉伯在他的博客里提过所谓全端是横向的,全栈是纵向的。全端即所有的终端说白了都是前端,因为都关乎到用户体验,直接和用户接触。适应多终端的开发,要求你在web前端的基础上,可能还要去扩展android开发和ios开发的知识,好在由于hybrid开发方式的流行,对使用native语言开发的技能会要求的不那么深入。

全栈可以说是最适合初创公司的一种发展类型,广义上认为是从前端干到后端,从开发干到运维,这种就不说了,一般人应该不会想要去往这个方向发展,想要成为这种意义上的full-stack dev的,可能用不着来看我这篇文章了;而狭义上的全栈特指使用js语言从前端写到架设在nodeJs上的后端,前后端统一语言,统一编程模型,甚至公用同一套代码。更多了解全栈开发可以看看玉伯这篇说说全栈工程师。

以上是我对前端以及衍生出来的技术路线的一些浅薄理解,学习一个领域掌握它的整体上的走向和趋势还是挺重要的。另外如果想要对前端学习方向、职业成长路径有一个整体的认识,推荐看看拔赤总结的这篇前端开发十日谈。

最后

贡献几个对前端学习、面试有帮助的链接:

前端面试问题合集(Front-end-Developer-Interview-Questions)(https://github.com/darcyclarke/Front-end-Developer-Interview-Questions)

前端技能汇总(JacksonTian)(https://github.com/JacksonTian/fks)

另一张前端技能汇总图(http://www.f2er.info/)

前端那点事儿(书列)(http://book.douban.com/doulist/13701898/)

与grunt相比,学习gulp会比较简单

做SPA的话,推荐backbone.js和 backbone.marionette.js

不用折腾,花十块钱买一个月的 红杏。

把基础打扎实了再学这些都没问题。

html 没什么好说的,有空学学html5。

css 尽量看文档 ,因为很多中文资料都各执一辞,看多了反而会糊涂。

有个网站可以查找html/css标签、属性在各个浏览器中的支持情况,挺好用的。

javascript 就看 javascript高级程序设计 。不过这么厚的书看过就会忘。对javascript核心概念的讲解:对象/原型链/ 构造函数/执行上下文/作用域链/闭包/this,这里有篇不错的文章。

jquery 有很多 API,这个网站可以方便查到。有时间弄清楚jquery deferred 的用法。

多给 sublimetext 装插件,比如说检查代码错误的,新建目录文件的,整理代码的。

你可能感兴趣的:(随笔,前端学习,web前端工程师)