今天逛论坛时看到有朋友问,是否有专门教Javascript的学校,这里想一想把本身的一点建议和本身3年来的前端Javascript开发的经验跟你们分享下,也给出几本我的认为不错的书来作为你们学习的参考资料。固然只是我的的经验,有什么不对的也请高手见谅和指正。关于到培训学校学习的忠告:别 说如今没有这样的学校,就是有专门的学校也不要去,由于不会有好的老师的。不要浪费你本身(极可能是你父母)的钱和时间。趁早死了这个念头。关于培训学校 的这个我想我要比通常的朋友更有发言权,由于我本人干英语培训将近2年,我很清楚培训市场的状况,你很难碰到一个好的老师。英语可能还好些, 毕竟英语说得好的老师还比较多,长期跟老外泡在一块儿,确实对口语能力的提升很显著,可是代价是很昂贵的。而你如今要学的是Javascript,呵呵,好 的前端工程师可很少!个人我的观点,有资格和有能力的教好Javascript的老师,必定要是个好的有着丰富的前端开发经验的前端工程师。大学的老师, 教授可能他们中不多有 人符合这个要求,而好的前端工程师,都忙着本身的工做去了。剩下的有时间去教Javascript的人,呵呵,就很少说了。这里也发点牢骚,咱们在大学校 园里学习的东西,你学的时候根本不知道这个东西有什么意义,你本身不去钻研,老师他是不会告诉你的。在培训学校,呵呵,也差很少。若是不是一个好的前端工 程师,他很难告诉你为何咱们如今提倡使用闭包把之前的全局变量放到闭包中做为闭包函数的局部变量?他也很难对 Javascript变量做用域的相关知识跟你讲透彻。在Javascript里可以造成scope(做用域)的东西有哪些?为何说全局变量是魔鬼?闭 包又是怎么产生的做用域?等等这样很基础,但很重要的知识的意义,他不清楚,将给你听,让你明白这些知识和他们的意义就更困难。呵呵,因此个人建议,想学 Javascript,仍是多跟你的身边认识的朋友,特别是那些从事前端开发的工程师多交流和学习。本身要多钻研。呵呵,不认识 前端工程师,就到酷站资源2010来多看看(www.zoolc.com,记住!这可不是广告哦!),把你不清楚的问题提出来,可是我这里要说一个好的学 习习惯。何时提问?何时提问?这个也是问题吗?对的,不少人,也是不少在校学生的一个很差的学习习惯,一有问题就问别人请求帮助。我我的这个是个 坏习惯。难道问问题也是 个坏习惯?对的,我我的以为,你问问题寻求别人的帮助,应该是在你本身已经动脑经思考,经过各类途径查阅相关资料都没法获取问题的最终解决办法的状况下再 来提问?这样你已经对你要解决的问题作过研究,有必定了解,你能够更详细的告诉别人你想要的答案大概是什么样的,或者说你能够把你想描述的问题讲的更清 楚。这样别人来解决你的问题的时候,也能够更快速的做出解答。我想你学起来,对这个问题的理解也会更深入些。好了,好像扯得有些远了。来谈谈怎么学习 Javascript吧!先给你们泼点冷水,我想告诉你的是:Javascript要比其余的开发语言都难学好!为何?由于就目前来讲,你们(国内甚至 是国外的程序员)广泛对Javascript这门编程语言(请容许我这么说)了解和研究得不够深,至少不像你们对 JAVA,C#等这样的语言了解的和研究得那么透。因此这个就引发了另外一个问题,如今市面上Javascript的书籍对Javascript这门语言的 讲解都不够深刻和全面。固然是相对JAVA,C#这样的语言来讲。因此这就致使了,学Javascript很困难。固然学任何一门编程语言,特别是学好, 学精都不容易。不过也有好的消息,就是如今你们对Javascript的重视和更深刻的研究,如今Javascript书籍里讲解的内容也要比4年前质量 高出太多了,可 以这么说,你如今开始Javascript正是时候哦!呵呵!因此这里也给你们一个经验,买Javascript的书,最好不要买4年前,也就是2005 年前出版的。最好买近两年出版的书。说到这里,我想说说一个现象,随这你们近几年对Javascript的重视和研究,主要是不少传统的程序员开始学习和 研究Javascript,他们把面 向对象编程的思想带入到Javascript的前端开发,极大的促进了Javascript的推广和发展。这点要十分感谢他们。也许是处于这些程序员的传 统的开发的思想的影响,如今咱们的Javascript库如雨后春笋般的出现。呵呵!JAVA有JAVA的库和各类各样的框架,C#也是模仿JAVA,也 是有着丰富的开发库。这些库为咱们的开发带来了极大的方便,这是个很不错的事 情。因此这些传统的程序员在从事前端的开发的时候,也为本身编写了库。咱们很熟悉的就有prototype,jQuery,YUI,Ext等等,我就不一 一列举了。固然这些库的出现也为咱们的前端开发带来了极大的方便,可是事情都有两面性的,在这些库的出现后,在给咱们的开发带来便利的同时,也让咱们的很 多朋友产生对库的依赖,可能严重点的,没有库了,给他个记事本(咱们姑且不提开发效率)可能就不知道如何下手了。若是仔细想一想,这个也是很可怕的事情。为 什么?由于你们都再也不去花心思去研究Javascript底层的知识,只是一味的在这些库的帮助下,构建那些炫目 的特效(还好,这些库都是免费的)。或者干脆直接用别人写好的插件。都不知道万一这些库要是开始收费(只是瞎想一想),怎么办?还有就是这些库好比有别有用 心的人,在中加点什么恶意的东西,我想很难有人会从头到位把一个库研究个透。你怎么办?最严重的就是编程能力的降低,但给人的感受是入门的门槛更底了。不 要被“The Write Less, Do More”这样的广告迷惑了,由于在你加载这个库的同时,别忘了“Size of your web page is much bigger, or say the size is HUGE". 所 以当你们使用这些库的时候,我但愿你们不只仅是使用者,也要用心去阅读这些库的代码,从中学习。收获会很大的,并且说不定,你会发现可个改善地方,甚至 是有错误的地方。这个是颇有可能的。还有就是我刚才提到的,这些库的开发者不少都是从传统的程序员转型过来,或者说是由于开发须要而开始学习 Javascript,极可能会有错误。或者说受之前学习语言的影响,写的程序更像是在写其余的语言,而不是写Javascript,执行效率并不高。所 以不要迷信库。问几个问题,你清楚jQuery是怎么实现CSS(3)和XML的XPath选择器的吗?jQuery又是怎么实现eventHandle 的?怎么处理其中的浏览器兼容性问题的?若是你还不明白我提的问题,那么请仔细看看jQuery是怎么实现的吧!若是你还读不懂它,仍是多看看我要给你介 绍的Javascript的书吧,了解 Javascript的底层和基础的知识。让本身能读懂jQuery,让本身不要jQuery也能实现Dom的拖动,让本身也能写出本身的库。固然这话我 说得太大了。不过只要你是真正研究Javascript和相关的知识,你也能够作到的。绕了这么大一圈,如今让咱们正式开始吧,来介绍几本学习 Javascript的书吧。(如下介绍的书都是本人本身购买阅读过的,对了我不崇洋媚外,一条真理:不要买中国人写的Javascript书)入门的书:《Javascript 高级编程技术》:不要被“高级”这两个字吓到,这个书实际上是本很不错的入门的书,由于这本书也很详细的介绍了javascript 的所有内置对象和语法,而且介绍了面向对象的思想,DOM、BOM的知识,正则表达式,高级的DOM处理。Ajax的知识,仍是很全面的。并且我的认为这 本书对基础知识的介绍并不比其余的同类书逊色。比起《Javascript权威指南》(我当时买点的是第4版),我以为更详细些和更清楚些。在《指南》的 第4版中,我以为那本书中讲的东西有点混乱。感受一个知识点尚未讲清楚,就给你一个什么类,看得不明不白的。由于没有看《指南》的第五版,因此这里不推 荐给你们。并且《高级编程》这本书要比《指南》便宜很多。《高级编程》中也提出了采用功能(future)探测来取代浏览器版本探测来处理脚本兼容性的处 理。我的以为《指南》有的,这本书也都说了。还有我前面提到的,这本书的做者是YAHOO的资深的前端工程师,你能够在他的网站下载到相关的代码。 《Javascript DOM 编程艺术》:我我的的感受是学习DOM编程的经典入门书籍,做者是webstandards.org的创始人之一,书中以浅显易懂的语言,教你一步一步的 来说解DOM编程,一点点地提高网站的用户体验。书中一直强调不唐突的脚本开发,网站要向后兼容,强调网站的可访问性。这个也是你们在作前端开发时应当努 力追求的,也是必需要有的开发指导思想。惋惜不少的后台开发的程序员,根本没有这个概念,因此你在开发的时候,必定要给你的程序员多洗脑。呵呵!《CSS 权威指南》第三版:作前端开发,你必需要了解CSS,书中对CSS2的介绍很详细了。仔细的看吧,我每次看的时候,有会有新的收获。
《网站重构》、《CSS网站布局实录》(惟一一本推荐的国人写的书):看完了,你会知道为何学WEB标准?你会知道前端工程师的工做很重要。提升阶段:《Javascript DOM 高级编程》:这本书里不光详细的介绍的DOM编程的技巧,也讲了使用面向对象编程的方法,使用命名空间来管理书中所写的开发库,在不断的学习中,你的我的 DOM Javascript库也不断的充实。呵呵,就像我前面说的,你能够写出本身的库了。固然书中的代码比较松散,还不能运用到实际的企业级的开发中。可是书 中对闭包的介绍和面向对象的开发思想,会使你对JS的认识又提升了一个层次,虽然对面向对象开发的讲解还不够深。《XML开发指南》:咱们知道ajax, 其中X就是指的XML,因此要了解XML的相关知识,你这本书,是必定要看的。看了以后你会发现XML要了解的东 西实在太多了,可能跟你了解的东西相比,你才知道点皮毛。对了,这里说下,我并不推荐你使用XML来做为你的Ajax的程序的数据的载体。为何?由于很 不经济。你先把数据转换成XML文档,而后再经过Javascript把XML文档中的数据提出来,把文档转成数据。而浏览器对XPath处理的兼容性的 处理,你会很发狂的。如今咱们有一个代替他的东西JSON。可是因为XML已是不少标准的默认数据通信载体,好比RSS等,因此你仍是得掌握。我的以为 学Javascript看这些书基本差很少了。因给在我买过其余的书(
《精通Javascript》:名字起的太玄了,书不怎么样,什么都讲了点,就是不讲他怎么用jQuery来实现那些高级功能的,不要买。
《PPK 谈 Javascript》感受跟《精通》差很少,什么都讲点,不过多点。还有起码不像《精通》起那么臭屁的名字,做者的网站确实很推荐你们去看看,http://www.quirksmode.org/。
《CSS高级技巧》介绍了不少HACK技巧,也颇有用,是本好书,就是翻译得比较烂。
《Ajax in Action》、《Ajax高级编程》介绍AJAX的内容,主要看看XMLHTTPRequest的介绍把,里面的例子,不少在《高级编程》中都看过了。
《JavaScript王者归来》我上当了,本身也SB了一回。
《JavaScript:The Good Parts(影印版)》好书,你会知道JAVASCIRPT这闷语言什么东西是好的,什么东西很差?)中,讲的内容都是大同小异。看完这些书,你了解了 Javascript的相关知识,了解了CSS(你会知道CSS都有哪些选择器),你了解了XML的知 识。呵呵,基础的开发你应该均可以本身解决了。并且你对Javascript的面向对象的开发也有了了解,有着向后兼容的开发思想。显然你看完这些书,你 对WEB标准也会有一个更深层次的理解。固然,想成为一个优秀的前端工程师,你要学习的知识并不仅有这些,你也要知道SEO的优化知识,由于你写的页面要 对搜索引擎也要友好,要结构合理。你还要 了解SQL和数据库,最好还要了解C#等后台编程的语言。两个主要缘由,要全面的提升本身,并且要充分的理解面向对象的编程,这些传统语言的思想更成熟, 但要知道Javascript跟这些传统的编程语言的继承机制是不同的。因此不要用Javascript来写C#。还有一个重要的缘由,你要跟后台的程 序员合做,要他们更坚定的执行你的不唐突的开发思想,你必需要常常给他们洗脑。可是你说的话要让他们听得进去,他说的东西你要了解,而你最好也能给他一些 有好的建议,他们才会听你的。为了咱们WEB标准的开展,辛苦点就辛苦点吧!这里要补充的就是,前端开发你要本身努力学习还有JSON和正则表达式,目前 尚未很详细的介绍正则的书,而后就是AJAX程序中取代XML的JSON的数据载体,掌握JSON要比XML容易得多。最后就是你们也是我提到过不少次 的闭包的使用,面向对象的开发的思想。呵呵,最后就是多练习,把你学到知识运用到实际的开发中,常跟朋友多交流,我也但愿能跟你们多交流心得。你们共同进 步!javascript