On Learning to Code

My friend at office asked me recently “Can I learn to code by myself?”. You may have probably encountered one or two posts that talk about it elsewhere. And they point to the same answer as mine: “yes you can”. As a background, I receive a formal education in Information System (which had less computer science-related courses than computer science or informatics major) and it’s past a decade when I wrote my first Hello World! program during my first semester at university.

I have done programming over a decade now. Compared to a decade earlier, now is relatively easier for someone to learn to code. A lot of web apps built for this sole purpose available for either free or paid by subscription. Moreover, a zillion of tutorials, discussion board and online classes are available over the internet. However, even with aforementioned resources, learning to code is still a formidable undertaking. Some will survive and not few won’t.

Though I code for living and done many years programming I find myself still learning to program and to have better craftmanship on programming. I’ve been through the phase from zero to able to write small-course-assignmet programs to write bit more complex piece of software, and here’s some of my thoughts on learning to code based on those experience.

Perseverance is a must

Learning to code can be fun at the beginning. Solving small problems keeps us going. However, when we getting closer to real world problems, we might stumble upon problems that are really hard to solve. We spend hours or even days to work on it but to no avail. This is where perseverance play its part — to keep trying until the problem is solved.

Google is your best companion

Well, it’s not necessarily Google, any search engine will do. In fact, I use duckduckgo most of the time. Believe me, we are not the only one who have the unsolved problems. A lot of programmers are struggling with the same problems as well and most of the case they have already have the answers. Hence a skill to search on a search engine is a necessity when programming.

Focus, don’t get distracted

To be honest, this one is rather hard for me, to focus on completing one thing at a time. Programming could easily overwhelm someone as there are a lot of information need to digest. Therefore, it is best to have a plan when we learn programming of any new programming languages. Learn the basic first, don’t be tempted to learn advance stuff at the beginning.

Get the fundamentals

Some may said it is not really important, but the right data structure and algorithm can optimize a program by lot compared to not using any. Knowing fundamentals in computer science can be a clear separation between a bad programmer with a good one.

Familiarize with well-written projects

Reading and examining well-written open source projects help a lot to benchmark ourself with the best practice out there. We can learn how to properly structure our project, how to make proper comments, and how to modularize the code. After a while we will find that our code written so far is just a pile of garbage compared to the project. However, it is a necessary part of learning; we have to know our mistakes to make improvements.


In the end, I believe everyone can code but to be a better programmer requires one step beyond that, with considerable amount of efforts. Me myself is still in the middle of voyage to go there.

Hello, my name is Nauval. I code for living. I blog in my spare time.

Have a look around and drop me an email should you have any questions, feedback or just to say hi!