Is there a new skill or hobby you’ve been wanting to learn for a while? But for some reason, you haven’t been able to get it off the ground?

Or you’ve tried, sporadically, for a few weeks, before it fizzled out? Again?

Hey, that makes two of us. It gets kind of frustrating, right?

So this past year (2020-21), I’ve thrown myself into a daily experiment to solve this once and for all.

Whether you’re looking to learn programming, a new language, a musical instrument, or any new skill or hobby, I’m hoping that you find this article useful in some way. I’m not an expert by any means, so all I can share is what has worked for me. But if there’s one major thing this 12-month experiment has taught me, is how much joy and happiness the learning process can bring to one’s life. And, really, if there’s one thing we, as human beings, have incredible capacity for, is learning. It’s the foundation for everything.

I’ve always had a creative itch I needed to scratch. In the past, that has resulted in things like making comedy shows on community radio, producing a comedy TV pilot, writing screenplays, attempting podcast episodes, or even just doing karaoke (poorly). When I go too long without scratching that creative itch, I get agitated and something feels missing from my life.

For many years, I had wanted to learn game development as a hobby. I felt like it was an interesting way to combine elements of all these other creative outlets with my love of games in general. So in June 2020, I told myself this would finally be the time I give it a good try. I was aware how many times in the past I’ve tried learning a new hobby, and it just fizzled after a few weeks. I was tired of seeing that happen over and over.

So this time, I set myself five norms. Five norms that can be applied to learning anything:

1. Learn to walk before trying to run

As a beginner, it’s easy to try too much too quickly, get discouraged, and quit. I wasn’t going to make the mistake of trying to build a game way beyond the means of a beginner. I needed to start from the very bottom. Building very small things, following along with courses and tutorials, and just focusing on the learning process.

2. No course collecting

I’m sure we’re all guilty of this from time-to-time. One gets excited about learning something, there’s coincidentally a sudden huge sale on Udemy (which only happens… every few days), and before you know it you have 23 courses in your account and you’re never going to get around to them. I wasn’t going to make that mistake… this time.

3. Focus on one course

I was going to try a beginner game development course that looked promising and seemed to be the right level of difficulty and accessibility. Most importantly, the course looked like it was fun and motivating. I promised myself that, at the very least, I would commit to completing this 35-hour course. If I didn’t like game development any more after that, it would be okay to quit. But 35 hours, presuming the course was decent (it didn’t have to be perfect), would give me enough time to know if this was really for me. If I really enjoyed it, I would continue game development for at least 12 months.

4. It’s okay to not know what the f&*k is going on at times

As a beginner, this is totally normal. A lot of what we’re going to learn will not make immediate sense to us. So I promised myself that I would keep plowing through in that kind of situation. Perseverance is so important. Understanding will come eventually.

And then the most important norm of all…

5. Doing this literally every day

Particularly with this kind of subject matter (ie. programming), I felt it was crucial to be immersed in it daily, even if only 15 minutes on some days.

And that was it. Just five norms. And here’s what happened after 12 months…

12 months later

In mid-2021, I celebrated the 12-month milestone. It wasn’t easy, of course, but it was more fun and rewarding than I expected. And the results have blown me away.

Here’s what I’ve accomplished in my first 12 months of learning game development daily:

  • 42 courses / tutorials taken (over 260 hours from Udemy, Unity Learn Premium, LinkedIn Learning, and YouTube)
  • 18,816 lines of code written
  • 374 classes written
  • Largest prototype contained 37 classes and 2,618 lines of code
  • 56 GitHub repos created
  • 884 GitHub contributions
  • 43 prototypes of various game genres
  • 1 prototype of a game that has since become my first mobile game release (now available on iOS and Android)
  • A small, simple portfolio website showcasing my 43 prototypes here
  • And a draft of this blog post

It has been an incredible journey. Most of the 43 prototypes I created were from following tutorials, but 3 were my very own prototypes too.

But metrics are metrics. More importantly, what have I learned from this 12 month journey? And how can it be applied to learning anything else?

1. Have a strong “why”

This is the foundation for everything. None of the other stuff on this list matters without having a strong “why”.

To be blunt, not having a strong why guarantees that we will quit. That’s normal. It’s human nature. It’s how we’re wired. Life is busy. There are an infinite number of things we could be doing with our time at any given moment. But there are only 24 hours in each day, so we’re only going to end up doing things that we deem are necessary or important enough.

Learning a new thing, such as game dev, on its own, is not going to feel like a strong enough why. It’s too vague. There’s no clear outcome or measurable goal. How do we know once we’ve “learned” game dev? We don’t. We never will. There’s always more that can be learned.

So having a strong why helps build a foundation to start and continue through the long journey. In my case, my why was this:

I am learning game dev because I find it fun, I have loved games since I was a kid, and I believe that learning game dev will unlock other opportunities in life (eg. releasing my own indie game one day, meeting more like-minded people, or simply increasing my technical skills so that I can leverage that in my current career).

While learning game dev has definitely been challenging and sometimes frustrating (especially the first few months), I still find game dev fun. In fact, it has gotten more fun with each passing month. If I didn’t find it fun in some way, I wouldn’t still be doing this.

Even fun alone can be a perfectly good enough why. There’s always value in fun. Don’t let anyone convince you there isn’t.

2. Have a strong “how”

A strong why, while absolutely important, also needs to be connected to a strong “how”. Otherwise, it’s still too vague on its own.

My strong how was very simple and measurable. My initial focus was on completing that one, 35-hour beginner course. Once I finished that, I realized that I really liked game dev. I wanted to continue working on it daily, but now needed a new goal.

So I made an ambitious goal of building 40 prototypes. This meant I’d have to build a prototype roughly every week and a half. So that created a sharp constraint. The prototypes would have to be small. And I decided I’d build them with guardrails – by following along with tutorials and courses. The 40 prototypes I chose to do were a mix of different game genres, as well as simple remakes of well-known classic games. Everything from Pong, Frogger, Space Invaders, Asteroids, Pacman, Tetris right through to more modern classics, such as endless runners, 2D platformers, Match-Three games, Doodle Jump, Cut the Rope, and Angry Birds.

Having this 40 prototype goal gave me laser focus. All I had to do was show up every single day. Even on crappy days. Just showing up and typing code while following along with videos was still making progress.

What I didn’t do, though, was to start from day one thinking that I was going to build my own MMO, or an online multiplayer FPS, the next Minecraft, Grand Theft Auto, etc. That would be an absolutely ridiculous goal and one doomed to fail immediately. Even with a year of daily experience under my belt now, I still wouldn’t pick a goal remotely similar to that.

So the goal has to be small, but challenging and achievable. At the start of learning something new, we have to accept that there’s so much we don’t know. As human beings, we are already predisposed to underestimating things. So don’t underestimate this. Be prepared that it will take longer and be more difficult than you expect (difficult doesn’t have to mean “not fun” though). As you continue learning this new thing, you’ll understand more and more about all the things you don’t understand. Even after a year of daily effort, I know I’m only scraping the surface.

3. Do something every day

Having a strong why and how is an awesome start. But the danger is that it all stays theoretical, leaving us stuck in planning mode without ever truly getting started. There’s only one way forward here… regardless of whether you feel ready… (spoiler alert: you’ll never feel ready)…

The rubber has to hit the road.

And the only way that’s going to happen is with daily effort, one step at a time, one foot in front of the other.

Some quotes that spring to mind:

  • Everything starts with one step, or one brick, or one word or one day – Jeremy Gilley
  • Big things are built one brick at a time. Victories are achieved one choice at a time. A life well-lived is chosen one day at a time. – Lysa TerKeurst
  • The best thing about the future is that it comes one day at a time. – Abraham Lincoln
  • Let no one be deluded that a knowledge of the path can substitute for putting one foot in front of the other. – Mary Richards
  • The journey of a thousand miles begins with one step. – Lao Tzu

Yes, this all sounds like the most cliched advice imaginable. It is. But it’s also true. I’ve experienced this enough times in my life already to know that the only way forward with learning something new is to work on it daily. Even if it’s just 30 minutes. Or, if you’re really having a bad day, even just 15 minutes. Just… do… something. Yes, even if, sometimes, you don’t feel like it. It’s only 15 minutes. Probably the time it takes to read this article.

But why not just skip a few days and then “make up for it” by doing 7 hours once a week on a weekend? Deep down, you and I both know that’s not going to work. We’re not going to retain anything. We’ll start bargaining with ourselves. And we’ll eventually start finding reasons not to continue with it.

Learning something new has to become a habit. It has to become a routine. And it can’t do that if it’s only once a week or only on days when we feel particularly motivated to do it.

Working on it every day is a way to trick our brains into understanding, “Hey, this seems to be important since I’m doing it every day. I better start retaining and understanding this.”

During my first 12 months of game dev, I experienced some challenging life events. Other than the usual job / career workload and stress we all experience, plus general pandemic stress, I also got shingles and had a parent suddenly pass away. During those sorts of difficult experiences, it’s understandable to let that disrupt your life. But I told myself it’s important to keep powering on, even if it’s just 15 mins on really difficult days. Life will always throw unexpected curveballs at us. The planets will rarely align. Don’t let it stop the things you enjoy doing. Sometimes, the things we enjoy doing actually help us get through the tough times.

After 12 months, doing game dev has well and truly become a regular part of my daily routine. I don’t even have to think about it. Every morning, I wake up around 6am to work on game dev before my work day starts. It’s a great, invigorating start to my day. It brings me energy and gives me strong motivation to get up early. As someone who was never a morning person before, this dramatic shift alone has improved my mood and increased the quality of my life.

4. You don’t have to burn yourself out, but you do have to say “no”

It’s possible to achieve something like the above without the toxic “hustle culture” we always hear about online – which makes us feel like we’re never achieving enough compared to others, and that we have to keep striving and sacrificing sleep and health just to keep up.

Screw. That.

I was able to do 12 months of daily game dev while having healthy routines and getting 6-8 hours of daily sleep. In fact, learning game dev helped me create the most stable and healthy routines of my life so far.

How?

There really is no secret here. We each have 24 hours every day. Since I’m not a believer in finding more time by sacrificing sleep (seriously, don’t do it – it’s never worth it), the only way I could do what I did was by focusing on my priorities and what I was willing to say no to.

I get that everyone’s personal circumstances are different. But ultimately, it will always come down to priorities and what we are willing to say no to. There’s no way around that. It’s the only way we can find pockets of time.

At various times during the past 12 months, I’ve said no to:

  • almost any social activity outside of work (although I still made an effort to stay in touch, even if it was only an occasional phone call while making dinner, or a friend joining me for my daily walk)
  • reading news
  • reading / researching stuff that isn’t connected to my day job or game dev
  • watching movies, TV, Netflix, etc
  • spending time on my mobile phone
  • spending time on social media
  • random internet surfing
  • watching and playing sports
  • working out (although I do go on a walk every day)
  • virtually every other hobby
  • and FOMO

I’m not perfect, of course, so I did slip up on some of the above from time-to-time. And I’m not saying I’ll continue to say no to all this stuff in future. But you get the idea.

Your list may end up being different. But the point is that something needs to go. And probably not just one thing, but many.

Importantly, this isn’t just about time. It’s also about energy. Some things may only take up time. Some things may only take up energy. And some will exhaust both. So it’s important to be intentional with what we choose to say no to.

That might be painful to contemplate initially. Saying no to some things may make others unhappy. And it may also make us feel guilty.

Guilt is a useful emotion when we’ve actually done something worth feeling guilty about. Eg. making an unethical (or illegal) decision, intentionally hurting someone, etc.

But guilt is not a useful emotion when we apply it to things we shouldn’t feel guilty about. For example, carving out time to learn something new. We only have one life. While none of our lives are exactly identical (we all have a different mix of backgrounds, capabilities, strengths, weaknesses, life obligations, challenges, and baggage), we are absolutely allowed to do things for ourselves. What’s more, learning something new is one of the greatest and most valuable things we can do for ourselves.

Some people might think we’re wasting time on our hobby, particularly if it doesn’t feel like it’s connected or “beneficial” to our current career. Some people think any hobby is a waste of time. Perhaps they’re right, perhaps they’re wrong.

But, most importantly, their thoughts are just theirs. Don’t let it make you feel guilty about doing something you want to do for yourself. After all, there’s only one person that actually has to live your life every day – and that’s you.

Learning something new and having fun with it makes us more interesting, energetic, and happier people. That energy becomes infectious and will bring more people and opportunities into our orbit, increasing the quality of our lives and theirs.

5. Don’t wait to become motivated and inspired

Something I’ve done in the past when unsuccessfully pursuing a new hobby or skill, has been searching for “inspiration” and “motivation”. Often before I’ve even started doing the new hobby or skill. Just looking for that one video, book, or article that will be a magic shortcut to everything.

Spoiler alert: it doesn’t exist.

The worst case of this in my own life was the screenwriting hobby I had, on and off, for 13 years. While I did write a number of screenplays, and did produce some, ultimately I spent more time seeking motivation and inspiration, and READING about screenwriting, than I did… you know… actually screenWRITING.

So this time, I didn’t make the same mistake with my 12-month game dev journey. Yes, I occasionally did read or watch some motivational / inspirational game dev content during this period, but that was well after I had already established the daily habit and momentum, and the content I was seeking out was more to do with understanding what others had gone through early on in the game dev learning process. At that point, it was just adding gasoline to the fire I had already lit.

So show up and do the work first. If you enjoy it, motivation, inspiration, and momentum will find you.

Of course, if you genuinely don’t like doing it, then stop and find something else. Life’s too short. Don’t guilt yourself into doing yet another thing you don’t really want to do.

6. You are going to suck for a while

The hardest part of this process was being okay with being a complete beginner at something again. It’s easy to compare oneself to others… others who aren’t even beginners any more.

The truth is that learning any new skill or hobby will be difficult. And it’s difficult for everyone. But, at the same time, it’s not important to compare our progress to others. Everyone has their own timeline. Some are more naturally gifted than others. Some have head starts, while others start far behind. Some have different life situations than yours or mine.

Realize that it’s okay (and perfectly normal) to not understand something the first time around, or even the first dozen times. Chances are that many others didn’t either. Stop thinking that others are better at this.

Even after 12 months of daily game dev, I realize I’m still very much a beginner. There’s a lot I don’t know. I know I’m coding inefficiently right now, but I’m still building things, and improvement will come if I continue to chip away at it every day. I know it will likely take years. And it will be an ongoing journey.

The most important thing to remember is that it can be done. Others have done it; there is no reason you can’t either. It might be a different timeline than others. It will be your own timeline. But don’t let that stop you from starting.

7. Learning how to learn

One of the most valuable lessons this 12-month game dev journey has given me is learning how to learn.

So many of us have been programmed to think of learning as that thing we did in school / university / college. That thing that was often unpleasant, rigid, padded out with uninteresting content delivered by un-engaging teachers (with exceptions, of course… but, sadly, the good ones are a small percentage of the overall, bureaucratic experience), and stretched out for an unnecessarily long time so as to meet the regulatory requirements of what is considered to be “an education”.

(Takes a deep breath)

Wow, I almost went on a massive tangent there…

Taking learning into our own hands is incredibly empowering. It can be scary at times, because so many of us have been programmed to expect someone else to deliver us a curriculum. I know that for me, with this game dev journey, it was a challenging experience to try and craft my own curriculum. I made some mistakes early on (and continue to), but eventually started understanding what to focus on. Some of those things were:

Don’t learn stuff you don’t need to know right now

For my game dev journey, I realized that I didn’t need to learn about game design right now. Or level design, art, animation, music, sound design, narrative, etc. While all these things are definitely interesting and worthwhile areas to eventually learn about, they were not crucial to learning how to code prototypes and game features – which is what I was focusing on.

Learning these other things wasn’t going to matter if I couldn’t even code simple game mechanics first. Care about the other stuff once you know you can start building something that actually resembles a game.

Abandon crappy courses early on

I made the mistake a few times of sticking with a course that didn’t feel right from the beginning (eg. one instructor would finish typing out complicated code, and then instead of explaining it, would simply say “and that’s that”…). Like a good movie or a good book, it’s rare that they start off crappy and miraculously end up amazing.

Don’t waste time on crappy courses, and trust your intuition on this (rather than thinking there’s something wrong with you because you “don’t get it”). Sticking with crappy courses, and forcing yourself to finish them, is going to destroy your enthusiasm for learning.

Whether you’re stuck in an education system, or learning on your own, the quality of learning resources / instruction is always crucial. In this miraculous day and age, there are many high quality resources out there, and often inexpensive and / or free. You can learn anything with just an internet connection.

Boil learning down to the essentials

At its core, what is the thing you’re learning actually about? For game dev, I started realizing that, at its essence, it’s all really about: finding a thing, creating a reference to it, and doing something with it. Looking at it through that lens helped me when I encountered more challenging concepts.

Focus on applying, rather than memorizing

Especially for coding, there is an assumption that good coders memorize everything. So that means learning how to code involves memorizing.

But it actually doesn’t. Sure, I’ve accidentally memorized certain things (or at the very least remembered encountering a concept that I then knew how to search for). But that’s because I have immersed myself daily, and I’m constantly applying what I’m learning (rather than just reading / watching / consuming). Hence why the focus of my own curriculum was to build 40 prototypes.

Realize that progression comes incrementally

A strong part of the appeal of playing video games, I think, comes down to the fact that it’s usually an experience where the rules are clear and we know the exact steps we need to complete to achieve something.

But life is rarely like that. Nonetheless, the concept of progression is useful to keep in mind as we’re learning something new. While we might not notice progression in our skills as quickly as we would in a video game, that progression will still come with daily action. Every day we get slightly better, even if we don’t realize it. Then, after 12 months, we can look back and suddenly realize that we went from knowing nothing about something, to becoming decently competent.

Don’t feel bad about feeling overwhelmed

Initially, I found it challenging to have to deal with bugs and figuring out why my code wasn’t doing what it was supposed to. Even with the simplest exercises. And then, after I finished that first 35-hour course and thought I had learned enough to start my own project, I loaded up a blank screen only to immediately feel overwhelmed upon realizing I had no idea where to start.

However, after 12 months, these feelings are gone. A blank screen is full of exciting possibility now. And I’ve become used to seeing errors and bugs, and accepting that sometimes it will take me a while to figure out the underlying problem and how to fix it. I’ve come to understand, from my experience and others’, that this is a normal part of programming, and a normal part of learning. And, oddly enough, this very process is often where the fun is. It is immensely satisfying to eventually experience that “aha” moment.

After 12 months of learning game dev, I can now see how much it has helped me develop something even more valuable than game dev… the transferrable skill of learning how to learn.

8. It takes time, but time is going to pass anyway

I saved the most impactful lesson to the end of this blog post. At least, it felt impactful to me, and really helped add that additional layer of motivation.

There have been so many times in the last 5 years that I thought about trying game dev. There was even a brief period in 2018 when I did try it… and promptly stopped after a few weeks. If I had continued, today (in mid-2021) I could have said that I have 3 years of experience in game dev.

Wow, wouldn’t that have been cool.

It’s easy to put off learning something new. Perhaps we feel the timing will be better in future. Maybe in future we’ll have more time or motivation. Or things will just magically align and future us will be a completely different person than current us. (Spoiler alert: it won’t, unless we become different today and start that new skill / hobby)

Forget about starting tomorrow or next week or next month. Start today. For 15 minutes. And if we stick with it daily, in a year’s time we’ll suddenly have a year of experience. Imagine how that will feel, and what we might be capable of then. Imagine how much more confidence that will give us to keep going, to leverage all that we’ve learned during that time. This process self-generates momentum. Focus on that feeling now. And remember it. It will help drive you.

But if we don’t start today, that year will pass anyway. And then, 12 months from now, instead of saying we have a year’s experience, we’ll still have none. And we’ll still be telling ourselves, “I’ll try this soon.” The problem is, we only have a finite number of years we can keep telling ourselves that.

A year flies by. I can’t believe it’s already been 12 months of game dev. And yet here I am, in mid-2021, genuinely surprised at how much I’ve learned during this time. Want to try some of my prototypes? Check ‘em out here. Or you can play my first mobile game on iOS and Android.

As an old Chinese proverb says:

The best time to plant a tree was 20 years ago. The next best time is now.

We can’t change the past. And we can’t, actually, change the future. The only thing we can change is the present… starting from right now.