Transcript for:
The Importance of Learning Programming

Earlier this year, Reddit user CS-NL posted this question to the internet. Reddit, my friends call me a scumbag because I automate my work when I was hired to do it manually. Am I? CSNL was hired to do manual data verification and fixing on this gigantic Excel table. Rows and rows of it. He was hired in this department of a bunch of people whose job it was for eight hours a day, five days a week, to just do this to a giant Excel table. and they were pretty good at it. The typical daily output was 6 to 10 records a day with about 90% accuracy. Now, CSNL knew some basic programming, so he wrote a computer script to literally do his entire job for him. The script that he wrote completed... over a thousand records a day with 99.7% accuracy. He replaced an entire department in a weekend of coding. Now, I know what you're thinking. All right, smart kid, stupid company. They should have just hired a programmer in the first place because this data manipulation thing is what computers were designed to do. But I want you to think for a moment about the place where you work. And I want you to think about what it is that most people are doing there when they're working. Chances are... it's probably a form of data manipulation, and it looks a lot like this. And this, if it hasn't already happened, I don't know what it is that you do, it probably will happen soon. This has already happened to architects and doctors and even things that aren't even remotely related to computers at first, like painting. And in some cases, computers have completely replaced the person entirely. Did you know we used to hire people to stand in the middle of intersections and direct traffic? We hired people to print out... yesterday's news and hand deliver it to us to our homes. We used to have stores that you could go to to borrow analog copies of movies and rent them out and they would charge you late fees if you didn't return them in time. Ridiculous. Like what? And there are still a lot of societal problems that we're facing that don't make sense in a world with computers, like textbooks, really heavy books you can't search through, they're not linked to other things, or paper forms that people just retype into a computer, or classrooms, why should I go to a classroom when I can watch a video on YouTube and I can fast-forward through the boring parts and rewind through the other parts? There's a lot of problems like this in society that don't make sense in a world with computers. But what can you do about it? Well, to answer this question, I would like to travel back in time to the year 1960. 1961, the year we decided to put a man in a giant can and send him from Earth to the moon. But we had a problem. The amount of calculations you would have to do to coordinate this incredibly complicated rocket system to actually get you there and into the right orbits was way too much to do by hand. But NASA engineers were very smart. They built one of the most advanced computers of its day, the Apollo guidance computer, to do these calculations for them. They did that with with this. How many people in this room have one of these? How many people don't, like one guy in the back? Your cell phone in your pocket right now has the computing power to do the calculations for one million Apollo 11s simultaneously. Now, I couldn't fit a million Apollo 11 little graphics on this slide, but if you can imagine this slide repeated, many times and then this slide repeated this many times. That's how many Apollo 11s your cell phone can do the calculations for. NASA scientists in 1961 would have fallen to their knees and worshipped you like a god for having this kind of technology. And what are you using it to do? There's a disconnect between the technology that you have available to you, the problems that we're facing in society, and what you know how to use that technology to do. So with this in mind, I've come up with a clear call to action, which is that you should learn to program. Now there's a lot of studies that say that if you repeat something, you're more likely to remember it. So if on the count of three I could get everybody to say, I should learn to program. One, two, three. I should learn to program. But why? Why should you do this thing you just agreed to? Well, I have three reasons why. Number one is that programming literally makes you smarter. What you're probably thinking to yourself is, why should I learn to program? Why did I just say that? Which is a good question, but it's probably also what people were saying in the 1940s about, in the 1400s about reading. And now that you know how to read, don't you think it's really convenient that you don't have to rely on someone else to do all of your reading for you? It's really handy that you're able to have this mental process, this mental tool that you can use to extend what you were otherwise currently capable of to apply it to other problems. And computers are really good tools. for extending what you're capable of. If a computer scientist, if someone with a little bit of programming experience has a problem of not wanting to go to the video store, they can make a website that streams video straight to your computer. If people are having problems with textbooks and a programmer says, oh, I have an idea, I'll make a website where everyone can edit it and it's immediately available to everyone online, they can do this. If someone doesn't like asking people if they're single, they can make a website that just lists that for all of their friends. A common side effect of solving these kinds of problems as a programmer is that sometimes you become a multi-billionaire. But even if you don't invent the next Facebook, knowing the basics of programming is really good for your basic fundamental tools of thinking. Like being able to break up a really big problem into really tiny pieces, or being able to iterate over something really quickly and make small incremental changes, or being able to find a little tiny problem in a big complicated system. Even if nothing else, you'll know enough about computers to stop listening to what a talking paper clip is telling you to do and to start actually understanding how the computer is working. They didn't get this joke at TEDxKids. We're getting old. But most importantly, learning how to program will let you use your computer's full potential and this is only going to become more true as computers get faster and cheaper. Which brings me to my second point, which is that computers are getting better faster than you are. There's this law in computer science called Moore's Law that predicts that every two years, processing capacity of the average computer will double. Double every two years. How much smarter does your brain get every two years? You're still much smarter than a computer, but for how much longer? The futurist Ray Kurzweil estimates that by 2025... you will be able to buy a computer with the computing capabilities of a human brain for a thousand dollars. But even more amazing than that is what you can buy today. This is the Raspberry Pi credit card sized computer. It started shipping earlier this year for $25. $25 for a computer. What? Imagine the things you could do with this if you knew what to do with this. $25 you could plug one into every washing machine and have it text you when your laundry was done or plug it into every toilet in your house and congratulate you for peeing for a really long time. I did that, it was really fun. But you wouldn't know what to do with it if I gave it to you because this is what it looks like when you turn it on. Which brings me to my third and final point, which is that you're lazy. But what you don't realize is that computer programmers are some of the laziest people on the planet. planet. If there's a job that a computer scientist has to do that takes 10 seconds every day, a computer scientist will spend months making a tool for himself that can shave five seconds off of that. But when you're first learning how to program, it's going to seem like a complete waste of time. You're going to be learning things like how to get the computer to do math for you and how to get the computer to type out words for you, things that would be much easier if you just did them yourself. But if you stick at it. If you can program for an hour a day, after about a month, you will reach this magical point where it's actually faster for you to program the solution to a problem than it is for you to do it yourself. And all of a sudden, life will just be magical. If you have a problem that used to take you hours or days, you can code up a solution in minutes. You will have this enormous capability of processing Vast amounts of data and extending what you're otherwise currently capable of to solve these huge problems. You'll have the complete freedom to code up solutions that have never existed before with no one telling you that you can't and you will feel inspired to become a programmer. Don't! I want you to go back to whatever it was that you were doing before you started to learn how to program and I want you to bring back these tools that you've got from programming and apply it to that. I want you to rethink how people are currently doing what you're doing. There's a lot of people in the world that can program, but there's none that can also do what you know how to do. Now, how do you get started? Well, Google. Just Google how to program online. There's a ton of free resources. If you don't like any of those, I made a list on my website of some of my favorite ones. It's my name, christianjenko.com, and you can... Start learning. I'd like to close now with one of my favorite quotes from someone that totally would have been a programmer if computers had existed when he was alive. Henry Ford once said, if you have a difficult task to do, give it to a lazy man, and he will find an easier way to do it.