Concrete Vs. Abstract Thinking In The World Of Development

Oct 9, 2017
Meg Ducharme & Hannah Hall

Meg Ducharme and Hannah Hall are junior instructors at NSS. They have discovered that knowing whether you’re a concrete or abstract thinker can help you learn. Meg, who is more of a concrete thinker, and Hannah, who is more of an abstract thinker, walk us through how they each learn best.

Moving from the role of student to junior instructor has been a fun and challenging transition for both of us. As students, we helped our fellow classmates with material we understood. As junior instructors, we have learned new languages and frameworks and are always trying to stay one step ahead of the class.

One of the things that has helped us both as students and now as junior instructors is understanding how we think, and thus learn. Are you a concrete or abstract thinker? Check out this article from Colorful Leadership on concrete and abstract thinkers. Having a better understanding of how we think has helped us learn new languages and frameworks quickly and teach them to others.

Let’s take a look at how concrete and abstract thinkers are different.


A concrete thinker likes solid examples and prefers to learn how to do something in a sequential manner. It is easy for them to pick up on new concepts when they are presented in a specific context, but they get easily overwhelmed switching contexts when they are learning something new. They like to think of the steps it takes to produce what they are taught so they can reproduce it later as they dig into the details of how something works. They like to understand the foundation and how each new block (concept) fits on top of the foundation. When a concrete thinker asks, “What does that small part mean?” they do not like the answer, “Don’t worry about that for now” or, “It’s the framework’s magic.” Concrete thinkers like to understand each part so they can understand how it works, and how to fix it.

I realized I was a concrete thinker early at NSS. When we were learning a new concept, other students would quickly ask questions making the relationship between what we were currently learning, and something we were taught last week. I would get frustrated and think, “why didn’t I think of that?!” Luckily for me, being in that environment for six months helped me to think that way too. Though it didn’t come naturally, it helped to be surrounded by abstract thinkers so I could connect the dots quicker.

Discovering that I was a concrete thinker helped me ask questions and get a response in a way that helps me immediately move forward. When I first started at NSS I would ask questions, but often come away more confused. One of the most important things about being a junior developer is being able to articulate what your problem is, and understand what you need to move forward.

Being a concrete thinker can be frustrating. When an abstract thinker suggests something, I can get onboard right away and go with it. It’s just hard because that idea didn’t come to me initially. Similar to my life before NSS, my husband and I started a company together, and he was the big idea guy, and I was the executor and maintainer. All of which are valuable skills as developers; it’s just about embracing what you bring to the table and optimizing how you learn.


An abstract thinker can connect concepts that are similar, like understanding that Angular controllers and .NET controllers both control a view, but realizing the similarities end there. An abstract thinker can get to a high level understanding of a new concept with enough ideas of what to google to find the rest of the answers. Abstract thinkers also don’t usually care about why or how something works (at least in the beginning). If they don’t have to worry about the intricacies of the concept it’s easier to connect the concepts to ones they have already learned. The problem for an abstract thinker comes when they get stuck down a rabbit hole because they think the next thing they find will be the answer.

I realized I was an abstract thinker during a high school math or science class. We were going over a new concept and a few other students were getting stuck on “why” it worked like it did. I couldn’t have cared less about “why.” I was more interesting in learning what answer I would get out of the equation. This helped with web development in the same way. While I was going through the course I didn’t care about what the frameworks were doing behind the scenes. It’s also forced me to realize when I need to stop and ask for help. Now that I’m teaching it though I have the time to learn what is happening in the background, which is a nice change.


Below are examples of how we approached solving the problem of displaying items contained in a C# dictionary in different ways.

Concrete Thinker | Meg’s Solution

When presented with a new problem, I tend to use the tools I am most comfortable with and understand first, and then I Google if I get stuck. Iteration was a known strategy, and therefore I was able to use it effectively. If I needed to use multiple concepts to solve a problem, I would need to feel comfortable with how each individual concept, and then stretch to think about how to combine them.

Concrete Thinker Problem Solving

Abstract Thinker | Hannah’s Solution

I was able to combine the concepts of looking up a key and a value of each entry in the dictionary and concatenate them together in one line of code.

Abstract Thinker Problem Solving


Once you understand your learning style, you realize that you either need to only understand a specific part of the concept to be able to Google what you need to do to move forward, or you need the steps to follow to get a process running on your machine. Once you figure this out, learning a new concept and asking for help becomes a LOT easier.

If you’re a concrete thinker, ask for specific code examples and a whiteboard visualization of how the pieces fit together.

If you’re an abstract thinker, focus on effectively researching a concept. It’s ok to get a hint from an instructor on where to start your searching. You’ll learn to recognize when to emerge from the search rabbit hole and ask for guidance.

Understanding how you think helps you ask the right questions and be a better advocate for yourself while you’re learning. Don’t just ask, “how do I do this?” If you’re a concrete thinker ask, “I don’t understand the building blocks of this concept and so I’m stuck trying to do this one thing here.” If you’re an abstract thinker ask, “I’ve done some searching on this concept, but I’m having trouble relating it to something we’ve already learned.”

As instructors, often times we will rewind a little and ask students questions about general concepts and they end up solving the problem themselves before they walk away from our table. It’s pretty awesome when that happens.

Topics: Learning