Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум

  1. Урок 1. 00:29:44
    1.1. Course Overview
  2. Урок 2. 00:49:41
    1.2. Setting Up - For Windows Users Only
  3. Урок 3. 00:59:57
    1.3. Setting Up - For Mac Users Only
  4. Урок 4. 00:53:06
    1.4. Setting Up - For Linux Users Only
  5. Урок 5. 00:40:47
    1.5. Introduction to the Command Line
  6. Урок 6. 00:15:24
    1.6. Learning NVM & Node.js Versions
  7. Урок 7. 01:36:02
    1.7. Node.js Under the Hood
  8. Урок 8. 00:34:06
    2.1. Understanding EventEmitter
  9. Урок 9. 00:06:48
    3.1. Introdcution
  10. Урок 10. 00:13:32
    3.2. Understanding Binary Numbers
  11. Урок 11. 00:21:10
    3.3. Understanding Hexadecimal Numbers
  12. Урок 12. 00:11:49
    3.4. Using a Programming Calculator
  13. Урок 13. 00:25:21
    3.5. Understanding Character Encodings
  14. Урок 14. 00:07:35
    3.6. The Concept of Buffers
  15. Урок 15. 00:38:47
    3.7. Buffers in Action
  16. Урок 16. 00:18:15
    3.8. Allocating Huge Buffers
  17. Урок 17. 00:20:59
    3.9. Fastest Way of Allocating Buffers
  18. Урок 18. 00:14:02
    3.10. Reading the Node.js Docs
  19. Урок 19. 00:02:09
    3.11. Outro
  20. Урок 20. 00:11:19
    4.1. Introduction
  21. Урок 21. 00:07:32
    4.2. What Exactly Is a File
  22. Урок 22. 00:04:06
    4.3. How Node.js Deals with Files
  23. Урок 23. 00:14:43
    4.4. Three Different Ways of Doing the Same Thing
  24. Урок 24. 00:13:33
    4.6. Watching the Command File for Changes
  25. Урок 25. 00:18:41
    4.7. Reading the Content of the Command File
  26. Урок 26. 00:04:23
    4.8. Cleaning Up the Code using EventEmitter
  27. Урок 27. 00:03:54
    4.9. Making Sense Out of the Read Data
  28. Урок 28. 00:15:37
    4.10. Implementing the Create File Command
  29. Урок 29. 00:15:21
    4.11. Defining the Rest of the Commands
  30. Урок 30. 00:11:07
    4.12. Solution - Implementing the deleteFile Function
  31. Урок 31. 00:03:39
    4.13. Solution - Implementing the renameFile Function
  32. Урок 32. 00:11:07
    4.14. Solution - Implementing the addToFile Function
  33. Урок 33. 00:01:07
    4.15. Outro
  34. Урок 34. 00:04:52
    5.1. Introduction
  35. Урок 35. 00:26:26
    5.2. Benchmarking Writing a Million Times to a File
  36. Урок 36. 00:07:58
    5.3. Using Streams Naively in Our Solution
  37. Урок 37. 00:08:59
    5.4. So What Exactly Are Streams
  38. Урок 38. 00:17:53
    5.5. Understanding Different Types of Streams
  39. Урок 39. 00:36:55
    5.6. Fixing the Memory Issue in Our Program
  40. Урок 40. 00:09:49
    5.7. Reading Writable Streams Node.js Docs and Recap
  41. Урок 41. 00:21:36
    5.8. Readable Streams in Action
  42. Урок 42. 00:09:18
    5.9. Selectively Writing Our Data from the Readable Stream
  43. Урок 43. 00:16:57
    5.10. Understanding the Splitting Issue
  44. Урок 44. 00:16:28
    5.11. Implementing the Solution and Resolving the Splitting Issue
  45. Урок 45. 00:08:04
    5.12. Reading Node.js Docs and Recap
  46. Урок 46. 00:23:31
    5.13. Building Our Own Streaming Solution Using Buffers
  47. Урок 47. 00:25:43
    5.14. Understanding Piping
  48. Урок 48. 00:42:29
    5.15. Implementing Our Own Writable Stream
  49. Урок 49. 00:20:02
    5.16. Implementing Our Own Readable Stream
  50. Урок 50. 00:17:27
    5.17. Understanding Duplex and Transform Streams
  51. Урок 51. 00:39:03
    5.18. Creating an EncryptionDecryption Application
  52. Урок 52. 00:26:05
    5.19. Final Notes
  53. Урок 53. 00:12:00
    6.1. Introduction
  54. Урок 54. 00:15:03
    6.2. Understanding MAC Addresses and Switches
  55. Урок 55. 00:15:16
    6.3. Understanding Routers and How the Internet Works
  56. Урок 56. 00:16:29
    6.4. Understanding Networking Layers
  57. Урок 57. 00:24:44
    6.6. Creating a Simple TCP Application in Node.js
  58. Урок 58. 00:13:03
    6.7. Understanding the Transport Layer - TCPUDP
  59. Урок 59. 00:25:19
    6.8. A Networking Scenario in Action
  60. Урок 60. 00:12:03
    6.9. Understanding Port Numbers
  61. Урок 61. 00:29:47
    6.11. Creating a Chat Application PART 1
  62. Урок 62. 00:34:19
    6.12. Creating a Chat Application PART 2
  63. Урок 63. 00:21:35
    6.13. Improving the UI of our Chat App
  64. Урок 64. 00:18:47
    6.14. Identifying Users in the Chat App
  65. Урок 65. 00:04:10
    6.15. Notifying Everyone When Somebody JoinsLeaves the Chat
  66. Урок 66. 00:15:27
    6.17. Some Final Notes About the Chat App
  67. Урок 67. 00:34:31
    6.18. Deploying our Chat App to AWS
  68. Урок 68. 00:40:10
    6.20. Understanding IPv4 Addresses
  69. Урок 69. 00:31:37
    6.21. Understanding DNS
  70. Урок 70. 00:26:45
    6.22. Understanding IPv6 Addresses
  71. Урок 71. 00:26:03
    6.24. Creating an Uploader Application
  72. Урок 72. 00:33:16
    6.25. Taking Care of Backpressures in the Uploader App
  73. Урок 73. 00:20:44
    6.26. Getting the File Names Dynamically in the Uploader App
  74. Урок 74. 00:16:03
    6.27. Displaying the Upload Progress in Our Uploader App
  75. Урок 75. 00:20:06
    6.28. Deploying our Uploader App
  76. Урок 76. 00:32:38
    6.30. Understanding UDP and the Dgram Module
  77. Урок 77. 00:01:31
    6.31. Outro
  78. Урок 78. 00:10:39
    7.1. Introduction
  79. Урок 79. 00:07:01
    7.2. The Idea of HTTP
  80. Урок 80. 00:15:10
    7.3. Creating a Simple HTTP Server in Node
  81. Урок 81. 00:12:52
    7.4. Understanding HTTP Messages, Requests & Responses
  82. Урок 82. 00:16:13
    7.5. Understanding Connection Types
  83. Урок 83. 00:21:11
    7.6. Building our Client and Sending a Request
  84. Урок 84. 00:12:44
    7.7. Sending a Response to the Client
  85. Урок 85. 00:25:36
    7.8. Learning Postman & Testing Our Server with It
  86. Урок 86. 00:28:34
    7.9. Reading Some Docs
  87. Урок 87. 00:20:06
    7.10. Sending an HTTP Request Directly on Top of TCP! PART 1
  88. Урок 88. 00:22:06
    7.11. Sending an HTTP Request Directly on Top of TCP! PART 2
  89. Урок 89. 00:11:20
    7.12. Emulating our HTTP Server Using the Net Module
  90. Урок 90. 00:16:52
    7.13. Understanding Media Types (MIME Types)
  91. Урок 91. 00:21:37
    7.14. Understanding HTTP Methods
  92. Урок 92. 00:15:05
    7.15. Understanding HTTP status codes
  93. Урок 93. 00:18:23
    7.16. Creating a Simple Web Server in Node
  94. Урок 94. 00:22:06
    7.17. Serving a CSS and JavaScript File
  95. Урок 95. 00:07:55
    7.18. Adding Some JSON Routes
  96. Урок 96. 00:13:02
    7.19. Adding a File Upload Route
  97. Урок 97. 00:23:19
    7.20. Creating our Own Little Mini-Express Framework!
  98. Урок 98. 00:15:05
    7.21. Making our Framework More Robust
  99. Урок 99. 00:11:26
    7.22. Getting Ready for Our Next Project
  100. Урок 100. 00:16:16
    7.23. Using Our Framework to Create a Web App
  101. Урок 101. 00:21:16
    7.24. Adding the Login Route
  102. Урок 102. 00:18:19
    7.25. Understanding HTTP Proxies
  103. Урок 103. 00:12:58
    7.26. HTTP is Stateless
  104. Урок 104. 00:13:08
    7.27. Understanding Cookies
  105. Урок 105. 00:18:16
    7.28. Recognizing Users for Future Requests after Logging In
  106. Урок 106. 00:09:15
    7.29. Sending the User’s Info in Profile
  107. Урок 107. 00:23:05
    7.30. Enhancing Our Framework with Middleware Support
  108. Урок 108. 00:18:08
    7.31. Defining the Middleware Functions
  109. Урок 109. 00:25:03
    7.32. Implementing the Create Post, Update User, and Logout Routes
  110. Урок 110. 00:02:54
    7.33. Outro
  111. Урок 111. 00:13:10
    8.1. Introduction
  112. Урок 112. 00:10:50
    8.2. What Is Unix
  113. Урок 113. 00:04:41
    8.3. Why Should We Care About Unix
  114. Урок 114. 00:20:18
    8.4. Setting Up Unix on Windows (WSL) - For Windows Users Only
  115. Урок 115. 00:16:07
    8.5. A First Look at the Child Process Module
  116. Урок 116. 00:40:07
    8.6. Understanding Unix Shells
  117. Урок 117. 00:27:03
    8.7. Demystifying Bash Execution Order Aliases, Functions, Built-ins, and Path
  118. Урок 118. 00:14:20
    8.8. A Few Notes about Unix File Permissions
  119. Урок 119. 00:05:12
    8.9. Sourcing in Bash
  120. Урок 120. 00:38:09
    8.10. Understanding Shell Config Files
  121. Урок 121. 00:24:09
    8.11. What Exactly is a Child Process
  122. Урок 122. 00:14:10
    8.12. Understanding Environment Variables
  123. Урок 123. 00:49:07
    8.13. Understanding Unix File System, Paths & CWD
  124. Урок 124. 00:33:03
    8.14. Understanding Stdout, Stdin, and Stderr
  125. Урок 125. 00:12:09
    8.15. Understanding Pipes and Output Redirection in Bash
  126. Урок 126. 00:17:08
    8.16. Building a Command Line Utility with Node.js
  127. Урок 127. 00:18:30
    8.17. Building Massive Communication App - Node Part
  128. Урок 128. 00:11:06
    8.18. Intro to the C Part
  129. Урок 129. 00:12:33
    8.19. Learning C - Our First App
  130. Урок 130. 00:42:34
    8.20. Learning C - Static Types & Our Memory
  131. Урок 131. 00:31:15
    8.21. Learning C - Memory Allocation
  132. Урок 132. 00:04:37
    8.22. Learning C - Reading the Arguments
  133. Урок 133. 00:50:40
    8.23. Building Massive Communication App - C Part
  134. Урок 134. 00:09:49
    8.24. Only Watch if You Skipped the C Part
  135. Урок 135. 00:21:30
    8.25. Another Way of IPC - Unix Domain Sockets
  136. Урок 136. 00:32:59
    8.26. Understanding Clustering
  137. Урок 137. 00:45:33
    8.27. Clustering in Action
  138. Урок 138. 00:12:12
    8.28. Installing & Building FFmpeg from Source Code
  139. Урок 139. 00:38:00
    8.29. Video Editor App - Setup & Walkthrough
  140. Урок 140. 00:35:48
    8.30. Adding the Upload Route
  141. Урок 141. 00:20:03
    8.31. Quick Intro to FFmpeg and Video Files
  142. Урок 142. 00:00:19
    8.31. River
  143. Урок 143. 00:25:16
    8.32. Making a Thumbnail and Getting the Dimensions After an Upload
  144. Урок 144. 00:04:16
    8.33. Returning the List of Uploaded Videos
  145. Урок 145. 00:23:58
    8.34. Adding a Route for Returning the Video Assets
  146. Урок 146. 00:15:50
    8.35. Adding a Route to Extract the Audio of a Video File
  147. Урок 147. 00:19:21
    8.36. Adding the Resize Route
  148. Урок 148. 00:25:28
    8.37. Scheduling the Resizes
  149. Урок 149. 00:16:32
    8.38. More on Queue-based Processing
  150. Урок 150. 00:19:28
    8.39. Resuming Scheduled Resize Operations Upon App Restart
  151. Урок 151. 00:31:17
    8.40. Running Our Application in Cluster Mode
  152. Урок 152. 00:07:41
    8.41. Refactor from Cpeak to Express in Less than 20 Minutes!
  153. Урок 153. 00:22:43
    8.42. Outro
  154. Урок 154. 00:24:04
    9.1. Introduction
  155. Урок 155. 00:29:40
    9.2. How Does a Lossless Compression Work
  156. Урок 156. 00:21:01
    9.3. Lossy Compression
  157. Урок 157. 00:30:50
    9.4. Gzip, Brotli and Deflate
  158. Урок 158. 00:18:12
    9.5. Compression in HTTP
  159. Урок 159. 00:06:00
    9.6. Compression vs. Minification
  160. Урок 160. 00:24:13
    9.7. Deploying Compression onto Our Apps
  161. Урок 161. 00:11:38
    9.8. Final Notes
  162. Урок 162. 00:12:23
    10.1. Introduction
  163. Урок 163. 00:11:16
    10.2. Guide for Skilled Multi-Threaded Developers
  164. Урок 164. 00:39:59
    10.3. What Exactly Is a Thread
  165. Урок 165. 00:07:50
    10.4. How to Monitor Threads on Your Operating System
  166. Урок 166. 00:09:00
    10.5. Understanding CPU Usage
  167. Урок 167. 00:23:25
    10.6. Spawning Threads
  168. Урок 168. 00:33:28
    10.7. Thread Communication through Message-Passing
  169. Урок 169. 00:11:58
    10.8. Introduction to Our CPU-Intensive Program
  170. Урок 170. 00:23:03
    10.9. Enhancing Performance with Multi-Threading
  171. Урок 171. 00:30:41
    10.10. Handling CPU-Intensive Operations in an HTTP Server
  172. Урок 172. 00:06:19
    10.11. isMainThread
  173. Урок 173. 00:10:41
    10.12. CPU-Intensive vs. IO-Intensive
  174. Урок 174. 00:18:47
    10.13. Examining a Crypto-Heavy Multi-Threaded App
  175. Урок 175. 00:17:46
    10.14. Node.js Thread Pool
  176. Урок 176. 00:30:52
    10.15. Developing a Thread Pool From Scratch
  177. Урок 177. 00:11:46
    10.16. Event Loop Utilization and Main Thread
  178. Урок 178. 00:21:47
    10.17. Keep the Main Thread Light with Batch Processing
  179. Урок 179. 00:06:01
    10.18. Effortlessly Expanding Our Thread Pool Capabilities
  180. Урок 180. 00:07:39
    10.19. Don’t Block the Worker Pool!
  181. Урок 181. 00:35:11
    10.20. Handling Billions of HTTP Requests
  182. Урок 182. 00:19:29
    10.21. Communication Through Shared Memory
  183. Урок 183. 00:16:50
    10.22. ArrayBuffers, SharedArrayBuffers, and TypedArrays
  184. Урок 184. 00:17:26
    10.23. Race Conditions
  185. Урок 185. 00:18:11
    10.24. Understanding Atomic Operations
  186. Урок 186. 00:22:48
    10.25. Understanding Mutual Exclusion
  187. Урок 187. 00:21:03
    10.26. Deadlocks
  188. Урок 188. 00:21:03
    10.27. Enhancing Performance Through Shared Memory
  189. Урок 189. 00:43:33
    10.28. Native Multi-Threading with CC++ Addons
  190. Урок 190. 00:37:12
    10.29. A Deeper Look at the Event Loop PART 1
  191. Урок 191. 00:34:19
    10.30. A Deeper Look at the Event Loop PART 2
  192. Урок 192. 00:03:00
    10.31. Outro
  193. Урок 193. 00:39:47
    11.1. Introduction
  194. Урок 194. 00:12:08
    11.2. Introduction to Symmetric Encryption
  195. Урок 195. 00:26:47
    11.3. The Unbreakable Encryption - OTP From Scratch
  196. Урок 196. 00:32:02
    11.4. How AES Encryption Works
  197. Урок 197. 00:42:47
    11.5. Understanding AES Modes
  198. Урок 198. 00:17:14
    11.6. What It Takes to Break AES
  199. Урок 199. 00:07:05
    11.7. What About Brute-Forcing OTP
  200. Урок 200. 00:07:49
    11.8. History of AES
  201. Урок 201. 00:44:10
    11.9. Understanding Hashing
  202. Урок 202. 00:10:53
    11.10. SHA-256 From Scratch
  203. Урок 203. 00:22:23
    11.11. What It Takes to Break SHA-256
  204. Урок 204. 00:30:30
    11.12. Message Authentication Codes
  205. Урок 205. 00:23:56
    11.13. Understanding Key Derivation Functions
  206. Урок 206. 00:40:06
    11.14. Building a File Encryption Application
  207. Урок 207. 00:17:30
    11.15. Introduction to Asymmetric Cryptography
  208. Урок 208. 00:08:30
    11.16. A Note about OpenSSL & Setup
  209. Урок 209. 00:28:53
    11.18. RSA in Action
  210. Урок 210. 00:33:20
    11.19. Understanding RSA
  211. Урок 211. 00:33:39
    11.20. Implementing RSA From Scratch
  212. Урок 212. 00:18:21
    11.21. Understanding Digital Signatures
  213. Урок 213. 00:25:28
    11.22. Digital Certificates
  214. Урок 214. 00:27:31
    11.23. Manually Verifying an HTTPS Certificate
  215. Урок 215. 00:32:53
    11.24. Setting Up HTTPS from Scratch
  216. Урок 216. 00:39:55
    11.25. Understanding TLS
  217. Урок 217. 00:31:38
    11.26. Diffie-Hellman and Elliptic Curve Key Exchange
  218. Урок 218. 00:18:04
    11.27. Elliptic Curve Digital Signatures
  219. Урок 219. 00:12:12
    11.28. RSA, DH and EC Security
  220. Урок 220. 00:11:00
    11.30. Outro
  221. Урок 221. 00:28:43
    12.2. How to Securely Store User Passwords