programming computer screen
Life,  Tech

Learning To Program Is Hard…

Learning to program is hard.

Learning to program on your own is REALLY hard.

In my journey, I’ve come across many different courses, books, videos and other seemingly endless ways of learning. Some more confusing than others.

But by way of self-studying, while frustrating, I’ve also gained the confidence of accomplishment from learning on my own and knowing how to get the information I need.

There are time’s I want to quit. Many times.

Sometimes, just having the right learning materials and methods of instruction can make ALL the difference. I firmly believe this. Similar to what separates a good trainer from and bad trainer, or a good teacher from a bad teacher.

Check out this book called “Programming Principles and Practice Using C++” by Bjarne Stroustrup.  He’s the guy who designed C++. I’ve found it amazingly interesting and helpful to read in conjunction with other material like textbooks and YouTube videos. I’ve been using this mixed approach and using everything together to try and really grasp the concepts. Also you can read a little at a time or just use it as a backup to go-to the subjects you need more clarification on.

These quotes from the preface of the book really resonated with me:

“Remember: programming is (among other things) a practical skill that you need to practice to master. If you don’t write code (do several exercises for each chapter), reading this book will be a pointless theoretical exercise.”

The old saying, “Practice makes perfect”, is incredibly true.

“Programming is learned by writing programs. In this, programming is similar to other endeavors with a practical component. You cannot learn to swim, to play a musical instrument, or to drive a car just from reading a book — you must practice. Nor can you learn to program without reading and writing lots of code. This book focuses on code examples closely tied to explanatory text and diagrams. You need those to understand the ideals, concepts, and principles of programming and to master the language constructs used to express them. That’s essential, but by itself, it will not give you the practical skills of programming. For that, you need to do the exercises and get used to the tools for writing, compiling, and running programs. You need to make your own mistakes and learn to correct them. There is no substitute for writing code. Besides, that’s where the fun is!”

When I read this, my mind lit up as I wanted to shout out, “Yes, exactly!”, to no one in particular in the solitary room I was in.

What I’ve found to be so helpful is to just keep chugging, keep going, keep moving forward even when I don’t understand the concepts after reading them. By moving forward and doing exercises, even just copying code line-by-line, I’ve found that I will get the concepts when I go back and re-read the material. I find myself thinking and dreaming about the code and program concepts and how they tie together, and then waking up eager to learn more.

(Also, one of my main things is to study concepts I’m not understanding right before bed and then again upon waking up to help reinforce things.)

“And please don’t be too impatient. Learning any major new and valuable skill takes time and is worth it.”

From the book “Programming Principles and Practice Using C++” by Bjarne Stroustrup.