Intro: How Do You Get To Carnegie Hall?

Practice, practice, practice1

I've never felt confident in passing coding interviews. I write code a lot, but it's not the kind of algorithm-oriented software that businesses are testing software developers for, it's app code not the sort of thing Linus would recognise.

My favourite software iconoclast, DHH, tells us to Stop Celebrating Incompetence.

You're not a clueless dog banging at the keyboard with no prospects of ever improving. You're a human of tremendous capacity to become good at what you do. Embrace that.

Muhammad Ali tells us

The fight is won or lost far away from witnesses - behind the lines, in the gym, and out there on the road, long before I dance under those lights.

These are trivially true things.

I've bashed my head against leetcode before and gotten discouraged at how hard it is to learn this sort of algorithmic, data-structure-centric way of viewing the world, when all I want to do is have fun with software. But, damn, I'm tired of being a clueless dog, of feeling like I lost the interview before I even joined the zoom call.

The cliché we have is that you can grind leetcode to get good at this. So let's start grinding leetcode, like it's a gym. Learn to love the process of taking six months to see noticeable progress.

I'll be using go as my language, so the code examples provided in the workbook I'm working through won't give me the quickest path to an answer.