“The standard pace is for chumps. The system is designed so anyone can keep up. If you’re more driven than ‘just anyone’ — you can do so much more than anyone expects. And this applies to ALL of life — not just school.” — Derek Sivers, founder of CD Baby

Learning to code can be challenging — especially when you also have a job and a family with small kids. Despite those things, I decided that the standard pace was not for me.

My goal in writing all this is not to brag — though I am extremely proud of these accomplishments. My goal is to convince you that the standard pace isn’t for you, either.

I’ve done a lot in the past year. I earned two Oracle Java Certifications, two CompTia Certifications, and freeCodeCamp’s Front End Certification. Each of these take most people many months of preparation, but I did them all in three weeks each.

And last but not least, I completed all the coursework necessary to earn a second Bachelor’s degree in software development from an accredited university, in less than six months.

I did this all while working full-time, spending time regularly with my wife and two young kids, and volunteering in my community.

One of the keys to accomplishing all of this was an amazing and supportive spouse. ?

But there were also some other things that helped.

What’s Your Motivation?

After being a K-12 teacher for five years, I realized I did not want to teach in a school the rest of my life.

I loved the teaching part of teaching, but I hated the forcing-kids-to-do-things-they-don’t-want-to-do part of teaching. Classroom management in my urban school district was very stressful for me. I was also becoming disenchanted with the whole educational system. We seem to be preparing students for jobs that will no longer exist.

I had always been interested in coding and even sometimes taught my students basic coding using Scratch and Code.org. I decided it was time to learn enough to do it full-time.

Wanting a new job was great motivation. Everyday I spent at my teaching job was an incentive to keep pushing myself towards my goal.

Research, research, research

It’s important not to rush into learning. Not all schools or learning resources are equal, and the wrong choice can make a big difference in your ability to meet your goals.

I tried to determine what learning method would work best for me and my family. While I know there are many ways to break into the tech industry, I decided on a somewhat traditional route: a Bachelor’s degree. I knew I had some classes already that would transfer into a new program. I looked into many school options but I decided on Western Governors University for the following reasons:

  1. It is all online so I would not have to take time from my family for transportation.
  2. You can work at your own pace, so I knew I could finish very quickly. As soon as you finish all the assignments and exams for one class, you can go immediately to the next class.
  3. The cost is low — about $3000 per six months.
  4. It is reputable, accredited, and has been recommended by President Obama and Bill Gates.
  5. The degree included industry recognized certifications. I knew those would add to the credibility of my education.

Beating ambitions goals

At first, my goal was to finish my entire Bachelor’s degree in one year. One month into the program, I decided to revise my goal and finish in six months.

It was at this point that I did what helped me most in my goal to finish quickly: I made a schedule of the exact day I would finish each class so I could finish within 6 months.

I scheduled between 1 and 3 weeks for each class, depending on class requirements. I also made plans at that time about how I would finish each class very quickly. It was very helpful to have many subgoals throughout the learning process to make sure I stayed on track.

Section of actual spreadsheet I used to plan for classes.

Ambitious goals are important. These provided me additional motivation to push myself. A study by the Journal of Consumer Research showed that ambitious goals make people happier. I ended up meeting or surpassing all my self-imposed deadlines and that definitely made me happy!

Detailed schedule

I created a detailed weekly schedule to help me spend a lot of time learning without neglecting my family and other responsibilities. I scheduled in family time, volunteering time, time with friends, and even a weekly date night!

The schedule I created at the beginning of my degree. I have an even more detailed schedule now.

A detailed schedule helped me make sure that my life stayed balanced. However, there is one thing I did not put on my schedule: television.

I watched only 3 episodes of television the entire time I worked on my degree. I had such a tight schedule to keep so I could meet my goals so I did not have time for TV. Also, any time spent watching television meant less time with my family. Since graduating, I have continued to limit television so I can focus on coding.

It was important for me to give things up in order to accomplish my goals.

Ignore the haters!

Every student at Western Governors University is assigned a mentor. Students have weekly calls with their mentors to help keep them on track. Whenever I shared my goals with my mentor she tried to encourage me to be a little more reasonable.

Well, instead of being more reasonable I decided to set more ridiculous goals. I know she had good intentions but I decided to ignore her warnings and stopped sharing my goals with her.

I have found that it is sometimes helpful to not share goals with certain people if they are not going to be encouraging.

Maximizing time

Besides my scheduled time to learn software development, I also found ways to fit in even more studying. For instance, I used most of my lunch breaks to study. Also, I often carried notes in my pocket that I could review whenever I had a free moment.

Another thing I did (and still do) was to take days off my teaching job to work on my classes or programming projects. While completing my degree, I planned my days off to line up in my schedule when I knew I had harder classes to pass.

I try to be constantly reevaluating my schedule and how I spend my time so I can have greater effectiveness.

I used to code a lot after my kids went to bed. However, I noticed that by the end of the day, my brain just did not work as well. I switched up my sleep schedule so I now go to bed around 9pm and wake up at 4am to code (and create training videos). This may sound a little crazy but it has greatly increased my productivity.

Learn what others do

I spent a lot of time on the Reddit page for my college and various forums reading about what others did that helped them with their classes. For the industry certifications, there were even more resources available to help. This allowed me to better plan the quickest way to finish.

There is almost always someone out there who has gone before you, and it’s important to identify them and learn from them.

Learning from others was also very helpful while going through the freeCodeCamp curriculum. Experienced people in the community are always willing to help or offer suggestions in their forums and community chat rooms.

Just ship it!


Shipping means to send out a completed product.

There were many times when I wondered if I needed to put in more time working on projects or studying. Then I would realize that I didn’t have time if I wanted to meet my self-imposed deadlines.

My deadlines forced me to act before I felt completely ready, and this definitely paid off.

I’ve found that it’s more important to get projects out there than to make them perfect. If you try to make sure everything is just right, you may never finish. When in doubt, just ship it!

The 80/20 Rule


The 80/20 rule states that for many events, roughly 80% of the effects come from 20% of the causes. When learning software development, this means that about 20% of the learning content will contain about 80% of what you will actually use. You can save a lot of time if you just focus on the top 20%.

For my degree, I only read between 20–30% of the required content. According to the 80/20 rule, this was enough to understand over 80% of the subject matter.

The trick is determining which 20% to focus on. I would often ask myself, “If I were designing the exam, would I include this material?”

Really, when learning anything, you should ask yourself if it is part of the 20% of learning content that will give you 80% of value.

This relates to the idea of just-in-time information. It’s usually not beneficial to learn something that you don’t plan to use in the near future, especially when your memory is as bad as mine. ? When working on projects I try to learn what I will need just for that project.

Employers often care more about projects you’ve created than how you learned to code. Keeping this fact in mind will help you decide how to best use your time.

Keeping things moving forward

I didn’t take any time off from learning once my degree was finished. I realized the importance of projects, so I went straight into freeCodeCamp and started creating personal projects to build up my portfolio. I was able to continue to apply all of the strategies that I used while completing my Bachelor’s degree.

I also continued to use these strategies when I decided to start creating JavaScript training videos. Now I’m posting JavaScript training videos almost every day on the freeCodeCamp YouTube channel.

If you’re interested in the specific things I did for each class to finish my WGU degree quickly, you can check out this blog post.

I hope some of the strategies I used can also be helpful to you, even if your life is as busy as mine.

Remember: the standard pace is for chumps. You can do better!

**Update** My new video course about software algorithms is now live! Check out Algorithms in Motion from Manning Publications. Get 39% off my course by using code ‘39carnes’!