Objcoder My rant on dev, tech, and startup scene

Learning Fast and Slow

I want to share something, it’s about a story almost a decade ago, it’s my first experience as a programming teacher.

After reaching national level for a programming competition, I came back to my high school as alumni. I was determined to share my knowledge to my juniors. I was appointed by the local council committee, to provide training for the preparation of programming competition. I acted as a mentor for 2 students for a week. They are brilliant, one is smart, the other one is hardworking.

On my last day, I gave them a book about algorithm, I told them to read and do the exercise. The smart one seems to ignore my advise, the hardworking one chomp down the book silently.

Later did I know, the smart one didn’t pass preliminary and the hardworking one didn’t pass too, yet the hardworking one achieved better result than the smart one, way better.

Now, if you are new to programming, you might have no idea how things work, you just copy what you see, you use other people solution blindly, you are a script kiddies, and that is ok. It’s the first step.

Some people learn very fast, everything just “click” for them, some take longer time, a day, a week, a month, or more. ( I am personally the slow one). However, whether you learn fast or slow it doesn’t matter, the one that matter is that you do. You try, again and again, try different ways, try to implement it differently, try to break it, make errors, crash your app. It’s ok, it’s fine.

After days and hundreds line of misunderstood code, I believe you’ll find a silver line, you’ll start seeing patterns, you start understanding what works what doesn’t, and why it works.

Programming is a skill, it’s the same as swimming, or cycling, or cooking. You’ll have difficulties to learn just by understanding. You need to do to understand, you need to fail multiple times, and get up once more, to understand.

As a person who learn programming, for my current students. You definitely cannot swim if I only tell you to move your arms at certain speed or angle. I show you how and you need to try it, to copy it, while I hold you taking care in case you couldn’t. And over time once you get used to it, I slowly let you go. Even so, you might accidentally drink the water. However, the more you do, the more you can.

That’s how programming is, you just need to do it. Type the code, compile it, if it’s wrong, find out why. If it doesn’t work, found out why, try different approach, try different solution. Code!