Stay On the Path

Thoughts on learning to code as a father of two young kids

Josh Keller
Nov 25, 2020 · 8 min read

For the past 14 months or so, I have been primarily a stay-at-home dad to my two wonderful kids. I would be lying if I said I’ve loved every second of it, but I wouldn’t change it for the world and it makes sense for our family, especially during the current pandemic. But back in February, I was going a little crazy, having been cooped up, largely indoors, with a 3-year-old and 1-year-old all winter. You see, I love my children and I also love things that are logical and predictable. I love taking agonizingly specific direction from my daughter as we play ‘Frozen’ for the 97th time and I also love thinking about problems that have definite solutions. I love reading “Brown Bear, Brown Bear, What Do You See?” to my son (also for the 97th time) and I also love learning as much as I can about a wide variety of topics.

Some of that learning led me to stumble upon some very engaging Intro to Computer Science lectures on YouTube. It had been nearly twenty years since I took a few computer science classes in undergrad. Craving a mental challenge, I decided to go back and see if I could still learn to program. Now, with so many free resources online, I dove in and tried my hand at it again.

I found it to be the logic and order that my life as a wrangler of preschoolers was missing. As I went through my first course, I would often stay up until 1 or 2am, working on the next problem set. I got the thrill of solving a problem and the joy of learning something new and useful. I also got the crash that came with consecutive nights of 4 hours of sleep.

Photo by Ken Suarez on Unsplash

At some point I decided to become more serious and eventually found Launch School. Drawn to the philosophy of mastery-based learning and focusing on fundamentals, I was all-in. Except for one problem — consistency.

Consistency has never been my strong suit to begin with. And if there is one thing I have learned as a parent, it’s that consistency can be hard to count on. You think you’ve gotten into a good rhythm and then something happens — a sick kid, teething, you have to be Kristoff for the 98th time right now. While I am dedicated to Launch School and the deep-learning it requires, I am more dedicated to my family. And so, I am having to learn how to make the two work in harmony. Here are the lessons I’ve learned so far and the lessons I am still working on as I go:

Consistency doesn’t mean rigidity

I know the importance of having consistent, focused study time in order to make progress in learning something new. For me, this has had to be early in the morning. I have been waking up between 5 and 6 am to complete 1–2 hours of focused work each day. Having never been an early riser before, this is new for me, but it’s slowly becoming a habit. One of the things I’ve had to learn is that “habit” doesn’t necessarily mean “every single day without fail”. Habit means the default, or the thing that you do without too much energy or thinking. In the past, I’ve put so much pressure on myself to keep a habit, that if I missed one day, I would just throw in the towel.

In the book Mastery by George Leonard he writes that to change a habit we have to push against homeostasis. We are living organisms and as such, we naturally try to keep things in balance. Any change — good or bad — will be met with push back from our internal systems trying to maintain homeostasis. Key for me in this journey so far has been to recognize my small deviations from my desired habits not as some personal failing, but as the natural process of my body resisting change. This has allowed me to be more forgiving of my misses.

Mastery is staying on the path

The other gem from that book has been one of my new mantras: “Mastery is staying on the path.” On days that I don’t get up early to get my time in, I ask myself why. Often it was the two hour stint I did soothing a fussy child in the middle of the night. I give myself the pass, see if I can make up at least some of that time, and try my best to get back on the path. I am learning to be dedicated not to a rigid habit, but to staying on the path toward my long-term goal. My habits are not the goal, they serve that goal. When I fail to perform a habit on a given day, I remind myself that I can still stay on the path toward my goal.

Using the little moments during the day

It’s incredibly important to have focused time to study, free of distractions. For me, that’s usually my early-morning times. However, as a parent, I’m finding that I need to have ways to make use of little times throughout the day when I can catch 15 or 20 minutes to study. One of the keys to making this work is to be ready for those moments so I can take advantage of them. If I use some of my focused time to prepare flashcards and other materials so that I don’t waste time when I only have a few minutes, then I know exactly what I need to do when I find myself with a few minutes during the day.

I’m not going to learn a new concept or work on a larger program during one of these stints. I need to use my dedicated time for those types of tasks. But, reviewing flashcards, solving a small problem, listening to a podcast or tech talk? All of these are things that I can get some benefit out of even if my focus is not 100%. Don’t get me wrong, I think it’s best if my focus is 100%, but that’s just not the reality of my life right now. I need to make as much time for focused study as I possibly can and then be ready to use the bits of time throughout the day where I can dedicate 60–90% of my brain.

I don’t recommend relying too much on this. It really is best to have focused study time. I am not kidding myself that this will be as efficient as finding additional dedicated time to study. But will it help as a supplement to my focused sessions? I think so! In fact, in the course Learning How to Learn education researcher Barbara Oakley says that practicing recall in different contexts and in between different material can help promote memory in a process called interleaving. So far, my daughter has been a great sport when I ask if I can explain aloud the technical details of a code snippet while we’re walking through the neighborhood.

Knowing when (and how) to turn off

I really love programming. Rather, I love thinking logically and solving problems and programming gives me an outlet for this. I actually think programming is really good for my mental health. When I have a good solid block of 1–2 hours to focus on coding in the morning, I find my mental and emotional well-being is better throughout the day. Does that make me strange? I don’t know…

Photo by Isabella and Louisa Fischer on Unsplash

But if I’m not careful, I can get lost in my own head and become distant to my family. I can be physically present in the room but mentally I’m fixing that bug in my latest program or trying to figure out the best algorithm for this or that. This is when I know I need to mentally turn off. I remind myself that the bug will be there next time and that actually, it would be good to let my brain do some diffuse mode work on the problem at hand.

It helps to have a clear system for knowing where to pick back up. When I’m at my best, I have a document that I jot some notes down in before I leave the computer. That way I know right where to pick up later. In my code I make comments that include three exclamation points (!!!) which I can then search for to make sure I don’t forget anything. The more I can offload the mental task of remembering what to do next, the more I can be present with my family. This is probably my biggest area for improvement and one that I will need to keep working on.

Getting clear about sacrifices

When my wife and I were discussing the possibility of me enrolling in Launch
School, we talked about how much time it would take and where that time would come from. I knew that to make the investment worth it, I would need to devote at least 15 hours a week to studying and coding. I felt like even more would be better, but 15 hours was the point up to which we were willing to sacrifice family time and other responsibilities. If I haven’t made it to my 15 hours by the weekend, we make the time for me to go in the office and finish up, even if it means missing out on some family time. But if I’ve made it to the 15 hours and there’s an opportunity for some quality family time, I need to put aside the computer and engage.

Some weeks the stars align and I get more time to work toward my goal. I’m able to get up closer to 5 instead of 6. My kids sleep until 7:30 instead of 6:30. I find some extra time in the evening after they’ve gone to bed. But I treat those as nice bonuses rather than something that I can expect. I know that in the long run I will be better served by gentle, sustainable consistency than fits and starts. Sure, sometimes I push a little bit when I know I can finish a project if I stay up a little later. But I’m clear that those are the exception rather than the rule, and there is nothing wrong when I don’t have the energy to make one of those pushes. Stay focused on the long-term goal. Stick as close as I can to the fifteen hours. Stay on the path.

With hard work and some luck, I will be launching an exciting new career sometime in the coming year or two. These sacrifices will be worth it, but so will exercising limits on the sacrifices I’m willing to make. Having practice in this before launching a demanding career will hopefully serve me well as I strive for work-life balance.

Launch School

Publications of the Launch School Community