An approximate transcript of the TEDx talk is below. I’ve starred points that I intend to write follow-up posts about, for my own reference.
The written word has been the foundation of our society ever since it was invented. But for most of human history, the only ones who could write things down were professional scribes (or people who could afford to pay them). This was not very many people, so most of humanity’s ideas went unrecorded.
Then came the printing press, and widespread literacy. All of a sudden, anyone could write down their thoughts, and it was much easier for them to spread. This lead to revolutions in everything; governments, business, learning, culture — everything changed.
We’re in a similar situation today. The foundation of our society now is technology, and the only ones who can shape our technology are professional programmers (or people who can afford to pay them). This is not very many people, so most of humanity’s ideas go unbuilt.
But I have good news. Recently I’ve discovered that the tools have gotten good enough so that anyone can learn to code. You don’t have to be a math person; you don’t need a technical background.
And I believe that everyone should learn to code, because when more of us begin to see our technology as builders and not just consumers, I believe that we are going to see a whole new set of revolutions.
Let me tell you a bit about why I came to believe both of these things.
I’ve always been an “ideas guy.” I spend a lot of time scrawling things down on the backs of napkins. But I was lucky enough to get the chance to try and execute on some of my ideas. When I was around 21, I dropped out of Indiana University, and went to India to start up some ventures.
Now, why India? Well, it’s a long story. I was 21, and I thought I had it all figured out. It turns out, I had nothing at all figured out. I knew nothing about India, startups, or life in general. But slowly, very slowly, I learned a little bit about each of these things. And eventually I reached a crossroads.
I had to decide between continuing to grow the business, and exiting. I chose to exit because, at heart, I’m a huge nerd. I love to learn. So, of course, I dropped back into college here at UChicago.
One of the things I was most excited to learn was how to program, because the story of my life as an entrepreneur was one of being constantly frustrated by my inability to code. To build the simplest prototypes, you have to attract developers, you have to afford them, and you have to communicate your vision to them. Something usually got lost in translation.*
So I took a couple of computer science classes as soon as I got here. They were interesting and challenging, but I didn’t come away with anything I could immediately apply to any of my ventures. It was all very theoretical. It felt like I’d have to do a couple of years of groundwork before I got to the practical applications, which was discouraging.
And then there were my classmates, the computer science majors. They were very smart. They used bigger words than I knew, and generally were very intimidating. So I thought maybe programming was best left to the professionals after all, and I kind of gave up.
But then, last fall, I heard about a school here in downtown Chicago. They claimed to be able to take complete beginners and teach them how to build fully functional web apps in 11 weeks.
Now I was skeptical of this, but I was desperate; I wanted it to be true. So I gave it a shot. And I’m happy to say that it worked. Code Academy showed me just the right tools to use as a beginner, and just enough of how to use them so that I got productive in just a matter of weeks.**
Now you might be thinking, “Hang on, this guy is not really a beginner — he took some computer science classes, he had a technical background.” And that’s fair. But let me tell you about my friend Tom.
Tom was one of my classmates at Code Academy. He came in as a true beginner. He didn’t know anything about programming a computer; he wasn’t even the best at using a computer. We were all a little bit worried about Tom.
But he had an idea that he was passionate about building. He wanted to make a real estate search engine that lets you find homes based on their distance to public transit, which I think is a great idea.
The very first week, our instructor gave us a basic exercise: we were supposed to model a bank account. Tom and I were partnering up, and I was getting ready to do as I was told. Tom said, “Hang on, can we make a real estate listing instead?” I said, “… well, yeah. Yeah, I guess we can.”
See, I was used to doing a bunch of theoretical exercises and not thinking about practical applications until way down the road. But Tom, no matter how little he knew, wanted to immediately get as far as he could toward building a solution the problem he was passionate about solving. So, I might have come in knowing more than Tom on Day 1, but by Day 2, as far as building real solutions to real problems, Tom had already left me behind.
Tom continued like this. Every day we’d learn a little bit, and every night he’d go home and plug in that bit to his app idea. And at the end of the program he had built this. This is LiveByTransit. I’ve asked it here to show me homes within a 5 minute walk of a Metra stop. You can see that the results neatly trace out the Metra lines.
You can do all the standard real estate filters and sorts. He figured out how to make this map dynamic, so as you pan and zoom it updates the search results. He even figured out how to pull in Chicago Public Schools data, so that you can rank and filter your results by school district.
(Since then, with the feedback he’s gotten from his first prototype, Tom has evolved his idea and is now focusing on SchoolSparrow. This is the kind of evolution that cannot happen when your idea is still living in your head.)
This is a sophisticated, powerful, useful site, and it was built by a guy who had never seen a line of code just three months before.
Given the right instruction and the right community, it is possible, with passion and persistence, for beginners to learn how to build meaningful apps. The tools that enable this for beginners have just recently come into existence, and they are just getting better all the time.
Alright, maybe anyone can learn to code, but why should they? Let me tell you a couple reasons why I believe they should.
There’s been a lot of ink spilled lately over the jobless recovery. Basically, the stock market is back to where it was before the recession, corporate profits are at record levels, but the jobs haven’t come back.
A lot of people think this is because technology has gotten so good that the remaining employees have become so efficient, they just do all the work that there is to be done; and that we are just going to see a continually rising trend of systemic unemployment as technology gets better, especially as artificial intelligence technology matures.
But I read a book recently called Race Against The Machine. In it, the authors describe events in the world of chess, which is the classic area of application of AI.
In 1997, for the first time ever, a computer beat the best human chess player in the world. This was big news at the time, but it’s kinda become old hat since then, and no one talks about computers beating humans anymore. The action shifted to AI versus AI to see who the best in the world at chess is.
But today, the best chess playing entity in the world is neither a human grandmaster nor an AI; it’s a team of humans and computers. The humans aren’t grandmasters; they are actually amateur chess players, but they are very skilled at coaching the computers at which moves to look deeply into. And there’s something about that synergy that pure AI hasn’t been able to replicate.
To me this is a hopeful takeaway. It tells me that we are still going to be useful, but that the ability to communicate with our machines, or program, is going to be fundamental in the 21st century economy.
Now, I am not saying that everyone has to be an engineer.*** Exactly the opposite. You don’t have be a professional author to create value by writing, and you don’t have to be a pro photographer to create value by taking pictures.
I took up photography a couple of years ago. I read somewhere that the mere act of carrying a camera with you, even if you never take any pictures, changes the way that you look at the world. When you are always looking for a shot, you take less for granted, you notice more things, and you are just generally more engaged with the world around you.
Now I noticed a similar phenomenon after I learned to code. I wasn’t expecting this, it was a surprise to me. Before, if I ever noticed a little annoyance or irritation in my day to day life, I would just be annoyed for a couple minutes and then I would forget about it and move on.
But now I look at things with a builder’s eye, and if I notice one of these “pain points,” I analyze it, I search for existing solutions, and if there aren’t any, I make one.
One of my favorite things to do is taking long road trips on my motorcycle, and one of the best things about road trips is stopping at all these nice little local gems you find along the way; coffee shops, restaurants, local attractions.
I was worried that I was missing out on a lot of great stuff that might have been just a little bit out of my way and I wanted to be able to search along my whole route before I left home. I couldn’t find a way, so I made this.
You give it your origin and your destination, it goes to Google maps and figures out your route; and then it goes to Yelp, searches along that route, finds the best spots, and shows them to you.
I made that before Thanksgiving Break and I used it on my way home, I gave it to some of my friends and they used it to plan some road trips, and it added just a little bit of value to our lives.
Another one of my pain points: I get a bunch of fun sounding Groupons in the mail all the time. But I don’t wanna go by myself; I want at least, say, 3 of my buddies to come with me. Now, at least with my friends, trying to get everybody coordinated over email, figure out a date, and figure out who’s in never happens before the Groupon expires. So we miss out on a lot of cool stuff.
So I made this. It pulls in your city’s Groupons. If you find something you like, you’re a click away from inviting your Facebook friends. They all get a notification, and when, say, 3 of them commit, the deal tips, everyone gets a text message, it makes a Facebook event, it puts in your calendar.
I made this tool and we’ve been using it, and because of it, we’ve all gone out together a few more times than we would have otherwise. To me that’s very valuable.
If it were up to me, the University would make a course on building web apps part of the Core curriculum, and it would count towards the art requirement; because it all feels the same to me.
The first time you make one of your ideas real, and you push it out live on the web, and you see it, and people are using it, and you built it with your own hands — you feel like Superman.
The ability to make your ideas real is a superpower. Could you imagine what the students here would build if they all had this ability? What would the literature majors build, or public policy majors? What would the athletes build, or the dancers? What would you build?
So far, the only pain points that get addressed are the ones experienced by professional developers (or people who can afford to pay them). This is not very many people, so most of humanity’s ideas go unbuilt. Programmers are the scribes of the modern age.
What happens when people from all walks of life gain the ability to make their ideas real, based on what they observe in their unique experience?****
When you give experts from other fields the ability to code, they become dangerous, and I think that this is going to lead to a whole new set of revolutions. I can’t wait.
This brings me to another crossroads. It looks like I might actually finally graduate from college. The question is, what do I do next?
I could return to the world of business, where there are still many opportunities, especially now that I can code.
But I’m also happy to say that I was accepted to some of my top choice grad schools, and that’s been a lifelong dream of mine. And so I’ve decided to… do neither.
After I learned how to code in the fall, I was invited to be a teaching assistant for the winter class. And it turns out that the only thing I love more than building my ideas is helping other people learn how to build theirs.
So after I graduate, I’m going to be dedicating myself full-time to teaching beginners how to code, and doing everything in my power to usher in the coding revolution. Thank you.
Follow-up Posts To Write:
- * How learning to code has made me 10x more effective as a manager
- ** Why a tight feedback loop is so important for beginners’ learning
- *** What it will mean to create value in a no-scarcity economy
- **** How widespread code literacy will enhance the app ecosystem