Hacker School: Weeks 1 & 2
Tue 18 February 2014
What is Hacker School?
After many times trying and utterly failing to communicate to people what Hacker School is, I've discovered that it's best to cut to the chase:
Hacker School is 60 people, in a room, doing whatever they want.
That's it. It's not a 'program' with any sort of end goal at all. You could probably sit here and watch YouTube videos all day long and not get in trouble with anyone. Of course, no one does that. The Hacker School admissions process aims to find smart, friendly, self-directed, intellectually curious people who enjoy programming and want to get dramatically better, and if my batch is any indication, they do a great job at that. So life at Hacker School is a whirlwind of programming-related learning.
What do you do there?
I'm currently working on a project called Seating Chart Creator. It's a little Python app I'm building for a friend who arranges the seating arrangements for a 75-person, 5-day-long conference every year. She's imposed a number of cost functions to minimize - for example, an arrangement is better if fewer people sit in the same location twice. I've had to think algorithmically, done a LOT of code refactoring, and will soon need to build a GUI, which I've never done before.
But I don't spend all day sitting alone and working on this project. For example, yesterday I:
- Worked with a facilitator to fix a bug in my program. In the process,
learned (finally!) how doctests work and the difference between
repr()
andstr()
- Had lunch with two Hacker Schoolers I'd never met before, both of whom were really interested in my problem. We talked about possible algorithm choices, including gradient descent, genetic algorithms, and simulated annealing (my current approach combines the latter with a basic greedy alg)
- Helped someone who was building his own web framework figure out how to pass POST data into his app
- Showed someone how to find the current Python executable by typing
which python
into the terminal - Converted the data structure holding data about each person in my app from a dictionary to an object (mainly for code clarity)
- Participated in a discussion about why SICP is so great
- Learned that context-dependent message parsing leads to those SSL certificate errors you get sometimes while you're browsing the internet (I had trouble wrapping my head around this one... but hopefully next time I hear about it, it won't sound completely foreign)
- Set up this blog!
- Watched Mel Chua give a talk about how programmers learn. I have some background in education, and she drew upon a lot of the same research that we applied to K-12 settings. It was really cool to see that information again in this context.
- Met my Hacker School mentor for the first time. HS provides an alumni mentor for anyone who is interested.
As you can see, there's a lot going on here!