The Beginning and End.

Some Things Hacker School Taught Me

Yesterday was my final day of Hacker School as part of the Summer 2014 Batch.

Here are some things being a Hacker Schooler has taught me:

Getting Past My Fear of Asking Questions

One of my biggest fears has been asking questions to people with more experience and understanding than me, because I had felt that I would be judged for the things I didn’t know. I’ve had experiences with programmers in the past who have said things such as: “You wouldn’t have understood [the talk] anyway,” to blantant condescension about my lack of knowledge on the subject matters I was asking about. As a result, I had developed an aversion to “outing” myself as an idiot.

At Hacker School, I found myself asking questions on Zulip, tapping on shoulders, and exposing my ignorance. And pretty much every time, people were happy to share their knowledge with me, saving me hours of frustration that came with trying to figure things out on my own. StackOverflow and Google Fu can only get you so far. I do believe that this wouldn’t have been possible without the Hacker School social rules, but my time around other Hacker Schoolers has definitely lessened the general fear of seeking help. A good rule of thumb is that if you can’t figure something out on your own in 15 minutes, go look for help and save yourself from yourself. And if someone is rude to you for asking a question, then I’m not sure if I would want that person’s help — though it is quite possible they are having an off day.

Hardware is Not Scary

Before Hacker School, I had probably blinked an LED a few times and made a synthesizer of sorts with an Arduino, but was otherwise hesitant to touch hardware.

This past summer, I got to hack on Arduino, Raspberry Pi, and BeagleBone projects, with lots and lots of help from the lovely Dana. I made a surveillance camera to spy on my cat and stream it to the web, a light-reactive LED diplay with Adafruit NeoPixels, and helped build LED-bot.

Just as with software, you end up following tutorials, looking up documentation for pieces (and how to correctly connect them following circuit diagrams), and tinkering. It’s just with physical parts! And there’s something rather cool about building something tangible.

I ended up doing much more hardware than I had intended, but I am so grateful for the things that I learnt.

Learning to Tackle Projects (and understanding when to let go)

At Hacker School, I found myself getting curious about Haskell’s type inference system, found that the algorithms used theory that I didn’t understand, and spent a few weeks going down a type theory rabbit hole, eventually learning the Coq programming language (Coq is a Proof Assistant) through a UPenn grad course called Software Foundations. And I also decided to put my type theory learning on the back burner, so I could focus on exploring other things during my batch.

Anything difficult is going to have many stepping stones, and acknowledging that getting where you want to be might take several tries is totally ok. I am planning on continuing to tackle the type theory stuff in little chunks so that I don’t get overwhelmed by all of the information. This meant that I couldn’t just start and finish my stint into type theory in a week, but that it will take dedication and commitment that might take a year, or several years.

I think the notorious BitTorrent client project falls into this category. It’s quite a difficult project to see through to the very end (many HSers start, and eventually abandon their clients — myself included), and it was important to understand that many of got to a point where the project wasn’t bringing us joy anymore, and that we had grown tired of it (but wanted to finish at some point). Taking a break and putting the project somewhere out of mind for a while helped me feel rejuvenated after weeks spent on the BitTorrent client. I hope to revisit it at some point.

Some HSers even decided to create a BT Support Group.

This list is in no way complete. HS has taught me so many things about being a good programmer and a human being that I have trouble articulating at the moment.

Saying good-byes yesterday was overwhelming and there were many emotions; I don’t think it will quite sink in that the batch is over until we go back to the real world/school on Tuesday.

Never graduate. :‘)