Chapter 5. Learning to learn

This chapter covers

  • What learning mode means
  • How to identify future pitfalls
  • How to use trends to plot your future

Learning mode can be defined as follows: you have slack time and are using it to do deliberate practice of new skills. It usually requires people to get out of their comfort zones, because acquiring new skills presents a challenge.

What is a ravine?

In his book Becoming a Technical Leader, Jerry Weinberg describes how he visualized his improvement at pinball. I talked briefly about this in chapter 4, but I plan to go a bit more deeply into it now to show how learning works. He plotted his points over time on a chart, as shown in figure 5.1.

Figure 5.1. Learning rate

At first glance, it seems there’s steady progress—a steady learning curve in which he keeps getting better and better at pinball. But something interesting happens when you zoom in on the chart. It turns out the progress isn’t steady at all; see figure 5.2.

In this image, you can see that there are two types of “progress”:

  • There are plateaus where the learning progress is slow and steady.
  • There are peaks in which there’s a lot of quick learning.
Figure 5.2. Close-up on the learning rate

What happened at those peaks of learning? Those were the places where he discovered something new about how to play the game—something that changed the game for him. In a way, it was a new paradigm about the game. For example, in one instance, he discovered that having more than a single ball at once in the game awarded double points for every hit. When he mastered the new paradigm, he became a better player than he used to be, which accounts for the peaking.

As technical people, we should be used to learning new things. If you know more than a single programming language, you’ve already been through this peak. But there’s a deeper meaning lurking in this story.

What happens when we show more points? Take a look at figure 5.3. Notice how before every peak, there’s a ravine—a drop in points/productivity/ability before the big paradigm change. Those ravines are the adjustment phases.

Figure 5.3. Learning rate with ravines

Note

When you learn a new paradigm, you often have to “forget” some of the things you already know and replace them. In order to master a new skill, you have to let go of your sure footing.

When you learn a new programming language, initially you’re awkward and error-prone. Sometimes you can’t even write a simple “hello world” program without going through a dozen tutorials. You’re far less productive when learning a new paradigm such as a programming language than when working in an area where you’re already skilled.

In time, you become faster and more productive, and soon you look back and realize you’re now a much better programmer than you were, because you know two different languages, and you’ve seen various perspectives of the same goal being achieved in different ways.

Our truest, richest learning comes from jumping into ravines, not from staying safely on a plateau. Ravines are everywhere in our lives, and they’re the things that people usually refer to when they say, “What doesn’t kill you makes you stronger.”

Having kids is a perfect example of diving into a ravine. When my wife and I were newlyweds, we did lots of things together and were living it up. We used to travel a lot internationally and camp out twice a month. I remember complaining that there weren’t enough hours in the day to do all the stuff I wanted to do. Then we had a baby.

The baby ravine

Once our first son was born, we instantly declined as human beings capable of managing ourselves, our lives, and our time. We couldn’t even manage our sleep, and we became extremely tired. Close family visited us almost daily to bring us food. We were too tired to cook, and I remember random naps in various places around the house based on when the baby fell asleep.

It was both an amazing and difficult time for both of us, but a few months after our son’s arrival, things started leveling out a bit. We learned to manage his sleep better, we learned to manage our sleep as a turn-based game, we started taking the baby out more, and we slowly made our way back into the normal-people territory.

A year into parenthood, we looked back at life before having a son, and we couldn’t believe how much free time we had that we didn’t use. We managed to accomplish the same number of things as before his birth, but now we had a full-time child. We were different people after this ravine, and we were better people in many ways. The challenge taught us a lot.

For a while, we were doing great. Then we had our second son. We instantly declined as human beings, unable to manage our sleep routine and struggling to take care of two kids. For example, when we had one child, we could take turns sleeping as the other parent watched him. Having two kids is a different story. Neither of us was able to stay alone with both kids at the same time because it was too demanding and we were too tired. We had to figure out how to divide baby-watching and sleep routines, we had to remember to make food for the older child, and a million other things became more complicated with raising the second one.

A few months after having the second child, things started leveling out again. We figured out routines, and we had the benefit of being less afraid and nervous for the second baby. When we were first-time parents, we were anxious about anything he got close to. With the second child, we were more relaxed, because we realized that children are resilient.

Six months after having the second baby, we looked back to the time when we had only one child, and we couldn’t believe we had had such a hard time with one. Now, having a single child looked like a vacation. We were different parents than we were with one baby. The challenge helped us learn many things, and we had grown immensely in both technique and spirit from this.

Then, in 2011, we had our third son. We are definitely more relaxed, but I was still unprepared for how grueling things are with three kids. We are slowly learning to handle those crazy nights where we have a chain reaction of crying children, and we’re managing to find one-on-one time with each kid. It’s not easy, but we’re happy.

I look back at having only two kids, and I can tell you this with a full heart, having two children is a piece of cake. I can’t believe we ever moaned and groaned about raising two kids. Even more unbelievable is that we ever had trouble with one child. It’s hard for me to process the fact that we couldn’t even find, with a single child, the energy to make our own meals. We indeed are different people and parents now, but we had to jump into each ravine before we could come out of it stronger.

Note

A beta reviewer for this book had this to say about my story: “Nitpickers may point out that as you adjust and adapt to your children, the children are also growing and adapting in ways that programming languages or tools don’t when you use them, and that may have contributed to (but not been totally responsible for) your growth as a person. Nitpickers. Not me.”

Embrace ravines

I think the true power of learning is realizing this simple fact: ravines eventually end, and you emerge with new knowledge. If you know this, you can start doing something incredible: you can begin plotting out future ravines that you might choose to fall into. You can plan your life as a series of learnings through ravines you carefully calculate to benefit yourself.

Becoming a team leader can be a great ravine for you, but only if you choose to jump in. Many team leaders keep the status quo and try not to touch or break anything. They never learn entirely new things. They never get an insanely better sense of the game they are currently playing; they slowly grind away, finding comfort in learning small things that make less of a difference.

How can you tell it’s a ravine?

You might be facing a ravine if

  • You’re scared to take this step because you might lose face, dignity, money, or friends.
  • You feel like this isn’t something that’s meant for you.
  • It will change you, or how you perceive your world or your work or people you encounter (this is often hard to tell in advance).
  • It will teach you new skills.

Taking the team out of survival mode by removing commitments may be a big ravine for many team leaders. On the other hand, you might be fooling yourself that you’re in a ravine when you’re not, if

  • You’re not afraid to try this new thing.
  • You feel there’s no risk in trying out something.
  • You feel that this is something you’ve kind of done before, but differently.

For example, learning a new framework built into your favorite programming platform is not a ravine. It’s fun, yes. But it’s not risky, and you’re not learning anything new about the game by learning a bunch of new APIs. You’re optimizing things locally.

A beta reviewer argued on that point:

If the framework were an Inversion of Control Container (Google it) and you wanted to start using it in your product, I think that making that change could indeed be a ravine. It’s scary. You may break things. You’re likely to kill productivity while people are learning how to configure and use the IOC. And so on.

I think there’s some merit to that argument, but if it is a ravine, it’s a small one. It doesn’t even come close to the plummet of a real ravine. It’s not the vision I have in mind when I talk about learning new skills and getting out of your comfort zone.

Why? First, learning and implementing a new framework in your code is a perfectly safe endeavor. With source control, there’s little that can’t be undone—even inflicting Inversion of Control frameworks on unsuspecting code.

Second, it’s part of a developer’s job to use frameworks, so it’s not considered different or out of the ordinary to try a new one. Lord knows I’ve been through my share of people trying to use career-limiting frameworks at work, but no career has ever been limited by such a thing. Developers are resigned to having another framework to work around.

The really scary part in the IOC framework review is holding other people back, so it might be that the ravine one person encounters is working with other people or talking with other people. It is a ravine indeed, because it’s a skill that needs to be learned and practiced. Many people do not try this communication skill when implementing many of the frameworks developers are hammered with day in and day out.

If a developer indicated to me that implementing an IOC framework was scary, I would plan a ravine for them where they had to talk to people. Implementing an IOC framework might be the trigger for the real thing—communicating with others. But IOC is not the point. The framework is not the point.

Another example of learning that’s not frightening: if you’re a .NET programmer learning a new language on your home machine late at night, you’re not jumping into a ravine. Yes, it may be a valuable way to learn more things, but it’s not a new coping skill.

A ravine might be joining a new team of people who live and breathe the new language and its associated culture, who will consider you a newbie on the team. Immersing yourself in a new work culture is a ravine. Playing it safe is not. Yes, you might have a family to think of, but you should plan to work in that new culture, if you can. You should not plan to do things half-heartedly.

A ravine can also be a long-term goal; I’d like to know math, because I was always afraid of it, and I know that when I conquer this fear I’ll have a different view of my work world. I’ll have a new skill that opens the door to new options I’ve always avoided. A ravine can be a short-term goal, such as confronting someone I’m afraid of talking to face to face.

The intern

A few years ago, I left a comfortable job as a CTO in a successful .NET-based company to become an intern at a small Ruby shop. Having come from a Microsoft-based background, I wanted to head into a ravine and learn, in the deepest way possible, what it means to be a Ruby developer. I wanted to know what I was missing, or find out if it was all hype. It was a great choice. Everyone used a Mac. I had never touched a Mac before. Everyone used the Vim text editor. I had only heard of Vim in my nightmares. Everyone was using Git source control. I had heard of it, but that’s all.

It was a difficult few months for me. I felt like an idiot most of the time, but I learned things I never knew I didn’t know, things you can learn only by being immersed in such a culture. For example, I learned how to do small code commits using Git. The culture of a small Git commit is one I could never have learned from a Microsoft-based company, because the way of work and way of thinking are different. I also learned the value of what I now lovingly call Spartan development—the idea that you use the lightest tools possible, you use zero to no debugger, and you trust tests to guide your way. I would never have done that learning in the evenings on my own, because I would not think of doing it.

As an intern, I was forced to do things that were out of my comfort zone and learn things I will take with me for all future work. I know Vim. Few developers can say they know it. Knowing Vim is like knowing regular expressions. You never know when you might need to use your skills, but when the time comes, you’re ready.

Challenge your team into ravines

One thing I haven’t mentioned yet is the concept of homework. I’ll expand on this in chapter 7, but a brief overview of homework is required, because it’s something you do in the learning phase.

Homework is normally done at work, but can be done at home if you’d like. I call it homework because it doesn’t relate to day-to-day tasks, and it’s not officially designated as part of your job. It’s usually a task that you incorporate into your work, such as “try to say ‘yes’ at least three times a day,” or “be the last one to speak in every conversation.”

Giving people on your team homework is a great way to teach new skills. It’s important that homework be a ravine-like task. If it’s not scary or annoying to your team members, they might not learn anything new. You can only ask someone to jump into a ravine with open eyes after you’ve done this yourself at least once. You need to be able to feel what it’s like to be aware of this learning opportunity and to get over your personal fears and feel great afterward. Only then can you lead from experience with the learning process.

You can inspire others to jump into ravines only when you have your own story to share about deep learning you’ve done and how it scared you. Don’t make one up. If you want to learn something real as a team leader, learn to practice what you preach. Don’t fake it—others will know, like you’ve always been able to tell when someone was deceiving you. If you don’t have a story, do something real, and only then share it.

You should explain this homework concept to your team. Usually, it’s better if you do it in a one-on-one meeting because some people might feel more comfortable openly talking about their reservations without others listening.

Sometimes, if the real learning is going to be a team effort (like moving the whole team to a new, more-challenging room), you should discuss the reasoning with the entire team as a group. And yes, it will be scary. Teaching a team how to plan and jump into ravines is a ravine in its own right. It will feel awkward and unnatural, but it’s part of your learning.

Next up

Next, we’ll discuss another important technique, commitment language, and how it can help you and your team trust each other better.

Summary

  • Learning mode can be defined as using your slack time to deliberately practice new skills. Challenging the team this way can be difficult, because it requires you to push people out of their comfort zones.
  • During learning mode, your leadership tactic will usually be that of a coach and mentor, with the occasional spurts of command and control, but only when the mistakes being made are too big to fix during the team’s slack time. For example, “No, you can’t choose not to use source control, but give me three options for source control systems you’d like to choose from.”
  • True learning comes from ravines: places where things are uncomfortable and sometimes frustrating. If you sense people aren’t happy, that might be a good sign that you’re pushing them out of their comfort zones. Some pushback means you’re hitting the edges of the box!
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.216.47.169