Skip to main content
CF

Premium Javascript (Premium membership)

63h 55m 37s
English
Paid

This course gives you clear and direct lessons in JavaScript. You learn how each idea works and why you use it. The focus is on real understanding, not copying code.

What Makes This Course Different

Many courses show code without clear reasons. This course is not like that. Gordon Shue explains each step in plain language. You see how a method works and why you choose it. You get the full picture, not a quick demo.

About the Teaching Style

Gordon teaches like a mentor. He takes time to break down each idea. He shows how JavaScript behaves and what that means for your code. You learn to think through a problem, not just follow steps.

Why Students Like This Course

If you learned from Udemy, Treehouse, or similar sites, you may notice a clear shift here. The pace is steady. The lessons build on each other. You get simple examples that help you understand the core ideas well.

Try a Free Course

You can watch a free course from Gordon here. It gives you a good feel for his teaching style.

About the Author: Watch and Code

Watch and Code thumbnail

Watch and Code is the long-running JavaScript teaching platform of Gordon Zhu, focused on the patient, fundamentals-first approach to learning JavaScript that the platform's name implies — students watch the instructor solve problems and code along, without the typical lecture-heavy format.

The CourseFlix listing carries Premium JavaScript (Premium Membership). Material is paid and aimed at developers ready to learn JavaScript through deliberate practice rather than passive video consumption.

Watch Online 120 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 120 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 2. jQuery is irrelevant
All Course Lessons (120)
#Lesson TitleDurationAccess
1
2. jQuery is irrelevant Demo
01:19
2
3. The steps
01:16:35
3
4. Event listeners, toggle, delete, filter
01:11:16
4
5. edit, editKeyup, update
53:14
5
6. Rendering with templates
42:16
6
7. localStorage, init
33:40
7
1. What is testing?
17:06
8
2. forEach, first steps
20:25
9
3. forEach, callback arguments
13:50
10
4. forEach, optional this
29:10
11
5. filter
51:40
12
6. map
44:35
13
7. reduce, first steps
19:41
14
8. reduce, deciphering docs
48:01
15
9. reduce, finishing up
01:43:26
16
1. Error handling, setTimeout
30:47
17
2. Constructors, console.log output
58:18
18
3. Where we are now
33:45
19
1. Introduction to the library
16:27
20
2. Approaching docs like a pro
32:47
21
3. What are IIFEs?
26:56
22
4. IIFEs and sharing data
16:06
23
5. Scopes, locals, closures, globals
17:09
24
6. librarySystem
44:19
25
7. noConflict
30:59
26
8. Prototypes, an introduction
15:50
27
9. Prototypes and constructors
23:02
28
10. isString, !!, and String.prototype
29:27
29
11. Remaining internal helper methods
31:39
30
12. checkCurrencyFormat
29:54
31
13. toFixed and rounding issues
42:20
32
14. formatMoney and style
21:54
33
15. Recursion, what is it?
38:59
34
16. Recursing through the DOM
33:11
35
17. Recursively mapping arrays
49:26
36
18. Regular expressions, first look
47:26
37
19. Regular expression capture groups
23:19
38
20. Lookaheads and backreferences
19:32
39
21. formatNumber
34:45
40
22. unformat, new RegExp
22:34
41
23. When Googling goes nowhere
19:28
42
24. formatColumn
30:13
43
25. Thinking recursively
23:07
44
26. Broken tests
42:22
45
27. Retrospective
59:34
46
1. How I see the world
08:47
47
2. How the average person thinks
06:59
48
3. Don't read every line of code
07:14
49
4. What is Underscore?
07:42
50
5. Two minute setup
01:46
51
6. Before you start
13:48
52
7. Remember main.js?
13:24
53
8. main.js event listeners
16:15
54
9. Strategically setting breakpoints
26:08
55
Getting the debugger to work
02:00
56
Why do open source?
32:05
57
Criteria for choosing a project
21:43
58
Better and meh ways to find a project
07:38
59
Should I open an issue?
17:16
60
2019-01-08 Underscore's isArrayLike
38:09
61
2019-03-07 _.keys
27:08
62
2019-03-19 Underscore issues, prs, etc
34:03
63
2019-03-20 Underscore closed issues
26:53
64
2019-03-22 Disabling:enabling all column breakpoints (Miriam)
40:24
65
2019-04-04 Underscore's first commit
24:03
66
2019-05-20 Regex II
36:39
67
2019-07-09 The debugger game on _.template
53:39
68
2019-07-10 The annoyances of method chaining in _.template
26:45
69
2019-07-11 Client/server model in Firefox's debugger, part 1 (Jaril Valenciano)
22:40
70
2019-07-12 Client/server model in Firefox's debugger, part 2 (Jaril Valenciano)
34:49
71
2019-07-15 Stepping through two examples with _.template
40:19
72
2019-07-19 Starting a simple server (Jaril Valenciano)
31:23
73
2019-07-22 Syntax highlighting bug part 1 (Janelle de Ment)
46:09
74
2019-07-23 Syntax highlighting bug part 1 (Janelle de Ment)
38:55
75
2019-07-24 Student story (Anthony Xie)
58:25
76
2019-08-05 Getting the debugger to work on server code
13:49
77
2019-08-08 listenInCluster part 1 (Jaril Valenciano)
20:31
78
2019-08-09 listenInCluster part 2 (Jaril Valenciano)
28:55
79
2019-08-13 Recursing one level into _.isEqual
45:01
80
2019-08-14 setupListenHandle (Jaril Valenciano)
40:28
81
2019-08-15 server.on (Jaril Valenciano)
37:32
82
2019-08-16 copyWithin, part 1 (Jake Ryan)
01:00:37
83
2019-08-16 copyWithin, part 2 (Jake Ryan)
51:27
84
2019-08-20 Recursing two levels into _.isEqual
39:30
85
2019-08-22 copyWithin, part 3 (Jake Ryan)
32:27
86
2019-08-27 copyWithin, refactoring, part 4 (Jake Ryan)
38:25
87
2019-08-28 copyWithin, part 5 (Jake Ryan)
39:55
88
2019-08-29 copyWithin, start parameter, part 6 (Jake Ryan)
26:25
89
2019-09-02 copyWithin, part 6 (Jake Ryan)
35:14
90
2019-09-04 Getting started with Firefox, part 1 (Luke Swiderski)
37:16
91
2019-09-05 copyWithin, part 7 (Jake Ryan)
42:59
92
2019-09-09 copyWithin, part 8, arrays with 3 elements (Jake Ryan)
40:52
93
2019-09-18 copyWithin, part 9, tables (Jake Ryan)
53:45
94
2019-09-19 copyWithin, part 10 (Jake Ryan)
30:50
95
2019-09-20 copyWithin, part 11 , end parameter (Jake Ryan)
35:52
96
2019-09-23 _.sortBy
35:49
97
2019-09-25 copyWithin, part 12, more on end (Jake Ryan)
25:19
98
2019-09-26 Firefox updates from the group
42:00
99
2019-09-30 Getting started with Firefox, part 2 (Luke Swiderski)
17:38
100
2019-10-01 Getting started with Firefox, part 3 (Luke Swiderski)
07:27
101
2019-10-02 copyWithin, part 12, drawings (Jake Ryan)
30:45
102
2019-10-07 _.sortedIndex part 1 (Gordon Zhu)
18:48
103
2019-10-07 _.sortedIndex part 1 (Gordon Zhu)
18:48
104
2019-10-09 Getting started with FireFox, part 5 (Luke Swiderski)
54:07
105
2019-10-10 Getting started with FireFox, part 6 (Luke Swiderski)
39:40
106
2019-10-14 Getting started with FireFox, part 7, bootstrapping Mozilla Central (Luke Swiderski)
21:20
107
2019-10-16 Getting started with FireFox, part 8, Setting up arcanist and moz-phab (Luke Swiderski)
45:18
108
2019-10-17 Underscore sortedIndex
22:35
109
2019-10-21 Getting started with FireFox, part 9, practice patch (Luke Swiderski)
35:18
110
2019-10-23 Getting started with FireFox, First visible change (Luke Swiderski)
39:45
111
2019-10-24 Getting started with Firefox, running the debugger on the debugger (Luke Swiderski)
12:04
112
2019-10-24 Debugger token highlighting bug (Janelle de Ment)
39:50
113
2019-10-28 Getting started with FireFox, reviewing an old pull request (Luke Swiderski)
49:28
114
2019-10-31 Debugger token highlighting bug, part 2 (Janelle de Ment)
34:38
115
2019-11-04 Getting started with FireFox, problem with replicating old pull requests (Luke Swiderski)
33:39
116
2019-11-05 Firefox, rewinding to different points in time (Luke Swiderski)
28:02
117
2019-11-21 Firefox, reviewing an old pull request (Luke Swiderski)
13:21
118
2019-11-22 Debugger token highlighting bug, part 3 (Janelle de Ment)
28:47
119
2019-11-27 A tricky case of `this` (Anthony Xie)
33:54
120
2019-12-13 Starting with Firefox on Windows (Stepan Stava)
20:30
Unlock unlimited learning

Get instant access to all 119 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites are needed before enrolling in this course?
This course does not list specific prerequisites, but a basic understanding of programming concepts and some familiarity with JavaScript would be beneficial. The course dives into JavaScript fundamentals like event listeners, localStorage, and asynchronous programming, making it suitable for those who have some introductory knowledge of JavaScript.
What projects or exercises will I work on during this course?
The course includes practical exercises such as implementing event listeners, using localStorage for data persistence, working with templates, and handling errors with setTimeout. These exercises help solidify your understanding of key JavaScript concepts by applying them in real-world scenarios.
Who is the target audience for this course?
This course is designed for learners who have some basic knowledge of JavaScript and wish to deepen their understanding. It is particularly beneficial for those who have previously taken introductory courses on platforms like Udemy or Treehouse and are looking for a more structured and detailed learning experience.
How does this course compare in depth and scope to similar courses?
Unlike many courses that focus on code demonstrations, this course emphasizes understanding the reasoning behind JavaScript methods and concepts. With 120 lessons, the course covers a wide range of topics from basic to advanced, ensuring a thorough grasp of JavaScript's core ideas and their practical applications.
What specific JavaScript tools or platforms are focused on in the course?
The course covers a variety of JavaScript tools and concepts such as forEach, map, reduce, IIFEs, prototypes, and regular expressions. It also includes lessons on using localStorage and strategic debugging techniques, equipping students with a comprehensive toolkit for JavaScript development.
What topics are not covered in this course?
The course does not focus on frameworks such as React, Angular, or Vue.js, nor does it cover server-side JavaScript with Node.js. Additionally, it explicitly mentions that jQuery is irrelevant, so it is not included in the curriculum.
How much time should I expect to commit to this course?
While the course does not specify an exact runtime, it consists of 120 lessons. The time commitment will depend on your pace and how thoroughly you engage with the exercises. Given the detailed nature of the lessons, learners should allocate sufficient time to absorb the concepts thoroughly.