3 Pillars of Learning Programming – Part 1: The Basic

Learning the basic

I. Introduction

I have been studying programming from 2017. Given my background as an import/export management office worker and a marketing bachelor degree holder, at first, I had many difficulties in learning programming. Not long after started learning programming I have realized that learning programming is different than learning marketing or import/export management. As a result after about 1 year of learning in 2018, I have developed a new method of effective learning programming. However, up to now, even I had done a lot to update the method but I feel it is still imperfect. But it is much better than before which speed my learning a lot. I will share more about it below in hope of it can be useful for your learning

Over the course of 1-year learning programming, I have found the framework of learning programming is to master 3 things: the basic, the practice and the projects.

This post is part 1 of the 3 parts posts that will describe this method of learning programming. You can see the links to the full 3 parts here

II. The Basic

Just like everything else, starting to learn programming meaning you start by learning the basics of programming. It is essential and unavoidable. However, I have found out that during my self-learning programming session, coding along with the courses is not enough. You will feel very confident that you have already grasped the basic. However, you will quickly recognize that you are wrong when putting your skill in practice. There you found holes in your knowledge everywhere. Or simply you will mess up nearly every time when putting your skill to practices

As a result after learning about agile software development and Pattern recognition, it inspired me to try and develop a method of learning that is much more effective and it is consisted of as follow:

1. The preparation

At first, I found that normally you should have at least 2 courses about the same programming subject (like 2 courses about JavaScript basic).  The reason is that you can quickly run into parts that you don’t understand and another course will help much. Moreover, the second course will serve as a test to test holes in your knowledge. Don’t worry about the duplicates because if you are doing alright, you will quickly go through the second course but the tests are valuable

2. The Usual step

For this step, for each course‘s video, you should follow and code along the course as normal. Also, I found out that if you have 2 screens (or 2 computers or 1 computer + 1 mobile device ), 1 will serve as a screen for watching the course, the other as follow along coding will make this step quicker. But if you don’t have the 2 devices it is still ok

3. The Comment Step

This is the step that it starts to differ from my usual way of learning programming. For each time you finish a video (even just a 3 min video ) you must write comments down (on paper or on the computer are both ok). The comment must have 2 things for EVERY LINE of code

First, the comment must address what every line of code is about (for example this line assign variable “x” the value of 24 ). If any line of code have anything you don’t understand or don’t know, research about it now. when I say researching most of the time it will be about googling or checking the documentation. However, I always recommend that you check the documentation first because:

  • It will help you get familiar quickly
  • When you can just read the documentation for anything that you needed, it is a sign that you are familiar with the language/framework…

If anything you can not understand at first, it is fine just write down what the documentation or Google said what it is doing

For this step, you will have a deeper understanding about what and why the course write course like that

Next step is writing down your own opinion about EVERY LINE of code. If you don’t understand note it down now. If you have any opinion write it down now (for example why C# have both “string” and “String “class?)

The reason behind this due to it will make you use your whole brain and spot any things unusual. Moreover by involving  your feeling and emotion,  it will help memory retention and call back afterward

4. The “Final Hour” step

Now after the Comment step above, this is the last step and the most important step. You must put all of the current video material to a safe place and hide it out of your sight. Then try your best to code everything from scratch (or from the starting point of the video) and make sure it works like it should. However, don’t be surprised that most of the time it would not work like you want it to. Don’t worry this is good because you will learn a lot from this.

If your code do not work then you can watch and/or review all of the above material to understand why it does not work. Then make sure to comment it down what mistake you made. Then start over and hide everything again and fix your code. If you still face problem then repeat this step again until it is working

After this step, most of the things that you did not understand and commented down in the “Comment Step” will be clear to you. However, there can be things that you still cannot understand (and I will call them “this”), and it is NOT unusual. If the lecturer mentioned that he would explain more or tell you to not worry about this then you can move on. However if not then I suggest either you use google to google more about this or plan to take a course about this topic (for example if you can not understand about int , float , long , short…. Maybe learning more about bit and byte and memory can help you)

In the end, this step can take a very long time. The less you knew about the subject the more this step tends to take. there will be times that a 3-7 minutes video can take an hour if not more to complete this step

5. Some Notes

  • If at any point your current course is too hard to follow then switch to the second course and work from the beginning (or the point you left if you have already switched). Or if you finished a course then switch to the other course and work with everything that is not done. You can switch frequently, and it is alright
  • I found that 2 same courses are the best. If you need a third course meaning there is at least an unaddressed issue (for example you don’t have Computer Science basic knowledge) or you lack understanding in a specific topic. As a result, fix this first and even take a course or 2 to address this. You should not take the third same course because it will be very inefficient
  • Most of the time I found google any problem is enough. However, if you cannot you can try to ask others or use other websites (StackOverflow, Quora….). But I still suggest you use this method to the minimum. Because you will also learn and need to develop your problem-solving skill from fixing your own problem. If you jump too soon to ask you will tend to rely too much on other people for problem-solving. However, I acknowledged that there will be times that it is unavoidable to ask. As a result, having a mentor beforehand is beneficial in this case
  • Only when you have finished the 2 courses then you can move on to the practice

Leave a Reply

Your email address will not be published. Required fields are marked *