js大神成长指路
随着我的成长,我的兴趣也在不断地分化,他们似乎都是不相关的领域。我喜欢数学就像我喜欢历史一样。我的目标是成为一个多才多艺的人——一个学者——在许多领域都能成为杰出的人才。这是一项艰巨的任务。突然间,我面临着一种危险,那就是在所有方面都很容易接近和疏远我。
我开始考虑专注于某些领域,这样我至少可以掌握某些方面,即使我不能成为文艺复兴时期的通才。那么,我如何集中精力在一个领域,掌握软件开发所需的巨大知识系统呢?
这篇文章是基于我过去五年的经验,概述了我曾经成为一名优秀的JavaScript开发人员所使用的技术和资源。
如今,大多数Web开发人员都面临着同样的问题:他们必须擅长许多不同的领域,从数据库到后端架构,到前端用户界面,用CSS知识修改用户界面。
读一本书
为了达到熟练,专心和努力是首要条件。如果你不全心全意投入到你的工作中,你最终会得到一张半生不熟的照片。例如,通过阅读一些博客文章,因为初期投资较低,所以看起来比较简单。但从长远来看,这种学习模式将比关注学习本质的过程花费更多的时间。解决这个问题的方法很简单:阅读。
书籍让我们站在文明的肩膀上。精致的语言让我们的知识代代相传。至于如何成为一名网络技术专家,你必须在学习过程中与网络保持一定的距离。因为网络本身是一个混合和分散的学习媒介,我的第一个建议是阅读相关专业的书籍。
对于javascript,从javascript语言的本质开始,这本书叫做javascript圣经。这本书很旧,但很适合作引言。尽管您可以将它用作参考书,但javascript权威指南也是必要的。此外,jquery作者JohnResig的“JavascriptNinja禁止”也不容错过。如果你正在寻找一本好的(免费在线)书,请查看javascript allange,你不知道JS和雄辩的javascript(点击这里查看它的注释版本)。这些可以以电子书或印刷版的形式购买。此外,Mozilla的开发者网络也有一个很好的“javascript指南”。
学习、使用和阅读图书馆
下一个最重要的步骤是理解库。如果书籍教你如何理解一种语言,图书馆教你如何表达它。对于库,您有两件重要的事情要做:使用它们并读取它们的源代码。
通过使用库,您开始了解:jquery、主干、下划线和react、angular、ember之一。当然,这并不是说你必须使用这些库,但是有能力的JavaScript开发人员应该至少对这些库有一些经验(好或坏)。
为了提高JavaScript技能,第二件重要的事情是阅读这些库的源代码。其中,我特别推荐主干和下划线的源代码,因为它们的代码写得很漂亮。通过阅读和理解下划线,您的功能编程能力将得到提高。另一个由其他几个开发人员推荐给我的库是mootools(我个人没有使用和阅读mootools的经验,只是传递信息)。
理解上面列表中的其他库(如react、ember等)可能很困难,但值得付出努力。至少浏览一下其他库的源代码,看看它们如何组织基代码,并尝试找到一些模式。其他值得使用和阅读的库有d3、highcharts和moment.js。
练习并问自己问题
成为一名优秀的JavaScript开发人员的下一步是做大量的实践。从理论上讲,这些实践的重点不是DOM,而是语言,因此请确保节点上运行有测试工具。JS。在节点上做很多小练习。JS。javascript闭包、原型、数组附加(map、filter)的使用方式不同。经过大量的练习,您将有一个关于javascript的基本概念。
我的朋友Armagan是一位杰出的javascript程序员和教师,他在课堂上使用的教材“javascript设计模式”也值得一看。
试着回答这样的问题:原型继承是如何工作的?闭包的定义是什么?这个关键字是如何更改的?如何使用apply/bind/map/filter/call?收集一些常见的javascript开发人员的问题,并尝试用您自己的语言解释它们。以书面或口头形式向他人解释这些概念可以大大提高他们的能力。在实践中,尽量做“假设分析”。例如,“如果您使用绑定两次,这代表什么?jquery是如何产生的
js大神成长指路的更多相关文章
- Python大神成长之路: 第一次学习记录
一.Python发展史 二.Python2 or 3 博主选择了Python3. 从官网下载Python www.python.org Windows安装python3.5.python2.7.安装 ...
- Python大神成长之路: 第三次学习记录 集合 函数 装饰 re
学习记录day03 字符串可以直接切片,But字符串不可修改 字符串修改:生成了一个新的字符串 LIst修改,在原基础上修改(原内存上) 集合是一个无序的,不重复的数据组合,它的主要作用如 ...
- Python大神成长之路: 第二次学习记录
数据类型 数据操作 bytes 类型 "".encode() 编码-->二进制 "".decode() 解码 判断字符串里的字符是否全为 ...
- JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力。。
JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力.. 小森执行一 ...
- 大神:python怎么爬取js的页面
大神:python怎么爬取js的页面 可以试试抓包看看它请求了哪些东西, 很多时候可以绕过网页直接请求后面的API 实在不行就上 selenium (selenium大法好) selenium和pha ...
- 兄台息怒,关于arguments,您的想法和大神是一样一样的----闲聊JS中的apply和call
JavaScript提供了apply和call两种调用方式来确定函数体中this的指向,表现出来的特征就是:对象可以'借用'其他对象的方法.之前的几篇博客回顾了一些Web控件的一些开发方法,我们聊了如 ...
- Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神
转载:https://blog.csdn.net/zhaokaiqiang1992/article/details/43731967 CSDN 鸿洋:http://blog.csdn.net/lmj6 ...
- 为何你跟着滴滴D8级前端大神撸代码,技术却依旧原地踏步?
引子 听说最近有很多小伙伴,热衷于在慕课网上学习各种前端实战教程,并以完成项目为奋斗目标.比如本文接下来要提到的<Vue2.0高级实战之开发移动端音乐App>,这门课程的传授者是来自滴滴D ...
- 听justjavac大神live前端的入门与进阶小笔记
代码规范 代码强壮,调试代码 少用变量,多用常量 少用for循环,why循环,多用函数式, 不要直接去使用框架 刷题 提高编程思维 用js去做c语音的问题 阅读别人代码,去看别人的代码 a+b> ...
随机推荐
- You don't have permission to access / on this server. wampserver3.1.0配置外网访问的问题
参考各种wamp教程后外网仍然不能访问服务器,很是头疼 网上好多wampserver配置都比较久远,最新版本3.1.0的很少,首先打开httpd.conf文件(这部分较简略,详细可以参考其他wamp配 ...
- react-native-swiper设定高度的方法(设置rn轮播图所占高度)
效果图: 直接上解决方案: 1.在Swiper标签外套一层View <View style={styles.container}> <Swiper style={styles.wra ...
- 机器学习之保存与加载.pickle模型文件
import pickle from sklearn.externals import joblib from sklearn.svm import SVC from sklearn import d ...
- 数据中心网络架构的问题与演进 — NFV
目录 文章目录 目录 前文列表 前言 NFV NFV 的最终目标 NFV 的抽象框架 基础架构层与虚拟基础设施管理层 资源管理与业务流程编排层 OSS 层 SDN 控制层 NFV 的生态合作 NFV ...
- C++之ListNode
单链表,弄清楚可stl中list的区别 ListNode的结构 struct ListNode { int val; //当前结点的值 ListNode *next; //指向下一个结点的指针 Lis ...
- delphi循环校验数据集
function XXXXXFrom.CheckData(Sender: TObject): Boolean; var tmpcds:TfwClientDataset; begin Result:=F ...
- laravel如何打印orm封装的sql语句
$query = CdbForumSellthreadSearch::where($params)->orderBy("$orderby", "$ascDesc&q ...
- centos7搭建伪分布式集群
centos7搭建伪分布式集群 需要 centos7虚拟机一台: jdk-linux安装包一个 hadoop-2.x安装包1个(推荐2.7.x) 一.设置虚拟机网络为静态IP(最好设成静态,为之后编程 ...
- 架构模式: Saga
架构模式: Saga 上下文 您已应用每服务数据库模式.每个服务都有自己的数据库.但是,某些业务事务跨越多个服务,因此您需要一种机制来确保服务之间的数据一致性.例如,假设您正在建立一个客户有信用额度的 ...
- 构建LNMP平台
1方案 安装部署Nginx.MariaDB.PHP环境 安装部署Nginx.MariaDB.PHP.PHP-FPM: 启动Nginx.MariaDB.FPM服务: LNMP(Linux.Nginx.M ...