Hacker School: Weeks Three to Five

February 9, 2015

Preramble

At the end of my previous post I was already into my fourth week at Hacker School. I’m currently at the start of my sixth week as I’m finishing this. Hopefully this gives my future self and others some perspective on my Hacker School experience.

I’m guessing at a certain
point the years stop
mattering and life is
more appropriately
measured in decades

There is the feeling as one gets older that time starts to accelerate and the need to split up time into small chunks is no longer necessary. It’s a bit like one’s age being measured in days, then weeks, then months, and finally years. I’m guessing at a certain point the years stop mattering and life is more appropriately measured in decades.

This is going to be long so I totally understand if you
didn't read LOL!

Week 3

SICP

Most of the people who started the Structure and Interpretation of Computer Programs (SICP) class at the start of the batch have pretty much given up on it at this point. The learning curve on it is so steep that the experience is more painful than rewarding. I will definitely revisit this at some point when I’m more familiar with Clojure so that I’m not struggling with learning Clojure at the same time that I’m trying to do conceptually difficult things in it.

Blog

The week started with spending time on writing and learning how to style the blog. I managed to style and write most of the first blog post, but got distracted and stopped working on it toward the end of the week.

Machine Learning

The excellent Stanford Machine Learning course taught by Andrew Ng started this week. I managed to get through the first week’s lesson in one day, but the material is also pretty easy at this point.

the project has
grown to a point
where eventually I
have to break it out
into separate files

L-Systems

I finished some of the interaction for this project and presented it during Thursday presentations. The code is in one giant > 500 line Javascript file and no frameworks were used. While this was good for learning and rapid development, the project has grown to a point where eventually I have to break it out into separate files. Dealing with UI is also complicated and annoying enough that I plan to handle the UI using React.

Week 4

Project Euler

I was a bit bummed out about dropping SICP. The machine learning course is an involved endeavor and was just starting. It was getting a little tiring only working on the L-Systems project, so I wanted something more bite-sized with fast rewards. People in the previous batch are in their job search phase and they’re practicing technical interview questions, so it got me thinking about doing something similar.

I remembered doing Project Euler many years back. It’s a site where there are programming/math problems that you can attempt to solve in any way you want. If you manage to solve a problem you get to see a forum where you can post and discuss solutions to that problem with other people who have solved that problem.

When I last worked on Project Euler problems, I did them in Python. There are many other people programming in Python here and I haven’t touched the language in years. So I figured I would try doing them in Python again. I managed to get through the first 18 problems during the earlier part of the week. It scratched my bite-sized project itch and served as a good refresher for Python basics.

Blog

Yay! I finally finished my first blog post about my Hacker School experience!

L-Systems Tree

L-Systems

I finally broke out the one large Javascript file into separate files. I’m using Gulp as my build system. The files are separated out into NodeJS style modules and reassembled using browserify. After all the files are combined, they’re compressed using uglify for faster loading.

You can play around with the tree L-System above here

Resident

Scott Vokes was the Hacker School resident for this week. I didn’t get to interact with him very much, but we did manage to grab lunch together. He has really interesting experience with distributed and embedded systems so it was nice to have exposure to these domains that I’m not as familiar with.

Week 5

L-Systems Tree

L-Systems

The code is much clearer and cleaner now

The UI has been rewritten with React. The code is much clearer and cleaner now. I’ve also managed to figure out how to handle some more nuanced interaction behaviors that I’ve never dealt with before. I presented this project during Thursday presentations and I think it went well. The remaining work on this project is to polish interactions. It’s probably at 80 or 90 percent complete, but the saying goes that it takes 80 percent of the time to finish the last 20 percent of the work.

You can play around with the above L-System here

Resident

Sam Tobin-Hochstadt was this week’s resident. I attended several of his talks and learned about his work on Typed Racket as well as how JIT compilers work.

Blog

A large chunk of this huge post was written this week.

Machine Learning

I finished the second week of lessons, but still have to do the programming homework. Things are still going well so far…

Next Steps

The previous batch is ending in a week. So there will be new people to meet and learn from which is great but also a little sad, because I don’t know if I’ll see some of the people in the previous batch again.

I’m really glad I at least got a fairly large project to a mostly finished state through the first half of my batch. The next project that I want to work on is something with web audio which I’ve never worked with before so that should be fun!