Learning to Code as Father and Son:
WDI Week #1 at General Assembly SF

Last Monday, my 18-year-old son, Matthew, and I started our first day in the Web Development Immersive program at General Assembly in San Francisco. For background on how we found ourselves here, see my first story about the High Tech Father and Son Gap Year.

What is this Web Development you speak of?

This first week of the 12-week program was a whirlwind of learning. But what exactly were we doing?

The way General Assembly describes it, the goal of the program is for graduates to be able to build pretty much anything that is web based. This goes well beyond composing a basic web page, or making it look a particular way. The immersive program is about conceiving, building, and implementing all of the software bits and pieces and parts you need to have something that is fully interactive.

So far, in week one, we have started learning about:

  • Tools for writing code and contributing to software projects
  • Creating web pages from scratch using HTML
  • Controlling how web pages look using CSS
  • Adding interactivity and computational capabilities using JavaScript
This is a snippet of some JavaScript I wrote as part of class. Pretty cool. Right?

Before this first week I would have been sorely pressed to create even a web page that simply said “Hello World!” All that seems like a week ago.

After taking in a truckload of learning, we closed out the first week with each student assigned to create a fully interactive Tic-Tac-Toe web game. Our assigned project needed to support players taking turns, changing the state of the board to show the X’s and O’s , prohibit moves from being taken back, and ultimately announce the winner or declare a “tie game”. Also we had to provide a way to reset the board so people could Play Again.

It’s not exactly Angry Birds. But still, it felt great to work through all the logic and code it up to make it run. Very satisfying. Now my son Matthew is working on some Artificial Intelligence code so you can play against a computer opponent. Nice.

What’s the General Assembly program like?

The first point to make is that the program consumes at least eight hours per day, leaving no time to carry on with even a part-time job. This means that all of the students are “all-in”. Which is great. It really makes a difference when everyone involved is 100% committed.

The second point is that there is an underlying element of intensity and urgency. I think part of this is because we only have 12 weeks (now just 11) to learn a tremendous amount of information and skills. However, I think there is another equally important thing going on. That’s the feeling that this knowledge area is no longer optional for a high tech career. There’s a sense that if you don’t get on top of this stuff, you are going to be left behind as the true practitioners of tech pull further and further away.

You could easily imagine that a pervasive sense of urgency might be unnerving or even exhausting. However, I’m not finding it that way at all. The reason, I think, is that there is a strong sense that we are all in this together. The instructors and staff are always available to help out. If you don’t understand a point in lecture, the instructor backs up and finds another way to explain the material. They also have us do quick five-finger measures by hand to show if we are all on board with the concepts. If we are all putting up fours and fives, they keep plowing ahead. Otherwise they loop back. At breaks and during project time the instructors are right there if you need some assistance.

Going to Class with my Son

I suspect it’s not an uncommon experience for parents to occasionally wonder what their child is like outside the home, off at school, or running around with friends. Just to see how they show up in the world. In this program I’m getting a small piece of that “I wonder what my kid is like all day”. During lecture I can turn around and see Matthew taking notes or working on his code.

Matthew intensely coding something. While Ryan checks out his handiwork.

One day this week the instructors asked for volunteers to explain how they solved a homework coding problem. Matthew got up and demonstrated his solution with sure confidence. Unfortunately, he also realized that his solution for its very brevity was actually unexpectedly complicated to walk people through. One of the instructors saw the difficulty and helped out. But it was great seeing him so comfortable up there in front of the class.

Our favorite lunch spot when the weather is nice.

An unexpected pleasure in taking the class together is we get to hang out for lunch and talk about interesting things. From the school it’s a short walk down to the bay where we get to take in amazing views of the Bay Bridge and Treasure Island.

On Friday while walking down to our lunch spot we got into a heated conversation about the homework assignment. What was the best way to determine when one or the other player had won the Tic-Tac-Toe game? Matthew had mostly formulated a solution, but found that my suggestions definitely improved his approach. After our waterside lunch and more talking about it, we went back to the school and wrote out part of the solution on a whiteboard.

Matthew writes out our ideas for determining who is the winner at Tic-Tac-Toe. “You have learned much, young one.”

The funny thing was that after we wrote it all out other students started coming back from lunch and saw our work. “What did we miss?” “Was there a meeting?” “Who put this up?” Then people started taking photos of the solution. What to do? Should we erase it? Or leave it up for other people to check out? Is it copying? Is that OK? We left it up.

In any case, it was fun working out the solution with him and feeling like we had both contributed to the other person’s thinking.

I just hope I don’t slow him down as we go forward.

Next week I’d like to write about how this kind of education is part of a new wave in product and service design. Check back.