Building Your Intuition
Published 4/24/2017
In today's episode we talk about intuition as the shared fluency for experts.
Transcript (Generated by OpenAI Whisper)
What qualities do you believe are shared by experts? And more specifically, what qualities do you believe are shared by software developers in today's age? That's a question that I want to start answering for you on the show. One of the qualities that I believe expert developers have and really experts in most arenas is intuition. We're going to talk about intuition and how you can start framing your practice in order to build intuition in today's episode. My name is Jonathan Cutrell and you're listening to Developer Tea. My goal on this show is to coach you through the most difficult parts of your career, help you gain answers and insights so that you can spend your energy each and every day leveling up in your career. And you say that on every show now, leveling up in your career, what does that mean? It means getting better as a developer, getting better at your job, getting better at what it means to be a developer and a so-called integrated life, right? Where you are achieving the things that you want to achieve both in your personal life and in your professional life. And I believe that a lot of your personal life is going to be affected by your professional life. I believe that too and a lot of those decisions are going to be affected by the way you handle your career. So I believe it's important for us to talk about this stuff. And if you want to be a better developer, one of the things that you should be doing is looking at successful developers, not just successful developers but successful people in general. And that's why we're looking at this concept of the expert. What makes someone an expert, what qualities do experts share? And one of those qualities that comes up over and over and over is intuition, the ability to immediately be able to act in a given scenario, immediately understand a given scenario. And this seems almost magical when you see it in action, right? Whether it's an expert chess player or maybe it's an expert athlete or it's an expert developer. And all these scenarios, it seems like their mind is operating on a different level. What is that? What is that missing piece? And for the sake of today's episode, we're going to distill that down to this term intuition. There are certainly other things going on beyond what we're going to talk about in today's episode. This is not the silver bullet answer, but intuition is a very strong part of what the expert has in their back pocket. So what exactly is intuition? Most behavioral scientists and people who study this stuff agree that intuition is really the ability to make a decision very quickly. And when I say very quickly, I mean in a split second in many scenarios, this idea that your brain is processing the information almost at the same rate that your brain is encountering the information to create a vivid mental picture of this. I want you to imagine a well-trained pianist, one who has classical and jazz experience. And when they encounter a piece of music, whether it's something that they're listening to or a piece of sheet music that they are reading for the very first time, and they are able to flow through that piece of music, they're able to play the melodies, they're able to improvise on top of it. And it seems as if they've practiced it already, but in fact, this is the first time they've ever encountered it. That level of fluency is a marking of expert level. It's a marking of extremely strong intuition about multiple systems that they are encountering in those pieces of music. If you were to ask any musician with that level of fluency and that level of competency, how they got to where they are, it would be my strong guess that all of them would tell you the same thing. They got to where they are through practice. Now we've heard this over and over, and as developers, we take it to heart and we continue writing code over and over. And sometimes it feels like our learning isn't really progressing and that we're actually just doing the root actions necessary, right? We aren't getting any better. We're just maybe getting faster. Maybe we're getting better at a very small subset of things, but we aren't necessarily growing in our learning processes, but I want to make a connection for you today that maybe you haven't made yet. And that's with regard to the concept of building intuition. The fluency of a musician who can look at a piece of music for the first time and play it better than most people play it after years of practice. The fluency of an expert level developer, they share something in common and that is that they have built a strong intuition. And this comes through that practice that we just discussed. It comes through the hours and hours of exposure that they've had to these different systems, to the things that they are practicing to gain intuition. What does that mean? What exactly does intuition provide? Well intuition, as we've already said, is the ability to make quick decisions, the ability to assess and respond to information very quickly. So the most valuable practice, I don't want you to miss this, the most valuable practice that you can do is pointed at pattern recognition. The most valuable practice you can do is pointed at pattern recognition. In other words, when you are practicing, start understanding the shape of the problems you are solving. Start understanding some of the underlying commonalities of the problems you are solving. Some of the specifics of the problems that you are solving will trigger cues in your mind at a later point. As we said in previous episodes of Developer Tea, learning is at a fundamental level a meaningful memorization process. So what does that mean? It's memorizing information, but not just so that you can recite it, but rather so you can recall that information at a later point and use that information to do something. So using that information in some functional way. When you are practicing with the intention of increasing your level of intuition, in other words, when you are practicing with the intention of building your pattern recognition abilities, you are creating a meaningful memorization of those shapes of those problems. So if you have solved similar problems in the past, once you have solved it enough times, once you have seen that same type of problem over and over and over, your ability to recognize that shape, your ability to recognize that type of problem will grow over time. And there's a lot of systems that we already do this with. There's a lot of things that we have already trained ourselves to recognize. For example, language pattern recognition in language. This is something that we are trained at doing basically from the time we are born all the way throughout our adult lives. Eventually, the need for new pattern recognition in language is lowered unless you're in an academic environment, but the same basic concept of intuition applies. Over time, it becomes a little bit easier for you to speak to string together the correct words to get across the point that you're intending to get across. In a very similar way, the highly agile pianist is stringing together notes that they have recognized in the past. They recognize the various shapes, the various movements. They may even recognize the style of writing from a given composer once they've worked with that composer's work enough. So their ability to anticipate their ability to fill in the blanks with multiple sources of information, their ability to bring to the table intelligent, experienced, informed intuition, that makes them fluid. They are not significantly better at processing that same information that you are processing. They aren't seeing that piece of music the same way you are seeing it. They aren't moving their fingers on the keyboard in the same way that you are moving your fingers on the keyboard. I want to throw in a final note about experience and intuition. If you are new, if you are very young in your career as a developer and you watch a very experienced developer sit down and solve a problem, perhaps you've asked them for their help and they sit down at your computer and it feels like they're moving at light speed in comparison to how quickly you are moving. I've seen this crippled developers over and over and over and I want you to understand something that you are not inherently slower than that person. You're not just because an expert can sit down at your computer and fly through the things that you were taking a day or two days to go through. That absolutely doesn't mean that you can't reach that level of proficiency. They didn't start a few rungs down. They started all the way at the bottom. They started just where you started. I want for those of you who are experiencing this sense that the experience developers around you who are moving faster than you. First of all, if they're making you feel inferior, then you need to talk to either that person or your supervisor, someone who is supervising both of you and let them know that you honestly feel uncomfortable with that level of pressure and that wrongful perception being allowed in the workplace. It's absolutely destructive to morale. You should understand, as a developer, you're going to go through times where you feel very uncapable. You're going to go through periods where you're learning a new language or you're getting set up in a new environment or maybe you're just simply working with a new person. You're changing your style a little bit. Maybe you're changing your syntax rules. This is something we go through at Whiteboard, depending on the project we may adopt new syntax rules. These are things that every developer goes through and your level of proficiency is going to change over the course of your career. As your intuition builds up, so will your proficiency. And your intuition only builds up when you are practicing and when you're practicing with the intent to recognize patterns. Your ability to recognize patterns and apply the things that have worked in the past is absolutely key to your proficiency. Thank you so much for listening to today's episode of Developer Tea. I hope number one that this was encouraging to you, especially if you're a brand new developer or you're a developer in transition. Maybe you're going to a new language. Maybe you're going to a new team and you feel like you're moving very slow. I hope that today's episode number one gives you some direction on how you can apply yourself and how you can practice and what you need to do in order to develop intuition and ultimately develop proficiency. I hope that today's episode has given you that encouragement. Secondly, for those of you who already are proficient at some level, who already have some intuition, that this will reveal to you that your intuition is something that you built up over time, that the younger Developer That you may be working with, that you can help them by showing them patterns that you have learned. You can help them by encouraging them to look for the shape of the problem that they're working on. Thank you so much for listening to today's episode of Developer Tea. We do not have a sponsor today, but I want you to take the opportunity to go and check out the other shows on spec.fm. There's some incredible content over there for designers and developers focused on helping you level up in your career. Thank you so much for listening and until next time, enjoy your tea.