Background Image

Think Like A Software Engineer

Become a true software engineer!

Learning to code is much more than learning new concepts and syntax. It's a whole new mindset. To help you learn that mindset, we create a weekly video called Think Like a Software Engineer. These videos aren't about specific technologies, but cover the meta aspects of software engineering. You can now be explictly taught a way of thinking that most developers only pick up after years of experience. Our founder and CEO, Jay Wengrow, creates and releases a new episode each week.
  Video Title Description  
49 Product Computer-Based Technical Interviews #2 Continuing from Episode #48, in this video we demo how to do the "debugger" process from your text editor. This method isn't just useful for interviews; it's a great way to reason about any bit of complex code. Watch Now
48 Product Computer-Based Technical Interviews #1 One common form of the software engineering job interview asks the candidate to use a computer to write an algorithm. Here's my #1 recommended strategy for nailing this. Watch Now
47 Product Elegant Hashes In this lesson, we'll discover how using the right data structure can lead to more elegant code. Watch Now
46 Product Count the Steps The efficiency of your code is based on how many steps it takes to run. But how do you figure that out? Here's an easy little trick for that. Watch Now
45 Product Unmodified Objects One thing that often trips up new coders is the confusion around the modification of objects. Learn how to debug instances of where you think you've changed something, but really haven't. Watch Now
44 Product Off By One One of the most common bugs when dealing with loops is the Off-By-One bug. When you know to look for it, you can save yourself a lot of pain. Watch Now
43 Product How to Quit If a program you're running isn't working the way you want it to, that's frustrating. But if you can't even quit that program, that's even more frustrating. Learn how to quit even when your computer is resisting at all costs. Watch Now
42 Product Use Strict This simple JavaScript best practice can prevent a lot of heartache down the road! Watch Now
41 Product The Missing Return When a function you wrote doesn't work as intended, but you also don't get any error messages, where is the first place to look to uncover the problem? Learn about the very first step to take in debugging this kind of problem. In many cases, it's the only step you'll need! Watch Now
40 Product Learning React Part #3 In our third installment of learning React, we learn about "passing props". Watch Now
39 Product Learning React Part #2 In our second installment of learning React, we cover the overview of the React framework. Watch Now
38 Product Learning React Part #1 ReactJS is a popular JavaScript framework - it's the coolest kid on the block as far as JS frameworks go. But I've never had the opportunity to use it. So, I've begun to teach myself React, and I've recorded my entire learning process in realtime. This way, you can get a sense of how software engineers learn new things. Note: This is not a React tutorial! You might learn some React along the way, but it's really a video on how to follow a tutorial and read documentation. Watch Now
37 Product Looping and Deleting It makes good sense to use a loop to check each item from a list, and delete an item if it doesn't belong. But sometimes, good sense doesn't work. Watch Now
36 Product Broken Images Have you ever dealt with broken images on your webpage? Learn how to debug those in a snap. Watch Now
35 Product Programs That Hang Did you ever have a program that runs but does... nothing? The program doesn't quit, there are no error messages, but nothing seems to be happening. It's actually easy to debug this once you know what to look for. Watch Now
34 Product The Speedy Hash Table The hash table is a common data structure that is well known for its ability to store data that comes in pairs. But did you know that you can also use a hash table to dramatically increase the speed of your code? Watch Now
33 Product Whiteboarding Algorithms Learn how to "whiteboard" algorithms - a great tool for designing algorithms as well as a technique often tested for in technical interviews. Watch Now
32 Product The Most Misunderstood Error Message Some error messages are easy to understand, and some are not. But there's one error message in particular that I find to be the most misunderstood by new developers. Watch Now
31 Product console.table Sometimes, it's the little tricks that can make debugging less of a chore and more of a joy. Learn how JavaScript's console.table can help you view certain data in cool, crisp way. Watch Now
30 Product JavaScript Hoisting We all know that the computer processes the code we write from top to bottom. Except when it doesn't, and all our code goes kablooey. Watch Now
29 Product How to Contribute to Open Source Part #3 In the final installment of this three-part mini-series, we look at what happens when a pull request is approved. Watch Now
28 Product How to Contribute to Open Source Part #2 Continuing from Episode #27, we make our actual pull request. Watch Now
27 Product How to Contribute to Open Source For most open source software projects, anyone can contribute and make the software better. But how does that work, exactly? Watch Now
26 Product Converting the World into Code Every day, software engineers model real-world experiences using code. But how do you convert the physical world into numbers and arrays? Watch Now
25 Product Tradeoffs As a software engineer gains more experience, they come to realize that there is never one "best" solution to a problem. Each solution comes with tradeoffs, and it takes skill to determine the best solution for a given problem. Watch Now
24 Product Data Dive Working with nested data doesn't have to be a crap shoot. This tip will help you navigate complex data structures with ease. Watch Now
23 Product End Early In some cases, writing your code out of order can actually prevent a ton of frustration down the road. Watch Now
22 Product Third-Party Duds Third-party libraries can be really useful, except when they aren’t. (Sometimes, all they provide is grief and frustration!) Here are some tips for helping you avoid the duds. Watch Now
21 Product Know Thy Data Types! A software engineer is always thinking about their code in terms of data types. And that's because if you don't know what data type you're dealing with, sneaky bugs can trip you up. Watch Now
20 Product Google Tips Even the most experienced developer relies on Google while coding. But sometimes, finding exactly what you need isn't easy. Here are some pro tips that can help you find the most relevant results. Watch Now
19 Product Gremlins! Is it possible to have a bug in your code that has no logical reason? Maybe something's just wrong with your computer? Let’s have a conversation about gremlins. Watch Now
18 Product Installing Stuff! I don't know about you, but when I first started out coding, I had a terribly difficult time downloading programming languages and tools. I've found that so many people are deterred from learning to code simply because they can't get past the installation process! But if you know what you're doing, installing stuff doesn't have to be that hard. (Most of the time, anyway...) Watch Now
17 Product Reverse-Engineering Documentation There's a trick that experienced software engineers use when reading technical documentation, and it can save you hours of time. Watch Now
16 Product How to Use Stack Overflow If you've ever Googled for coding help, you've probably found the Stack Overflow website. But sometimes, there are tons of answers to a given question! How do you know which one is right? Watch Now
15 Product Automate Everyday Tasks Without Code With the software engineer mindset, you can actually automate day-to-day tasks without even using code. Watch how I automatically populate a Google spreadsheet in real-time with Slack posts that I want to save for later. It's fun, and something that you can get started with right away even if you don't know how to code (yet). Watch Now
14 Product How to Isolate the Problem When something goes wrong, isolating the problem is one of the most important techniques you'll need if you want to fix it. In this video, we use a powerful analogy from IT that will help you learn to systematically isolate any bug. Watch Now
13 Product Debugging a Real Website Error I received an alert that there was an error on my website. So instead of just fixing it, I recorded myself fixing it so you can see for yourself how a software engineer fixes real bugs! Watch Now
12 Product How to Find Stuff When dealing with lots of code, how do you remember what you put where? Even tougher, when dealing with someone else's code, how do you figure out where they put everything? You can actually find anything you need with this one, weird trick. Actually, it's not weird at all. But it's really simple! Watch Now
11 Product Learning Rust Part #2 This is the continuation of my previous week's attempt to teach myself a new programming language on the spot. Watch Now
10 Product Learning Rust Part #1 In which I - unscripted - attempt to teach myself a brand new programming language on the spot. Do I succeed? Watch Now
9 Product What on Earth is Wrong?! You probably know that attention to detail is really important for a software engineer. But perhaps you don't realize to what extreme... Watch Now
8 Product Hacking the Paywall Here, we hack someone else's website to get past an annoying paywall. (For educational purposes only.) Watch Now
7 Product Artificial Intelligence Did you ever wonder how artificial intelligence works? AI is a very broad topic, but in this video, I give you a glimpse into how a software engineer can get a computer to mimic human intelligence. Watch Now
6 Product The Constraints of the Computer Here I use a pattern known as "array mapping" to discuss what is probably the most important aspect of computer programming - the ability to talk to a computer. Being able to talk to a computer requires you to know what the computer understands, and what it doesn't understand. Watch Now
5 Product How Arrays Work Understanding how a computer's memory works can totally flip the way you understand the efficiency of your code. This is key to successful software engineering. Watch Now
4 Product English Code Isn’t English Code doesn't always translate into English precisely the way you think it might. By understanding how the computer actually understands your code, you'll be able to write better code. Watch Now
3 Product Getting to the Bottom of Things My friend was asked this problem when interviewing for a software engineering role at Google. Would you have been able to solve it? Learn a special technique for analyzing some of the trickiest questions. Watch Now
2 Product Dealing with Tricky Errors Many times, error messages pinpoint the exact line of code that is buggy. Sometimes, though, an error message may seem to pick on a line that is perfectly valid. Learn how to understand what these tricky error messages are telling you. Watch Now
1 Product Thinking About Time Complexity You can write code in two different ways to accomplish the same thing, yet one version is faster than the other. Learn how to begin to analyze the speed of your code. Watch Now
Subscribe

Get the latest Think Like a Software Engineer video as soon as it comes out! Each Friday, we'll email you the latest episode so you can level up quickly and consistently.