如果你有以下感受,请举手
您在科技行业工作多年,精通 HTML 和 CSS,并且收入不错。但是,您脑海中总有一个声音在不断低语,“是时候尝试一些新的东西了,是时候迈出职业生涯的下一步了。你需要学习编程。”
是的,我也是。
我在科技行业担任过各种角色,将近十年了。我撰写了许多关于设计、编码、HTML 和 CSS 的文章。甚至还写了几本书,并在世界各地的会议上发表演讲。但是,那个声音仍然不断告诉我,我需要学习编程;除非我学会从头开始开发自己的想法和项目,否则我永远不会感到满足。作为一个 Web 开发人员,很显然需要学习的语言是:JavaScript。
但是,就像很多人一样,我对当前的 JavaScript 生态系统感到有些畏惧。随着不断涌现的新工具、技术和框架,很难确定从哪里开始学习以及学习什么。尽管如此,我仍然需要从某个地方开始。因此,我认为回顾一下学习资源和工具将是一个不错的第一步。
信息负担
怎么样,以下感受是否也似曾相识?
您之前尝试过学习几种不同的编程语言。您阅读过书籍,订阅过在线课程,并且 Dropbox 中有一堆文件夹里存放着半完成的代码和复制的练习。
我也是。
我学习过Rails 教程和笨办法学 Python,但都没有学完。我的书架上摆满了各种各样的巨著,内容从 ActionScript 到 Processing 应有尽有。但似乎什么都记不住。
我可以弄清楚 PHP 文件的作用,并理解一些 jQuery 的内容,但是如果你让我坐下来编写最基本的程序,我很难做到。经过这么多次失败,我认为我找到了问题所在。
每当我开始学习新事物时,我都会尽可能地全身心投入到这个主题中。我买书,看视频,听播客。这与许多公司所推崇的学习新事物的最佳方式相同,无论是编程、烹饪,还是在周末学习普通话。沉浸式学习显然是学习的关键部分。
但问题在于,人们(至少我)在处理信息方面有一个阈值,超过这个阈值就会感到不知所措。我称之为“信息负担”。信息是美好的,但信息过多会压垮大脑,让你筋疲力尽、失去希望,最终放弃并觉得自己是个失败者。
我不想让这次尝试像其他所有尝试一样。我知道我需要沉浸在 JavaScript 中,但我不想陷入 JS 世界的流沙中,最终窒息而死。因此,我决定回顾一下 JavaScript 学习全景,并挑选一些资源——但不要太多——以便我最终能够满足对编程的渴望。
我根据自己喜欢的学习方式(我怀疑其他人也喜欢这样学习)将资源分成了四大类。这些类别分别是:阅读、观看、聆听,以及最重要的是实践。
以下是我找到的一些资源。

阅读
我最喜欢的学习新事物的方式是阅读它们。虽然这主要指书籍,但我也很喜欢用优质的博客填充我的 RSS 订阅源,以及用很棒的时事通讯填充我的收件箱。
书籍
幸运的是,有很多关于 JavaScript 的著名书籍。以下是一些最受推荐的书籍:
- Eloquent JavaScript(精通 JavaScript),作者:Marijn Haverbeke
- JavaScript: The Good Parts(JavaScript 语言精粹),作者:Douglas Crockford
- JavaScript: The Definitive Guide(JavaScript权威指南),作者:David Flanagan
- You Don’t Know JS(你不知道的 JavaScript),作者:Kyle Simpson
- Secrets of the JavaScript Ninja(JavaScript忍者秘籍),作者:John Resig、Bear Bibeault 和 Josip Maras
- JavaScript and jQuery(JavaScript与jQuery),作者:Jon Duckett
- Speaking JavaScript(解析 JavaScript),作者:Axel Rauschmayer
- JavaScript for Web Designers(JavaScript for Web Designers),作者:Mat Marquis
当我尝试学习 Python 时,我最喜欢的资源是 Zed Shaw 的Learn Python The Hard Way(笨办法学 Python)。它是一种不含糊的学习方法,通过实际编写代码来学习。虽然他正在编写一本关于 JavaScript 的类似书籍,但目前还没有出版。
我找到的最接近的资源是 Marijn Haverbeke 的Eloquent JavaScript(精通 JavaScript)。据我所知,这是一本很棒的 JavaScript 入门书籍,并且从内容来看,它似乎遵循了 Zed 的 Hard Way 书籍的类似方法:从语言的基本知识开始,并随着引入更高级的概念和项目而逐渐变得更具挑战性。
我列表中的其他所有书籍看起来都非常棒,但大多数似乎都超出了我目前的能力范围。两个例外是 Jon Duckett 的JavaScript and jQuery(JavaScript与jQuery)和 Mat Marguis 的JavaScript for Web Designers(JavaScript for Web Designers)。我喜欢 Jon 的 HTML 和 CSS 书籍,但感觉他的书中使用的视觉化方法不适用于更复杂的话题(至少对我来说是这样)。而 Mat 的书看起来完全满足了我的需求,但似乎深度不足,无法满足长期学习的需求。尽管如此,由于我拥有 A Book Apart 的其他大部分书籍,我可能会用JavaScript for Web Designers(JavaScript for Web Designers)来补充Eloquent JavaScript(精通 JavaScript)。
我相信还有很多其他很棒的 JavaScript 书籍,但这些书得等我读完我选择的书后再读。请记住,我想要好的信息,但不要一下子太多。
博客
天啊,网上有大量的关于 JavaScript 的博客。实际上,这使得找出哪些博客是好的变得有点棘手。我乐于接受您可能提出的任何建议(请在评论中留下您的建议!),关于我应该关注谁,但我最初的想法是,以下是一些不错的起点:
我遇到了很多其他的博客,但大多数在我目前的学习阶段看起来都太复杂了。或者其他一些博客属于个人,他们主要谈论自己的项目,而不是基础知识或学习过程。不过,我已经将所有这些都添加了书签,以便在我掌握更多知识后深入研究。
时事通讯
正如我之前关于HTML 电子邮件可访问性的文章所证明的那样,我是一个不折不扣的 HTML 时事通讯爱好者。因此,很自然地,我找到了一些时事通讯并订阅了它们。
- JavaScript 周刊
- Versioning(版本控制),由 SitePoint 提供
但我感觉还有更多我还没有找到的时事通讯。我的意思是,几乎任何主题都有时事通讯。鉴于 JavaScript 如此受欢迎,肯定不止我上面找到的两个时事通讯。如果您有任何建议,请通过下面的评论发送给我。
观看
另一种很好的学习方法是观看其他人做你想做的事情。但对我来说,这几乎总是次于阅读学习。尽管如此,当我在某个主题上遇到困难或想更深入地了解编码的某些方面时,观看视频将是一个不错的选择。
总的来说,网上有两种类型的视频:课程和独立视频(主要是在 YouTube 上)。这两种类型的视频都有很多选择,但据我所知,以下是一些最好的视频:
- ES6 for Everyone(每个人都能学会 ES6),作者:Wes Bos
- JavaScript 30(30 天挑战 JavaScript),作者:Wes Bos
- Code School 的 JavaScript 学习路径
- Introduction to JavaScript Programming(JavaScript 编程入门),作者:Kyle Simpson
- The Good Parts of JavaScript and the Web(JavaScript 与 Web 的优秀部分),作者:Douglas Crockford
- Debugging and Fixing Common JavaScript Errors(调试和修复常见的 JavaScript 错误),作者:Todd Gardner
- Data Structures and Algorithms in JavaScript(JavaScript 中的数据结构与算法),作者:Bianca Gandolfo
- The Coding Train(编程列车),作者:Daniel Shiffman
- Fun Fun Function 作者:Mattias Petter Johansson
- LearnCode.academy
- JSConf YouTube 频道
我听说过 Wes Bos 的课程非常棒,所以我会在某个时候深入学习。The Coding Train 和 Fun Fun Function 也是如此。但同样地,我不想被淹没,所以我计划在完成《Eloquent JavaScript》之后再学习所有这些内容。

收听
播客是学习概念和沉浸在特定文化中的一种极佳方式,无需始终盯着屏幕。基本上,这是一种在洗碗或收拾孩子玩具时也能继续学习的好方法。
但是,就像电子邮件时事通讯一样,我发现很难找到好的 JavaScript 播客。四处看看,似乎有很多播客,但大多数都不活跃且过时了。我列出了下面的列表,但我希望大家可以指出更多内容添加到我的播客订阅中。
实践
学习 JavaScript 的最后,也可能是最重要的一部分,就是实际操作:编写代码,使其运行,并重复这个过程。
就像我在开头提到的,我多年来一直在编写 HTML 和 CSS(以及使用其他技术),所以我对某些工具有点偏见。我主要在 Mac 上使用 Sublime Text,所以计划继续使用它在本地编写代码。但是,由于我最近在 iPad Pro 上工作更多,我想用一些额外的工具来增强 Sublime Text,以便在学习过程中编写和测试代码。
主要工具将是 CodePen。我已经订阅了 Pro 一段时间了,并且发现它对于编写代码非常有用,无论我使用什么平台。由于它在浏览器中运行,因此很容易在我的 iPad 上打开一个代码片段,无论我是在咖啡馆闲逛,都可以轻松获得一个完整的 JS 开发环境。它还有一些我认为在某个时候会派上用场的特性:当我想要保密一些尴尬的代码时,可以使用私有代码片段和集合;当我想要处理更重要的内容并将其托管在某个地方而无需任何麻烦时,可以使用项目;如果我需要实时请求朋友帮助我解决一些棘手的代码,可以使用协作模式。

我查看了其他工具,如 JSFiddle 和 JSBin,但我对 CodePen 比较熟悉,并且它的功能很强大,所以我坚持使用它。
我计划在某个时候使用的另一个在线工具是 Glitch。它是一个相对较新的编写代码并在网上分享的工具,并且围绕它建立了一个非常多元的社区。虽然我认为我的大部分编码将在 CodePen 或本地在 Sublime Text 中完成,但我认为 Glitch 在学习更复杂的东西(例如与 API 交互、创建奇怪的机器人和测试一些可怕的框架)时将至关重要。
我的学习计划
因此,考虑到以上所有资源,以下是我计划在未来几个月内学习 JavaScript 基础知识的内容。
- 学习《Eloquent JavaScript》
- 在 Sublime Text 中本地编写代码,但在 CodePen 中主要在线编写
- 通过我找到的博客、时事通讯和播客了解最新资讯
- 在我完成《Eloquent JavaScript》之后,深入学习 JavaScript 30 和 ES6 for Everyone
- 在我完成 Wes Bos 的教程后,开始学习上面列出的视频和书籍
- 在此过程中构建一些(希望是)很酷的东西
不过,学习最重要的方面之一是获得对你实际操作的反馈。为此,我将寻求一些朋友以及任何想要参与的读者的帮助。
我在 CodePen 上创建了一个新的集合,用于在整个学习过程中存放我的 JavaScript 项目。我将使该集合公开,以便任何人都可以看到我在做什么,分叉示例,并指导我以最佳方式做事。如果这符合你的兴趣,请 在 CodePen 上关注。
最后,如果你有任何其他资源或对上面列出的资源有强烈意见,请在下面的评论中告诉我。我相信你们中的很多人经历过类似的学习过程,并有一些很棒的技巧可以分享。我很乐意听到你的想法,所以请在这里在 CSS-Tricks 上或 给我发邮件分享你的知识。
这里有一个有趣的想法:停止阅读,开始打字!干杯
因此,当你完成阅读/学习 JS 基础知识后,你可能希望深入了解一些 JS 框架和现代 JavaScript。为此,我衷心推荐 Tyler McGinnis 的课程。
我想知道你是如何仅仅凭借 HTML 和 CSS 就取得如此成功的!?我一直觉得我还不够了解,无法在网络世界中真正取得成功,原因与你描述的让你感到不满足的原因相同。我一直认为“当我学会 MySQL、PHP、JavaScript 和 C++ 后,我才会成功”。
Jason – 我和你完全处于同一条船上,我尝试过大多数“传统”的学习 JS 的方法,就像你一样,没有一个完全奏效。我通过 Wes Bos 的 javascript 30 课程取得了一定的成功,虽然你提到了他们的博客“freecodecamp”,但它实际上是一个可靠的学习平台,以及他们的论坛。他们不仅在他们的网站上介绍理论片段,而且要求你创建一个 CodePen,然后在每个模块的最后构建“现实世界”的项目,然后你必须提交这些项目。
啊,不错!我没想到他们有一个学习平台,只是在网上看到过一些随机的文章之类的东西。我一定会去看看。我认为“现实世界”的项目方法将是我学习的关键。我需要构建东西,而不仅仅是学习理论(尽管我从《Eloquent JavaScript》中学习了很多理论)。
就我个人而言,如果我想从前端设计转向编程,我会学习 PHP(或类似的东西)。如果我必须使用 PHP 构建一个完整的应用程序,那么我可以做到。但是我无法仅使用 JavaScript 构建一个完整的应用程序。
@Gareth。使用 JavaScript(以及 HTML/CSS)完全可以构建一个完整的 Web 应用程序。Node.js 用于服务器端,而前端则可以使用任何“当月流行”的前端框架 React/Vue/Angular。
现在可以使用 JS 构建完整的应用程序,但我完全理解你的意思。对我而言,我想专注于完善我对与 Web 最相关的三种技术的理解:HTML、CSS 和 JavaScript。此外,我对学习 JS 有些相当具体的目标,我可能会在另一篇文章中谈论这些目标。
为什么你说“无法”用 Javascript 构建一个完整的应用程序?使用 Javascript,你可以构建前端(原生 JS、Jquery、Angular)和后端(Node.js、express),甚至可以通过一些方法打包你的应用程序以供桌面使用(Electron)。我并不是想抨击你的说法,我真诚地想知道你的观点是什么。
我无法想象完全使用 PHP 构建一个应用程序。在页面上的每次操作后都需要不断刷新页面,并且到处都需要表单,这会导致糟糕的用户体验。除此之外,你还需要连接到数据库来管理任何类型的数据。
Laravel 现在默认附带 VUE 并非没有道理。Javascript 并非完美,但如果你学习主要的框架,你会发现很多工作机会。不要仅仅因为你更喜欢一门语言而阻止自己学习,否则你会被落在后面。
除了使用 mean stack,你还可以完全使用 JavaScript 构建一个 Web 应用程序。
抱歉,我并不是说我会只使用 PHP 构建东西,只是说我可以。而我如果只用 JavaScript 做同样的事情,尤其是在没有某种框架的情况下,我会非常挣扎。我的意思是,如果我要开始学习编程,我更倾向于学习服务器端语言。
非常棒的帖子!我喜欢你提供的资源。我听说过其中一些,有些没听说过,还有一些我可能应该去了解一下。感谢分享!
一个真正,我的意思是真正帮助我的资源是在Udemy.com上找到的一个教程,叫做《JavaScript:理解那些奇怪的部分》,作者是Anthony Alicea。这是一个视频教程,它详细介绍了JavaScript实际上有多奇怪。我相信它现在甚至正在打折!我认为这个视频教程与《Eloquent JavaScript》非常相似。
再次感谢分享。我非常喜欢C.S. Lewis的一句名言,如下所示…
“只有那些非常渴望知识,并在条件不利时也去寻求知识的人才能取得成就。”
必须不断学习!就像你指出的那样,即使有大量的信息,也要尝试勇敢地面对。
我认为自己在JS方面属于“初级到中级”水平,完全处于这种状态。
我想赞同一下Anthony Alicea在Udemy上的课程。他还有一门Nodejs课程,非常棒。Anthony是一位杰出的老师,不遗余力地解释所有内容。他从不认为任何东西是理所当然的,并且会强化术语并在整个课程中逐步讲解函数。
亚马逊上的“一种更智能的学习JavaScript方法”电子书提供了引导练习,可以真正强化你的肌肉记忆。我一开始持怀疑态度,但不要以貌取书。它获得了1400多个评论。还有一本jQuery的书。
我也推荐Anthony Alicea的课程《JavaScript:理解那些奇怪的部分》。
他有时会重复一个概念几次,但每次都会用稍微不同的方式解释,这真的帮助我理解了。一位非常好的老师。
你即将学习JavaScript,这真是太令人兴奋了!我想告诉你一些我在刚开始学习JS时发现的其他资源。W3Schools是一个很重要的网站,但我现在主要使用MDN,因为当我查找一些东西时,通常是为了更详细地复习某个东西是如何工作的。我强烈推荐The Coding Train,Fun Fun Function也是一个非常棒的频道。后者可能更高级一些。The Coding Train涵盖了所有JavaScript基础知识,所以如果你观看他的视频,你就准备好了。他甚至还涵盖了非常复杂的话题。我认为Fun Fun Function更适合深入学习ES6。另一个很棒的频道是Meth Meth Method,与FFF没有关系,哈哈。我真的很喜欢他在那里做的马里奥系列。它让我接触了编写JavaScript模块,我想了解更多关于这些模块的信息。
如果你能找到一个基于ES6的JavaScript基础课程,那就太好了,但我不知道有没有。我遇到过的所有ES6内容都更像是JavaScript的补充内容,适用于那些已经熟悉JavaScript的人。ES6确实让JavaScript对我来说更有趣,这就是我仍然喜欢它的原因。
我记得当我第一次开始学习JavaScript时,它是我第一个“真正的”编程语言。我记得很喜欢W3Schools的“尝试一下”功能,他们会在那里发布你可以边学习新主题边修改的实时示例。这非常有用。正如你所说,在学习一门新语言时,很容易被大量信息淹没,所以真的要从最基本的东西开始,以便更容易上手。祝你在JavaScript之旅中好运!我期待着看到你美丽的创作!
最后一点;如果你在学习一些比较难的概念(一旦你过了基础阶段),比如原型继承、提升、函数/块作用域、类型强制、自动分号插入、立即调用的函数表达式等等,不要气馁。这些内容都很混乱,我肯定也不是一下子就都理解了,但不要让这些阻碍你。这些都会随着时间的推移而慢慢理解。你很可能在很久以后才会直接遇到这些内容,所以不用担心。
这篇文章最棒的一点是使用了VARK学习模型的图表。我很欣赏人们考虑到我们每个人学习方式的不同,并且根据学习风格对资源进行分组,让生活变得更轻松。
我甚至都没有意识到VARK模型的存在(或者至少它被这样命名)。这主要是我大脑分解事物的方式,以及我理解不同学习方式的方式。我以后肯定会使用这个首字母缩略词!
@Kyle Shover 我赞同你对Anthony Alicea在Udemy上的课程的看法。我认为这是我一生中最好的投资。我强烈推荐它。
我也有和你一样的问题。我的计划仍然有效,那就是专注于纯JS编码。没有框架,也没有其他可能让我偏离焦点的东西,我的焦点是JS编程的良好知识。一本书,但一本好书足以入门(在我的例子中,是Eric T. Freeman和Elisabeth Robson合著的《HeadFirst JavaScript编程》。对新手来说超级简单,但它有效)。当然,一些好的起点是一些实时编码网站,例如FreeCodeCamp或Codecademy(就像你提到的那样)。但最最重要的是开始自己编写代码。首先是简单的任务,但它必须是你自己的代码。找一些问题并解决它。对我来说,是将两个输入框中输入的数字相加。我花了一段时间,但满足感是巨大的。每天都编写代码是实现目标的好途径。
Wes Bos的任何教程系列都是黄金标准。以及他的Syntax.fm播客合作伙伴Scott Tolinski的教程(在leveluptutorials.com上找到)紧随其后。并收听他们的播客——不仅充满了实用的建议,而且非常有趣。
你正在创造潜意识的阻力,这阻碍了你开始行动。你学习所有细节的目标阻碍了你的进步,甚至这篇博文也让你偏离了实现真正目标的轨道。去构建一些东西。
“艺术的战争”是一本关于这个主题的好书。还有David Kadavy的“开始的心”
干杯
这篇文章就像读懂了我的心思。我尝试过很多次学习JS,但它总是无法坚持下去。我会按照你的计划去做,看看是否对我有用。谢谢!
你可以尝试的其他免费网站是sololearn.com和khanacademy.com。
Solo Learn网站严格来说是关于编程的,而可汗学院网站则涵盖了学校儿童的多个主题以及编程。
很棒的总结!我从自己的经验中非常了解这一点!
哦,关于在文本编辑器中与其他开发人员实时协作的话题,Atom 有 Teletype https://teletype.atom.io/,对我来说,这本身就是使用 Atom 和朋友一起编写代码的原因,超级简单且易用,加上一起编写代码的感觉非常棒。
与更有经验的开发人员一起查看代码,你可以在简短的聊天中学习到很多东西,我甚至认为没有其他学习方式能让你这么快地掌握东西。所以要对了解JS的人友善(通常要对所有人友善!!),谁知道呢,你很快就会找到一位愿意每天花几分钟或每周花几个小时与你进行结对编程的导师/辅导员。
这不仅对你有帮助,对他们也有帮助,因为向别人解释你所知道的东西也是一种非常有益的感觉,并且可以让你认为自己知道的知识更加牢固,并从不同的角度看待它。
公平地说,VSCode 也正在 开发此功能。
很棒的学习资源合集。你可能在这里可以找到一些额外的资源:https://github.com/micromata/awesome-javascript-learning
如果你有JavaScript、编程、循环、变量等的基础知识,我强烈推荐Anthony Alicea的Udemy课程《JavaScript:理解那些奇怪的部分》,https://www.udemy.com/understand-javascript/learn/v4/overview。我喜欢他的教学风格,他深入“引擎盖之下”,这样你就可以更深入地理解这门语言。他说话有点慢,但如果你将速度提高到1.25倍,那就非常棒了。祝你好运!
很棒的文章,链接也很棒。尤其喜欢其中一些链接包含受函数式编程强烈影响的人。
我是一个仍在实际编码的初学者阶段的学习者,但我决定专注于使用styled-components进行CSS-in-JS和使用JSX进行HTML-in-JS来构建React项目。
我喜欢的一个资源是javascript.info中关于浏览器和DOM的部分。写得非常好。在我看来,比MDN更好。
我建议也阅读Eric Elliot的文章
https://medium.com/javascript-scene/composing-software-an-introduction-27b72500d6ea
https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3
对于React和Redux,James Sinclair的这篇文章非常棒
https://jrsinclair.com/articles/2018/react-redux-javascript-architecture/
既然你来自 CSS 背景,我推荐这些 CSS 文章和视频
https://medium.com/seek-blog/a-unified-styling-language-d0c208de2660
http://jxnblk.com/writing/posts/patterns-for-style-composition-in-react/
干杯!
尼克
我不得不说,我不建议将 JavaScript 作为第二种学习的编程语言。虽然它可以作为第一种。
你学习的第一种编程语言应该是一种简单、声明式的语言,最好带有函数。不要太复杂。你可以用 JavaScript 的这个子集做一些事情。其他选择包括 PHP 和 Python。
如果你目标是高级开发,那么你学习的第二种编程语言应该能迫使你使用类。不仅仅是使用预先编写的类,而是扩展现有的、可能是抽象的类。我所知道的唯一这样的语言是 Java 和非常相似的 C#。JavaScript 有两个缺点:它不会强迫你使用类,并且它会强迫你使用回调函数,这会让你抓狂。
我自己也探索了很多 JS 资源。这里有一些我可以推荐的,而且大部分都是免费的。
* 《JavaScript之道》这本书
* 尼古拉斯·贝瓦夸的书籍
* 《JavaScript Allongé》,“六”版
* 戈登·朱的《实用 JavaScript》
很棒的总结!
我也在学习 JS。我的学习方法与你类似,但我发现在线课程不适合我。我使用一本书和其他资源在 Codewars 上做任务来解决它们。我也将 JS 添加到我的项目中,这对我很有效!祝你好运!
我发誓 freeCodeCamp 很好。那个地方会让你比我尝试过的任何其他地方更快、更好地开始学习东西。跳过 HTML/CSS 部分(或者不跳过;由你决定)并直接深入 JS。美味可口的 JS。
此外,Colt Steele 在 Udemy 上的 Web 开发训练营课程是一项非常好的投资(10 美元)。
Sublime 很好。但我使用 Visual Studio Code。因为它是一个完整的 JS 开源项目。每次我用 VSCode 用 JS/Node 编码时,我都会想起我可以通过 JavaScript 实现的美感和力量。
感谢这篇非常棒的文章!我个人认为从他人的学习策略中学习很有价值。我很想知道《Eloquent JavaScript》对你来说是好是坏(我正在使用《You Don't Know JS》)。此外,我希望你能在后续文章中说明你是否会深入到 JS 框架(和/或 node.js)的世界,如果会,你会选择哪一个。
关于播客,我喜欢 Javascript Jabber。他们最近的一期是关于“如何在你不是开发人员的情况下学习 JS”。他们还讨论了 JS 性能、节点安全等非常棒的东西。我认为他们在高级、中级和基础内容之间取得了很好的平衡。
非常好的文章。我在我的博客上链接了它,并提供了一些我自己的建议。我仍然处于 JavaScript 学习的早期阶段。我的帖子在 https://blog.mikepolinske.info/2018/02/22/the-javascript-learning-landscape-in-2018-css-tricks/
开始学习这门很棒的语言的绝佳资源!给你一个建议,也许当你达到中等水平时:考虑参加一个有现实生活导师的“现场”课程。他们可以根据自己的经验指导你走向正确的方向,而且他们可能很乐意回答你所有的问题。即使只是一天的课程也能节省你几天自己摸索的时间。在欧洲,Hackages (https://hackages.io) 是一个学习 JavaScript 和相关框架的动手、高质量课程的好选择。
什么,关于 JavaScript 的第一个笔试中没有简单的 consol.log() 或 alert() 来声明“Hello World”?:-(
精彩的文章!我非常喜欢你提供的资源。我听说过其中一些,还有一些我没有听说过,还有一些我可能应该去了解一下。感谢分享!
一个帮助我转变为教程的资源位于 Udemy.com 上,名为《JavaScript:识别奇怪的部分》,作者是 Anthony Alicea。我觉得今天它仍然可用!这个视频教程可以说与《Eloquent JavaScript》非常相似。此外,感谢分享。我非常喜欢 C.S. Lewis 的一句名言……必须继续学习!有点像你指出的那样,即使有大量信息,也要尝试并勇敢。
再次感谢 Chris 的坦率和诚实。读完你的文章后,我总是感觉自己又像个正常人。你又一次准确地指出了我们许多人经历的挣扎。最近我决定我必须再次学习 JS。Free Code Camp 很好,但我发现自己试图做一些我觉得自己还没有基础可以应对的项目。
我偶然发现了我认为目前最好的 JS 学习课程。它叫做 Watch and Code - Practical Javascript。我很惊讶在你的资源列表中没有看到它 - watchandcode.com
糟糕!对不起,杰森,你说话/写作的方式让我想起了克里斯写作和思考的方式。感谢这篇文章。真的很棒。我现在不再觉得自己是唯一一个落后的人了。
我同意。你找不到比戈登·朱的免费 Watch and Code 视频课程更好的 JS 初学者/中级课程了。在我看来,它为教学编码设定了新的标准。
非常及时!我刚刚开始学习 JS。我已经通过 Wyzant 聘请了一位家教。
很棒的总结,我一直在寻找。
只想补充一些惨痛的经验教训
关于动力
我建议,如果你想开始学习 JS,先弄清楚你为什么要学。是为了开拓就业机会?为了能够开发自己的项目?为了更好地胜任自己的工作?要谨慎,不要因为你觉得这是理所应当而想要学习——你学到的东西应该有助于你的职业道路。然后确定你想要用这些新技能做什么——有一个可以与朋友和同事分享的现实项目是一个很棒的动力。向他们提供更新并设定截止日期,他们会让你承担责任,从而增加你坚持下去的可能性。
关于语言
无论使用哪种语言,编程原理都是一样的,但语言通常会附带最佳实践,以及一些实际上是其运行环境一部分的关键范式(例如,虽然 Node 是 js,但它运行在服务器上,这与浏览器是不同的环境)。我的建议是从一些基本编程开始(变量、循环、条件语句、函数、类等),然后使用这些技能学习前端 js 框架(Vue、React、Angular)。这将成为服务器端内容的入门途径,因为你可能需要它来构建你的项目或运行后端。
还可以查看此总结以确定 js 环境中的当前情况:https://stateofjs.com/2017/
+1 给 Watch and Code - Practical Javascript:https://watchandcode.com/p/practical-javascript。只需阅读评论,你就会开始听到许多熟悉的故事,比如你的故事。
我正在做类似的事情。我有一本《Eloquent JavaScript》(第一版)。我订阅了 CodeSchool。我还在学习 FreeCodeCamp(因为它们获得了认证,我可以在最后获得证书)。
有趣的是,将所有这些联系在一起的一件事是 Programming By Stealth,一个关于实用和基础编程概念的播客/课程,用 JavaScript 教学。它可能不适合所有人,但它在清晰方面做得非常好,而且艾莉森擅长提出“为什么”问题,就像节目中的主要学习者一样。
嗨,Jason,
听听这个小小的建议,你不会后悔的;)。
根据你的技术背景,学习 JavaScript 是一个不错的选择。它将完美地结合你的 HTML/CSS 技能和编程语言。
我是一位拥有 15 年经验的开发者,使用过各种编程语言,我可以告诉你,学习编程语言的最佳方法是利用它来构建你需要的项目。
如果你只是做一些随机的练习,你将无法保持动力和积极性。你需要在用自己的双手从头开始构建某些东西时获得的这种多巴胺的激增!
没有什么比在真实项目中工作更能学习编程语言了。你列举了大量的资源,这很棒,但还有大量的其他资料需要阅读/观看/消化,而且在一个月或六个月后还会有更多。这些并不会教你如何开发。一个真实的项目才会。
我的唯一建议是:选择一本书并坚持下去。除非你卡住了,否则不要看其他东西。构建你的项目并使用这本书来帮助你。但不要试图吸收所有你能找到的东西,你没有时间,而且这样做也没有用。首先学习基础知识,以后你有充足的时间用高级资料来磨练你的技能。
这是保持学习编程语言的动力的唯一方法。在学习的同时构建你自己的真实项目。
Jérémy。
PS:我最近复习了我的 HTML/CSS 技能(几十年没碰过了,当我使用 HTML 时,CSS 几乎还不存在)。我可以告诉你,这个领域也可能让人不知所措。CSS3 非常棒,但围绕它还有新的工具,比如 CSS 预处理器/后处理器,新的构建工具,如 gulp、grunt 等,以及新的工作流程需要学习。我当时非常震惊!
我们越向前发展,情况就越让人不知所措。所以,如果你希望 JS 的学习环境不那么让人不知所措,那么学习的最佳时机是昨天。第二好的时机就是现在,所以你走在正确的道路上!祝你好运!
https://javascript.js.cn/ 非常好,而且似乎比一些视频课程更新
感谢你的文章,Jason,这里有很多好的资源。我个人非常喜欢 Eloquent JavaScript。
你提到你没有找到很多与 JS 相关的新闻通讯。这里厚颜无耻地自我推销一下;我运营着一个名为 All Tests Pass 的每周 JS 调试谜题新闻通讯,非常适合 JavaScript 初学者和中级开发者。请访问 http://tinyletter.com/alltestspass 查看。
我现在正在学习“You Don’t Know JS”系列书籍,我发现它对语言进行了很好的分解,而且不像博客文章那样假设你已经知道了一半的内容。
我也喜欢 codewars 网站上的小挑战,这些挑战非常适合测试你目前的学习成果。完成挑战后,你还可以查看其他人的解决方案,我发现这对学习新知识非常有帮助。
绝对是一样的情况。一直在努力抽出时间和精力先学习 JavaScript,然后是 jQuery,然后是 ES6、React 或 Vue 之类的东西。我想这归根结底是要先学习基础知识,然后再在此基础上进行构建。有一个需要处理的项目(真实的或个人的)确实能让事情变得生动起来,尤其是在有截止日期的情况下。
Don Ricardo Jr. 在比赛结束之后写道
Gordon Zhu 的课程