~sivers/sive.rs

ref: b2f50afe9f3a46f2848387525ab5fefcaad1de58 sive.rs/site/learn-js -rw-r--r-- 4.7 KiB
b2f50afe — Derek Sivers ArtistData is gone 4 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>How to learn JavaScript | Derek Sivers</title>
<meta name="description" content="Since I’ve mentioned that I recently learned JavaScript, people have asked me how and what I recommend.  So here’s my experience and best advice for 2020.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="/style.css">
<link rel="alternate" type="application/atom+xml" title="Derek Sivers" href="/en.atom">
<link rel="alternate" type="application/rss+xml" title="Derek Sivers podcast" href="/podcast.rss">
<link rel="prev" href="https://sive.rs/mny">
<link rel="next" href="https://sive.rs/250k">
</head>
<body id="article">
<section id="masthead">
<h1><a href="/" title="Derek Sivers">Derek Sivers</a></h1>
</section>
<div id="content">

<article>
<header>
<div class="blogparent"><a href="/blog">Articles</a>:</div>
<h1>How to learn JavaScript</h1>
<small>2020-06-22</small>
</header>

<p>
	Since I’ve <a href="/prog">mentioned</a> that I recently learned JavaScript, people have asked me how and what I recommend.
	So here’s my experience and best advice for 2020.
</p><h3>
	Learn plain JavaScript
</h3><p>
	First, it’s important to <strong>learn plain JavaScript</strong>.
</p><p>
	Don’t depend on a library of shortcuts.
	JavaScript will be around for many years, while libraries and frameworks come and go every year.
</p><h3>
	How to begin
</h3><p>
	Don’t just learn from little bits of tutorials, tips, or tricks online.
	Instead, you want a real foundation and solid understanding.
	Then all your future learning will be so much faster.
</p><p><strong>
	Start with the book: “<a href="https://www.oreilly.com/library/view/head-first-javascript/9781449340124/">Head First JavaScript Programming</a>”.
</strong></p><p>
	It’s a great introduction with a fun teaching style, which is important to get you familiar with something so new.
	Just read through it quickly in a couple days, before your deeper learning begins.
</p><p><strong>
	Do <a href="https://www.freecodecamp.org/">Free Code Camp</a>.
</strong></p><p>
	Someone who had 600 JavaScript learners <a href="https://news.ycombinator.com/item?id=11048409">said</a> Free Code Camp had the best results.
	Do it at the same time as you’re reading the books.
	Learning sticks better when coming through different senses.
</p><h3>
	Make it stick
</h3><p>
	I highly recommend you <strong>write down every new thing you learn</strong>, ideally into a flashcard program, <a href="/srs">like this</a>.
	It’s a lot to digest, so you’ll have to remind yourself of what you’ve learned, or you’ll immediately forget.
</p><h3>
	Reinforce it
</h3><p>
	Afterwards, if you want to solidify what you’ve learned, quickly read through a few more books like these:
</p><ul>
<li><a href="https://leanpub.com/ydkjsy-get-started">You Don’t Know JS — by Kyle Simpson</a></li>
<li><a href="https://pragprog.com/titles/ves6/">Rediscovering JavaScript — by Venkat Subramaniam</a></li>
<li><a href="http://effectivejs.com/">Effective JavaScript — by David Herman</a></li>
</ul><p>
	<strong>These books will go faster</strong>, now that you’re fluent.
	Play around with the examples.
	There will be no huge surprises.
	You’re just enhancing what you know.
</p><h3>
	Avoid the shortcuts
</h3><p>
	When solving a problem, everyone will point you to some pre-made solution.
	“Use jQuery! Use React! Use this library and save yourself some typing!”
</p><p><strong>
	But no!
	Not yet!
	Do it the hard way.
	Solve everything yourself with plain JavaScript.
</strong>
	It’s the best way to learn.
</p><h3>
	What next?
</h3><p>
	If you had a web app in mind, start building it now.
	(OK, you can use shortcuts.)
</p><p>
	If you had an iPhone or Android app in mind, learn <a href="https://facebook.github.io/react-native/">React Native</a>.
</p><p>
	If you want a good-paying job, you can <a href="/gethired">get hired</a> almost anywhere.
	Since you know the real JavaScript foundations more than most people, you’re very valuable.
	You can quickly learn whatever framework they’re using.
</p><h3>
	Any other suggestions?
	What worked for you?
</h3><p>
	Please share any other suggestions or experiences, here:
</p>
<img alt="" src="/images/js.png">

<footer>
© 2020 <a href="https://sive.rs/">Derek Sivers</a>.
(
  « <a href="/mny" accesskey="p" rel="prev">previous</a>
    ||
  <a href="/250k" accesskey="n" rel="next">next</a> »
)
<h1>
  Copy &amp; share:
  <span class="url"><a href="https://sive.rs/learn-js">sive.rs/learn-js</a></span>
</h1>
</footer>
</article>
<div id="comments"></div>
<script type="text/javascript" src="/js/comments.js"></script>

</div>
</body>
</html>