Lessons from basic programming

I enjoy programming. Ever since I started independently writing my own lines of code, I fell in love. The ability to sit, and in a matter of hours create something from scratch that beforehand was not there, is phenomenal. When people find that I program, they always seem surprised. This is expected, as the field in which I study — medicine, is far removed from computer engineering. Inevitably, I’m always asked the same question: why do you code?

Aside from the above-mentioned joy that coding brings me, it has taught me two fundamental lessons that have made me a more productive and successful person.

The first lesson that I learned from writing code, was how to teach myself. Attending university, you often find yourself memorizing what your professors say regardless of its relevance to you — after all, autodidactism is not something universities are known to promote.

When programming, your code will crash. there will be a bug somewhere that you must fix. In such a scenario, you are forced to learn exactly what it is you need to know. You must learn that, and only that and you must learn it yourself. Anything outside the scope of your problems is not important as of yet. Why is this important?

“The biggest hurdle that prevents individuals from learning a new skill — aside from procrastination, is the need to read materials in order learn all there is to know before hand”

The truth is, there is no way to achieve this. While reading about the skill you want to learn is important, actually diving in and doing it is essential. you learn by doing something, failing, and then analyzing the cause of the failure.

The second lesson that I learned from programming, is perhaps one of the most fundamental lessons I have ever learned; reverse engineering. This simple technique is fundamental to any skill that you plan on achieving long term. it is relatively straightforward; find what you want your endpoint to be, and backtrack all the way to the present moment. What this does, is it limits your checklist to only things that are the most fundamental to your goal.
Obviously, it is not reasonable to expect everyone to be a programmer. However, programming is a skill that I recommend everyone partakes in it. It endows you with rational, first principals thinking, as well as logical analytical skills. In the list of hobbies that is worthy of your time, computer programming should be at the top of everyone’s list