如何成为一个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的小领域之中。
我还可以讲很多方面,但是前提必须是你想要成为一个前端开发者并且乐于其中。
如何成为一个javascript高手【转载】的更多相关文章
- 怎样才能快速成为JavaScript高手
如何快速成为JavaScript高手?之前我拿这个问题问过我的同事,也问过国内的一些JavaScript高手. 最近,我一直在拿这个问题问自己.之所以会有这个问题,我基于两个前提:第一.我自认为自己不 ...
- Croppie -一个Javascript图像Croppie
下载 Croppie -一个Javascript图像CroppieCroppie -一个Javascript图像Croppie 安装 凉棚:凉棚安装作物 Npm: Npm安装作物 下载: croppi ...
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
最近研发BDC 云开发部署平台的数据路由及服务管理器意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提 ...
- 每天一个JavaScript实例-从一个div元素删除一个段落
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-推断图片是否载入完毕
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 每天一个JavaScript实例-动态省份选择城市
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-递归实现反转数组字符串
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-html5拖拽
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-canvas绘图
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- 接口测试——httpclient介绍与请求方式详解
httpClient工具介绍 HTTP协议可能是现在lntemet上使用得最多.最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源.虽然在JDK的java.net包中已经 ...
- 在分布式数据库中CAP原理CAP+BASE
本篇博文的内容均来源于网络,本人只是整理,仅供学习! 一.关系型数据库 关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (At ...
- Java数据结构和算法总结-数组、二分查找
前言:在平时开发中数组几乎是最基本也是最常用的数据类型,相比链表.二叉树等又简单很多,所以在学习数据和算法时用数组来作为一个起点再合适不过了.本篇博文的所有代码已上传 github ,对应工程的 ar ...
- 使用LayUI展示数据
LayUI是一款免费,开源,轻量级的前端cms框架,适用于企业后端,能快速上手开发,集成了常用的组件,还有完善的文档和社区. 点击查看 文档地址 下载框架 使用: 1.把这个5个文件项都拷贝到项目中 ...
- angular学习-01,使用第三方库(jquery...)
开发环境(window) 1.安装node https://nodejs.org/en/ 2.安装angular-cli npm install -g @angular/cli 3.使用ng new ...
- 【NOIP2016提高组day2】蚯蚓
那么我们开三个不上升队列, 第一个记录原来的蚯蚓, 第二个记录乘以p的蚯蚓 第三个记录乘以(1-p)的蚯蚓, 在记录每条就要入队列的时间,就可以求出增加的长度 每次比较三个队列的队首,取最大的值x的切 ...
- 关于Java里面File类创建txt文件重复???
private JButton getOpenButton() { if (openButton == null) { openButton = new JButton(); openButton.s ...
- java关于随机数和方法重构
1.生成随机数 源代码 package Zuote; public class SuiJiShu { public static void main( String args[] ) { java.u ...
- Redis缓存项目应用架构设计一
一些项目整理出的项目中引入缓存的架构设计方案,希望能帮助你更好地管理项目缓存,作者水平有限,如有不足还望指点. 一.基础结构介绍 项目中对外提供方法的是CacheProvider和MQProvider ...
- keydown - > keypress - > keyup
英文输入法: 事件触发顺序:keydown - > keypress - > keyup 中文输入法: firfox:输入触发keydown,回车确认输入触发keyup chr ...