I’ve recently found the need to brush up on my computer science knowledge… and by “brush up,” I mean, learn computer science. I learned to program many years ago and have spent my life working in the field, and honestly, data structures and algorithms just didn’t come up very often. (Or, you know, ever.)
Gunslingers and Soldiers
Accepting the fact that much of what we envision when someone says “gunslinger” is a myth, let’s revisit that epic moment in The Outlaw Josey Wales toward the end of the movie when the ill-prepared bounty hunter comes after the title character.
Bounty hunter #1: “You’re wanted, Wales.”
Josey Wales: “Reckon I’m right popular. You a bounty hunter?”
Bounty hunter #1: “A man’s got to do something for a living these days.”
Josey Wales: “Dyin’ ain’t much of a living, boy.”
— The Outlaw Josie Wales
And then, faster than the eye could follow, Clint Eastwood (aka Josey Wales) rips his gun from his holster and ends the career of Bounty hunter #1.
Josey was a man who’d had a hard life and learned to survive.
On the other hand, I hear that modern soldiers have to rebuild their guns blindfolded. As impressive of a feat as this might be, how far is that from engineering a gun from scratch? How far removed is the fictitious Josey Wales from designing a gun on a drawing board?
While Josey Wales was fictitious and the truth of old west gunfights is very different from most movie renditions, the American west is full of men who consistently ended up on their feet after the smoke cleared.
But then it got ugly
I, too, had some rough dealings coming up (as far as American kids go) but I was blessed with a brain that jibed with computer things… and even more blessed to figure that out when I was a late teen. It’s hard to say that it was anything other than blind luck that got me into computers, but the things I was asked to do, seemed to come naturally.
We speak of “rock star” programmers, but I always liked the gunslinger analogy. I’ve always been fast and accurate (enough!) My abilities as a programmer led me to promotion after promotion, until I finally rose to the level where I was miserable and started over. And then, again, I found myself getting offered promotions.
Along the way, I’ve had to learn and do myriad things, from marketing to legalese to infrastructure-as-code. But one day, out of the blue, a new nemesis arose… a foreign beast, born in the halls of academia, a monster that I’d scoffed at in times past because it wasn’t part of the “real world.” While we working coders and server admins lived amid the blazing guns and flashing steel of getting shit done, the eggheads could talk about algorithms and data structures in their quiet little rooms till their hearts were content.
But suddenly in 2022, I found myself needing to know a thing or two about computer science, and so I bought a book.
A funny thing happened on the way to the forum
Apparently, if you want to scale things to epic levels, all that computer-science stuff actually matters. (Well, maybe not all of it…) I think it might have something to do with “exponential” (but don’t quote me, I’m just a gunslinger coder/server-nerd).
It has recently become important to me that I understand certain fundamentals of computer science, and the hardest part isn’t the calculus or the big words, but the fact that, in textbooks, it’s seldom couched in real-world scenarios. “Dyin’ ain’t much of a living, boy,” is an epic line from an epic western, but it’s also the hard truth of life: how much you know matters a helluva lot less than knowing what it takes to win. How much does knowledge of computer science contribute to real-world techie excellence?
I’m so glad you asked
I’m the CE/TO of a tech company and this stuff is my life (well, this plus my cats, classic Dr. Who, sushi, and a handful of other vital things). Our company focuses on partnering with teams who develop websites and browser-based applications to ensure the best possible go-live and day-two-plus experiences.
Can knowledge of computer science principles aid that mission? I honestly don’t know yet, but I’ll say this: after a lifetime in our field, I’m glad I’m making the time to develop at least a conversational understanding of these fundamental concepts.
I don’t know if it’ll come in handy with websites and browser-based apps, but I’ll let you know!