Deno - The Complete Introduction

Learn everything you need to work with Deno, the brand-new JavaScript runtime created by Node.js founder Ryan Dahl

Start
  1. Courses
  2. Deno - The Complete Introduction

Deno could be the next big thing - and this courses teaches it from the ground up, with real applications and practical examples!

Deno.js is a JavaScript runtime - just like Node.js is - created by the creator of Node.js.

Wait ... what?

The creator of NodeJS found that Node suffers from certain problems - or that it at least could be better than it is. And Deno is the result of that thought process: It's "a better Node".

You can build the same kinds of apps as you can with Node but you benefit from additional strengths that are built-into Deno:

  • Secure by default because of Deno's permission system
  • Deno embraces modern JavaScript features like async iterators, promises & more
  • Support for both JavaScript as well as TypeScript - out of the box, without any extra compiler
  • ES Module Support & URL Imports instead of local node_modules management

This course teaches Deno from the ground up, without any prior experience about Node being assumed. Such experience will help but it's not required!

We'll dive into Deno and we'll build multiple apps to see how you can use Deno to build real web applications.

In detail, here's what's included in the course:

  • What is Deno and Why is it interesting?
  • Practical Examples & Demo Apps
  • Core Concepts of Deno
  • Working with the Runtime APIs
  • Exploring the Deno Standard Library
  • Creating a Web Server with Deno
  • Using Third Party Modules
  • Working with the Oak Framework to create Web Servers with Ease
  • How to connect Deno to a Database (MongoDB)
  • Rendering server-side HTML with Templating Engines & Deno
  • Building a REST API with Deno
  • A Detailed Comparison of Deno & Node
  • A Look into the Future of Deno & Whether you should use Deno right now

Everything is included in this course already - you can go through all those concepts right after enrolling!

Deno is very new!

It has great chances of becoming an important technology but of course it's too early to tell right now.

However, what you learn in this course will also help you with Node development AND it will help you judge whether Deno is the right choice for you or if you maybe want to focus on Node first.

Everything is possible with this course since it's created such that it teaches you core fundamentals that apply to both Node and Deno.

Deno knowledge will always be helpful and right now you got the chance of being one of the first to understand this brand-new technology!

Section: Getting Started

1. Welcome to this Course! (1:34) Preview
2. What is Deno? (9:35) Preview
3. Deno Setup (4:25) Preview
4. Writing a First Deno Program (4:32) Preview
5. What can you Build with Deno? (2:09) Preview
6. Understanding Deno's Ecosystem (7:07) Preview
7. Deno's Current Status (4:16) Preview
8. Course Outline - What's Inside the Course? (3:39) Preview
9. How to Get the Most out of this Course (3:14) Preview
10. Useful Resources & Links (1:00) Preview

Section: Optional: JavaScript Refresher & TypeScript Introduction

11. JavaScript Refresher: Introduction (1:29)
12. What are Promises? (11:20)
13. Understanding Async Await (6:46)
14. Working with Iterators (12:21)
15. Async Iterators (7:35)
16. TypeScript Introduction: What is TypeScript? (6:02)
17. Setting Up TypeScript (4:09)
18. Assigning Types (3:29)
19. Understanding Type Inference & Casting Conversion (6:10)
20. TypeScript Configurations (5:01)
21. Understanding Union Types (4:23)
22. Working with Object & Array Types (6:17)
23. Type Alias & Interfaces (3:22)
24. Understanding Generic Types (5:09)
25. Summary (0:34)
26. Useful Resources & Links (1:00)

Section: Understanding Core APIs

27. Module Introduction (0:43)
28. Deno's Philosophy & Browser Compatibility (2:53)
29. Writing Some Deno Core Code (5:26)
30. Working with Permissions (3:23)
31. Deno Visual Studio Code Extension (2:42)
32. More About Core APIs (7:51)
33. Time to Practice - Problem (1:13)
34. Time to Practice - Solution (7:12)
35. Understanding the Deno Program Lifecycle (7:16)
36. Wrap Up (1:16)
37. Useful Resources & Links (1:00)

Section: Working with the Standard Library & Creating our First Web Server

38. Module Introduction (1:07)
39. Introducing the Standard Library (2:01)
40. How the Web Works (2:15)
41. Importing Standard Library Modules (7:04)
42. A First Web Server! (7:11)
43. Understanding the Import Syntax (5:59)
44. Comparing Deno & Node.js (4:36)
45. Manipulating Response Body & Headers (5:16)
46. Parsing Request Metadata (7:27)
47. Parsing Request Data (9:21)
48. Wrap Up (1:53)
49. Useful Resources & Links (1:00)

Section: Improving our Development Workflow & Debugging Deno

50. Module Introduction (0:52)
51. Using the IDE (2:46)
52. Using TypeScript (5:05)
53. Dealing with Error Messages (4:03)
54. Understanding Try Catch (3:41)
55. Debugging with Breakpoints & the Debugger (10:28)
56. Working with Denon (6:52)
57. Using Import Maps (4:35)
58. Wrap Up (1:05)
59. Useful Resources & Links (1:00)

Section: Working with "Oak" & Dynamic Templates

60. Module Introduction (2:18)
61. Understanding Different Kinds of Web Apps (10:18)
62. Introducing the Oak Framework (11:13)
63. Understanding Multiple Middleware Functions (4:06)
64. Adding a Router & Parsing Request Bodies (11:12)
65. A First Summary (2:46)
66. Introducing Templating Engines (2:39)
67. Using the EJS Templating Engine (8:17)
68. Static Resources (7:27)
69. Serving Static Resources Securely (1:00)
70. Rendering Lists of Data (8:29)
71. Adding Basic Input Validation (2:34)
72. Handling "Not Found" Errors (7:41)
73. Implementing a Different Folder Structure (6:17)
74. Useful Resources & Links (1:00)

Section: Understanding CRUD Operations & the MVC Architecture

75. Module Introduction (0:44)
76. Create, Read, Update, Delete (CRUD) (5:13)
77. Single Read & Dynamic Path Segments (11:35)
78. Deleting Data (5:31)
79. Updating Data (6:12)
80. Introducing the MVC Pattern (2:47)
81. Adding a Model (10:11)
82. Understanding Controllers (10:40)
83. Wrap Up (1:25)
84. Useful Resources & Links (1:00)

Section: Working with Databases

85. Module Introduction (1:38)
86. Databases: What & How? (6:24)
87. How Does Deno Connect to MongoDB? (4:01)
88. Setting Up MongoDB (2:51)
89. Connecting Deno to MongoDB (10:29)
90. Inserting & Using Imports Correctly (7:33)
91. Finding & Working with IDs (8:14)
92. Updating & Deleting Data in the Database (5:52)
93. Handling Errors (10:08)
94. Useful Resources & Links (1:00)

Section: Building REST APIs with Deno

95. Module Introduction (1:45)
96. What are REST APIs & HTTP Methods? (7:31)
97. Designing the API (3:07)
98. Understanding the JSON Format (2:26)
99. Defining Routes & Controllers (6:28)
100. Setting Up the Database Connection (4:57)
101. Adding the Create & Find Logic in the Database (8:02)
102. Connecting the Controller (6:17)
103. Testing the API (4:29)
104. Updating Data (8:15)
105. Deleting Data (3:20)
106. Adding a Frontend (6:08)
107. Cross-Origin Resource Sharing (CORS) (8:32)
108. Useful Resources & Links (1:00)

Section: Course Roundup & Next Steps

109. Module Introduction (0:48)
110. Working with Node.js (2:59)
111. Deno vs Node (11:38)
112. What Should you Learn? (4:12)
113. How to Continue? (1:54)
114. Useful Resources & Links (1:00)

Course Instructor

Image

Maximilian Schwarzmüller

As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students worldwide as well as a successful YouTube channel is the best proof for that.

The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content. That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.