遥想当年还年少的时候,我的兴趣爱好就跨越了各种不相关的领域。我喜欢数学,如同我深爱历史那样。我的目标是成为像文艺复兴时期多才多艺的伟人那样——在多个领域都有出色表现。这是一个艰巨的任务——突然之间我发现自己正面临着“样样皆通,样样稀松”的危险。

  我开始考虑钻研某些领域,这样至少我还可以成为一个“精通某些领域”的人。那么我该怎么做,才能既专注于某个领域,同时又能学到软件开发所需的大量知识?

  这篇文章主要概述在我5年工作经验的基础上,我成为优秀JavaScript开发人员所使用的技术和资源。

  当前大多数Web开发人员面临着这样一个共同的问题:他们必须在多个不同的领域领先于他人——从数据库到后端架构,到前端用户界面,再到使用良好的CSS知识修正用户界面。

  阅读书籍

  首先,也是最重要的一点是,你必须付出努力才能脱颖而出。虽然你也可以在无心中获得点点滴滴的积累,例如,不时地阅读一些博客文章,而且老实说,因为这种方法最初的时间和精力的投入要求低得多,所以更简单。这样的学习模式显然比你专门和刻意的学习过程要花费更多的时间。关于这种窘境的解决方式也很简单:阅读书籍。

  书籍是人类进步的阶梯。文字是我们让知识以浓缩的形式代代相传的工具。成为Web技术专家有一个要解决的问题是,你必须学会何时远离网络本身。网络本身就存在着让人混乱和分心的内容,所以我要给出的第一个建议是,要阅读相关主题的书籍。

  对于JavaScript中,可以先从以下书籍开始:《JavaScript the Good Parts》就像是JavaScript中的《圣经》。虽然这本书已经有点古老了,但依然是最好的起始点。《JavaScript: the Definitive Guide》也是我们必需的,虽然你可能会将它当作是参考书。 jQuery创始人John Resig的《Secrets of the JavaScript Ninja》也值得关注。此外,你还可以阅读电子书,非常方便,很多在线电子书还是免费的。另外,JavaScript Guide虽然不是书,但深受Mozilla开发人员的信赖和青睐。

  脚本库的学习,使用和阅读

  接下来最重要的一个步骤是去了解脚本库。书籍教你如何读懂语言,库教你如何应用它。关于脚本库你需要做这两件重要的事情:使用它们,阅读它们的源代码。

  对于库的使用,需要了解以下几个重点的库:jQuery,Backbone,underscore以及React、 Angular和Ember之一。这并不是说你必须要使用这些库,但任何像样的JavaScript开发人员至少应该有一定的使用这些库的经验(无论好坏)。

  提升JavaScript技能的第二件重要的事情是阅读这些库的源代码。我强烈建议阅读Backbone和underscore的源代码,因为它们写得非常优美。阅读和理解underscore可以提高函数式编程的技巧。另一个值得阅读源代码,也是其他开发人员推荐给我的库是mootols(我个人并不使用mootools,也没有阅读过它的源代码。)

  剩下的库,如React和Ember等,理解起来可能很难,但非常值得。此外还应该浏览一下其他库的源代码,看看它们是如何构建代码库的,并尝试探索一些新的模式。其他著名的可使用和阅读其源代码的库包括D3、highcharts和moment.js。

  练习与自问问题

  要成为一个好的JavaScript开发人员的关键步骤是练习,许许多多的练习。理想的情况是,练习的重点不在于DOM,而在于语言,所以一定要确保有一个可以运行node.js的测试工具。做各种琐碎又大量的node.js练习。研究编码招式,经历使用JavaScript的不同方式:闭包,原型,扩展数组(map、filter)等。在做练习的同时,要开始在脑中形成JavaScript的基本思想。

  我的一个朋友,Armagan,一位优秀的JavaScript程序员,也是一个使用《Pro JavaScript Design Patterns》用于讲座的老师,所以这本书值得一阅。

  在学习的同时,要试着回答一些问题,例如:原型如何继承工作?闭包的定义?关键字含义如何改变?如何使用apply/bind/map/filter/call?收集一系列JavaScript开发人员需要面临的共同源要点,并试着用自己的话来解释。用书面或口头的形式向另一个人解释这些概念,有利于极大地提高你的技能。在练习的同时,尽量去思考“如果是那种情况,又该如何?”的情景。例如,“如果我使用两次bind,那个这个”this“会是什么意思?jQuery如何确保this关键字指向jQuery对象,而不是全局对象?这个库如何完成一定的功能?”等等,这些都是你应该时常问问自己的常见问题。

  学习标准

  接下来需要了解的是EcmaScript标准。研读最新的EcmaScript标准副本。同时,还可以试着了解JavaScript中即将推出的功能,如ES6和ES7。近期已经出现了例如promises、modules、generators、comprehensions等新功能,好好阅读标准,也可以阅读专业书籍,如Nicholas Zakas的《Understanding EcmaScript 6》或Axel Rauschmayer博士的《Exploring JS》,或许会有所帮助。从主要源学习标准以及探索新增的语言才是通往专业化道路的途径和方法。

  利用网络资源

  我前面提到过利用网络来了解网络是危险的,但是现在我要提议的是我们还可以利用网络来获取最好的资源。《Hacker News》就是一个很好的来源,但是持续的跟踪通常会耗费更多的时间,因为真正有用的信息比例是很低的。相反,还不如直接瞄准每周摘要如《JavaScript weekly》呢。随着时间的推移,你自然会领悟到哪些库或技术越来越有吸引力。可以在Twitter上找找有影响力的JavaScript开发人员。 其他的网络资源包括博客如Toptal Blogs、Rebecca Murphey’s blog和Nicholas Zakas’ blog等。

  另一个非常重要的网络资源是视频会议和教育视频。说到会议,JSConf系列的品质就很高。至于教育视频,我强烈建议Pluralsight,因为他们有着编写高质量课程经验的开发军团。

  简而言之

  读书,书中自有信息之精华。

  了解基本的库,如jQuery、underscore和Backbone,阅读源代码。

  练习,试着用自己的话去解释常见的JavaScript概念,例如继承。就上述主题做演讲和讲座。

  通读新版本的标准,使用最新增加的语言。

  利用网络资源,查看摘要和博客,以及视频会议和教育视频。

  结论

  不断重复上述步骤,并参与到大量的项目中去有助于你快速提高你的JavaScript技能。但始终要牢记,只有付出才会有回报,才会有望成为专业人士。我自认为自己是一个很好的JavaScript程序员,但是要想成为专业人士我依然还有很长的路要走,还需要不断地学习和掌握知识和技术。

  译文链接:http://www.codeceo.com/article/how-to-become-a-great-javascript-developer.html

  英文原文:How to Become a Great JavaScript Developer

  翻译作者:码农网 – 王国峰

好的JavaScript开发人员关键看哪里相关推荐

  1. 13个有用的javascript开发人员工具,用于编写高质量的代码

    Today I'm going to show you 13 well-know and popular tools to write better and cleaner JavaScript co ...

  2. 面向 JavaScript 开发人员的 5 大物联网库

    面向 JavaScript 开发人员的 5 大物联网库 1. Cylon.js 2. IoT.js 3. Johnny-Five 4. NodeRed 5. Zetta 总结 最近元宇宙的概念火遍互联 ...

  3. 面向JavaScript开发人员的Adobe AIR与Dreamweaver

    入门教程,非常详细,CS4里面应该可以省略前面几步直接开发了. Adobe AIR对于HTML/JavaScript应用程序与桌面的集成有着出色的支持,但除了所有附加功能之外,还需要一些其他工具和技术 ...

  4. 如果您是JavaScript开发人员,为什么要进行增强现实-以及如何开始

    by Evaristo Caraballo 通过Evaristo Caraballo 如果您是JavaScript开发人员,为什么要进行增强现实-以及如何开始 (Why you should do A ...

  5. JavaScript开发人员,必备的VS Code插件

    JavaScript开发人员,必备的VS Code插件 VS Code插件的种类 1. 代码片段插件 2. 语法高亮插件 3. 代码检测插件 4. Node插件 5. 代码格式化插件 6. 浏览器插件 ...

  6. 【热门收藏】iOS开发人员必看的精品资料(100个)——下载目录

    [热门收藏]iOS开发人员必看的精品资料(100个)--下载目录 iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大 ...

  7. dart参数传方法_为 JavaScript 开发人员准备的 Dart 参考教程

    Dart 是 Flutter 主要的开发语言,这一篇文章主要为 JavaScript 开发人员准备的 Dart 教程,我会用很详细的对比来参考,力争 JavaScript 开发人员可以快速的熟练使用 ...

  8. Android开发人员资料大全(开发人员必看)

    在移动开发如火如荼的今天,Android开发市场广阔,是目前市场占有率最高的智能手机操作系统.这个文档里整理大量优质的Android开发资料,网上的资料众多,参差不齐,然而这批资料确实经过精心整理的, ...

  9. javascript 开发_25个新JavaScript开发人员的免费资源

    javascript 开发 by freeCodeCamp 通过freeCodeCamp 25个新JavaScript开发人员的免费资源 (25 Free Resources for New Java ...

最新文章

  1. Genymotion配置及使用教程(最新最完整版附各部分下载地址)最快模拟器
  2. git reset --hard、git reset --sort及git revert区别
  3. POJ 3254 Corn Fields(状态压缩)
  4. python 会计专用格式_python-2.7 – 如何使用xlsxwriter将格式应用为“文本”和“会计”...
  5. 2020云栖大会奖品大盘点(持续更新中)
  6. matlab怎么画单位圆的切线,matlab绘图曲线标注怎么输出角度单位,就是那个小圆圈?...
  7. Spring中的Ibatis之SqlMapClientDaoSupport
  8. .propertie文件注释
  9. error: reference to non-static member function must be called sort(nums.begin(),nums.end(),cmp1)
  10. 除了固定工资,如何利用自己的技术变现?
  11. 基于 VS 2010 阐述C# 4个特性
  12. XGBoost原理及在Python中使用XGBoost
  13. SQL Server Agent 服务启动后又停止
  14. oracle中的rownum
  15. sublime text 插件记录
  16. 从入门到精通,给Java学习者的几点建议
  17. Xposed 插件开发(三)—— 我的 hooker 是哪里导致出错了?
  18. 数学分析(2): 数列极限
  19. 360 路由器设置 虚拟服务器,360安全路由器的设置方法
  20. 2014华为南研所实习生求职

热门文章

  1. 智能家居:让家庭生活更便捷的智能科技
  2. 计算机数据库英语词汇,计算机英语词汇:数据库
  3. ffmpeg源码优化之推流发送篇
  4. explode() 函数
  5. java 重定向 redirect_详解Java从后台重定向(redirect)到另一个项目的方法
  6. 关于春雨线下诊所的创意策划
  7. 论程序员的时代焦虑与焦虑的缓解[转]
  8. 炸掉研发“金字塔”,让鸿蒙成为世界的Harmony OS
  9. 新版谷歌浏览器不支持TABLE表格标记
  10. RNA-Seq名词解释