A Design Thinking Approach to Learning to Code

Nate Cooper
Feb 23, 2017 · 7 min read

How an iterative approach to lifelong learning can help your career

Knowing what steps are needed to learn a new skill can be a challenge.

In the past year I have been fascinated by the field of Design Thinking. While not new, it’s something that I found I’ve unknowingly been a part of for several years. In 2011 I participated in my first hackathon and got a taste of lean methodology and agile development. These approaches have helped me for years as I tackled web projects as a freelancer and taught classes on introductory web development.

Last year a colleague and mentor of mine Edward O’Neill approached me about co-teaching a class on Design Thinking, and my approach to teaching has never been the same. Here are ways that I think design thinking can help you learn to code and improve your career.

Designing Your Life

While traditional design thinking is a practice used by companies to iterate on products and projects, Edward is among a group of academics pioneering a different approach to teaching design thinking. He’s looking at ways in which the brain can often work against itself when trying to solve problems. This approach looks at models of the brain, creative problem solving, and aspects of behavioral economics to understand how to get unstuck when approaching something new.

Design Thinking: Solving problems using design methodology

I’ve been bringing some of these concepts into my coding classes to great effect. I’ve noticed that the better students are able to scope their problems and tackle them from a new perspective, the quicker they can find their way to success with learning to code. Here are a few ways design thinking can help.

Understanding Your Brain

The adage “Know Thyself” is at the root of self-inquiry. If you consider all learning to be self-learning, as I do, it stands to reason that the better you understand where are, the better you’ll be able to get to where you’re going. There have been several models of the brain that help to provide frameworks for understanding how learning works. One such model is the dual system hypothesis.

The Dual system hypothesis — a way to understand how your brain works

What the dual system models show is that there are areas of the brain that excel at different tasks. Some tasks are effortful but slow, while others are automatic but error prone. Design thinking by optimizing for the visual, automated processes in the brain, helps you approach problem solving by activating the iterative, fail-fast approach of system 1. It’s through trying and failing and iterating that you begin to make progress. This requires you to train your system 2 to refocus on errors in order to make tangible next steps.

When learning a new skill like coding, we often can become frustrated by not excelling quick enough. We may have mastered some skills and are frustrated that this new one doesn’t come as quickly as we’d like. That’s because we are used to using system 1 to tackle our problems. But when you’re learning something new, you’ll need to be more effortful at first. Just because you’re an accomplished accountant doesn’t mean that you’ll be able to become a concert pianist overnight. It’s going to take setting yourself to work at it until it gradually gets easier over time. Learning to code is the same way.

It’s a Mindset thing

Fixed vs. Growth Mindset

The psychologist, Carol Dweck studies motivation and has come up with a framework which divides individuals into either fixed or growth mindset. Those with fixed mindsets are prone to give up or never to start. They tell themselves they’re incapable of learning anything new or that they “just aren’t the type of person this comes to naturally.”

Alternatively Growth mindset oriented individuals see errors as steps in a process. They understand that learning means starting from a place of confusion and that making mistakes is part of the learning process. In positive psychology this process might be called flow. It’s the balance between doing something challenging but not boring in order to actively engage the mind.

Finding your way to flow is the best way to stick with learning a new skill.

As an instructor I notice that the fixed mindset approach is endemic to technology training. Many people tell themselves they aren’t the type to learn coding. That they’re incapable. What Dweck says is that if you say these things, then you’re right. You must be willing to try and fail in order to make progress towards learning a new skill. No book, class, or instructor is going to create a drive in you to learn. For you to succeed as a learner you have to find your way into flow by picking projects that are interesting to you and approaching them with a growth mindset.

Solving Problems in Scope

Design thinking teaches us that we need to be mindful that we are solving the right problems. GE CEO Jeff Immelt recently wrote: “If you are joining the company in your 20s, unlike when I joined, you’re going to learn to code it doesn’t matter whether you are in sales, finance or operations. You may not end up being a programmer, but you will know how to code.” The trick is that for many people “knowing how to code” is an unsolvable problem.

Make sure you’re solving the right problems

In design thinking, “knowing how to code” might be called a “wicked problem.” Wicked problems are problems that are so large, so out of scope that they are unsolvable. Think about the problem of global warming. Certainly a problem, but one so complex with so many overlapping intricacies that there isn’t a single logical plan of action to solve it. On the other end of the spectrum, you have trivial problems, those so simple that they aren’t worth solving. “I want to build a website using a drag and drop system like SquareSpace” might be a trivial problem for many. It will help you achieve an end goal, but won’t necessarily teach you a new skill.

For learning, the best problems are those that present you with a few different routes to pursue along with some potential dead ends to lob off. “I want to learn how to build a simple site that includes a JavaScript slideshow,” might be an example of a problem that is scoped down enough for one to attempt to solve. This problem scoping is a key component of design thinking which will help you understand how to make tangible progress towards learning how to code.

Balancing Risk and Reward

Humans are often bad at balancing risk and rewards

Behavior economics is an area of study which uses cognitive science to understand decision making. Though we like to think of ourselves as rational beings, the fact of the matter is that we often make decisions that work against our better nature. We overweigh small risks which leads to inaction and habit forming. Conversely we under weigh large risks causing ourselves to get stuck in situations far past their benefit’s expiration.

Opportunity is created by action. There are several kinds of luck, only a portion of which are completely random. You can create luck for yourself by trying out new scenarios, meeting new people, learning new things. Waiting for inspiration to strike can be damning. If you’re sitting on your couch waiting for opportunity to come to you guess what, it’s not gonna happen. But by taking small calculated risks (signing up for that class, attending a meetup) you can expose yourself to potential outcomes that you would not have had alone.

Learning a new skill like coding will have several false starts. You take an online class, you buy a book, it will take time to find what works best but the important thing is that you’ve tried something. Each new step moves you towards goal. That doesn’t mean you won’t sometimes have to backtrack, but if you have the growth mindset approach you can learn to see those mistakes as steps in a bigger process of learning.


If you find you’re in need of getting unstuck with coding check out our Reboot Coding Bootcamp.

Hosted at qLabs in New York City, Reboot is a coeducation and skill sharing community where NYC tech insiders help others to level up. We bring lifelong learning to Generation Flux.

Reboot Labs

Nate Cooper

Written by

Author • entrepreneur • teacher — http://natecooper.co

Reboot Labs

Hosted at qLabs in New York City, Reboot is a community centered around education. We bring the best of hackathons, coding bootcamps, and coworking to new learning experiences which open you to challenge, incite growth, and level up your skills while asserting space for play.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade