Frank is a Stanford senior studying Symbolic Systems that works with two Breakout Mentors students in both Java and Python. He teaches in Stanford’s introduction to programming course that is one of the most popular classes on campus, so he is definitely familiar with the problems that beginning programmers face! Frank also has impressive real-world programming experience having interned for Fog Creek Software and Microsoft, as well as doing research on filesystems for Stanford. Let’s get to know him!
Why is it important for kids to start programming when young?
Programming is really like a second language: learning how to program gives your brain a new way of thinking and solving problems. Languages are best learned when young, and I think programming (along with other concrete, problem-solving disciplines like math and engineering) is also best approached when young. This is not to say that you can ever be too old to learn programming though: I know students who started in college and are already top-notch coders.
When did you start programming?
I started writing code when I was about 10: at first I was mainly interested in making video games, because I enjoyed playing them myself. I started by making little games with a program called 3D GameStudio. (Which actually still exists but is very different now–back then the “CD key” came on a 3.5″ floppy disk which came in the box. Does anyone even have a computer with a floppy drive anymore?) Anyways, at some point I eventually started learning to make DOS games in C, with a book titled “Black Art of 3D Game Programming” (highly recommended!). Finally, I managed to transition to a modern programming environment, C++ and DirectX on Windows, when I tried to make an RPG which used more than 640 KB of memory.
What advice to you have to kids learning how to program?
I would say, find something you enjoy making (video games, for me), and make a lot of them! You’ll learn a lot by doing projects, especially if you take the initiative to start them yourself. I might also add that books and online tutorials can also be great resources. Learn to use the Internet when you have questions or problems.