The Eleventh Hour

Finding time to become a better programmer

Welcome to ASK HB!

Ask HB is a new column that features actual tech questions submitted from programmers just like you.

Learning a new technology while juggling work and life is difficult. Hacker Bits subscriber, John, agrees.

John used to be a mainframe programmer. He has many varied technologies and programming languages under his belt.

In John's own words:

This is where the challenge comes in. The learning curve for getting up to speed on JS + HTML5 + CSS in order to build web-based tools seems steep. It has been hard to find the correct gradient approach. After a year or more of searching for the right approach (books and/or courses) I have settled on Elm as the vehicle to help me leapfrog and get up to the point where I can produce the tools I need with current technology.

I guess the challenge has different aspects: getting up to speed after not being a full-time programmer for over 20 years, figuring out where the technology is headed and how to get back in that groove, allocating the time to study when I am already overloaded with work (60+ hours per week).

Finding the brilliant and elegant solutions (such as Elm and Eve) to classes of problems (and whole segments of work) is vital. Otherwise the struggle with ever increasing amount of work is (or at least seems to be) futile. I still have drive to tackle the problems. On the other hand, I could retire and just let someone else do it.

Your mindset

Your mindset of wanting to tackle this problem is fantastic. Also, your belief that with the right approach, you can succeed -- that's something all of us (me included) could learn from. Getting up to speed is always better if you have a proven, repeatable system to do it.

I'll share with you my system, and we'll adapt it to your circumstances a step at a time.

A system

Over the years, I've found a 3-step system to be effective in many different learning circumstances e.g. work, school. Basically, any situation where I need to learn in a hurry.

Whether I'm joining a new company, new team, taking a new class or just learning to accomplish a goal, this 3-step system has worked for me time and time again.

Here's the 3-step system customized for your situation:

  • Step 1. Assess what an up-to-speed programmer looks like to you.
  • Step 2. Identify the core obstacle limiting you from being an up-to-speed programmer.
  • Step 3. Develop a plan to address the obstacle.
  • Repeat steps 1-3.

Let's start with Step 1 to make this concrete.

Step 1

From your perspective, what does an up-to-speed programmer look like? What can they do? Do they know Elm, Eve and other web technologies? More importantly, how do these skills apply to your current role in accounting?

Let's suppose your idea of an up-to-speed programmer knows Elm well enough to implement a solution to an accounting problem.

Step 2

What's holding you back from becoming your idea of an up-to-speed programmer?

There's always going to be obstacles holding back your rate of learning. If there weren't any obstacles, your rate of learning would be through the roof. If you're interested in digging deeper into the theory behind this, make sure to checkout The Goal by Eliyahu M. Goldratt.

So, let's take a look at your obstacles.

Looking at what you wrote, I pulled out a number of obstacles.

You mentioned:

  1. Not being a full-time programmer for over 20 years.
  2. Figuring out how to get back in that groove.
  3. Figuring out where the technology is headed.
  4. Searching for the right approach (books and/or courses).
  5. Learning curve for getting up to speed in order to build web-based tools seems steep.
  6. Allocating the time to study when I am already overloaded with work.

The core obstacle in your case is not being a full-time programmer for over 20 years. (We'll go into how to identify the core obstacle in another post.)

Virtually all the obstacles you mention stem  from being "out of the groove" for many years.

However, addressing this core obstacle won't work if there's no time to get back in the groove. We'll get into how to free up some time in the next steps.

The core obstacle limiting you from learning to be an up-to-speed Elm programmer is being mostly away from programming for over 20 years.

Step 3 - Finding time

Fundamentally, your lack of time can only be addressed in one way.

Since you can't create more time, you must replace something you're currently doing with your new study session.

Here are 3 ways you could do this:

  1. Replace 15 minutes of your time outside work with your new study session.
  2. Replace 15 minutes of your work time with your new study session.
  3. Couple your study sessions with something that doesn't require much of your attention.

You mentioned 60-hour work weeks, so that's about 12 hours each day. Supposing you sleep 7 hours and eat 3 meals lasting about 30 minutes each. Your commute is probably around 30 minutes each way, so that's another hour. In total, we have 12 + 7 + 1.5 + 1 = 21.5 hours. With a 24-hour day, that leaves 2.5 hours.

How are you using those 2.5 hours? Can those hours be repurposed for your new study session?

If the answer is yes, then repurposing even just 15 minutes is a great step.

If your answer is no, that's fine. You've made the decision that something else (maybe family time or exercise) is a better use of the 2.5 hours. Sleeping and eating generally aren't things you want to realistically change. So that leaves work and your commute.

Can you go to work 15 minutes later? Can you leave work 15 minutes earlier? If you can carve out just 15 minutes, you've found a better use for those 15 minutes!

On average, most commutes are about 30 minutes each way. Are you commuting via public transportation or are you driving?

If you're not driving, this is a fantastic time to carve out 15 minutes. If you're driving, why not listen to podcasts about Elm?

The idea is to turn your commute into a mobile study session. Check out Focal Point by Brian Tracy for his 1,000% Formula.

What about the weekend?

If your weekends are free, then you have a big chunk of time to study. Since you're trying to find time to study, my guess is that you've probably got something better to do on your weekends. Who wants to study on weekends, right?

Regardless, do try to carve out 15 minutes on Saturday and Sunday though. Learning complex things like Elm takes practice and time.

Carving out 15 minutes every day breaks down the learning process into easy-to-tackle chunks. Think of it as a systematic way of practicing... 15 minutes at a time.

Don't leave it up to chance that you'll feel motivated. Build the habit of studying Elm 15 minutes every day, because it is better to learn something in small, frequent chunks than in bigger, less frequent blocks.

Make sure to take a look at Mini Habits by Stephen Guise where he guides you through taking small habits to big changes in your life.

Whether it comes from those remaining 2.5 hours of personal time, cutting work hours by 15 minutes or repurposing your commute time, the habit of studying 15 minutes every day is how you'll find the time.

Step 3 - Core obstacle

With those 15 minutes every day, we're going to move your world! 🙂

The first thing you'll need is a roadmap.

What will you be doing in those 15 minute sessions?

Don't leave it up to chance that you'll find something about Elm to study in those 15 minutes. Create a roadmap of what you'd like to learn.

What should go on a roadmap?

Anything that moves you closer to being an up-to-speed Elm programmer. For example, An Introduction to Elm has a really nice outline and that outline could be your roadmap. If you prefer videos, a quick search for "elm language" in Google Videos might be on your roadmap.

Here are a few more places to get ideas for your roadmap:

Don't worry about getting your roadmap perfect.

As the saying goes, perfect is the enemy of good. Get your roadmap good enough so that you have a pretty good idea of what you're studying in the next few sessions.

Your roadmap will change as you learn more about Elm, and that's okay.

As you conquer items on your roadmap, you'll be doing more and more Elm programming. Whether it's reading about Elm, programming in Elm, asking questions in the Elm community, those 15 minutes are getting you closer and closer to your idea of an up-to-speed Elm programmer.

Just 15 minutes?

You're probably thinking... is 15 minutes really enough?

15 minutes may not seem like enough time to get anything valuable done. And that's the whole idea -- 15 minutes seems easy to tackle.

The whole goal is to create a sustainable habit that's difficult to skip. Some days, you'll only be able to eke out 15 minutes of studying. Other days, you may feel like you're on a roll... You might want to finish reading a particular section. You might want to write a few more lines of code, or wait to see the result of an application you wrote.

Those 15 minutes are invaluable, because they will eventually save you time. They will start compounding over the next few days, weeks and months. Each study session fills out your foundation in Elm, and then the sky's the limit.

The return on investing those 15 minutes is high. They'll enable you to write tools. The tools will enable you to save time at work which will give you even more free time.


Ask me your question

Ray Li

I share what works (and what doesn’t) so you get the whole story. I'm a software engineer and data enthusiast, I've blogged at rayli.net for over a decade. I work in Office at Microsoft (opinions are my own). You’ll usually find me wrangling data, programming and lifehacking.


Disclaimer: Please note that some of the links in this post are affiliate links (e.g. Amazon), and at no additional cost to you, we earn a small commission if you decide to make a purchase. Please do not spend any money on these products unless you feel you need them or that they will help you achieve your goals.

Comments 2

  1. I found however good I got at programming I still wasn’t good enough for the ludicrously bad IT job interviewers out there. One government department wanted me to create an entire app for them. For free. Before the first stage interview.

    I’ve found the solution – leave the industry. I’ll code as a hobby, and let somebody else worry about where the next generation of coders are going to come from.

    1. Post
      Author

      Hi, Brett. Thanks for taking the time to comment. I started writing a response to your comment, and I think it deserves its own article. Stay tuned — I’ll add a link here when it’s posted.

      UPDATE 8/17/2017
      Here’s the link: Acing your IT interview

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.