ENSPIRING.ai: How to Solve Problems Like an Engineer - Khizar Juma - TEDxYouth@AmericanSchoolDhahran

ENSPIRING.ai: How to Solve Problems Like an Engineer - Khizar Juma - TEDxYouth@AmericanSchoolDhahran

The video addresses the issue of inefficient problem-solving methods that rely heavily on trial and error, which many newcomers to fields such as coding often engage in. It reflects on a personal journey of overcoming these inefficiencies and introduces more structured approaches adopted by engineers. Key among these methods is the Feynman Technique, which emphasizes the importance of thoroughly understanding a problem before attempting to solve it, using techniques such as explaining the problem to a rubber duck to break it down into simpler concepts.

Viewers will find this video particularly engaging as it introduces effective strategies for problem-solving that can be applied beyond engineering, into everyday life. It demonstrates how breaking a problem down into its simplest forms and planning solutions through techniques like pseudocode can drastically shift one's approach to challenges. By illustrating these techniques with relatable examples, such as making coffee or escaping a deserted island, the video provides a pragmatic insight into solving even highly complex problems.

Main takeaways from the video:

💡
Understanding a problem deeply is crucial before attempting to solve it to avoid endless trial and error.
💡
Structuring a problem-solving plan using methods like pseudocode helps in visualizing and executing solutions.
💡
The divide and conquer strategy breaks down complex problems into manageable parts, making it easier to find effective solutions.
Please remember to turn on the CC button to view the subtitles.

Key Vocabularies and Common Phrases:

1. inefficient [ˌɪnɪˈfɪʃnt] - (adjective) - Not achieving maximum productivity or falling short in effectiveness. - Synonyms: (unproductive, wasteful, ineffective)

This is an inefficient solution.

2. trial and error [ˈtraɪəl ənd ˈɛrər] - (noun) - A problem-solving method involving repeated, varied attempts until success. - Synonyms: (experimentation, hit or miss, guesswork)

I'd write some code, hit some roadblocks, and end up getting stuck in an endless loop of trial and error.

3. mastery [ˈmæstəri] - (noun) - Comprehensive knowledge or skill in a particular subject or activity. - Synonyms: (expertise, proficiency, command)

That's all a result of the mastery of problem solving.

4. esteemed [ɪˈstiːmd] - (adjective) - Held in great respect; admired. - Synonyms: (respected, admired, revered)

That was by a very esteemed problem solver, Albert Einstein.

5. pseudocode [ˈsuːdoʊˌkoʊd] - (noun) - A method of planning program architecture using plain language to outline an algorithm. - Synonyms: (algorithm outline, algorithm sketch, step-by-step guide)

Well, software engineers plan using pseudocode.

6. bogged down [bɔːɡd daʊn] - (verb phrase) - To become stuck or hindered by something. - Synonyms: (stuck, mired, caught up)

This allows them to see how to make their algorithm without getting bogged down into the complexities of programming languages.

7. conquer [ˈkɒŋkər] - (verb) - To successfully overcome or take control of something. - Synonyms: (overcome, master, surmount)

Divide it and conquer it.

8. intimidated [ɪnˈtɪmɪˌdeɪtɪd] - (adjective) - Feared or frightened by the presence of something threatening. - Synonyms: (daunted, deterred, discouraged)

And sometimes, when you're overwhelmed, when you're intimidated by a problem, you forget that.

9. provisions [prəˈvɪʒənz] - (noun) - Supplies of food, drink, or equipment, especially for a journey. - Synonyms: (supplies, stock, resources)

Gather provisions.

10. reinforce [ˌriːɪnˈfɔːrs] - (verb) - To strengthen or support an object or idea. - Synonyms: (strengthen, bolster, fortify)

reinforce and waterproof.

How to Solve Problems Like an Engineer - Khizar Juma - TEDxYouth@AmericanSchoolDhahran

Imagine solving a problem like this. Okay. You try a solution. Step one, you try a solution. Step two, you try another solution. And step three, repeat. Step two. This is an inefficient solution. This is an inefficient way to solve problems. This sounds really familiar to me. When I started my coding journey, this is how I would solve problems. I would write code. I'd jump into a problem enthusiastically. I'd write some code, hit some roadblocks, and end up getting stuck in an endless loop of trial and error. So, I knew I was doing something wrong. So I turned to the best problem solvers in the engineers. There, I was introduced to the Feynman technique.

This is a technique that engineers use to change the world. Think about everything that requires engineering. The bridges we cross, the planes we fly, the cars we drive. That's all a result of the mastery of problem solving. My engineers. So, what is the fame and technique? Step one, understand the problem. Albert Einstein once said, if I had 1 hour to solve a problem, I'd spend 55 minutes thinking about the problem and only five minutes thinking about the solutions. That just shows the power of understanding. Understanding the problem is the most crucial step. Without this, you'll be stuck in that endless loop of trial and error.

So, how can we solve a problem? This is how. This is what engineers use to solve problems. This is a rubber duck. If you guys can't see, you're probably thinking, why am I holding a rubber duck? Picture this. You're at your desk. You're a software engineer. It's late at night. You're trying so many solutions, but your code just. It just won't work. Can you picture it? Because I can. Okay. So, you're at your desk. You can't solve this problem. So what do you do? You take this rubber duck from your drawer, you put it on your desk, and you start talking to it. You start explaining the problem to the rubber duck. You're probably thinking, software engineers are crazy. And you'd be right. But there's reason to why they talk to rubber ducks.

That reason is because this is a technique, a very famous technique called the rubber duck debugging method. So, the rubber duck debugging method is a method where you simply talk to a person or an object, something that doesn't have any background knowledge on the topic, and you have to explain to them the problem that you're facing. And this works because you're forced to break the problem down into its most basic, its most simple form. And that forces you to fill any of the gaps in your knowledge. So to understand a problem, you need to explain it to a rubber duck. If you can't explain it simply, you don't understand it well enough. That was by a very esteemed problem solver, Albert Einstein. So that's the first step to understanding a problem.

Second step of the feymin technique is the plan. Planning is extremely important as well. If you can write down the problem clearly, then the issue is half solved. That's Kildens law. So by writing down a clear, concise, and simple plan, youve already solved half of the issue. So how do you write a plan? How do engineers write plans? Well, software engineers plan using pseudocode. A pseudocode is a step by step description of an algorithm in simple, plain English. This allows them to see how to make their algorithm without getting bogged down into the complexities of programming languages. By writing down the problem, by breaking it down into simple, actionable steps, it allows someone to see, to be guided, to solve the problem clearly and setting them up for success.

This is a pseudo code for making coffee, for example, an everyday problem that we all face. So step one, gather the necessary ingredients and tools. And step two, fill the coffee maker with water. Step three, add the grounds to the coffee maker. Step four, start the coffee maker. Step five, pour the coffee into the mug. And step six, stir the coffee. See how a problem of making coffee can be broken down into these simple, easy, and actionable steps? That is what a pseudocode allows you to do. It allows you to see the path to solving the problem clearly. This sets you up for success. This allows you to break out of that cycle, the endless cycle of trial and error that we've all been stuck in. This plan allows you to solve problems clearly and efficiently.

Now you have a plan. So now let's move on to step three, divide and conquer. Let's circle back to our plan from step two. The pseudo code for making coffee to divide and conquer would take instead of taking the entire problem and solving it at once, we would instead take the first step, divide it from the rest of the problem, and conquer it individually. That allows us to make a complex, long, complicated problem and simply conquering it one step at a time. For example, we would gather the necessary ingredients and tools first, then fill the coffee maker with water, then add the coffee grounds to the coffee maker. That sounds like something we all do. That sounds really obvious, right? But the truth is, engineers are faced with problems far more complex than making coffee.

And sometimes, when you're overwhelmed, when you're intimidated by a problem, you forget that, and you try to attack the problem head on all at once. It's not efficient, and you end up getting stuck in that loop of trial and error. So to solve problems, you need to take it one step at a time. Divide it and conquer it. But what happens when, for example, a step is too difficult? For example, step number three. Add coffee grounds to the coffee maker. What if that's too complex for you? What if I don't know how to do that? What do you do? You can break it down further. How do you add coffee grounds to the coffee maker? You open the filter. You open the filter compartment of your coffee maker.

You place a coffee filter into the compartment. You scoop coffee grounds into the filter, and you close the coffee. And you close the filter compartment. See how I broke this step down into even more steps? With complex problems, it doesn't matter how complex. You can always break it down more and more and more. You can always divide a problem more and more and more until you're able to finally conquer it. This is how engineers solve complex problems. So that's how you solve a problem. Like an engineer. Let's use the Feynman technique and put it to the test. By solving an everyday problem that we all face. We're stranded on a deserted island. The only resources we have is wood, coconuts. And of course, we cannot forget our trusty rubber duck.

So our goal is to escape. So we need to start using the famine technique. So let's start. What's step number one? What's step number one? What's the first thing we should do? So. Yes. Before even checking if you're okay, you take this out. This here little rubber duck. And you start talking to it, explaining the situation. So. Hi, rubber duck. I have wood for building coconuts for sustenance. Now, a view for the famine technique. Our goal is to escape the island using the resources we have. So. Okay, goal was defined. Situation explained. Thank you, rubber duck.

So now the next step is to plan. So our plan for escaping the island should consist of small and actionable steps. So we can make a plan for escaping the island like this. Assess our resources. That's small. That's easy. Check. Construct a raft. Okay. Gather provisions. Navigate our course, and signal for rescue. So we have a plan. We have a basic outline of how we're going to escape that turns a seemingly impossible challenge of escaping a deserted island into something that seems not as intimidating, something that seems possible. So now let's move on to our third and final step. Divide and conquer. So let's say for example, we don't know how to construct a raft.

That's a perfectly normal thing. I don't know how to construct a raft. So how can I break that step down even further using dividing and conquering to allow me to construct a raft. To allow me to conquer the problem we can break it down further into gather materials, design the raft, assemble the frame, secure the planks and reinforce and waterproof. See how I went from escaping an island to then constructing a raft to then gathering materials and designing a raft. See how I broke down the problem? A seemingly impossible challenge to something that I could do. Something that's possible to turn a complex problem into something simple to solve problems like an engineer using the Feynman technique, we all enable ourselves to solve problems like engineers using the Feyman technique we can all become problem solvers. And for engineers there is no problem too big and there is no challenge too daunting. Thank you.

Innovation, Science, Technology, Problem-Solving, Feynman Technique, Engineering Solutions, Tedx Talks