Learning Cycles

1. Intro


Learning isn't a skill often explicitly taught in school. So, people tend to think, "I'm just not smart enough," or "I can't remember things as well as that person - they must be gifted." And hey, I'm not going to lie, there's some truth to that. Factors such as your educational background, upbringing, level of confidence, and even a natural inclination towards certain topics can play significant roles in your ability to learn. But I truly believe there's a way for everyone to boost their productivity when learning something new. It's all about understanding your personal learning cycles, especially when you're immersing yourself in expansive fields of knowledge, such as language acquisition or programming.

Most people can relate to the feeling of being hyper-fixated on a topic, diving into it, learning a bunch, but then getting burnt out. That's when those Twitter gurus tell you it's about consistency and discipline. But wouldn't it be nice if we could stay motivated almost every day? 🧐

2. Discovery


The theory of having a learning cycle definitely exists (if you're interested in that you can simply google "learning cycle"), but I only figured out mine after I began learning Mandarin and coding. I routinely get people telling me "you must be a fast learner!" or asking questions like "how do you plan your studies?". It got me thinking - what am I doing differently? So I decided to share my process.

*disclaimer: I can't guarentee this will work for everyone, but it's what works best for me πŸ˜„

With no previous experience learning Mandarin, and after studying for only about a year, I achieved a relatively high level of fluency compared to my peers. But why? what am I doing differently that other people are not? same with coding, although I'm not sure how my speed compares to others, I still would like to share my process. Even if it helps just one other person I would be happy. πŸ˜„

3. Process


So here's the gist: I go through three main cycles when studying. Being aware of which cycle I'm in at any given moment has helped me stay productive without burning out. But keep in mind, for this process to work best, you have to actually enjoy what you're learning about. If it works for subjects you don't like as much, that's great, but no guarantees!

chart showing the cycles chart showing the cycles

CYCLE 1

structure

This cycle is all about learning through a clear-cut, structured path.

If you're a developer, think of the times you've spent learning on platforms like freeCodeCamp, Scrimba, or Codecademy. In regard to learning a language, this could be attending a language course, or following some kind of predeterimined learning path, like in a textbook. At this point, you will start grasping the fundamental concepts crucial to the subject you're learning.

arrow svg

Learning HTML/CSS example

arrow svg

πŸ‘©πŸ»β€πŸ’» When I was doing the FCC responsive web design certification I really fell in love with coding (at least I thought that's what I was doing with HTML and CSS πŸ˜†) During this time, I was doing the specific tasks and assigments they gave me.

This structure acted as a sort of roadmap. I never felt lost or overwhelmed because I knew exactly where I was and what I was supposed to do next. The concrete tasks provided me with clear goals, and achieving them gave me a sense of accomplishment and motivation.

This is essentially what the 'Structure' phase in the learning cycle is about. It's a guided, step-by-step journey where you're progressively introduced to core principles. It's a controlled environment where you learn, practice, make mistakes, and improve. But just like anything, after a while, things can start to feel a bit repetitive and you may find youself getting bored or burnt out.

This phase is pretty straightforward, and when you're new to the subject, you'll probably hang out here for a good while. Depending on how many hours you spend a day learning you could be here for a few days up to a few weeks.

How do you know when to move on to the next cycle? Well, when you are feeling bored and totally demotivated. Feeling like your productivity has really decreased.

Then you move onto CYCLE 2

CYCLE 2

explore

The main purpose of this cycle is to inspire a new sense of motivation within yourself.

Imagine you have been in cycle 1 studying JavaScript for a week and feel totally tired. Trying to reignite your motivation and energy from the very thing that has burned you out can seem like an uphill battle. This is where understanding the concept of the "puppy mind" can help.

The "puppy mind" describes the tendency for the mind to get easily distracted and jump from one thing to another, much like a playful puppy. This can lead to difficulty in focusing on one task for an extended period of time.

Most people agree that we need to train or discipline the "puppy mind". While I agree, there are situations (like in cycle 2) where it might be beneficial to let your "puppy mind" run rampant.

The point of this cycle is to get a fresh perspective on learning, maximize your input sources to stimulate creativity.

creativity visual
@george__mack's awesome visual that explains how this process works
arrow svg

Learning JavaScript example

arrow svg

πŸ‘©πŸ»β€πŸ’» When I first started learning JavaScript I was using FreeCodeCamp. At first, it was exciting. I was grasping new concepts and I was on a roll for a while. But soon after, things got pretty confusing for me and my motivation was clearly disappearing. This signaled the end of CYCLE 1.

πŸ‘©πŸ»β€πŸ’» Embracing my 'puppy mind', I decided it was time to unleash my curiosity. I started researcing a bunch of free resources which led me to jsdares, W3Schools, and Scrimba, I allowed myself to explore, not fixating on one source or one thing but checking out everything that caught my interest (related to coding). I had fun with jsdares, completed some exercises on W3schools, and eventually discovered Scrimba, which was a great find! And that marked the end of CYCLE 2.

πŸ‘©πŸ»β€πŸ’» And then, I found myself back in CYCLE 1. (In the beginning you might not get to CYCLE 3 right away.) With Scrimba, I found a structured learning path that was a perfect fit. I managed to complete most of the Introduction to JS course. But, motivation started to dip again when the course switched teachers at the end of the course. This signaled the end of CYCLE 1.

πŸ‘©πŸ»β€πŸ’» CYCLE 2 started again, but it really only lasted a few hours, and was the moment in which I really started feeling myself going through these 3 cycles. During this phase I felt really inspired. I realized how scattered and fragmented the resources for learning coding were. Wouldn't it be great if all of the best resources were all in one place, accessible to everyone? So I decided to make a project! That signaled the end of CYCLE 2 and the start of CYCLE 3.

The explore cycle would generally only last for a few hours or maximum 1 to 2 days depending on your learning schedule, and how burnt out you let yourself get from CYCLE 1.

All of these new sources of input can get you inspired and ready for CYCLE 3. Ideally CYCLE 3 should start after CYCLE 2 has resulted in a good idea, otherwise feel free to move back to CYCLE 1. But trust me, if you've done CYCLE 2 right, you'll be ready for CYCLE 3 every single time.

CYCLE 3

create

This is where your ideas come to life through projects.

After the exploration phase, hopefully, you have come up with an idea for your CYCLE 3 project.

The idea for a project could surface from realizing a problem that needs solving or drawing inspiration from something that piqued your interest. I have been inspired to make a project from all sorts of places, like a challenge on front-end mentor, realizing my mom needed a new website, or one of the assigned projects on freeCodeCamp. It doesn't matter if you think you're a creative person or not, there are plenty of resources to get inspired and make a project.

But if you still haven't figured out an idea for a project, below is a great chatGPT prompt!

arrow svg

chatGPT project generator prompt

arrow svg
spiral svg

Response:

That's great that you're learning JavaScript and making progress in problem solving. As for project ideas, here are a few that are related to your interests and can help you practice your JS skills:

  1. Cat Clicker: Create a webpage with pictures of different cats. When a user clicks on a cat's picture, increment a counter for that cat. Display the number of clicks for each cat. This will help you practice handling events and manipulating the DOM.
  2. League of Legends Character Database: Create an object for each character in the game with properties like 'name', 'role', 'abilities', etc. Then, create functions to sort and filter characters based on these properties. This can help you practice using objects and arrays.
  3. Dragon Game: This could be a simple text-based game where the player has a dragon that they can train and care for. Actions the player takes could affect the dragon's stats (like 'strength' or 'happiness'), and those stats could affect the outcomes of events. This project would be a good exercise in using objects and control flow.
  4. Harry Potter Quiz: This could be a quiz with multiple choice questions about the Harry Potter series. For each question, the player must choose the correct answer from four options. At the end of the quiz, show the player their score. This will give you practice with arrays, DOM manipulation, and event handling.
  5. Sorting Hat: Based on a series of preferences or personality test, sort a user into a Hogwarts House. You could ask the user a series of questions and then use their answers to determine their House. This will help you practice with forms, objects, and control flow.
  6. A simple League of Legends API client: Using Riot Games API (official League of Legends API), you can fetch data about champions, items, matches and more. Create a simple user interface to display the data. This can help you learn about how to work with APIs, asynchronous programming, and data manipulation.

Remember, the goal of these projects is to learn and practice, so don't worry about making them perfect. Start small, and as you get more comfortable with JavaScript, you can add more features to your projects. Good luck!

Very lovely response from chatGPT as you can see. This way, even if you haven't figured out a project on your own and you want to get into CYCLE 3 you can!

Once you are finished with your project you can move back to CYCLE 1 and learn more fundamentals and new concepts.

Don't be afraid to switch learning resources if something is not clicking with you, and make things that you are passionate about. If I am doing something boring I can barely concentrate for 30 minutes, but if I'm passionate, I can go for hours on end!

Happy learning!

RESOURCES

If you're stuck and need to find resources for any cycle, check out my other webpage that has a bunch of free resources!