How to Learn Coding P2
Posted in tutorials work -This is one part of a multi-part post. To see other posts in the same series, please click below: Part 1 Part 2 Part 3
3. Learn how to learn
One of the things that everyone should know but have almost never been taught at school is the skill to acquire knowledge. Instead, we were taught how to pass the exams by cramming into our mind a bunch of cr*p that, most of the time, have no practical values. (Even now, whenever I think about my “lessons” in school, the thing that I remember most is how exhausted I was every time I had an exam.)
However, that’s not the way knowledge should be consumed at all. I bet for many of you (myself included), at some point you will start to realize some of the stuff that you had crammed during schools are actually useful, and you will want to revisit those topics and learn them, this time for real. Perhaps that is also the intension of whoever designed this testing system: so that you have some ideas of the “curriculum”, and at some point when you face a problem, you at least know the name of topics you need. Anyway, it is bad (and extremely stressful) to rely on exam’s pressure to have the willpower to sit down and learn (and guess what, even if exam’s good, you don’t have them anymore, except for, maybe, in job interviews), the learning urge should come from inside: you should be learning because you are curious of the skills/knowledge/technique and you want to know, rather than because you have given some tests. That gives learning some meaningful purposes, hence a less painful process (well, if something’s truely meaningful to you, you’ll feel satisfied even when it hurts, I will cover this topic in another time).
So that’s the first (and most important) step of the learning processes: you should have some inner needs of acquiring knowledge. If you are reading this post, I bet that it means you really want to learn, so that step must have been covered. Muy bien!
Now although you have decided to learn for real, for pleasure, for yourself, etc. instead of for some stupid exams, chances are that when you start learning, you will fall into the old habits of learning like you preparing for a closed-book exam: you try to remember every little details (as the examiners normally have a bad habit of focusing on those details that most people tend to bypass), you gather your learning time into some nightlong cramming sessions (and maybe at some point you realize it’s been weeks since your last session), you try to find some books that claim to cover “everything you need to know about …” and try to read them cover to cover, etc. All those things will not last long, and will bring you no good. I’ve been there, so I can’t blame you. In fact, nobody can blame you if you do all of those things, after all that was the only way you’ve been taught to learn from day one of your school life, and forgetting a bad habit is not something you can do in one day, especially when you don’t know any other learning method. Fortunately the habit can be changed with some efforts, and there are better and more fun ways to learn. The bad news is that change is going to take a very long time, so it’s easier to just start going and adjust your method along the way, rather than try to know all the learning techniques beforehands (in fact, if you do try to know every technique beforehands, that’ll be cramming).
Here are some items that you can start changing from your learning habits:
- Don’t try to learn for too long at one time: Instead, find a timeslot of 1-2 hours that you can make sure you are not distracted and learn everyday (or at least almost every day).
- Don’t read books from cover to cover: programming books are not meant to be read that way. You should only read the introductory chapters and those chapters that make sense to you right now (if any) and practice. As you get more experience, there will be more chapters that you find interesting.
- Keep yourself healthy, especially your brain: don’t stay up late, don’t eat junk food, drink more water and less alcohol, exercise more, etc.
- Practice a lot, with computers. Try to write code with the syntax you have learnt, try to build and run the code you write, it’s gonna be fun.
There are more to learn about learning, but I guess that’s enough to get you started. Just try these items, and I bet you will see your learning progress get faster after some weeks. There will be time when we cover more advanced science and techniques.
4. Hardworking is the only way
Let me get this straight: you start learning at a later age than most other people, so you won’t get anywhere by being a lazy ass and watch TV or scroll Facebook all day. Hardworking is the only way, at least the only way I know, that gives you a chance to compete with those younger guys who have more experiences than you, so be prepared (mentally and physically) for doing hard works. Also, it’s not the kind of hard work you have to do one time and it’s done (like they time you stayed up all night preparing for an exam in college), you will have to do it again and again every day for many days to come.
Well, sorry for the harsh comment in the previous paragraph, I just wanted to make sure that I impressed you enough about the importance of working hard consistently. But of course you don’t have to work too hard that you cannot continue the day after that, it’s not healthy and sustainable. Consistency is the key. That was why in the previous part I suggested that you have one timeslot to study everyday. It maximizes the chance that your brain muscles can pick up the new habit of attaining and maintaining information. This kind of consistency can only be achieved if you have some kind of daily routine, which saves you mental willpower to persuade yourself to do the things you’re supposed to do.
The way I find easiest to maintain the habits and come back to them even if they got distracted is to create a sequence: a kind of activities in which one activity triggers the one after it. For example, try to build a system in which you go to bed every night at 11pm, wake up at 7 am, then take an exercise for 15 minutes, a shower for 10 minutes, a breakfast for another 10 minutes and then go to your desk and start learning, after a while if you can’t maintain the habits (because you move to another place, get a new job, etc.), then in the weekend if you want to study in the next morning again, you can simply go to bed at 10.
Anyway, no matter how you intent to set up your routine, remember to have one. Consistence is the key, always.
5. Don’t drink too much kool-aid
I’m gonna finish this post with a short and precise wisdom that I have heard from several great programmers: Don’t drink too much kool-aid
First of all, there are several different situations where this phrase will be used, and you may encounter it with different meanings in different context. In this case, you shouldn’t think of kool-aid as something bad (though that was the initial intention of the phrase “Don’t drink the kool-aid”). Instead, it might be anything, but the point here is don’t try to take in too many things at a time just because those things is available. It’s like eating: take the amount you can digest, and come back for more when you have finished digesting.
This is to repeat the second point: Be patient. Take it slow if you must, but make sure you do things right and consistently. Don’t need to finish a whole chapter in the book in one day if you feel that the concept is new and you still need time to understand.
One of the most infamous violation of this “rule” is when one copies code from others without fully understand it. There will be times when it’s an relatively acceptable behavior, but at least stay away from it when you’re learning. If you can use a simple solution that you understand well to solve some problem, then by all means use it first. There might be some other solutions that, according to an expert in StackOverflow, is better and faster, but don’t use it until you understand it well. Otherwise your code will soon become a mess of several chunks of code copying from various sources that you don’t know what’s what (and of course you won’t learn anything).
In general, whether it’s things to learn, habits to build, books to read, exercises to do, etc. or anything, don’t try to too fast by adding too many at a time. Use your own judgments, and be consistent.
That’s it for today. I still have some items left on this list but perhaps I shouldn’t break the “too much kool-aid” rule just yet by making this part too long. See you next time then!
This is one part of a multi-part post. To see other posts in the same series, please click below: Part 1 Part 2 Part 3 Part 4