Course Curriculum
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Bruno's Request (0:38)
- Introduction to SSH (5:04)
- SSH Command (7:12)
- Optional: Digital Ocean Set Up
- Quick Note: SSH Key In Previous Video
- Resources: SSH Command
- Saving The Day Through SSH (6:33)
- Optional: Digital Ocean Server
- How SSH Works (1:29)
- Symmetric Encryption (4:21)
- Asymmetric Encryption (6:46)
- Resources: Asymmetric Encryption
- Hashing (6:54)
- Passwords Or SSH? (3:26)
- SSH Into A Server (13:14)
- Quick Note: SSH Into A Server
- Resources: SSH Into A Server
- Exercise: Set Up SSH on Github (3:11)
- Extra Solution: Set Up SSH on Github
- Solution: Set Up SSH on Github (4:57)
- Optional: Contributing To Open Source Projects
- Section Summary (2:48)
- Learning Guideline
- Web Developer Monthly
- Let's Have Some Fun (+ Free Resources)
Available in
days
days
after you enroll
- Bruno's Request (1:18)
- Introduction to Performance Part 1 (3:41)
- 3 Keys To Performance (4:33)
- Network Performance (4:45)
- Image File Formats (4:45)
- Resources: Image File Formats
- Image Optimizations (7:04)
- Image Optimizations 2 (12:24)
- Exercise: #1 - Media Queries
- Delivery Optimizations (4:47)
- Resources: Delivery Optimizations
- Exercise: #2 - Network Optimizations (4:48)
- Solution: #2 - Network Optimizations (5:11)
- Critical Render Path Introduction (5:09)
- Critical Render Path 1 (6:01)
- Critical Render Path 2 (17:26)
- Critical Render Path 3 (13:43)
- Resources: Async + Defer
- Critical Render Path 4 (3:58)
- Exercise: #3 - Critical Render Path
- Exercise: #4 - Keiko Corp Website (4:00)
- Resources: Keiko Corp Website
- Solution: Keiko Corp Website (9:22)
- Optional: Resource Prefetching
- Resources: Performance Tools
- HTTP/2 (2:43)
- Resources: HTTP/2
- HTTP/3
- Section Summary (2:03)
- Unlimited Updates
Available in
days
days
after you enroll
- Angular vs React vs Vue vs Svelte (6:41)
- IMPORTANT: Thinking Like A Senior Developer (2:12)
- Optional Section
- Bruno's Request (1:26)
- Section Overview (2:21)
- Deep Dive Into This Topic
- Updated Code For This Section
- Introduction to React & Robofriends Build
- Introduction To Redux And Webpack (2:49)
- State Management (7:12)
- Why Redux? (11:39)
- Updated Code for this Section
- Installing Redux (5:45)
- Redux Toolkit (2:02)
- Redux Toolkit Example
- Redux Actions And Reducers (13:44)
- Redux Store And Provider (8:35)
- Redux connect() (16:31)
- Redux Middleware (8:45)
- Redux Async Actions (29:27)
- Redux Project Structures (4:54)
- Project Files - Redux
- Popular Tools For React + Redux (7:41)
- Module Bundlers (6:48)
- Modern Build Systems in 2024
- Converting to Vite@Latest (10:32)
- Introduction To Webpack (2:45)
- Update: Babel 7 + ESlint + Webpack 5
- Webpack (38:01)
- Updating Libraries: Babel 7 + ESlint (6:35)
- Quick Fix: Babel 7 Plugins
- Resources: Webpack Configurator
- Parcel (9:19)
- Parcel v2!
- Section Summary (5:20)
Available in
days
days
after you enroll
- Bruno's Request (1:06)
- Section Overview (2:02)
- Updated Code For This Section
- Optimizing Code (12:15)
- Code Splitting Introduction (5:54)
- Exercise: #1 - Code Splitting
- Code Splitting Part 1 (14:27)
- ES2020: Dynamic import()
- Code Splitting Part 2 (12:32)
- Code Splitting Part 3 (13:29)
- Code Splitting Part 4 (2:29)
- Exercise: #2 - Code Splitting
- Solution: React.lazy() Code Splitting (13:12)
- React Performance Optimizations (10:36)
- Resources: React Performance
- React Performance Optimizations 2 (19:26)
- Resources: React Performance 2
- Optimizing Code Review (3:29)
- Resources: Tree Shaking 101
- Progressive Web Apps (12:54)
- Opt-In Service Worker in CRA
- Resources: Progressive Web Apps
- Progressive Web Apps Examples (6:15)
- PWA - HTTPS (6:11)
- Resources: PWA - HTTPS
- PWA - App Manifest (6:12)
- Resources: PWA - App Manifest
- PWA - Service Workers (13:15)
- Update for CRA v4 and React 17+
- PWA - Final Thoughts (2:03)
- Exercise: #3 - Your Own PWA
- Quick Note: Upcoming Video
- Deploying Our React App (10:18)
- Service Worker Update (6:05)
- Solution Part 1 - PWA (8:52)
- Solution Part 2 - PWA (10:09)
- Solution Files - PWA
- Quick Note: Upcoming Video
- OPTIONAL: Converting Our App To PWA (10:43)
- Deploying your PWA to the App Store
- Section Summary (2:36)
- Course Check-In
Available in
days
days
after you enroll
- Bruno's Request (1:10)
- Section Overview (6:21)
- Updated Code For This Section
- Types of Tests (2:58)
- Testing Libraries (15:28)
- Note: The Next Videos
- Unit Tests (2:42)
- Integration Tests (2:46)
- Automation Testing (4:27)
- Final Note On Testing (2:56)
- Setting Up Jest (11:29)
- Our First Tests (11:10)
- Writing Tests (5:31)
- Quick Note: Upcoming API Endpoint + ES6 Modules
- Asynchronous Tests (10:18)
- Asynchronous Tests 2 (11:41)
- Resources: Jest Cheat Sheet
- Mocks and Spies (12:50)
- Exercise: #1 - Testing With Jest
- Enzyme vs React Testing Library
- Introduction To Enzyme (14:29)
- Resources: Enzyme
- Quick Note: Empty Snapshots
- Snapshot Testing (9:29)
- Snapshot Testing + Code Coverage (4:54)
- Exercise: #2 - Testing Stateful Components
- Testing Stateful Components (11:16)
- Quick Recap (2:35)
- Exercise: #3 - Testing Connected Components
- Testing Connected Components (23:50)
- Testing Connected Components 2 (3:35)
- Exercise #4 - Testing All Components
- Testing Reducers (14:57)
- Testing Actions (18:27)
- Exercise: #5 - Final Tests
- Note: What Test is Best?
- Section Summary (4:11)
- Implement a New Life System
Available in
days
days
after you enroll
- Bruno's Request (1:00)
- Section Overview (1:27)
- Dynamic vs Static Typing (11:50)
- Weakly vs Strongly Typed (3:18)
- Static Typing in Javascript (9:45)
- Typescript Compiler (3:41)
- Resources: Installing Node.js
- Resources: Installing TypeScript Compiler
- TypeScript (11:33)
- Resources: TypeScript In Your Editor
- TypeScript 2 (3:16)
- TypeScript 3 (7:24)
- Resources: TypeScript Types
- TypeScript 4 (5:38)
- TypeScript 5 (6:39)
- TypeScript 6 (4:48)
- Resources: Type Vs Interface
- TypeScript 7 (3:34)
- Resources: Type Assertion
- TypeScript 8 (6:04)
- TypeScript 9 (1:21)
- TypeScript 10 (1:23)
- DefinitelyTyped (5:57)
- Update: Create React App with TypeScript (4:02)
- 2 Ways To TypeScript
- Just Watch [Old Way] - TypeScript In Robofriends (7:11)
- Just Watch [Old Way] - TypeScript In Robofriends 2 (14:00)
- TypeScript In Monsters Rolodex
- Final Exercise: Adding TypeScript
- A Little Joke (0:49)
- Section Summary (3:27)
Available in
days
days
after you enroll
- Bruno's Request (0:58)
- Section Overview (7:53)
- CSR vs SSR (5:33)
- Server Side Rendering React (10:55)
- Note: SSR In React
- CSR vs SSR Part 2 (11:18)
- SSR React Libraries (3:57)
- Static vs SSR vs CSR: Gatsby.js vs Next.js vs React.js (7:09)
- Quick Note: Upcoming Videos
- Setting Up Next.js (7:56)
- Next.js Pages (7:35)
- Client Side Routing (2:25)
- Exercise: #1 - Client Side vs Server Side Routing
- Shared Components (2:14)
- Deep Dive Into NextJS
- Dynamic Apps with Next.js (15:31)
- Exercise: #2 - Updated Next.js Features
- Deploying Next.js Apps (0:52)
- Updating To Latest Version Of Next.js (3:21)
- Exercise: Updating To Latest Version Of Next.js
- Exercise: #3 - SSR Robofriends
- Understand JavaScript SEO
- Section Summary (7:42)
Available in
days
days
after you enroll
- Bruno's Request (1:14)
- Section Overview (4:06)
- Star Of Security (1:02)
- Exercise: Imposter Syndrome (2:55)
- Injections (19:42)
- Exercise: #1 - Injections
- Exercise: #2 - Security Files
- Resources: Installing PostgreSQL
- Note: NPM Built In Audit
- 3rd Party Libraries (10:51)
- Logging (14:02)
- HTTPS Everywhere (6:21)
- XSS + CSRF (20:41)
- Exercise: #3 - XSS + CSRF
- Resources: XSS + CSRF
- Code Secrets (9:50)
- Secure Headers (5:35)
- Resources: Secure Headers
- Access Control (6:31)
- Data Management (10:54)
- Resources: Storing Passwords
- Don't Trust Anyone (2:53)
- Authentication (3:09)
- Exercise: #4 - Optional Hacking
- Resources: Personal Security
- Section Summary (3:23)
Available in
days
days
after you enroll
- Bruno's Request (1:30)
- Section Overview (3:56)
- Quick Note: Windows Users
- Quick Note: Updated API
- Setting Up Your Environment (27:01)
- Exercise: #1 - SmartBrain App
- Optional: CWD - Installing PostgreSQL (6:53)
- How To Analyze Code (16:37)
- Exercise: #2 - Analyze Code
- Exercise: #3 - Multiple Face Detection
- Resources: New Feature Commit
- Solution: #3 - Multiple Face Detection (17:20)
- Section Summary (1:43)
- Customizing Your App
Available in
days
days
after you enroll
- Bruno's Request (1:09)
- Section Overview (4:47)
- Updated Code For This Section
- Docker Containers (10:58)
- Installing Docker (2:24)
- Resources: Installing Docker
- Dockerfile (8:37)
- Resources: Dockerfile
- Docker Commands (5:09)
- Dockerfile 2 (8:03)
- Exercise: #1 - Your First Docker Container
- Quick Note: Docker Compose
- Docker Compose (13:15)
- Resources: Docker Compose Commands
- Docker Compose 2 (3:56)
- Resources: Docker Volumes
- Docker Compose 3 (1:54)
- Docker Compose 4 (13:47)
- Resources: PostgreSQL With Docker
- Docker Compose 5 (2:09)
- Docker Compose 6 (12:49)
- Resources: init.db File
- Docker Compose 7 (5:14)
- Exercise: #2 - Dockerize SmartBrain App
- Project Files - Docker
- Update: Docker Networks
- Section Summary (4:32)
Available in
days
days
after you enroll
- Bruno's Request (1:27)
- Section Overview (6:31)
- Quick Note About Next Video
- Introduction To Databases (10:54)
- Redis Version Updates and Playground
- Installing Redis (4:29)
- Resources: Installing Redis
- Redis Commands (5:57)
- Redis Data Types (1:59)
- Redis Hashes (2:00)
- Redis Lists (3:55)
- Redis Sets + Sorted Sets (6:11)
- Section Summary (3:00)
Available in
days
days
after you enroll
- Section Overview (2:20)
- Cookies vs Tokens (11:18)
- Resources: Cookies vs Tokens
- What We Are Building (4:54)
- JWT (3:24)
- Exercise: #1 - JWT
- Project Goals (5:19)
- Exercise: #2 - Code Along
- Profile Icon (13:53)
- Resources: Profile Icon
- Profile Dropdown (12:58)
- Resources: setState() Callback
- Profile Styling (11:04)
- Profile Modal 1 (4:24)
- Profile Modal 2 (22:43)
- Profile Modal 3 (12:32)
- Profile Modal 4 (7:09)
- Resources: HTML Entities
- Updating Profile 1 (9:31)
- Resources: Updating Profile
- Updating Profile 2 (10:09)
- Updating Profile 3 (8:13)
- User Authentication (15:10)
- Sending The JWT Token (16:20)
- Quick Note: NPM Redis
- Adding Redis (6:48)
- Exercise: #3 - Adding Redis to Docker Compose
- Solution: #3 - Adding Redis To Docker Compose (5:29)
- Storing JWT Tokens (8:16)
- Retrieving Auth Token (7:17)
- Client Session Management (14:17)
- Resources: Bearer Token
- Session Sign In (10:31)
- Authorization Middleware (14:36)
- Fixing A Bug (2:45)
- Reviewing Our Code (2:59)
- Updating Our App (4:09)
- Optional: Why bcrypt-nodejs? (1:59)
- Section Summary (7:24)
- Exercise: #4 - Improving SmartBrain
Available in
days
days
after you enroll
- Bruno's Request (1:30)
- Section Overview (6:27)
- Updated Code For This Section
- Amazon Web Services (11:22)
- Deep Dive Into AWS
- Monolithic vs Micro Services (2:58)
- Amazon Lambda (6:02)
- Amazon Lambda Dashboard (5:50)
- Quick Note: AWS Lambda
- Serverless (5:29)
- Serverless 2 (5:07)
- IAM (4:37)
- Resources: IAM
- Deploying A Function (11:26)
- Deploying A Function 2 (7:22)
- Deploying A Function 3 (13:07)
- Quick Bug Fix (1:26)
- Section Summary (3:11)
- Exercise: Your Own Lambda Function
Available in
days
days
after you enroll
- Bruno's Request (1:10)
- Section Overview (0:56)
- CDNs (6:39)
- GZIP (5:30)
- Database Scaling (11:23)
- Caching 1 (6:57)
- Caching 2 (8:16)
- Caching 3 (11:31)
- Resources: Caching
- Load Balancing (6:10)
- Nginx 1 (6:33)
- Exercise: Load Testing Your Load Balancer
- Nginx 2 (15:07)
- Resources: Nginx
- Section Summary (5:16)
Available in
days
days
after you enroll
- Bruno's Request (1:33)
- Section Overview (1:43)
- Updated Code For This Section
- Continuous Integration, Delivery, Deployment (10:10)
- Deep Dive into CI/CD
- Building Great Software (7:11)
- Resources: CI Tools
- CircleCI (16:48)
- Continuous Integration 1 (10:12)
- Continuous Integration 2 (9:12)
- Exercise: Your Own CI Flow
- Building Great Software 2 (6:04)
- Section Summary (1:54)
Available in
days
days
after you enroll
Available in
days
days
after you enroll
Available in
days
days
after you enroll
Available in
days
days
after you enroll