如何成为一个javascript高手【转载】

原文网址: http://www.cnblogs.com/keva/p/how-to-become-a-javascript-badass.html

英文网址:http://www.clientcide.com/deep-thoughts/how-to-become-a-javascript-badass/

上周我写了一篇相当漫长的文章,感叹要找到一个有天分的前端开发人员是相当具有挑战性的。这篇文章引起了一些评论和电子邮件形式的讨论,我不只是想要在这里抱怨这种客观事实而是想要对该现状发表一下个人建议;以下是我对于如何成为一个JavaScript高手的一些建议。

My Story, In Brief



关于我如何成为一个javascirpt开发的经历并不有趣,但是如果你一定要问我,以下是一些关键亮点:

1、我在高中和大学学习一些音乐,摄影和绘画艺术,虽然这不是我的专业(这是爵士吉他)。

2、我学习html要归宿到马赛克仍然还在使用的时期,每次浏览器的更新到能学到一些新的web技能。

3、我参加了一个活动(当时HTML很热门)在1997年,我学到了一点编程(JAVA)。我不是很在行。我用java建了一个非常简单的CMS。

4、1999年,我开发了一个关于音乐的站点(http://www.epitonic.com),这是我设计和建造的。一个非常小的开发团队建立了一个更强大的CMS。还有很多的JavaScript。

5、2003年,我加入CNET担任产品经理。我没有写很多代码,但每当我们需要一些JavaScript,我卷起衣袖投入到javascript,无意中成了“JavaScript开发者”,并把我的研究分享到博客(clientside.cnet.com)。

6、起初我的工作重点是prototype.js、Moo.fx。

7、Mootools深深的吸引了我,我写了两篇对于Mooltools的研究文章。

8、一边做产品经理,一边做javascript开发。

9、2007年底离开CNET于并启动了Iminta.com。2008年年底经融危机,我开始考虑找工作,发现了Cloudera(或者,他们找到我)。

我的职业生涯是一个奇怪的过山车轨道,对我来说javascript和web开发始终是一个打到目的的手段。我喜欢创建有意思的产品。我不是很关心是否自己去写一些javascript或服务器端代码。

Enough About Me, Let’s Talk About Becoming a JavaScript Ninja



以上关于我的经历只是想要告诉你们我并不能正确的告诉你们如何能成为一个前端开发工程师,每个人都有自己的一段经历,不像我的。我在CNET花了一年的时间去系统学习javascript和javascript框架,其实你可以用其他方法花更少的时间来学习到这个,以下就是我的一些个人建议:

1、Study design and designers. 并不要求你要具备一个设计师的技能,只是建议你用设计师的角度去观察,当你浏览网页的时候,尝试去分辨哪些1体验好,哪些页面好看。我经常问面试者他们欣赏哪些站点以及为什么。

2、Study JavaScript. 我的意思是真正的专研。观看所有YUI theater上Crockford的视频。你也可以观看这里的其他视频,我并不是100%的赞同所有他们说的,但是对于学习来说是很有好处的。阅读Crockford的《JavaScript: The Good Parts》。再次重申我并不是完全同意所有这本书里面讲的,但是可以从这本书中学习到认真扎实的语言基础。

3、Study JavaScript Frameworks. 注意并不是一个框架,而是多个。我为Mooltools写了原始的文档,这个是我认为在我的学习经历中最为重要的一件事。为了写成文档,我阅读了Mooltools源码并尝试去理解为什么它做了什么以及为什么要那样做。从中我学了很多,但是学习都是循序渐进,从没有任何一件事情让我一下进一大步的。当我创建jqueryvsmootools.com的时候我又做了这个事情,这次的对象是jQuery。为了弄明白它,我阅读了它所有的源代码。同样还有Dojo。从这些经历中我学习到了这些框架作者的一些编码风格。不要只是会用jQuery或者Mootools。你要尝试去了解他们,了解他们的差异、特点以及有意思的地方。不要停止这些知道你真正了解了这些框架都在做了些什么。不要犹豫去与框架作者交流你的一些看法,他们会很乐意的。

4、Get involved with a framework. 对我来说第二重要的事情就是参与了Mooltools项目。参与一个开源项目对你的简历来说可谓会增色不少。只要你肯花时间,现有的一些框架还存在着大量的bug,尝试去解决一些!去写一些测试用例!写一个关于你如何使用这些框架的博客。尝试去做这些事情,我保证你将会得到很多有趣的offer。

5、Release some of your own code. 这点很重要!如果你在github上没有代码,你将会失去很多机会。你可以让你的潜在雇主了解到你的代码能力。

6、Blog about it. 尝试记下你在博客中所学到,3年时间可以积累一笔巨大的知识财富。你在博客中提出了一个问题,可能就会吸引一大批对于该问题有兴趣的开发者。无意之中你就可能成为该领域的专家。如果你持续的发表一些你在学习什么,你在做什么,你会发现有一天会有人自动找上你。这是一个耗时的工作,但是这是一件很有意义的工作。

7、Build something interesting. 为了创建一个php的图片库,我花了一两个月的时间去学习php和smarty,因为项目原因,我自己创建了很多借口去学习一些新技术。强迫自己去做一些项目,从来没有比在这个过程中学习新技能来得更快的了。不要过于依赖你现在掌握的技能,永远要去寻找用新技术解决问题的机会。

8、Join a startup. 我知道这是棘手的。(貌似不适合国情,掠过)

9、Take the time to learn why solutions work. 利用google去寻找问题的解决办法的同时尝试去理解问题的真正原因或者说是深层次的原因是什么。

10、Be curious, and fight off laziness. 寻找利用新技术解决旧有问题的机会,认识这些机会并把握住这些机会,没有什么比拿着一份工资并且learn to work来得划算的了。与你的同事交流技术问题,他有你所不知道的技术,你有他不知道的技术,互相学习。也不要只是停留在javascript的小领域之中。

我还可以讲很多方面,但是前提必须是你想要成为一个前端开发者并且乐于其中。

时间: 2024-08-01 22:45:42

如何成为一个javascript高手【转载】的相关文章

一个JavaScript工程师必须掌握的几个方面(转)

作为一个JavaScript工程师,在写一个工具库时,一般来说,需要提供如下的模块. 核心模块:core.js $namespace 注册命名空间: $namespace('human.software.dom'); // window.human.software.dom $package 多模块共存,引入 //对于一个模块文件 Event.js $pack(function(TT){ //这里传入的TT是顶级命名空间 //引入其他模块 var $D = TT.type, $S = TT.su

每天一个JavaScript实例-html5拖拽

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-html5拖拽</title> <style> #drop{ width:300px; height:200px; background-

一个硬件高手的设计经验分享

一个硬件高手的设计经验分享 一:成本节约 现象一:这些拉高/拉低的电阻用多大的阻值关系不大,就选个整数5K吧 点评:市场上不存在5K的阻值,最接近的是 4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍.20%精度的电阻阻值只有1.1.5.2.2. 3.3.4.7.6.8几个类别(含10的整数倍):类似地,20%精度的电容也只有以上几种值,如果选了其它的值就必须使用更高的精度,成本就翻了几倍,却不能带来任何好处. 现象二:面板上的指示灯选什么颜色呢

每天一个JavaScript实例-使用带有定时器的函数闭包

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-使用带有定时器的函数闭包</title> <style> #redbox{ position:absolute; left:100px;

famo.us 一个JavaScript游戏引擎初探

好久之前就看到了famo.us的优良特性,尤其是它避开浏览器弊病的跳跃思维,再加上自己使用JQM来开发Web App时的页面切换的白屏bug,又比对了sencha touch,最后还是决定将famo.us作为开发框架,它是基于浏览器的,目标就是使页面呈现性能最大化,而我不会拿它来做游戏,只是做简单的WebApp,要的就是这个界面显示性能. 但悲剧的是国内没有关于famo.us的教程,近些日子Google被天朝打压的挺惨,幸运的是famo.us官网还是可以访问的,所以以下的学习结果都来自官网htt

每天一个JavaScript实例-从一个div元素删除一个段落

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-从一个div元素删除一个段落</title> <style> p{ padding:20px; margin:10px 0; width:

每天一个JavaScript实例-判断图片是否加载完成

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>每天一个JavaScript实例-判断图片是否加载完成</title> <script> window.onload= function(){ //clearTimeout(clock); alert("加载完成"); } v

我是一个机箱 《转载》

我是一台的电脑的机箱,嗯,其实我自己也不知道该叫自己什么,反正这台电脑里面的大大小小的零件,别人一般都看不见,如果需要看看什么东西的时候,按照我们这的规定,必须先通过我才能转达. 当然,我并不是我们电脑权利机关——他们只是通过我找人而已,你们可以叫我前台,外壳这个名字呢很土,但是也算是对的,呵呵.其实我几乎算是这台电 脑的各种零件里面最不值钱的一部分了.我和cpu的身家几乎相差20-100倍,有的时候我也是很奇怪的,同样是一块铁,差别咂就这么大呢? 不过当外面的人来看我们这台电脑的时候,我就最喜

Functions类,一个Javascript的函数加法类,将两个函数加起来,顺序执行

以下是类的代码: 1 var Functions = { 2 oFunctions: null, 3 add: function (oFunc, oNewFunc) { 4 var oNew = function () { 5 oFunc(); 6 oNewFunc(); 7 }; 8 return oNew; 9 } 10 }; 以下是测试代码: 1 function one() { 2 alert(1); 3 } 4 5 function two() { 6 alert(2); 7 } 8