The spiral learning method, the beauty and the ugly
Tags: webdev, learn, knowledge
Published: 2022-09-30 01:48:07

There are hundreds of learning methods that each have their strengths and weaknesses. but none of them suit me well enough like this one. I have adapted and developed it through my career as a programmer. I call it the spiral learning method(abbr. Spiral), borrowing from one of the casual chats with my friend. He used this metamorph to describe the way I learn and claim that it is very suitable to build new things.

In short, what the Spiral does is learn when you NEED. Progress accordingly like climbing a spiral stair. Look up your GOAL which needs to be an achievable object. 

The origin of this method partially comes from my rebellion toward the learning method which our education adapts, I call it the linear learning method(abbr. Linear). Before we go into the details about the spiral let's talk about the linear way of learning things. I think the linear way of learning things does more harm than good to us. 

## The critic of linear learning

The Linear is usually how the school teaches us to learn. It has pre-built guidelines for everyone. It becomes quite obvious when you take a look at how we structure our school grades with different progression. With this kind of structure ahead they claim that people can't reliably jump across different subjects and gain insight better than the child who learns things step by step. 

I think this is a big blind point in our education. It's true at some point of learning and partially true if you want to enter the route of the academy. But when it comes to how to apply knowledge and make something useful I feel the Linear will fall behind the Spiral in three ways.

### Emphasizes knowledge has a pre-set structure

The Linear emphasizes that the knowledge has a pre-set structure and the best way to acquire it is to grab it as a whole. But in reality, to accomplish or build something useful is not about knowing everything but knowing what you need and where to learn them. 

The Linear will cause people to think outside of school that there should be a similar structure to guide them. Something like Developer Roadmap[^1]. But usually, there is no such thing that exists. The knowledge is clustered. We need to cultivate the power to recognize what to learn and where to find them. Sadly our education fell short at this part.

### The one fit for all end goal - learn knowledge as a whole

The Linear has a pre-set end goal for everyone, that is learning knowledge as a whole. It's like when reading a novel, you have to finish it chapter by chapter. I think this end goal is not suitable for the rapidly changing environment, especially in programming. Besides that, not everyone will be motivated by the idea of learning knowledge as a whole. People should find a goal that supports their enthusiasm well.

### The illusion that knowledge is fixed and doesn't change

The Linear builds up an illusion that knowledge is fixed and it doesn't change at all. But in reality, every piece of knowledge is constantly changing and changing fast.

The Linear makes people lose their curiosity and enthusiasm toward new knowledge. It nurtures generations of people who are not going to learn new things once they enter their career.

In order to tackle this issue it may need a full scale of renewing our education and the learning journey after leaving the school. I think the Spiral is a good start. It is very good at inspiring and enlightening enthusiasm. 

In order to let you understand the difference between the Linear and the Spiral. I will showcase how they work in practice.

## Work in practice

### The linear learning method

According to the Developer Roadmap, a beginner needs to learn "What is the Internet" first, then he can learn the three big giants in modern web development that is HTML, CSS, and Javascript. These are all big topics and may take months to knock on the door and years to master. 

After digging a little bit, the beginner can pick up the knowledge of version control and CSS processor then he can begin to learn the framework. The Web development framework usually describes lots of philosophy and thinking along with the documentation especially the React. Newcomers can read through these materials first then dive into the general components of these frameworks.

Once the beginner learns some basic operations of the framework then he can try to think about what he wants to build.

### The spiral learning method

First, set up your goal. What drives you to web development? Drop by a fascinating website or feel passionate about gaming and would like to build a mini-game? Choose the goal that can enlighten your enthusiasm the most. In this section I will take building a personal blog for example.

There are a bunch of tutorials about building your blog on Youtube. Pick one that suits your needs. Hopefully, they cover how to set up your development environment too. Follow the tutorial and finish it. In this way you could have a further understanding of what web dev looks like.

Last, demo what you accomplish with your friend and family, ask for their feedback and move on. At this point, you may have a general understanding of HTML, CSS, and some frameworks. You will find out most of your knowledge is wrong but it's totally fine! Just set up a new goal and keep learning.

At this point, I guess you could observe the difference between these two learning routes. The Linear has a pre-set learning route and encourages beginners to learn stuff step by step. The Spiral method challenges the linear way of learning and emphasizes the philosophy "Only learn things that can push the progression of your goal".

## The methodology 

> In short, what the Spiral does is learn when you NEED. Progress accordingly like climbing a spiral stair. Look up your GOAL which needs to be an achievable object. 

There have three sub-methodology of the Spiral:

- You need to set up a clear and objective goal for your learning. Try to stay at the very edge of your ability and don't exceed too far. Judge your progression and the Effectiveness thought whether you achieve your goal.
- Progressively learn stuff that can help you achieve your goal and cultivate the ability to find where to learn them.
- When facing a set of knowledge, you don't need to learn them all. Just learn the stuff that pushes the progression of your goal.

Let's dive into the details!

### How to pick up your goal?

This question is not about "How to find your goal", that is a very different question compared to this one. I am talking about a situation in which you may have multiple goals or ideas hanging around your mind and it's hard to find which one can bring the most benefit to you. If this is the case you could follow this step to find it out. 

- Please arrange these ideas into three categories with the difficulty to achieve them. And try to begin with the middle difficulty group.
- In the middle difficulty group, pick a random idea and examine it yourself with the following question: Can you imagine a blueprint that can help you achieve this goal? If you can fully imagine a blueprint that means you are familiar with this topic. In this case, we should leave this idea behind because you need to stand at the edge of your ability to maximize the efficiency of learning. You should try to find a goal so that it's quite easy to imagine its route at the start but remain a mystery afterward.
- Next! you may have a handful of goals and it's hard to choose which one again. I would suggest you choose a goal that you are most passionate about. In the end, enthusiasm is the most durable tactic to keep you learning.

Once you pick up your goal we can start the journey.

### Glasp full picture first, then deep dive

To learn efficiently, you need to have some rough feeling about the direction. In other words, you need to have a map on hand. It's like a Minecraft map with minimum exploration which indicates where you are. Remember the way we learn how to build a blog? We go to Youtube and find some useful tutorials. At this point, you need to find something like it that explains the big picture of your ongoing journey. Some sort of full tutorial will greatly help you. (If your goal is too big you need to cut it into small pieces.) 

But sometimes they don't have this kind of tutorials. In this case you may need to find them in some articles, someone else's GitHub repository or from a book. Anything that can help you grasp the full picture will drastically push your progression.

After you grasp the full picture. You could begin to dive deeper. Build much more complicated stuff and learn more.

## The caveat of the spiral learning method

I won't say the Spiral suits everyone. I had personally taught some friends and my brother this method and some of them failed. So this part of the article mentions the caveats I learned from my journey.

### The general challenges

- You will constantly feel overwhelmed because knowledge is overloaded and it is hard to find a good mentor or guideline. Most of the time you need to go through this path alone. But if you could find a companion it would help.
- You may find out from time to time there are some errors or pitfalls that keep showing up. That will be the point you need to examine the correctness of your learning. Try to slow down a bit, learn this particular knowledge as a whole and correctly understand it. Try to leverage the Feynman method at this point.
- It is constantly struggling and you need to make yourself enjoy it. Focus on the joy when you crack the hard question will help and don't forget to celebrate the small victory. You could buy yourself a drink or have a great dinner with your loved one.

### Drive by pure curiosity

The Spiral is all about goal setting and achieving. But there is another great force that will push people to learn, curiosity. During my implementation and carving of this methodology, I find out it's hard to learn something when I can't imagine what is the goal I want to achieve with it. 

For example, I am learning Scheme language with the help of The Little Schemer. Great book, no doubt. But I feel demotivated very hard during the learning process. Because I can't imagine what I can achieve with this language. 

The Spiral is like a double-edged sword. You need to balance it with another method to have a healthy mindset toward knowledge.

### When the goal is too big but you really want to finish it

There is another disadvantage of theSpiral. Once you come to a point where what you learn from a simple goal can't sufficiently fulfill your curiosity. But if you want to leap over the deeper water, you may find out that the scale of the goal may be too big to accomplish. 

At this moment I would like to congratulate you first. You have to walk through all the harshness of this learning method and come to the sweet spot. 

I would say the end game of learning is to come up with something new, something nobody had thought about. Once you enter this stage you will discover the skyline becomes clearer. You could find somebody to build with you or just cut the goal into small pieces and finish them one by one. Either way, you are approaching something extraordinary.

## Extra passion overcomes ordinary 

Boiled to the bottom line, passion is the key to learning new things. I would like to write another post about how to hack your passion but I will share my viewpoint here first.

- Treat your passion like a campfire, you need to burn something to sustain the fire. In the context of human beings that will be the reward. So remember to reward yourself every time you accomplish something no matter the size of it. But there is some research that indicates inner reward is better than outer reward, so it will be better if you could find joy from inside along the way.
- Try to find a concept that people around you tend to not agree with. Dig deeper and find the reason people overlook the concept then try to prove them wrong. I find this very useful to sustain my passion. 
- Know yourself better with some tools. For example, you could take the VIA Character Strengths Survey to know your strength and what gives you purpose. 

The Spiral is like a self-generated/motivated wheel. Once you finish a goal and move on to the next one. You will find yourself having the confidence and the endurance to test the limit and gain more power from it. 

This method greatly changes my life and makes me a better learner toward this fast-paced world. I hope you can find some point that you can utilize and practice in your daily life. May the force be with you.

[^1]: [Developer Roadmap](https://roadmap.sh/)