Warming Up with Coding Cardio

One of my favorite resources to point front-end people to is Wes Bos’s JavaScript30 course on YouTube. In particular two of the videos which he calls “Array Cardio.” While most of the videos are little projects you can make in about 30 minutes, those two days have less of a result and are mostly about using all the array methods and just printing all the results into the console.

It’s a really enjoyable process: focusing on the fundamentals of the language you’re working in. And this morning I found myself needing something similar. I have a couple heavier projects on my mind and getting my mind ready to work on them was proving difficult. It wasn’t a procrastination problem, just a clarity problem.

For some reason the “cardio” idea came to mind, which reminded me of another little project I have on the backburner: working through Learn Python the Hard Way. That course is almost entirely code cardio, very intentionally. To use Zed’s words:

It’s only the “hard” way because it uses a technique called instruction. Instruction is where I tell you to do a sequence of controlled exercises designed to build a skill through repetition.

To start my coding session off, instead of getting right into the PHP I’d be doing the rest of the morning: I actually did a lot of typing in Python using the next exercise from LPTHW. Like a light jog before a workout, it was exactly the trick I needed.

What You Do and How You Do It

When examining my career, I describe most of my efforts both ways. It’s why I’ve pushed so hard to improve on a craft I believe in. Until today I don’t think I’ve ever sold myself that way.

What I do: WordPress developer, front-end developer, full-stack developer, PHP developer.

How I do it: on time, just-in-time, humbly, transparently, remotely, honestly.

I used to think the “what” could make me rare and valuable. But more and more the feedback I get says it’s the “how.”

The Right Work with a Bad Result

The poker player has bet well for a few rounds and thinks they have the best hand, all the way up to the river. Now she feels like the one opponent remaining may have been holding onto a straight draw they way overplayed… until it just hit. After a minute of deliberation, she folds the hand. It hurts to lose a big pot she took the time to build, but it was the right call.

The lesson learned isn’t that she shouldn’t have bet all those times. It’s that bad results can still happen, even when you do the right work. Do the right work again. Try to keep doing it better. 

That sales call where you followed up as promised, but the client you thought you had rapport with had nothing but a snarl for your latest proposal. That short story you wrote with the perfect twist ending, that had nothing but rejections from your favorite magazines. That conversation you’ve been meaning to have with a parent for so long, but doesn’t go as well as you’d hoped. You made the right call to make the effort, and the bad result was out of your control.

Make more calls, and keep trying to make them better. Learn the work, not the result.

Todoist: My Current Toy for Tasks

Speaking of toys, one of my latest favorite toys is the task manager Todoist. At work we had project management software and I made a point to route most of my day through that, but all my personal notes, todos, reminders and whatnot have been through Todoist since August. Now that I’m flying solo, I’m putting all my freelancing tasks through Todoist as well and it’s been amazing.

What to look for in a Todo app

The only thing I care about in a todo app is “what does the app assume I care about?” Productivity apps almost always work better when you follow their system instead of trying to force your system upon them. So when I started considering Todoist what really sold me was a particular blog post from the company’s founder in 2016, “Systemist: A modern productivity workflow“. The post outlines how Todoist assumptions basically start with the classic Getting Things Done (GTD) methods but let’s all admit to ourselves that some of the GTD decision tree is just in the way. What Todoist assumes I want is to capture tasks and thoughts into my inbox really quickly, from everywhere you’d expect to get tasks and thoughts. From there it assumes I want nicely filtered views while I’m in action mode so I can concentrate on only the tasks I want to work on. On these two fronts I’ve been able to more rapidly adopt Todoist than any other task application I’ve used in the past.

Quick add even quicker

Many features and integrations make it easy to add tasks. Perhaps most importantly they don’t feel like additional tools to learn, they’re just part of the system.
  • The quick-add toolbar feels a lot like Alfred workflows, but even better
  • The natural language syntax for projects, labels, and reminders doesn’t have to be taught, it just happens
  • Todoist for GMail and Todoist for Chrome are really stable and make adding emails or webpages as tasks really fast
Between those three options, I already was capturing more tasks than I normally would.

Endorsement

I wholeheartedly endorse Todoist if you’re in the market for a todo application. However,going into it you should really think of it as a $30/yr application not a freemium application. The free version is great for giving you a feel for how it works, but I really cannot imagine trying to tame a monkey brain without the premium features. Labels, reminders, and comments are really all essential.

Questions

I’ve been avoiding opening comments on my blog posts, but in this case I’m kind of interested to know if any of my friends use Todoist and what they think about and I’m also open to questions on how I use it. So comments are open!

Referral

If you purchase Todoist Premium and use my referral link I get 2 extra months of premium, which I love. Thanks in advance for the click: https://todoist.com/r/alex_xiwmok

Toys

My boss liked to poke at me because of how much I enjoy my “toys:” the little tools, tricks, and habits I’ve picked up over the last five years. But I’m starting to learn  the toys I play with have a profound effect on the decisions I seem to make.

Let me be clear: he was never hurtful. It just shows how different we approached our identities as developers beyond our immediate work where we held so many of the same opinions.

Does it really matter if I like Carbon to make source code snippets look nice? Probably not. It’s just a toy and there are a hundred other ways to share code snippets. But I bet I also read a lot more 🔥tips on twitter than he does, and in that circle of devs Carbon is super common. People like us share code like this.

Terminal vs Hyper. Google Docs vs Simplenote. Plain text vs Markdown. QWERTY vs Colemak. It would come up all the time how not only did I not use what everyone else used, but I very much loved my choice for one reason or another. The point being not that we disagreed, but that it seemed kind of silly that I would spend time even considering my preferred toy when the normal kind does just fine.

Toys are Tools When Work is Play

It might be my downfall one day, but my love of the tools in my craft is part of why I love the craft itself. I spend too many hours a day trying to make good art not to feel like my tools are helping me instead of hurting. Software, hardware, my chair and desk (yes, I have a sit/stand desk) have all been carefully improved upon bit by bit for a long time. And the more I feel at home with these tools, the more my art is just a game I play.

Work They Would Miss

Next week is my last one full-time at ye olde web agency. It has me a bit emotional because the is the first job I’ve left where I feel like I’ve truly left a mark. I’m proud of my earlier jobs too but in all of them I think I was a cog in a machine. At Makespace I always tried to be me, doing the best I could to help others.

Multiple people have pulled me aside or messaged me privately to say it won’t be the same without me, or they’re not sure how well some such thing will happen without me or even a true plea to stay. For the first time I think I’ve succeeded in doing work that is indispensable. That’s a goal I’ve been striving to reach for at least 10 years.

But that’s also why I have to leave. If I’m ready to do work that’s worthwhile, that people would miss if it was gone, that makes my tiny square of this world ever so slightly better, I have the responsibility to provide it as best as I can.

To accept that responsibility I’m also ready to accept the risks that come with being a craftsmen. It’s scary to be sure, but it’s never felt more right.