How I got a free CS bootcamp (and hired some interns)
This is the story of how I got my Computer Science education, for free, from a top university…kinda.
I am a self-taught software engineer. I largely learned to code from the giant language reference books that were popular in the late 90’s and early 00’s. In school I got a bit more well rounded via an Information Systems business degree, but it was a far cry from a proper Computer Science curriculum. And so when I started my career in software engineering I had some pretty enormous blind spots. So so enormous that I didn’t even know they were there.
Less Imposter Syndrome, More Dunning-Kruger.
For the first few years I got by on brute force and the “benefit” of working at a company that did not do any code reviews. My second job, however, was a swift reality check. I figured out pretty quickly that I was in over my head. I knew it. And worse, my peers knew it.
I needed a crash course in the applicable bits of a Computer Science degree.
Campus Recruiting
How I got hired at Twitter during its hey-day I’ll never quite understand. I liken it to a scene from the movie “Old School” in which a bumbling idiot (Will Ferrell) is required to compete in a debate competition against a famous political talk show host. When the question is asked, the audience knows that Ferrell’s character should have not even a cursory understanding of the topic. And yet, he launches into a full, detailed, and measured response leaving the audience stunned and his opponent conceding the point entirely. After which Ferrell claims that he “blacked out” and doesn’t remember any of it. This is how I imagine my interview at Twitter went. But anyway…they hired me and off to San Francisco I went.
As many tech companies did then, Twitter had a campus recruiting program for internships and new grad hires. They would ship alumni from the likes of Stanford, Berkely, MIT, etc to collect resumes, hand out swag, and give in-person interviews for internships. This particular year, Twitter was expanding its reach to some other schools including Georgia Tech. While it’s true that Georgia Tech is in my hometown and I grew up as a great fan of its football team, it’s also true that they declined to allow me to attend when I had applied years earlier. However, Twitter didn’t have enough alumni to form a full team and so “being from Atlanta” was enough for them to let me join the recruiting effort.
The Idea
At this point I was already doing some technical interviews for incoming engineers, but I had never interviewed an intern before. And Twitter, at the time, did not have any formal process or training for doing so. So I found myself with roughly a dozen interviews scheduled over the course of a week with no plan or guidance on how to conduct these interviews.
That’s when I made the connection. I knew I had blind spots that were holding me back (even if only in how my peers perceived me during watercooler technical banter). And I was about to have access to a bunch of smart students who were in some cases literally walking out of lecture halls where these subjects were being taught by top shelf CS professors. It was all so obvious.
I would conduct these interviews by asking the students to take on the role of professor and teach me everything they knew about CS subjects of my choosing
It worked
Over the course of the week I asked these students to teach me about things like Big O and algorithmic complexity, how compilers work, what is garbage collection, and numerous other subjects. And it worked! I got amazing results for myself, and in turn got some great hiring signals for the prospective interns.
As with practioners of any deep subject, a few learning sessions over the course of a week is not nearly “enough”, and I still learn new things about computers and software to this day, nearly 10 years later. But that particular week I can pinpoint as an inflection point in my software engineering journey where I started the transition from “self-taught enthusiast” to “journeyman engineer”.