Developing the basics: Learning how to learn programming
The way to learn something new
Effective learning is a practice that most people have never really considered, and worryingly is rarely taught in school. People who have been lucky enough to learn a musical instrument or a new language are likely more able to understand the techniques needed to learn a new skill properly. This week we are going to look into learning as a process and tease out the reasons why it is more effective to learn in certain ways. You will get some insight into what good learning techniques there are around, and some of the bad learning pitfalls which you should try to avoid.
Starting out when everything is shiny
The process of learning something new is an interesting topic to begin with. When you have learned to do something in terms of a skill you are at a point where it does not require conscious effort to perform an action, the whole action is made up of one single thought. Using the example of riding a bike; you learn how to ride a bike as a single skill, but actually, it is made up of a lot of parts which need to all be understood for their contribution to the bike riding overall. There is at a rudimentary level the balance, the pedaling, and the braking. When you first start riding a bike then it usually begins with stabilizers or on a balance bike with no pedals and no brakes, then it takes practice made up of trial and error, then you add the next part the pedaling, and once this is mastered then you can add braking, bunny hops, and backflip 360’s until eventually, you can ride a bike without having to think. This is essentially the same for any new skill.
Practice makes perfect
You will not learn anything without practice. This is the key ingredient to learning. Think of the person that read 10 books on learning German, are they ever going to be a good as someone who speaks and is involved with the language every day? Unless they begin putting the study into practice they are not truly unlocking their ability to learn. It is for this reason the learning platforms and media I picked was so. The adaptive PyCharm Edu course has a lot of exercises which will vary in difficulty according to the level I am at. This is perfect for advancing comfortably with the learning. A rule of thumb is to use a third of your time researching and then the other two-thirds practicing. Humans have a primitive mind which has evolved to learn from doing much more effective than learning by researching.
So practice is key. But the key to knowing what to practice is in the studying of the materials. The truth is – how to study effectively is not as commonly known as you may think. Exam systems allow for very short exam revision and a viable result can be gained. Cramming as it has come to be known, means you can retain enough facts to basically cheat the exam, often without having a lot of background on the subject. This is kind of natural, as learning something is actually quite hard and so our brains don’t want to do it. Really. They are continually trying to remove unused information which serves no purpose. We will continue to keep our primitive mind, which is basically our survival instincts, but information which does not necessarily keep us alive is at risk of being removed and so we need to trick ourselves into thinking the information is very important to our living. The way to keep this information then is by continually using it, thinking about it and testing it. Which brings us to our next section.
How to study effectively the rules of the game
The most counterintuitive of our study habits is to take breaks. Focused learning is important and to keep focus you need to be attentive. A good study method for focused learning is using the Pomodoro method. This means that you use 25-minute study intervals with 5-10 minutes of complete downtime between sessions. Putting in hard work for 25 minutes is achievable and will lead to better retention than simply passive reading for six hours.
After a learning session, take 30 seconds to revise all the points which have been covered. Immediate revision strengthens retention and will help you with recall later on. With this method you will have created a recall peg, which you can find much easier than forming one from scratch later on. This recall will really help with the main ideas and is a great foundation to build your learning on.
Now you have a recall, you need to come back to this recall occasionally. This is known as spaced repetition. If you have ever met someone for the first time, but then forgotten their name almost immediately then you will be able to relate to this idea. You will meet them a second time and still it might be difficult to recall their name, but come the 3rd or 4th meeting then you will likely know their name without having to think. You are coming back to this peg and each time strengthening it. So all those times that you thought you were just terrible at remembering names, turns out you just hadn’t met them enough times. Another advanced method to improve this is to build in an association, so you are pegging to an already existing peg. Imagine for example the person you met was called Peter, if you associate them with peas, or peat when you first meet them, the chances are your recall will be much stronger.
Learn from multiple sources. If you can experience the information in different ways you will not only have different ways of looking at the information which can help to get a fuller understanding of the points. It also activates different parts of your brain, especially if you are mixing it up, reading with video and maybe some audio in there too, all this can help you to understand a topic well and will make the main points stick.
This also works in terms of problem-solving. Try and solve lots of different kinds of problems associated with the skill you are trying to learn. Give yourself problems to solve and try to use what you know already to create a solution; it will help you to understand what you are learning and how to apply it. There is no right or wrong answer to the problems and it could be you discover a completely different way to solve something. In any case, you will learn much better from making mistakes at this point than simply following instructions.
Get feedback on how you are doing. It used to be in the form of a teacher grading your work, but nowadays without that option, you need to get your own feedback on how you are doing. Tests are a great way of getting this feedback (another reason the PyCharm Edu system is being integrated into my learning) as you can see what you are getting wrong and what you are getting right. Feedback is important to improving and not fooling yourself into thinking you are learning, and so neglecting to learn things properly. Other ways you can get feedback is to ask people who have done this already to check your understanding is correct. Test yourself from time to time with flashcards to make sure you can recall concepts.
When you have learned a new thing, try to explain what you have learned in a way that a 10-year-old would understand. This forces you to really understand the problem and try to put into words what you are learning.
Learn last thing before going to sleep. If you learn before going to sleep it lets your brain go over it with your diffuse thinking system whilst you sleep. This builds and strengthens the learning as your mind can think it over and understand the situation on its own. This brings us then to the what you really don’t want to be doing when studying.
Poor study for poor results
Poor study habits can be hard to break, they are particularly dangerous when they give you a false sense of learning. So you think you are learning something when in fact you are not learning at all, but instead, you are just wasting your time. We want to at all costs avoid these bad practices, and so for you to avoid them you need to recognize them.
Studying once to cram knowledge is quite common among students, the night before an exam try and learn everything you can about a subject. If you were trying to get a beach toned body complete with a six pack, would you go to the gym one day and boom, done? Probably not, your brain like all your muscles must be exercised, and get stronger and more effective at recovering knowledge you need to build it up over time with the things you want to know; it won’t happen overnight.
Similarly, you can’t just look at the solution to a problem and then know how to do it. Sure you will understand how it was done. But until you have gone through the problem yourself from beginning to end you have not learned how to solve it. Don’t cheat yourself in this way. Really sit down and work out how to solve the issue, if you need help, try and get hints before you go directly to the answer. Similarly, if you didn’t get the answer right, go over your work and find out where you went wrong and how to fix it for the future.
You also won’t find it useful to keep going over problems you already know how to solve. This won’t progress your learning any further; once you have learned an aspect and how to do it or solve it, move on to the next type of problem. You need to progress, you are not a magician if you can only do one trick.
Letting yourself be distracted during learning sessions is also a common issue. You cannot learn something fully with your favorite TV show on in the background. Study time should just be for studying; you won’t get anywhere nor take in the material if you have constant distractions. So unplug when it is time to learn. This goes for friends too. If you are learning with others make sure that you are all on the same page, don’t let them distract from the tasks at hand. They are a good idea to bounce ideas off and clear up any confusion but make sure everyone is getting a good deal out of this. You can’t multitask for effective study.
Read the instructions properly before trying the practices. You need to know the ‘how’ of the parts you are learning before you can start using them to solve problems. Make sure you get a good background on what you are learning before going off to practice, the practice is the fun part but don’t neglect the hard work beforehand. Passive reading and highlighting your textbooks are a fool’s errand, you think you are learning but actually, this is doing nothing but wasting your time. Remember to use the tip from above, review the material you have read for 30 seconds and try to recall everything you have just read.
A full night’s sleep. Learning is exhausting and it is important that you get enough sleep to learn effectively. Trying to learn when you are tired prevents you from learning, as the brain builds up toxins when it is fatigued which in turn disrupts the brain connections, making learning much harder.
Using what we have learned
First here is your task: Without looking back at the rest of the post take 30 seconds to try and remember each of the good study habits and then each of the bad study habits.
Compare your result.
Go back and repeat.
So with all this in mind, I hope it is clear why I made the choices I made with which materials I plan on using for learning how to become a developer? Our materials are set up in a way that we get the theory and the practice at around a 1:2 ratio, one part theory and two parts practice. Using the CS50 course, HeadFirst, PyCharm Edu and Introduction to Python there is ample amount of both the theory and chances to practice. The direct testing in PyCharm Edu for immediate feedback, the video explanations in the CS50 and Introduction to Python courses, and the further reading in the Headfirst books. I really believe these will complement each other, to create a very substantial course with a range of learning opportunities for the best of all worlds.
Developing the basics: Programming myself, post sixteen
<< Read the previous post from this series Start from the beginning of this epic journey >> Projects So the final entry of this project, is, in fact, going to talk about projects. Starting a project for yourself to try and use all your new found programming knowledge is the perfect wa…
Developing the basics: Programming myself, post fifteen
<< Read the previous post from this series The Journey of One Thousand Lines of Code. So that about wraps it up then. It has been quite an adventure discovering the world of computer programming and learning a new skill which I can take on into the future. I am sure that there are parts I co…
Developing the basics: Programming myself, post fourteen
Adaptive Python << Read the previous post from the series Read the next post in this series>> Now comes the really fun part, putting all the things that have been learned over the past 5 months into practice. It should be a nice final finish to the process of learning how to program…
Developing the basics: programming myself, post thirteen
Problem-solving strategies << Read the previous post from the series Read the next post in the series >> So we are really now starting to embark on a whole new discipline that comes with programming. Logic and problem-solving. We now have enough of how and what we can do with with …