Today, reading and writing are foundational skills and in the digital world, coding is too. But coding can be intimidating to learn–what is code, where do you start? In his new book Read Write Code, Jeremy Keeshin demystifies the world of computers, starting at the beginning, to explain the basic building blocks of today’s tech. Programming, the Internet, data apps, the cloud, cybersecurity, algorithms, and more.
Jeremy has helped teach coding to millions of students over the last decade. Complex concepts are explained in a friendly and engaging way and there are interactive examples and practical tips. The book is a must-read for modern educators and anyone who wants to understand why code matters today.
Drew Appelbaum: Hey listeners, my name is Drew Appelbaum and I’m excited to be here today with Jeremy Keeshin, author of Read Write Code: A Friendly Introduction to the World of Coding, and Why It’s the New Literacy. Jeremy, thank you for joining, welcome to The Author Hour Podcast.
Jeremy Keeshin: Thank you, I am excited to be here.
Drew Appelbaum: Let’s kick this off. Can you give us a rundown of your professional background?
Jeremy Keeshin: Yeah. I’m Jeremy, I’m the CEO at CodeHS and what we do at CodeHS is a comprehensive platform, helping schools teach computer science. We started CodeHS in 2012 and since then, we’ve had millions of students on the site, all over the world. We are really trying to make computer science fun and accessible in schools. We are focusing on middle schools and high schools.
We are helping to make a curriculum to train teachers, to build the software and we’ve been doing that for almost a decade. We started doing that after myself and my co-founder, were both computer science students and NTA’s at Stanford, and taught the intro computer science classes there. At the end of college, we started doing CodeHS and we’ve been doing it since then.
Drew Appelbaum: Why was now the time to write this book? Did you have an inspirational moment, an “ah-ha” moment, or just more time on your hands?
Jeremy Keeshin: I’ve been wanting to write this book for a number of years. I think it just got to the point where I thought, “Okay, I’m going to do this, I’m going to make this happen.” I felt like, obviously, there are so many books, but I felt like there wasn’t a book like this out there. What I’m going for is really trying to make things around coding and computer science really friendly and accessible.
That’s the idea of the book, that’s the idea of what we do with CodeHS. I think there’s a lot of people, whether they’re teachers, whether they’re adults, anything with coding or computer science, it sounds scary and intimidating and people are like, “I just don’t know that, I have no idea.” You hear something somewhere and you say, “Cybersecurity hacking? I don’t even know what that is. AI? “What even is that?”
I think part of the idea of the book is this is something that’s really important for people to understand. Whether you’re a teacher and you’re teaching it, or you’re interacting with technology every day, on your phone, understanding what that means, and understanding how things work.
There’s a lot of more technical books, once people have decided that they’re interested in computer science, but really saying, “Hey, how can you make coding friendly and accessible?” That’s the number one goal with this book.
Drew Appelbaum: Now, clearly, you’re a professional in this space but while you were writing the book, did you have any major learnings or breakthroughs?
Jeremy Keeshin: It’s pretty hard to write a book, and it was definitely a learning experience and a challenge for me. An attitude that I try to take, that we also try to teach is just around growth mindset and the idea that things are learnable if you put the effort in. I think something like coding, people think, I can’t do that. But okay, what’s up, what’s a path to doing that?
There’s a topic in the book which I talk about, which is very relevant to writing a book. But talking about problem decomposition. You have some program or some project you’re trying to create and how do you take that problem and break it into smaller problems, and break those problems into smaller problems, using something like top-down design?
What’s the overall project you want to do? Then how do you break that down into smaller pieces, and then you get to pieces that are smaller and smaller, getting to the point where, “Okay, you can just go and solve it.” The book had a lot of those elements, so beforehand, figuring out, “Okay, well what are the steps?” You have to create the outline, you’re going to write chapter one, you’re going to write chapter two.
You’re going to do this edit and you’re going to create the layout. You take each step and then you break down that step more and more and more. I think there are analogies in the book to the writing process, but it was definitely a learning experience in a lot of ways. It was a challenge to write it but I hope that it can be something that articulates concepts that are more foundational. Because things with technology change pretty quickly, but I think the basics last for a while.
Drew Appelbaum: Now, who exactly is this book for?
Jeremy Keeshin: The book is geared towards educators. It could be someone who is a teacher, it could be a computer science teacher or a technology teacher, it could be a school administrator, but I think primarily, for educators.
Whether or not they teach coding or something with technology, that’s the primary audience of the book. But also, it’s written in a way where it can be read by students. It’s also can be read by someone who is just interested.
If you wanted to know things like, “How does the Internet work, what are the pieces that make up the Internet?” I explain that. Or you’re wondering, “Okay, what’s going on with AI–like I’ve heard that term, what does it mean?” I do think it has a lot of value if you’re just generally interested in this topic, and I think that there are really good reasons why this is something everyone should know.
I really believe that. I think you’ll see more and more schools teaching it, the trends are just moving that way. But I think primarily, it’s written for teachers. We work with tens and tens of thousands of teachers and I think having this book if you’re really new then maybe these are things that you’re hearing for the first time, or maybe you’ve been teaching it for a while, this another resource to show how you can connect the dots between areas.
Where Do You Start?
Drew Appelbaum: What can readers really expect from this book? What makes it different? Because it’s not a coding book. What should they be prepared for?
Jeremy Keeshin: Yeah, the book’s called Read Write Code, is it teaching you how to code? Not exactly. It does teach a little bit of coding like, “What is coding, how does it work, how do you get started in doing it?” But the analogy that I make in the book, is it is kind of like a map. I think if you say, “Okay, what’s going on with coding, with computer science, what are the pieces, how does it work, how is it put together?”
I think many people, don’t even know where to start.
Drew Appelbaum: Sure.
Jeremy Keeshin: Where do you start? That’s actually a challenge because a lot of the concepts depend on each other. So, to give you an idea of what some of the topics are that are in the book, for example, “What is coding, what is programming?” Coding is giving instructions to a computer.
How does that work, can we look at some simple examples? How does everything digital work? I explain how you get from binary, from bits, from ones and zeroes to how things are represented in computers, and how that connects to different programming languages.
But then it kind of hops around to put all these things in context. Explaining how the Internet works, all the pieces that make that up, explaining different basic programming concepts, explaining, what is data, what is the cloud, what is open source, what is cybersecurity, what do you need to know about cybersecurity, about phishing, cryptocurrency, about algorithms, about A.I, which is artificial intelligence.
Then a little bit about computer science education–how computer and science education works, and different ways you can go about learning things. It’s really meant to be an introduction, a survey but to connect and show how all the pieces fit together.
Because a lot of times, you may want to learn about one area, but it has some sort of prerequisite knowledge where you need to understand something else. I think it’s to give people a baseline understanding of things around coding and around computer science. Those are a number of high-level topics in the book.
Drew Appelbaum: How hard was it for you to take these concepts and really break them down to a granular level so that they’re easily digestible and in little bite-sized portions?
Jeremy Keeshin: Right. Yeah, I think that’s a big challenge in the book with every topic that I have because there is so much more to it. You could have books just on any topic that I talk about in a chapter or a paragraph. I’m not trying to explain things using complicated words, which you can do.
I’m trying to say, “Okay, how could you explain something complicated in a simple way, in a paragraph, and then use that to see how all the different things link together?” I think someone who feels like, “Okay, coding’s intimidating, I don’t know what that is,” I think if they read this book, they’ll come away being very pleasantly surprised, how much all those puzzle pieces put together.
Then they can see, “Oh yeah, here’s how code fits in, here’s what that looks like with data, here’s what that means with different considerations.” You see topics in the news now and I think there’s a real difference if you understand what’s going on behind it. For example, you’re talking about hacking which is in the news all the time now. Something’s being hacked.“What does that mean? How are things getting hacked? Hospitals are getting hacked, schools are getting hacked, there are phishing attacks. What is a phishing attack, how do I protect myself from that?
A lot of people know these things but many, many people don’t. There’s a basic foundation of concepts that allows you to connect the dots between them. I do try and simplify it, but give you enough that you can really work with. Obviously, for each topic, there’s a lot more to dive into, but I hope to distill it to a lot of the essential beginner concepts.
Drew Appelbaum: Yeah, I looked at it myself and it was very easy to take in, you broke it down really well.
Jeremy Keeshin: Thank you.
Drew Appelbaum: I would like to talk about cybersecurity though. What do you think the average person needs to know about how much risk is actually out there, and maybe what are some steps that you would suggest they take right away that they have never even thought of that are pretty easy to do?
Jeremy Keeshin: Thinking about how much people might use their phone, use their computers, have different accounts for personal information, private information, bank accounts. You know, you have a lot of data out there.
How is it being protected, how are people trying to take advantage of it? People who are hackers, the tactics that they have to evolve pretty quickly and it’s hard to keep up, but I would say that I think most people probably aren’t taking even the most basic security precautions because maybe they don’t think it matters or makes a difference.
There are pretty simple things you can do that I think really help. Some people know this but not everyone does, whether that’s how you’re setting up your passwords or two-factor authentication, or using a password manager, or what it means to have a secure password.
What are the types of attacks that people might be susceptible to? There’s a type of attack called a phishing attack. In the phishing attack, someone sends you an email and they’re impersonating someone else, or they’re impersonating someone you know, and they are creating a sense of urgency. They’re trying to get some information from you or get your password and take over your account or sell you something and get a credit card. A lot of people fall for this, a lot of time it could be a tech-unsavvy user.
You could also be a tech-savvy user and fall for phishing attacks because they’re pretty tricky. But just knowing, “This is what a phishing attack is, this is what I can look out for. These are the types of things that matter.” If you have a password and you keep all your passwords on all your sites the same, then, if one site that you use is hacked, which happens all the time, and now I go and I’m a hacker and I get access to that database of passwords, I can go try that password and your username on all the other sites, and that’s how a lot of accounts are taken over.
If people just know that they should have different passwords on different sites and they can do that with a password manager, or set up two-factor authentication. You now suddenly become so much more secure and your account is less likely to get taken over.
Especially if someone’s trying to take this over in mass. Again, that’s just one way, but I try and illuminate in the book the different types of attacks that are out there. It can be a little bit intimidating.
I think there’s the individual, “What did you do?” But then there’s the organizational level and we work with schools. There are schools that get hacked or they get ransomware attacked. A ransomware attack is when hackers have done an attack and now, they’ve encrypted or locked up something on your computer or the network or whatever it may be, and then they’re demanding a ransom to get it back. That’s crazy, and that’s happening, and it’s happening in hospital systems. I think you need both individual level and organizational level knowledge about this and how to be safe.
I think, again, cybersecurity topics and cybersecurity education, that’s not going away, we have a bunch of these courses on CodeHS and they’re getting more and more popular. I like to connect and contextualize the information that people are learning.
You could try and take one of these topics and look at it in the news. I think if you read that news article today, and you don’t know about these foundational topics, you would say, “Okay, something bad happened in cybersecurity, someone was attacked, I don’t know what that means, I don’t know what we should do.” But I think you understand the concepts a little bit more and it really gives you a better idea of what happened and how you might mitigate it for yourself or within your own company or organization or school.
Even to the level of people who are thinking about, “How do we regulate the internet and net neutrality?” I think the people who are legislators have no idea about these concepts I’m writing within the book, and the impacts on our general population are hugely negative. I think that the next generation can be much more educated about these coding and computer science concepts, then you’ll have, hopefully, laws related to Internet privacy and safety that will make a lot more sense.
Drew Appelbaum: I like to bring up the example of the fact that we all had to be subjected to George W. Bush painting in his tub, which is a photo that was grabbed off of his own personal computer and email because he wrote a memoir and gave up his password security questions.
They had his mother’s maiden name, and they had his street address, so they recovered his password and stole all of this stuff. You never want to see that burning image in your mind again, tighten up that security, folks.
Jeremy Keeshin: Right. I think that you read about it online, you read about it in the book and you spend 30 minutes, an hour on this. It’s way better to do a little bit of proactive security than to get hacked and deal with that after the fact and I think it’s very, very common. It’s very, very common and I think these topics, cybersecurity, privacy online, aren’t going away. We are going to be debating these topics for years and years. I think the education here is foundational. I think people really need to learn this stuff.
Drew Appelbaum: Talk to us about starting a career in computer science. What can someone expect, where can they go, and where should they start?
Jeremy Keeshin: Right, that’s a great question. I talk about that a little bit in the book under the computer science education section, and it depends on who the person is listening to this. I think if you’re a student in high school or middle school, taking a class is a great place to start. A lot more schools are offering classes, but most students still aren’t taking the classes.
A very small percentage are taking them, and I think also that’s why the accessibility part is a big part of the book. People have this preconceived notion about what coding is, who can do it, who it’s for, and that it has to be a certain way, but if you are a student and you can take your first class and create a cool project and show that impact, I think that’s huge. If you are in middle school or in high school, I think take a class, try it out, see what it’s all about. That’s the first place.
Then if you’re in college, you could still take a class. You could take an introductory class, and then it depends if you are trying to get into it professionally. We offer classes for teachers, and for students. There is also a lot of different online classes depending on if you just want to explore it, or if you want to make a certain project.
If people are trying to get into it later in life or as a career change, there are coding boot camps, which are more intensive ways to do it. Maybe over a few months or a year where people try and make a career change. So, there are a lot of different places to start.
I have seen a lot of success with the people that are interested in starting small. Start with a really small project and I think if people get over that “ah-ha moment” of coding that it really opens the door in a huge way, and that’s the first place I would want to get people to. That’s what the Hello World program is.
But then, there’s the cooler version of that, which is, what’s that first thing that you’d say, “Oh wouldn’t it be really cool if I could make this?” And when you see that, “Oh hey, I have this idea. I can create it and put it together,” that’s one thing I think for me, I was learning this over many years was very motivating.
In high school and college, I was really interested in comedy and ran a comedy newspaper like The Onion and built the website for it. That was a way to learn about how you make websites and apply it to something I am interested in. That’s what I would really recommend for someone. You could pick any area and apply that with computer science. I am interested in biology, I am interested in economics, music, audio–there are connections there and you can bring the idea.
So, I think connecting into what you are interested in, starting with something small, and then depending on your age, taking a class. Figuring out if you can make a project, a simple, simple project, and then go from there. That’s how people start. We start in the book and in the courses we teach, with something called Carol the dog.
Carol is this dog who lives in a great world and knows four words. The dog can move and turn and put down a tennis ball and take a tennis ball, that’s it. It’s super easy, as a way to start. It is not intimidating, we do it with middle school, and high school, and adults.
We taught this way at Stanford too, and you can start small and then you can build up. The people who were programming whatever the latest app is, many of them learned this way. There is a path to getting more and more advanced, but I think you have to get started small.
Friends of mine and people I know from college created some of the apps that millions, billions of people are using, and they started in just the way that we’re talking about in this book.
Drew Appelbaum: Yes, so is there an age group where you should get started on computer science? What you’re saying is it’s never too late, but can kids start doing this? Is this like karate classes when you’re young?
Jeremy Keeshin: At CodeHS, we teach middle school and high school and we’ll probably go even younger soon. It looks different in the younger grades. There is something called block coding earlier on, and block coding is instead of doing the typing where you are typing out the exact code, you drag and drop these visual blocks. It’s like bumpers in bowling. It’s a little bit easier.
It prevents some of the mistakes and so there are different visual ways or even online/offline ways where kids can explore some of the concepts. It is definitely being taught in elementary school. I mean you can get started earlier on, but for me, the approach that I think is important is if students are learning it earlier on, you want to make it fun.
You want to encourage them to keep learning because if someone takes their first class and they’re in middle school and they don’t want to take a class again, that’s not helpful, but I think exposing students to it early is really key. Especially because if you know then you know, but most people don’t even know what coding is. That’s the idea of this book. If you know, you know but most people really, really don’t know and there’s so much opportunity with it.
The way I start the book, the analogy for the title, Read, Write, Code, I talk about the new literacy and the analogy that I use is reading and writing. Those are core foundational skills. You expect students to know and you expect people who graduate high school to know reading and writing. You use those every day, even if you’re not going to be a professional writer or a professional reader.
You use reading and writing every day as part of being an educated citizen. I would say that today, 2021, with how much technology impacts our world coding is another one of those foundational skills. You don’t need to be a professional coder for it to make a really big impact.
Part of that analogy also is that 500 years ago most people couldn’t read and write. That was actually reserved for a very small group of people, and then I explained with the printing press, with changes in literacy that really, really changed.
So, what I argue in the book is I think we are at the printing press moment for computers and for the Internet. There is a small group of people who know what you can do with coding and that opens up a whole set of opportunities, just like literacy was reserved for a very small group of people many, many years ago.
Now, it is something that everyone knows. I think you’ll see more and more people learning coding and applying it in all sorts of ways.
Drew Appelbaum: Being a professional in this space, can you talk about your experiences with getting started and then maybe a few of the accomplishments that you are most proud of in your computer science and programming career?
Jeremy Keeshin: I am not doing as much of the programming now as I used to just because I am more on the business side, but I still use it quite a bit. I got started I think in middle school. I tried to make my first website, which just had some random text or jokes with friends. I took a class in high school, I studied computer science in college, and I built a lot of different projects along the way.
Initially, when we were started CodeHS, I and my co-founder, Zach, built the site and we built the curriculum. Now we have a team that’s building a curriculum and building the website, but I think still being able to understand all of those concepts and the architecture of the site, and how that determines what we can build for teachers and for students. I think in organizations that build software, there’s just a huge communication gap between the different parts of the organization in understanding what’s possible and how you can manage your software engineering teams.
I think for myself, the coolest accomplishment I think in terms of what we built is the CodeHS site and website. I mean we have been building that for about nine years now and so sometimes I’ve visited schools and students have sometimes asked, “Is the website done? Is it done?”
I think with programming projects they’re not ever really done. You’re always iterating, you are always improving, and we start with the simple prototype.
That was a really basic page that didn’t do much and just let these dudes code online and build these simplified programs. Now we have built this into a whole online coding editor and learning management system and assignment builder and a way for millions of students to interact with it. I think that all of these concepts that you learn along the way, we have been able to apply them and it’s allowed us to build the site.
I think computer science is a great way to get into entrepreneurship too because a lot of people have their idea. Again, someone else can build it, but if you can build it that’s a way to get started. I think there are so many more ways to continue to apply it but that’s a little bit.
I think the actual website that we created is the coolest program, but I built a lot of projects as well just for fun–all sorts of different things, but I think this is by far the most substantial thing we’ve coded.
The Future of Computing
Drew Appelbaum: Now, what is the website of your first website so we could check that?
Jeremy Keeshin: Well, it’s changed a lot. The domain I got many years ago was the blog that I have at thekeesh.com and so that was my first random website, and now it’s a blog and has different projects and all sorts of other things. I have a lot of websites and domains at this point in time.
Drew Appelbaum: What do you see the future of computing looking like?
Jeremy Keeshin: Okay, that’s a good question. I talk about this a little bit in the book. I talk a little bit about cryptocurrency. You know, it is getting more popular, Bitcoin’s been in the news quite a bit now since it went up 300, 400% in the last year but it is still a pretty fringe technology. I think the cryptocurrency and Crypto Blockchain stuff is very interesting.
I’ve been interested for a long time in self-driving cars. I’ve explained a little bit of those. They’re not really out to the general public but in Arizona, they’re starting to test that with the Google Waymo project.
I don’t know, we’ll see with virtual reality. I think that is one that a lot of people wonder about and explore and there are different smaller used cases. I don’t know if I can see that getting very popular or not, who knows?
I think though if you look back on the history of how things have changed over, 10, 20, 30, 50 years, I imagine that the people making predictions 10, 20, 30, 50 years ago could never have predicted the things that would have come over the next period of time.
So, I have to imagine that over the next 10, 20, 30, 50 years that we’ll all be very, very surprised. I think you can follow some of these cutting-edge areas but who knows how it will develop?
I like exploring and learning about these things. I share a bunch of different topics in the book and encourage people to learn about them. I think with AI, there are so many different ways that can go. I also tried in the book to connect to different thought questions and ethical questions. Especially from an education perspective, the thought is, “Okay, we have AI, what’s good about it? What’s bad about it? What should we consider when it’s being created?”
A lot of these systems are very biased. If AI is being used in policing, for example, those systems have been extremely biased. So, I think there is an onus on the next generation of educators and people learning this to say, “Okay, how do we make these technologies in a way that positively impacts society?” Even recently with all of the social networks, you’ve seen social networks be a force for good in some ways and then of course for extremism.
I think that if someone is learning about computer science and they can think through these questions, I hope that people building the next generation of software and tools that we all use to bring that perspective.
Drew Appelbaum: Are there any resources that you offer readers of the book outside of the book?
Jeremy Keeshin: There is a website that goes along with the book at readwritecodebook.com and it links to a lot of different interactive examples. Anything that has different coding samples, you can try them and explore them and there is also a lot of things that we have on our site at codehs.com. For teachers, for students, for anyone who wants to get started.
Drew Appelbaum: Jeremy, writing a book especially like this one and I know we just scratched the surface but the way you broke everything down is really going to help so many people understand the world of coding and it’s no small feat to do that, so congratulations on putting this together and publishing your first book.
Jeremy Keeshin: Thank you.
Drew Appelbaum: If readers could take away only one thing from the book, what would you want it to be?
Jeremy Keeshin: That’s a hard question.
Drew Appelbaum: Hot seat question, take your time.
Jeremy Keeshin: Coding is the new literacy, it applies everywhere in surprising places and it is something that you can learn and kids can learn and we all need to learn if you really want to understand the world around us in the modern digital world. I think it’s an essential foundational skill and I hope that it piques people’s interest in learning the basics and then learning a lot more.
Drew Appelbaum: Jeremy, this has been a pleasure and I am excited for people to check out the book. Everyone, the book is called, Read Write Code, and you can find it on Amazon. Besides checking out the book Jeremy, where can people connect with you?
Jeremy Keeshin: My website is jeremykeeshin.com and we have a lot of other websites but codehs.com is the main company website.
Drew Appelbaum: Wonderful, Jeremy thank you so much for coming on the show today, and congratulations again for publishing.
Jeremy Keeshin: Thank you. Thanks, Drew.