A couple months ago, one of our longest-tenured Kodable users sent me an email for a student in her class. She wanted to learn more about computer science, problem solving, and startups, and had a few questions she wanted to ask me. I wanted to share my answers with the rest of the coding community in the hopes that they might help other young learners out there :)
Student Q: How do you use your programming skills to be a better problem solver?
Jon's Answer: Programming is nothing more than a problem that you have to solve with code! When you program, you learn very quickly that the best way to solve a problem is to break things down into a series of smaller problems that are much easier to solve. The same is true for problems that you face in your everyday life. If your room is messy, its easiest just to get started by picking up one thing and putting it away than staring at the room trying to figure out how you’re going to clean up this huge mess!
Student Q: What steps do you follow when you are problem solving?
Jon's Answer: When I program, I have to break everything down into a sequence of smaller tasks. That lets me think about the problem in smaller “chunks” instead of being overwhelmed by some huge programming project. After I’ve broken down the problem into a series of tasks I have to complete, then I just start with the first one! Every time I complete a task, I then stop and make sure that I did it correctly, and I’m still moving towards the goal I set out for myself when I started. After I’ve completed all of the tasks, I remember what my original goal was and make sure that it was accomplished.
Student Q: How does computational thinking help us understand our world and solve problems?
Jon's Answer: I started learning how to program when I was 6, and although I didn’t realize it at the time, I learned to think of everything in terms of ‘if I do this, then that will happen’. This was so important! It helped me be more successful in everything I did, because I always thought about the effects of my actions before I did them. This helped everywhere from taking math tests to troubleshooting when my wifi wasn’t working. Also, computers are everywhere! Computers think computationally (obviously), and if you understand how they ‘think,’ it’ll be much easier or you to work with them.
Student Q: Which one of the problem solving steps is your favorite/ easy for you?
Jon's Answer: I like breaking a big problem into smaller tasks. Its like a strategy! You get to take this big complicated problem and make it much more straightforward.
Student Q: Which step is your least favorite/ hardest for you?
Jon's Answer: I enjoy completing tasks, so don’t always like stopping after every task and making sure that I’m moving towards the right goal - I just want to keep going! But this is very, very important. You can get so caught up in each task that you can end up moving in the complete wrong direction. Before you’ve noticed, you could have spent two or three hours working on the wrong problem, and thats never fun.
Student Q: Is feedback helpful when you are coming up with solutions?
Jon's Answer: Of course! Its always helpful to get a second set of eyes on a problem you’re working on - especially if you’ve been working on it for a long time. You just want to make sure that you accurately explain the problem to whoever is giving you feedback, or they could give you the answer to a different problem!
Student Q: What do you do to plan/ prepare your solution to a problem?
Jon's Answer: I try to map out everything I’m going to do in a set of easily completable tasks. It is very important not to make these tasks too big, you should find things that can be done relatively quickly. Then I order them so I know which tasks I need to complete first, second, and so on.
Student Q: What are some ways to reflect or evaluate when you solve a problem?
Jon's Answer: You should always know what you were trying to do when you solve a problem. Ideally, this means that you clearly defined what ‘finished’ was before you even started solving the problem, that way you can easily determine if you accomplished your goal. Its also a good idea to look at your problem solving process and find areas you can improve next time. Did you spend too long in one area? Could you have skipped a step? Did you keep finding things to do that you hadn’t planned for? This kind of experience is incredibly valuable to becoming a better problem solver.
Student Q: Why do you think it is necessary to ask questions before you find a solution to the problem?
Jon's Answer: Nobody knows everything, and even if you think you have all of the answers you might not! The only way to really know if you’re going about solving the problem correctly is if you ask questions. Sometimes there are details that you might have overlooked, or you might have misunderstood a part of the problem.
Student Q: Do you think that it is essential to follow a process when problem solving?
Jon's Answer: Instead of a “process,” I think that it is essential to have a "problem-solving game plan.” I used to play football, and our coaches would always have a game plan before the game. One of the most important aspects of a game plan is that it needs to be flexible, because you can’t anticipate what’s going to happen during the game. Similarly, every problem you face is going to be different, so you should always have an idea of what kind of strategy you’re going to use when you problem solve, but be flexible enough to adapt it to individual situations.
Student Q: How did you come up with the idea for Kodable?
Jon's Answer: I started to program when I was 6. This was awhile ago, long before there were so many kid-friendly resources available! My first computer used a text-based operating system called MS-DOS and didn’t even have a mouse. However, after a few years, I lost interest, and moved on to other things. When I got to college, I was able to teach myself how to program really easily because I had learned how to think like a programmer when I was so young. When I was working with my cofounder on another idea, we kept having parents tell us how they wanted to teach their kids how to program, but didn’t know how or where to start. We put two and two together, and came up with Kodable!
Student Q: How long did it take to make the whole company?
Jon's Answer: My cofounder and I started working on Kodable in 2012, so we’ve been working on Kodable for a full 4 years now. Kodable’s birthday is actually the same as mine, October 20th.