My Biggest Breakthrough as a Self-Taught Programmer

A lesson every programmer has to learn for themselves

Graham Sahagian
Two Minute Madness

--

photo by author

A couple of years ago, I naïvely asked a couple of computer science friends how long they thought it would take for me to learn how to become a programmer? “You know if I, like, really studied hard every day.”

Their response: “Probably, like a month. You just have to write and read a lot of code, and you’ll eventually get it.”

Honestly, they were kind of right. I dove right in. It took me about a month of studying to understand programming fundamentals: functions, methods, libraries, syntax, recursion, etc.

But this understanding was illusory. All my knowledge was surface level.

At the end of the month, when I thought about a problem, I was still completely at a loss for how I could possibly approach it. Perhaps even worse, I wasn’t entirely sure what issues could (or should) even be addressed by code.

So, I doubled down on my curriculum: programming books, Youtube tutorials, Coursera courses, the works. I wanted to apply Pythonic code to financial time series data and figured there was a finite amount of operations one can perform on such data.

I slowly realized that I was learning unique problem-solving heuristics rather than a compositional language.

Not syntax, not functions, not methods. I was learning how to address issues from the perspective of a distinct set of instructions.

Becoming a better programmer meant learning what questions to ask and how to ask them.

The Seminal Moment

I gradually began to increase the granularity of my “how to…” searches. I went from searching “python finance tutorial” to “resampling hour data into daily” or “pandas ml quant documentation.” The amazing thing that happened at this point was equal parts reassuring and astounding:

Every question I ever asked myself was here. Online. It (usually) wasn’t in a coding tutorial, though. These hidden gems of information were often hiding in particular threads on StackOverflow, stories on Medium, projects on Kaggle or Github.

Becoming a better programmer meant learning what questions to ask and how to ask them.

You’ll only unlock this wealth of highly-specialized knowledge and expertise when you begin to fully grasp what you do know and, even more important, what you don’t. Verbalizing the problem at hand is perhaps the most under-appreciated and crucial element of becoming a programmer. Understanding the “Why” starts with postulating the right “why.”

Sort of like the antagonist of a film noir, you’ll hit brick wall after brick wall until you start asking the right questions in the right places. Then, like magic, the truth will begin to unravel and reveal itself.

--

--

Graham Sahagian
Two Minute Madness

Learning and teaching how to do useful stuff, usually with code