lifelong learning -or- how i learned how to code

Here’s how I learned to leverage projects and goals to become a programmer:

I dabbled in code when I was in college working on my minor in astronomy. For my stellar astrophysics course, we had to simulate a star for the final project. Throughout the semester, we worked through assignments that required some kind of code to solve. I squeaked through class by pushing Excel and its ability to iterate formulas over rows to its limits. For the final project, I had a set of seven differential equations I needed to iterate over at least 100,000 times. I realized that learning a little bit of code might make solving the project way less frustrating. I’m not sure why, but I went with C++ (probably because I thought it had a cool name). After a week of playing with online C++ tutorials, I could throw together some math into int main() and see results (and yes, I did score an A on the project).

Flash forwards four years and I had forgotten pretty much everything I had learned about code. I was working for a web startup and felt silly that I had zero understanding of the platform on which my product was being built. So I decided to learn.

I didn’t have a goal in mind at first besides “learning,” which is a terrible motivator. I’m lucky that my addiction to learning kept me going, but I felt a distinct lack of direction. It was just an intellectual exercise. As soon as I felt satisfied that some new type of thinking had creeped into my brain (which happened shortly after finishing a few coding exercises) I lost momentum and motivation to learn. My progress slowed and stalled. That is, until I figured out how to redouble my efforts to actually become a programmer.

I had to define a problem for myself. At the time, we were comparing different online education websites. I wanted an automated way to learn about lots of websites very quickly and I wasn’t thrilled at the prospect of clicking through thousands of links to copy and paste millions of pieces of information, so I decided to build a web crawler (and, wow, I wish I had known about Udacity’s Intro to Computer Science course then[1]). All of a sudden, I had this project that was clawing at my brain, pushing me to learn at an ever accelerating rate. I started writing programs with functions. I started implementing objects. I learned how to pull in the Beautiful Soup library. I started poring through inane details of Python documentation. I started learning about HTML and the purpose of tags and classes and hierarchical relationships. I got obsessed by the problem and got some help from the engineers at work. They helped me put together my code and I got the chance to see how real engineers work and think.

And, holy cow, did it feel good when it actually worked.

Long story short: if you want to learn how to program, give yourself a project and a goal. What do you want to be able to do? Something outlandish like “make the next Call of Duty from scratch” isn’t going to work. But “I want to make a box appear on the screen and make it move” could be perfect. Or maybe you could just automate one part of your day. Try a fun, small project and it will only lead to more interesting problems.

Give yourself a problem and get started!

[1] I currently work for Udacity

Tagged , ,

Portal in Santa Clara, California

Over the past two years of Physics with Portals, I’ve gotten emails from dozens innovative teachers around the world who want to teach with Portal 2. And it’s awesome. I love helping out however I can.

Last week, I got an email from Tom Perazzo, a digital media teacher in Santa Clara, California. I got excited. Of course, I was excited that another teacher wanted to give my lesson plans a shot in class. But I was even more excited that Santa Clara is only 10 minutes from my house (and on my way to work)! So I had to ask to drop by to see what his students were doing.

This morning, I signed in as a visitor at Santa Clara HS and stopped by Tom’s classroom. Check it out!


Tom’s class 1

photo (1)

Tom’s class 2


Tom teaches digital media classes, and, as you can tell from his set up, his classroom supports his students well.

His 9th – 12th graders were working on two assignments. Some students were finishing up their Rube Goldberg machines, which they had to design, build and describe on their blogs. Other students had moved on to a physics experiment, roughly pulled from my lesson on forces using aerial faith plates. You can see Tom’s example experiment on the big screens.

In their experiments, students analyzed how high faith plates would launch cubes based on their masses and the forces of the faith plates. Tom instructed students to launch cubes of whatever masses they’d like by faith plates of whatever forces they want.

Students then recorded the maximum height of the cubes by employing the same alternating black and white panels strategy I use. Once they finished (probably in the next class?) students were to graph their results and, hopefully, start making predictions about how high cubes might fly.

Way to go, Mr. Perazzo’s class! Y’all are awesome!

Any other intrepid teachers out there? I’d love to hear what you’re up to!

Tagged , , , , , ,

Portal in High School

Jimmy Newland, a high school teacher in Houston, seriously takes the cake. He took with my physics lessons and recreated them better than I could have imagined in his physics classroom.

You have to check out his blog and hear his students talking about their experiments to fully appreciate the kind of learning that can take place when students get free reign to explore and learn inside a virtual world.

Here’s a sample of a student talking about his experiment in terminal velocity.

Great job, Jimmy! I’m incredibly happy to see that Portal helped make learning physics fun for your students :)

Tagged , , , , , , ,

NASA, Portal and Physics. Oh my god.

This might be one of the coolest videos I’ve ever seen. This is what happens when you mix NASA, Portal and physics, which are basically my top three favorite things. Just watch:

Tagged , , ,

Portal in Elementary School

You may have noticed a shout-out in my most recent video to Nathan Manderfield, an elementary school teacher in California, who teaches with some of the coolest projects I’ve ever seen. Nathan’s been trying out some crazy, innovative technology in his classroom to get his students excited about being makers. And they’re even making the world a better place :)

I asked him to give us a small write up about what his students are up to. Here’s what he had to say!


My name is Nathan Manderfeld and I teach 4th and 5th grade at Monroe Elementary School in Bermuda Dunes, CA. Five years ago I started a program at our school called, “Learning on the Edge.” It is a two year program that concentrates on using technology in the classroom and project based learning. My students have done some amazing projects including becoming commissioned artists, creating and running their own small business, publishing a book, launching a movement called Twenty 4 Change, and now becoming game designers. Through all of this I continue to be amazed by what students can create when we as teachers set the stage, support them, then get out of the way! In this guest post I want to concentrate on just one of these projects: game design.

Technology can be amazing. I became aware of the game Portal and Cameron by searching Youtube looking for information on game design. I came across a Google Hang-Out that was nearly a year old. It was a hang-out sponsored by Gamers Advancing Meaningful Education. In the hang-out Cameron was featured explaining how he used Portal 2 in the classroom. I quickly was inspired and bought myself the Xbox version on Amazon. To my delight it was an older game so I got it for a steal. Playing Portal 2 was awesome and I immediately began thinking of how I could incorporate it into the game design unit I was developing. I decided to set up my Xbox in class and let students have 30 minutes each of uninterrupted time to explore the game. We had already been discussing the basic principles of game design from mechanics to the “magic circle”. We had conducted a Google Hang-Out with a game designer from San Francisco and were now playing various games and analyzing them using the vocabulary of game design. My students were very excited about playing Portal 2. We had a whole Portal 2 area set up in our room.

After playing and analyzing games it was now time for my students to make their own. I decided to use the site Gamestar Mechanic. It is an awesome site that allows students to work through a quest as they learn the different components of basic game design. At the end of the quest they make their first game. They then are allowed to do challenges to gain more “sprites” to use in building more and more advanced games. We currently have published our first games in what we call the Monroe Arcade.  My goal in the long term is to teach them about iteration, the slow process of refining a product. We have already shared our games in the Monroe Arcade with our second grade buddies and some other schools in the district our playing my students’ games.

I am also trying to expand the Portal 2 portion of the unit by having students build their own levels. After seeing Cameron on the Google Hang-Out I reached out to him and he made me some custom Portal 2 levels that teach Newton’s Laws. I plan to incorporate those lessons when we get into our Engineering unit. Project based learning is something I am passionate about. I thank Cameron for sharing his expertise with me and letting me do a guest post. If anyone is interested in knowing more or collaborating on a project feel free to contact me anytime at njmander *at* gmail *dot* com.

Building the Monroe Arcade

Exploring Aperture Laboratories

Building the Monroe Arcade

Building the Monroe Arcade

Tagged , ,

Get every new post delivered to your Inbox.

Join 45 other followers

%d bloggers like this: