Most people study inefficiently. This is mostly because they never really learned how to study the right way, even after years of university in some cases! In this chapter we will show you some of the most important strategies to learn in a way that is much more time efficient.
As the HackYourFuture course is very demanding, this is critical to get through the program successfully. In fact, many successful experts that require focus and concentration for their craft (scientists, programmers, writers, artists, craftsmen, etc.) share one thing in common: they are very serious about how they learn. This chapter will give you a short introduction into how you can study most effectively.
- Planning
- Don’t just read, code it!
- Go to the basics
- Sleep, Breaks and Exercise
- Distractions
- How to become a pro at learning
The first part of studying should be to make a study plan.
Your homework will consist of various components. You will need to:
- read/watch a certain amount of information,
- apply this knowledge in the homework exercises.
Every week consists of the homework of the previous week and the reading material for the following week. For example, let’s say you are preparing for the lecture of JavaScript 1 week 3 on Sunday. This means you will have to do:
- the HOMEWORK of JavaScript 1 week 2 (The MAKEME.md here)
- the READING for JavaScript 1 week 3 (The README.md here)
Before you start doing anything, it’s good to plan your week ahead. Divide the large amounts of tasks into small pieces, and think about how much time you expect spend on each task by having a quick look at it.
Let’s take the example of JavaScript 1 week 3.
Homework + Recap (19 hours)
- Recapping previous concepts (5 hours)
- JavaScript exercises (4 hours)
- Freecodecamp challenges (10 hours)
Before starting the homework it is essential to first have a look at the concepts discussed in the previous week(s) before moving forward.
You can do this by asking your teacher to record on Sunday their lessons and share it on Slack. You can also check videos of HackYourFuture Amsterdam posted online on Youtube.
It is advised to watch some parts of the lecture again and practice with the examples/exercises provided in class. Change the values, variables and other aspects of the code to improve your understanding of the practical use of these concepts. In addition to the videos, you can go through the reading material of the previous week. Again, the idea is that you practice the concepts by putting them into code.
Reading/Watching (6 hours)
- Article arrays (60 min)
- Article Loops (60 min.)
- Article functions (60min)
- Article scope (30min)
- Objects(45min)
- Conditions (45 min)
- Expressions vs statements (25min)
- Handing in homework with git (30 min).
We have a certain number of articles and videos that we share as part of the curriculum. However, it is important to read and watch them effectively. Again, try to follow the examples and code them yourself. Also, you are free to look for your own reading material and videos. There is a lot of good material on the internet, which you can make use of. Also, if you find a resource that you think is better than what we offer in the curriculum, please let us know (see textbox below!).
- Go to the Github page you want to add a suggestion to
- Click on Issues.
- Click new issue and add your suggestions. This can be a URL to an article, a video, graphic or anything else that will improve the curriculum.
- We will review it and if we find it useful, add it to the curriculum.
We are looking forward to your ideas & suggestions!
The homework and reading material combined take around 25 hours, however this does not account for getting stuck with exercises. Therefore, you probably want to add another 5 hours at least.
Now that you know how much time you have available and which are the activities you need to study per day, it’s time to make a weekly schedule. The key here is not to wait until the end of the week, but to start straight away. Learning programming concepts takes time, and if you try to do everything at the end of the week, your brain has very little time to process these concepts. Per day you schedule a number of small tasks, and once you are finished you can feel good about finishing the tasks of the day.
Note that planning is an art by itself! If you want to learn how to make better weekly and daily schedules, we recommend you to read Cal Newport.
As explained in the previous section, reading about code, or listening to your teacher about code, is not the same as actually coding! It is incredibly important that you try out the concepts that you have learned, and that you try to apply it in multiple ways in order to become comfortable with it. There is no way around this.
We recommend that when you study something, directly try it out in your code editor by making a simple coding example and see how it works in practice.
Only this way you will truly understand it well, and gain the ability to turn ideas into code.
One more tip: Write code with pen and paper. Try to write down the basic concepts including some simple examples. Yes, this can also be done on the computer, however research shows that writing things down with good old-fashioned pen and paper provides cognitive benefits that you cannot achieve when typing on your keyboard. By the way, some companies will ask you to do the same during their interview process – good practice indeed!
The basic concepts presented in the earlier modules are crucial to become a good programmer. Many students in JS2 and JS3 still struggle with arrays, string, objects, array of objects, properties and other basic concepts which are discussed in JavaScript. Many students in the React-module still struggle with callback functions and closures (discussed in JS2). In order to solve more complicated coding challenges, you need to know these concepts!
If you really want to master the basic concepts, the best way is to do more exercises with them. You can find a lot on the internet, but you can also easily create your own basic exercises (like the rotten fruit example in chapter 1). For instance, can you come up with some examples on how to use a basic function?
Sleep is incredibly important for your brain’s memory capability. If you study a lot, but don’t sleep enough, part of all the hours you put in are useless. On average the recommended time of sleep is ~8 hours. If you go much below this, it will most likely decrease your performance as a student.
We recommend that you do not look at any screen the hour before you go to bed, as this improves your overall sleep quality. Your brain thinks that the light of your screen is natural light, and this will make you stay awake.
Try to take 10-15 minutes breaks in between studying sessions of 90 minutes, as this re-energizes you and improves your focus. During these breaks, some form of physical exercise is highly recommended. Take a walk outside, stretch, dance...get moving!
More generally, we recommend you eat healthy and do sports. There is a large body of evidence that shows exercise helps memory and thinking through both direct and indirect means. Directly through a reduction of insulin resistance, inflammation, and an increase of chemicals in the brain that affect the health of brain cells, the growth of blood vessels in the brain, as well as the survival of new brain cells. Indirectly, exercise improves mood and sleep, and reduces stress and anxiety.
The goal whilst studying should be to reach a state of ‘flow’. Flow can be described as the complete immersion in an activity. By doing so, you lose your sense of space and time. There is quite some research about ‘flow’. This research shows that not only your learning curve increases significantly, also the level of joy increases. In other words, if you are fully concentrated whilst programming you feel way more satisfied as a result.
To reach this level of optimal concentration and create a state of flow, distractions should be shut out as much as possible. The two most common enemies are described below.
Here you can find a presentation on 'How to increase focus & productivity' one of our coaches shared with us during a HackTheTalk, the inspirational talks we organize on Sunday Mornings.
Social media is incredibly bad for your focus and therefore it decreases your ability to learn complex concepts. In order to understand programming concepts your brain needs full focus. Every time it is interrupted by a phone or a message online, your brain has to switch its attention. To go back to your code after that will cost a lot of energy. In fact, studies have shown that just having a phone in the same room, reduces your ability to study significantly.
We highly recommend you: when you are studying, put your phone away and use your study time for studying only.
Many of us are not living by ourselves. You might have children, or family members asking for attention. The challenge here is to try and create a quiet space, where you will not be interrupted. Of course, this is not always possible if you are a parent. But perhaps you can ask your partner or a friend to keep an eye on your children at least for a few hours a day, while you go to a local library, or study in a quiet room at a friend’s house.
Obviously, this chapter only provides you with a very basic introduction. If you are interested in learning more about how to learn effectively we recommend you to read more about deliberate learning and deep work. Studying effectively – although NOT easy- is a superpower you can use for the rest of your life!!! An excellent read about the value of working without distractions (and how to achieve it) is the book Deep Work by Cal Newport.