Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Think Like A Software Engineer
Think Like A Software Engineer
Episode 1: Thinking About Time Complexity (8:04)
Episode 2: Dealing With Tricky Errors (9:14)
Episode 3: Getting to the Bottom of Things (7:50)
Episode 4: English Code Isn't English (5:24)
Episode 5: How Arrays Work (9:10)
Episode 6: The Constraints of the Computer (13:07)
Episode 7: Artificial Intelligence (3:04)
Episode 8: Hacking the Paywall (4:13)
Episode 9: What on Earth is Wrong?! (4:51)
Episode 10: Learning Rust Part #1 (9:23)
Episode 11: Learning Rust Part #2 (6:44)
Episode 12: How to Find Stuff (6:09)
Epsiode 13: Debugging a Real Website Error (10:27)
Episode 14: How to Isolate the Problem (4:02)
Episode 15: Automate Everyday Tasks Without Code (7:35)
Episode 16: How to Use Stack Overflow (11:58)
Episode 17: Reverse-Engineering Documentation (7:47)
Episode 18: Installing Stuff! (9:38)
Episode 19: Gremlins! (3:37)
Episode 20: Google Tips (5:48)
Episode 21: Know Thy Data Types! (10:44)
Episode 22: Third-Party Duds (6:00)
Episode 23: End Early (6:02)
Episode 24: Data Dive (6:07)
Episode 25: Tradeoffs (3:53)
Episode 26: Converting the World into Code (7:16)
Episode 27: How to Contribute to Open Source (9:23)
Episode 28: How to Contribute to Open Source Part #2 (5:16)
Episode 29: How to Contribute to Open Source Part #3 (4:45)
Episode 30: JavaScript Hoisting (5:37)
Episode 31: console.table (3:29)
Episode 32: The Most Misunderstood Error Message (4:49)
Episode 33: Whiteboarding Algorithms (12:45)
Episode 34: The Speedy Hash Table (10:03)
Episode 35: Programs That Hang (6:13)
Episode 36: Broken Images (3:41)
Episode 37: Looping and Deleting (6:28)
Episode 38: Learning React Part #1 (11:19)
Episode 39: Learning React Part #2 (13:18)
Episode 40: Learning React Part #3 (10:01)
Episode 41: The Missing Return (3:09)
Episode 42: Use Strict (2:43)
Episode 43: How to Quit (5:59)
Episode 44: Off By One (4:29)
Episode 45: Unmodified Objects (6:09)
Episode 46: Count the Steps (4:57)
Episode 47: Elegant Hashes (4:36)
Episode 48: Computer-Based Technical Interviews #1 (8:42)
Episode 49: Computer-Based Technical Interviews #2 (10:24)
Episode 50: Edge Cases (6:01)
Episode 51: Debugging Some Python (8:58)
Episode 52: Claw Machines and Coding (4:11)
Episode 53: Are You Multilingual? (9:38)
Episode 54: JavaScript Equality (3:25)
Episode 55: Isolating a Problem: In Action (9:12)
Episode 56: Reserved Keywords (4:33)
Episode 57: Thinking About Space (6:58)
Episode 58: Unexpected Errors (5:38)
Episode 59: Writing Tests (8:36)
Episode 60: A Testing Gotcha (4:44)
Episode 61: Testing the Sad Path (4:14)
Episode 62: Jumping Into a New Technology (9:50)
Episode 63: Inverted Thinking (4:18)
Episode 64: Short Circuits with Return (5:00)
Episode 65: Toggle Logic (3:28)
Episode 66: The Errant Semicolon (5:23)
Episode 67: Keeping Current (3:34)
Episode 68: How to Read a Programming Book (4:20)
Episode 69: Inputs, Outputs, and Assembly (8:31)
Episode 70: When JavaScript Goes Wrong in the Browser (3:43)
Episode 71: Writing Complex Code (6:30)
Episode 72: But It Works On My Machine! (5:13)
Episode 73: Same Data, Different Formats (3:57)
Episode 74: The Matrix (8:29)
Episode 75: Finding Text With Grep (6:42)
Episode 76: Truthy or Falsy? (9:43)
Episode 77: Know Your Text Editor (4:35)
Episode 78: Naming Variables (4:31)
Episode 79: Save Your Work! A Quickstart Guide on Github (5:45)
Episode 80: Exploring Code with a Debugger (6:20)
Episode 81: Debugging With The Debugger (7:11)
Episode 82: Sorting Algorithms (4:34)
Episode 83: Working With Third-Party Libraries (6:18)
Episode 84: Don't Do This... Or Else (2:45)
Episode 85: Big O Notation (5:57)
Episode 86: The Debugging Attitude (3:57)
Episode 87: Become a Text Editor Power User: Multi-cursor Selection (5:09)
Episode 88: Become a Text Editor Power User: Code Snippets (4:54)
Episode 89: Become a Text Editor Power User: Keyboard Shortcuts (5:33)
Episode 90: Making a Great README (6:34)
Episode 91: Working with Markdown (6:34)
Episode 92: Condensing Code (8:41)
Episode 93: Sharing Code With Others (7:19)
Episode 94: Google the Error Message: Part #1 (5:31)
Episode 95: Google the Error Message: Part #2 (7:22)
Episode 96: Logic Trick: Verify a Value by Changing It (8:57)
Episode 97: Logic Trick: Short Circuit With && (5:56)
Episode 98: Logic Trick: Or Equals (7:07)
Episode 99: Dangers of Copy and Paste (4:38)
Episode 100: Binary Numbers (8:05)
Episode 101: How Do Hex Codes Work? (6:58)
Episode 102: Integer Issues (4:56)
Episode 103: Mistaken Equality Checks (4:35)
Episode 104: User-Input Data Types (6:11)
Episode 105: Autosave Yourself From Frustration (4:05)
Episode 106: Debugging Someone Else's Software (4:10)
Episode 107: Prettier (3:18)
Episode 108: Prettier + Autosave (5:43)
Episode 109: Installation Issues (4:50)
Episode 110: Interview Question: FizzBuzz (7:11)
Episode 111: Interview Question: Reverse a String (4:31)
Episode 112: Interview Question: Palindrome (4:23)
Episode 113: Interview Question: Prime Number (12:35)
Episode 114: Interview Question: Fibonacci Numbers (11:37)
Episode 115: Interview Question: Duplicate Values (10:16)
Episode 116: Disconnected Code (6:32)
Episode 117: Visualizing Others' Code (7:43)
Episode 118: Reading Files (5:22)
Episode 119: CSV Files (7:52)
Episode 120: Writing to Files (5:44)
Episode 121: Languages are Arbitrary (8:09)
Episode 122: Refactoring: Naming Values (7:25)
Episode 123: Tinkering (8:30)
Episode 124: Decomposing a Problem (9:17)
Episode 125: Refactoring: Descriptive Variable Names (8:46)
Episode 126: Refactoring Safely (9:53)
Episode 127: Refactoring: Explaining What Code Does (4:22)
Episode 128: Array Pattern: Mapping (8:24)
Episode 129: Array Pattern: Reducing (7:12)
Episode 130: Array Pattern: Selecting (4:14)
Episode 131: Terminal Basics Part #1: Navigating Folders (6:51)
Episode 132: Terminal Basics Part #2: Exploring Files (6:29)
Episode 133: Terminal Concepts: Piping (5:29)
Episode 134: Terminal Concepts: Redirecting Output (6:19)
Episode 135: How the Web Works: Part #1 (9:43)
Episode 136: How the Web Works: Part #2 (6:31)
Episode 137: How the Web Works: What is Back-End Web Development? (8:51)
Episode 138: How the Web Works: What is Front-End Web Development? (7:54)
Episode 139: Getting A Second Error Message (5:18)
Episode 140: Benchmarking Speed (10:51)
Episode 141: Error Message: Unexpected End of Input (4:42)
Episode 142: How to Find That Missing or Extra Parenthesis (5:28)
Episode 143: Error Message: Wrong Number of Arguments (6:38)
Episode 144: OOP #1: Why OOP? (8:02)
Episode 145: OOP #2: Classes and Instances (14:06)
Episode 146: OOP #3: The Constructor (6:00)
Episode 146: OOP #3: The Constructor
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock