Many programmers are missing out on a simple way to improve their programming progress.
Just think of athletes, entrepreneurs, students, health-nuts, and travelers. They’re among the diverse groups of people who use a planner. Planners are often used to give productivity a boost in order to stay organized and prioritize tasks.
But that’s just the start.
A planner can also help you:
- Stay on the direct path—instead of winding down random paths and hitting dead ends
- Measure progress
- Stay motivated
- Conquer imposter syndrome
If a planner offers so many benefits, why don’t more programmers use one?
No matter if you’ve been programming for a month, year, decade, or more, all of us have something in common: there’s a lot to learn and we need to continually get better at our craft.
That’s why programmers of all levels should use a skill-building planner. It’s a way to get better faster and to actually enjoy the journey. It’s a lesson I learned the hard way during my days as a long-distance runner.
Born Out of a Need
My first half-marathon was memorable for all of the wrong reasons. I felt terrible during the race because I was completely out of shape. Plus, since I didn’t train properly, my finish time was dismal.
However, the experience taught me a useful lesson that I continue to apply to subsequent skills, including programming: the power of a planner.
Knowing that I could achieve a better race time, I committed to doing another half-marathon. I did many things differently on the second go-around, but two things stand out: I followed a running plan and kept a running journal.
The plan was useful because it contained all of the details: the number of miles I needed to run and how fast to run them.
The journal, which consisted simply of a legal pad and a pen, served a qualitative purpose. Each evening, I’d write a few notes about my running workout: how I felt during my run and factors that may have affected my performance, like the food I ate that day.
As I’d later learn, a plan and a journal are critical elements in the skill-building process.
Together, the details from my plan and the responses from my journal helped me to see progress, hold myself accountable to get the workout in, and ultimately become a much better runner.
I not only far exceeded my expectations in my second half-marathon, but I also enjoyed the training process and the race itself.
Simply put, using a planner and journal in combination can have a huge impact on the outcomes you achieve. In the years since, I’ve put this planner/journal model to the test by building other skills, including programming.
What I can tell you is this: incorporate the planner/journal model into your programming routine if you’re looking to achieve results efficiently and effectively.
Let’s dive into this model and how it can benefit your programming progress.
Different Skill + Same Process = The Outcomes You Want
When I began learning to program, I thought back to my running days and the habits that helped to accelerate my progress. The planner/journal model came to mind. I figured what worked so well with one skill could be re-applied to another.
I was right.
I re-applied this planner/journal combination (with some tweaks) as I set out to learn and get better at programming. Once again, it made all the difference.
As a programmer, I keep a detailed account of what I want to do each day and each week. These concrete details make up the planner side of my planner/journal model. The journal side consists of personal assessments of my work and abilities, such as:
- The mistakes I made during the day and the lessons I learned
- Learning strategies that worked well
- Tactics that helped or hurt my productivity
These responses are useful because similar comments creep up over time. So I’m constantly on the lookout for patterns. When I spot one, it’s usually a sign to make a tweak. Or, equally important, I know what to keep doing.
Using a planner and journal in tandem can help you stay on the direct path, measure progress, stay motivated, self-assess your work and abilities, and conquer imposter syndrome.
Let’s look at each in turn. To keep it simple, I’ll refer to this planner/journal model simply as a “planner” going forward.
Take the Direct Path
People who build skills often have a similar experience: they wind down many paths and repeatedly hit dead ends. Skill-building becomes time-consuming, frustrating, and exhaustive.
These are reasons why a planner can be so useful. It can help you stay organized and focus your time and attention on the things that matter most. Thinking strategically through each day and week can help you stay on the direct path—and bypass the number of random and unproductive paths and dead ends.
It’s not to say that you’ll never feel frustrated or stuck while using a planner. But here’s the difference: using a planner will help you identify what you need to do each day and why. This can help you get the most from your skill-building time, substantially reduce frustration, and reduce the number of starts, stops, and restarts along the way.
Are You Making Progress?
You may be working really hard toward your skill. But the question is: are you making progress?
This is an important question to answer and a second reason why a planner matters. Effort isn’t enough when it comes to building skills effectively. You’ve got to have concrete ways to measure your outcomes to ensure your hard work is paying off.
Some skills are easier to measure progress than others. If you’re a runner, the time it takes you to run five miles is either increasing or it’s decreasing. So measuring progress is relatively easy to evaluate.
But other skills, like programming, make measuring progress much more difficult. You can solve a bunch of programming problems, for example, but that doesn’t necessarily mean that you’re becoming a better problem-solver.
The solution is this: focus on small strides—that is, incremental improvements—each day. The idea is to identify one to three things you want to do or accomplish today. They should be small and manageable. Getting the problem to work on paper is an example of a small stride. Identifying the right algorithm to use in a problem is another.
Identify the small strides you want to make each evening for the next day or first thing in the morning. Then, at the end of the day, reflect on the progress you made toward these small strides, whether that’s something you did or learned.
Say the problem remains unsolved, for example. But you figured out the right data structure to use. Or you learned about a new approach that you can apply. That’s progress: you’re moving forward.
These small strides accumulate over time and will help you reach the outcomes you want.
Identifying the small strides you make each day matters for another reason: they’ll fuel your motivation. And this is the third reason why using a planner matters.
Creating small strides each day has made a big difference in my programming progress. I can see the progress—no matter how big or small—unfold right before my eyes, and it’s motivating.
Something I struggled with yesterday, for example, makes a lot more sense today. Or I flawlessly applied a concept I learned about last week. These small strides encourage me to get up and get after it each day.
There’s another reason to focus on small strides. Doing so makes building a skill much more manageable. Identifying the correct algorithm to use is manageable. Refactoring a portion of a program is manageable. Writing clear and meaningful variable names is manageable.
These small strides are exactly how skills are built: incrementally, step-by-step, one small stride after another.
We’re often in such a rush to move on to the next problem or program, that we fail to take a few minutes to self-assess our work.
That’s a mistake.
Taking time to self-assess matters: you want to make sure you’re running down the right path in the most effective way possible. The process is easier than you may think.
As programmers, we can assess our work by “looking back,” as mathematician George Pólya puts it in his book, How to Solve It.
Looking-back means to “reconsider and re-examine the result and the path that led to it.” It’s the step to take after you’ve solved the problem and before you move on to the next one.
The idea is to solve a problem or write a program. Then—and this is the important point—before rushing to the next problem or program, look back at your solution: learn from it, improve it, and consolidate your knowledge.
Sure, your solution may be correct. But is it also efficient and effective? Put another way, is your solution the best that it can be? Is there room for improvement by using a different data structure, better variable names, or another algorithm?
Answer these questions by taking time to assess your work and abilities. Looking back can help you move forward.
Conquer Imposter Syndrome
Perhaps one of the most important reasons to keep a skill-building planner is to conquer imposter syndrome. A lot of people struggle with imposter syndrome—including my past self.
The root of my imposter syndrome, as it turned out, was that I was playing the comparison game. You know, when you compare yourself to others. When I began to program, I often felt inferior to those with math or engineering backgrounds. I also felt inadequate when I read stories about how people who claimed to learn to program “quickly.”
The comparison game is a bad game to play because it puts your thoughts and energy toward things you can’t control. Plus, it distracts from what really matters: your progress.
There’s an alternative. Instead of comparing yourself to others, compare yourself to yourself. That’s what I’ve set out to do. It’s a small change that can have a huge impact.
A key step in that process for me has been to use my planner each and every day. Doing so has made the game a competition of one: comparing myself to myself. I do this by planning out each day, then evaluating my work and abilities.
A planner keeps the journey inward—focusing on the things that are in your control, like your daily effort, and the small strides you make each day.
Make It Happen with Daily Skill Planner
If you’ve read this far, then it’s clear that we’ve got something in common: we want to become better programmers. The ideas outlined in this post will help you do so.
If incorporating these ideas on your own is too much work, then here’s a tool that will do the heavy lifting for you: Daily Skill Planner. It’s a hands-on, practical skill-building planner that my husband, Paul, and I created and designed together.
Daily Skill Planner contains a four-part framework that’ll help you build skills efficiently and effectively. It’s also designed to include the benefits addressed in this article:
- Taking the direct route toward the outcome you want
- Measuring your progress
- Staying motivated by focusing on small strides
- Self-assessing your work and abilities
- Conquering imposter syndrome
Whether or not you choose to use Daily Skill Planner, I hope this post has motivated you to keep a skill-building planner—even if it’s as informal as using some paper and a pen, as I began doing years ago.
So here’s my challenge to you: keep a planner for a week or two and incorporate some of the ideas addressed in this post. Then, at the end of this short time period, just see how far you’ve come. I think you’ll be impressed by the outcome.
Programmer and writer | howtolearneffectively.com | dailyskillplanner.com