This post is part of a blog series called Leveling Up: A Guide for Programmers. The series covers skills you can use to learn faster, more easily, and more strategically as a programmer.
The blog post on our first skill, setting goals, talked a little bit about motivation. In this post we focus specifically on reframing our understanding of motivation.
Motivation Waxes and Wanes
So right now you’re all fired up to become a self-taught master in the programming discipline of your choice. You might even put in some hours today and tomorrow to work toward your goals. That’s fantastic!
Will you still be doing that six months from now? If you’re relying on motivation to pull you through, probably not. That’s because motivation is transient—it comes and goes. If you think of your new self-taught skillset as a fire, your motivation is the tinder that gets it going. Tinder is thin and dry, so your fire burns through it quickly. you can only keep a fire going with tinder if you’re constantly pouring large amounts of tinder onto the flame. You won’t constantly have large amounts of motivation to pour onto this fire. So how will you keep it going long-term?
You can do it with discipline. Think of discipline as a fat log in your fire. Once you have discipline, you have a solid foundation that will keep your fire burning even when you have no motivation. In this context, discipline will help you do exactly that: keep on learning even when you don’t feel motivated to do it.
Let’s look at a practice framework to help you move your self-teaching activities from a motivation-oriented practice to a discipline-oriented practice. Some of the items in the framework may sound new to you. That’s OK: In future posts, we will cover them in more detail. But first, let’s get an idea of how they would fit together in your practice time.
A Discipline-Oriented Practice Framework
1. Choose a dedicated time slot to work on your skill development each day. Start with a short time slot—one hour. You can fit one hour into your schedule much more easily than you can fit, say, three hours. If the skill you’re developing is germane to your current job, you may even be able to convince your boss to let you slot your daily hour into your working hours. Make sure you have no scheduling conflicts with this hour. During this time, you want to relieve yourself of the pressure to be doing something else.
2. Start your sessions with a warmup activity. This allows you to get started without thinking too much about what it is you want to accomplish that day. Maybe it’s the same activity every day—say, running through a few refactoring shortcuts in your IDE of choice. Or maybe it’s a little problem set based on what you learned in your last session. Maybe it’s reading a short article and taking some notes. Don’t worry—we talk more about warmup activities in a deep dive post.
3. Have a plan for the days when you don’t feel like practicing. When you wake up and realize that you really don’t feel like doing something you’ve said you’d do that day, you might panic a little bit inside. You get these self-deriding thoughts: “Why don’t I feel like doing this?? Maybe I really don’t want to learn this badly enough. Maybe I don’t care. Or maybe I’m just so lazy.” These thoughts don’t feel good at all—and if they’re severe, they make you question who you are. Now starting your practice means not only doing something you don’t feel like doing, but also barging your way through all these self-deprecating thoughts. What a tiring task! So it becomes that much more tempting to avoid practice for the day.
When you expect that to happen and have a plan, you can circumvent that internal panic. Remember, you don’t have to feel like practicing to practice. And everyone, no matter how passionate, has days when they don’t feel like doing something. When I wake up and don’t feel like going to the gym, I have a don’t-feel-like-it contingency plan that gets me out the door. I have a shirt with the words ‘Because I Said I Would.’ on it. I wear that shirt to the gym on the days when I don’t want to be there. It reminds me that I am resilient and disciplined. I also have a special bag of coffee grounds that I received as a gift. I love this coffee, but I save this coffee as a special pre-workout treat on days when I don’t want to train.The difference between a year-round athlete and someone who does the treadmill for six weeks at the start of the year isn’t that the athlete always feels like going and the treadmill person doesn’t; it’s that the athlete goes whether or not they feel like going. Your programming thing works the same way.
4. Make an accountability calendar. I like to keep my accountability calendar in my notebook, but you can do it wherever you like. An accountability calendar allows you to plan and track your independent study work. The most important part of the accountability calendar is not the planning part: it’s the tracking part. You can check out this post for a deeper dive on accountability calendars.
5. End your session by planning your warm-up activity for your next session. Maybe you run through the same warm-up activity before every session, in which case you don’t need to do this. But if you like to start your sessions based on a dedicated problem set from your last session, take time to choose those problems now. I like to leave a failing test in whatever I’m working on so that I can quickly find my place the next time I sit down to practice. Getting a well-encapsulated test to pass serves as my warm-up activity.
Here’s what you can do right now to start removing reliance on motivation from your independent study plan:
- Identify a time slot that will work for you. I recommend starting with one hour three or four times per week. This might not sound like much, but it’s important to start out with something you can stick to so you feel successful. You can experiment with expanding this amount later if you want to. I recommend trying to put all these practices at similar times: I do first thing in the morning, but some folks prefer the evening. If you can get clearance to do it during work, that’s also nice. You’ll want to choose times that are unlikely to get overrun by other commitments, and you’ll want to protect these times from other commitments as much as possible.
- Identify a contingency plan for days when you don’t feel like working on your project. Maybe for you it’s a nice coffee or a special item of clothing. Maybe it’s working in a different room or turning on your favorite instrumental music. Find something that you feel excited about. Make sure you have all the items in stock that you need to execute your contingency plan.
Motivation waxes and wanes, so the trick to sticking with a practice routine isn’t staying motivated to practice; instead, it’s practicing in the absence of motivation.
You can design your routine to help you stay disciplined and prepare for the days when you’re not feeling motivated. We’ll talk about five design features: choosing a regular time slot, performing a warm-up activity, developing a no-motivation contingency plan, keeping an accountability calendar, and planning future warmup activities at the end of each session.
In the meantime, you can identify regular time slots for practice that work with your schedule, and you can make a contingency plan for days when you don’t feel like working.