Hello, friends!
In this issue, you'll see three things that can help you work smarter and faster. First, you'll see how you can get ready to do the work you need to do each day by explicitly setting aside time to plan the work. Then you'll see the one command-line trick I use every day that I can't live without. Finally, you'll see how you can help your learners stay engaged in workshops or classes you're facilitating.
Work comes at you fast.
There are tickets, backlog triage, stand-ups, team meetings, and tons of other things that fill up your days. With all of those things going on, it's easy for things to slip.
When I was teaching, I had something called a "load." A full-time faculty member would have a 90-110% load. Each class you taught contributed to the load, and if you were doing some curriculum development or acting as the department chair, that would factor in. Baked into that formula was the expectation that you were not only teaching the class but also preparing to teach the class. I'd often spend an hour before class preparing for the section I was about to teach or debriefing myself on the course I had just taught.
The idea of "prep time" carries over to the corporate world. People in leadership roles are often encouraged to spend some "executive time" each week to focus on strategy since all the time goes into meetings.
But don't let the executives have all the fun. Adopt this practice for yourself.
Set aside time for yourself. Block it off on your calendar like you'd block off your lunchtime. (You are blocking off time for lunch, right?) This way, nobody can schedule a meeting and disrupt your time.
You might use your prep time to:
If you're concerned that this will cut into your "deep work" time and cost you some productivity, I promise this won't happen. After a while, you'll probably move faster. It's essential to take the time to figure out if you're making good, deliberate choices. Sometimes, while we're solving the problem, we lose sight of the actual reason we're solving the problem. Setting aside time to think about the work you're about to do can save you time in the long run. Use your prep time to prepare to do some work so you can do the work more effectively.
Metacognition, or the awareness and understanding of your thought processes, is also important to explore. By setting aside time to just think and prepare, you'll start thinking about how you think. You'll begin to examine your thought processes, and you might even change how you approach your work. Sometimes, you have to slow down to speed up.
You should find time in your day for prep time. For me, it's 30 minutes at the start of my day. I use it to look at my calendar and to-dos for the day and figure out how to get things done. For you, it might be how you end your day and reflect on how it went. Find what works for you and adjust. You'll find you're more prepared for things that come your way throughout the week.
I love the command-line interface. I write my code in Vim, use the git
command to stage, commit, and show the differences in my files, and I use a slew of other CLI tools to get work done daily. I've even written a handful of tools myself, edited a book on making CLI apps with Go, and wrote a book on CLI tools. But there's one CLI trick I use daily, and it's probably the most valuable trick I've learned.
If you've ever had to compose a long command, you've probably written it in a text editor and pasted it into your shell. But you don't have to do that. If you use the bash
shell, you can press CTRL+X
CTRL-E
, and your default shell editor will open. You can type the command in the editor. If you exit the editor without saving, the command will be aborted. But if you save the file, your command will run.
The editor that opens is the editor you've associated with your shell's VISUAL
environment variable. This will be vi
or vim
on many systems. If you're not into using Vim, you should configure your shell's visual editor to something more friendly:
SET VISUAL=nano
If you press CTRL+X
CTRL-E
while something is already on the line, that text will be brought into your editor so you can finish typing a command. The best part about this is that it also works with your command history. You already know that if you press the UP
arrow, you can see the previous command you executed. Use that to bring up a previous command that failed, then press CTRL+X
CTRL-E
to edit the command and run it again.
You can also use this to run a series of commands. Press CTRL+X
CTRL+E
and enter each command on its own line.
And, of course, you can use \
to make long commands easier to read and compose, like this command that creates a text file using cat
:
cat << EOF > myfile.txt
Line 1
Line 2
Line 3
EOF
Those of you who use the zsh
shell can also get this behavior. Add the following lines to your .zshrc
file:
autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line
Save this and reload your shell, and you can now use CTRL+X
CTRL+E
in your shell to edit commands.
Keep this in mind the next time you're writing a large curl
command to test out an API. You can create the command using this trick, but you can also modify the command and rerun it.
I'll be in front of students again in September for the first time in four years, and teaching methods are definitely on my mind. I'll be delivering a four-hour workshop, so I'm thinking about the classroom management I'll need to do to keep everyone engaged.
One of the most effective methods I've seen and used is one I learned from one of my teaching mentors years ago. He called it "Beat the Clock". The idea is that you should divide the time of the workshop or session into a maximum of 20-minute chunks. Every twenty minutes, you should switch to a new learning activity.
For example, it's common to create a talk that lasts an hour. You have all those slides you want to get through. But if you took that hour and split it apart into 3 twenty-minute sections, you could approach it differently. You could have 20 minutes of slides, 20 minutes of discussion, then finish with a 20-minute demo.
The 20-minute number is the maximum, and for many neurodivergent folks, that may be pushing it. So, see if you can get even more creative with introducing topics and learning activities. Here are just a few ideas for running a section:
Playing "beat the clock" with learning activities helps you change the experience from something about you, the teacher, to something that centers the learner. Adult learners want to feel included in the learning process, so this helps them feel involved instead of being talked at for extended periods of time. The bonus is that you don't have to do all the talking, and you don't have to do all the work. You move from an instructor to someone who's facilitating a learning experience.
This approach can even work with online courses. Instead of recording hours of lecture videos and placing them in a sequence, provide short videos, short written content, interactive assignments, discussion posts, peer reviews, and other activities that make sense.
Try this method to plan your next talk, workshop, or presentation. People will remember a few points from a good talk, but they won't be able to stop talking about the immersive learning experience you guided them through.
Until next time, I leave you with some things to think about and do.
I'd love to talk with you about this newsletter on Mastodon, Twitter, or LinkedIn. Let's connect!
Please support this newsletter and my work by encouraging others to subscribe or by buying a friend a copy of Exercises for Programmers, Small, Sharp Software Tools, or any of my other books.