I started at Hacker School as an unconfident programmer. I’d done computer science courses and assignments, and gone to a few meetups and conferences, but I was talking more about programming than actually doing it. I had no side projects, and only felt comfortable with very structured tasks.
In the weeks leading up to the first day, I was nervous about not being as intensely interested as everyone else. I was afraid that I’d keep getting stuck at the beginning of projects and not make any progress. While the first day relieved some fear and anxiety about the program, I still came into it not knowing what I wanted to work on.
I wrote down what I wanted to get better at:
- thinking before I program
- making mistakes, and fixing them
- learning how I learn
- self-sufficiency, but knowing when to ask for help
- getting past perfectionism and fear of struggling
- trying new things
- knowing what I like and don’t like
Thankfully, these goals apply to anything that can be done at Hacker School. I eventually forgot I had written any of this down, only to find it again near the end of the batch. I think I’ve improved at all of them. Here are some examples as to why:
- Instead of trying to type out solutions immediately, I spent a lot of time writing in my notebook. It was much easier to visualize and make sense of what was needed in a more spatial way.
- I gave a talk on why I found game development useful for my learning process and, with Marisa’s help, the talk was a great success! (I’ll post the link when it’s uploaded.)
- I created several strange yet conceptually intriguing bugs that presented opportunities to learn from Mary, someone who is brilliant at narrowing down what the problem may be.
- I discovered that I can leverage the time when I’m tired to do more structured work, which ended up being the Coursera Machine Learning videos, quizzes, and homework.
- I attempted many projects on my own, particularly the Friday job challenges. I tried them even when they seemed quite daunting, and discovered that they weren’t as complicated as I’d thought. (In hindsight, I should have sought more feedback and added good tests.)
- I was able to push through my initial feelings of “I don’t know if this is the right way to structure these directories”. I finally finished a few projects and features!
Well, I don’t know exactly what aspects of programming I like any more than the others but…
I know I love programming.
The last day of Hacker School has arrived.
- I added more features to Asteroids. The ship accelerates and decelerates, so it feels a little more like space. The small alien can now shoot toward the ship. I cleaned up the documentation and added a proper README. I’m pretty happy with the result!
- Just for fun, I wanted to try making a steroid for AH-STEROIDS. Specifically, testosterone.
- I’ve been working on ML Week 9: Anomaly Detection & Recommender Systems. I’m hoping to finish the homework today before I have to worry about moving back to Montreal and into a new apartment.
Coming soon: a post about my experience at Hacker School!
Oh no! The end of Hacker School is nearing…
- On Sunday night, Alex Coco and I merged my pull request to fix schedule parsing issues in Martlet.
- On Monday, I finished Coursera ML Week 8: Dimensionality Reduction using Principal Component Analysis. I honestly wish there were optional linear algebra videos to explain why we’re computing eigenvectors. Asteroids: added bonus lives for every 10,000 points. Tic tac toe: added caching to minimax, and a cheat function to the tic tac toe game that uses minimax.
- Today, I continued working on my résumé and sent it to a few people for feedback. I completed the Insertion Sort and Double Degree Array problems on Rosalind. I went to José Valim’s great seminar on functional programming collections, specifically iterators, reducers, and reducees in Elixir! That was fun, and I’m looking forward to the continuation either tomorrow or Monday. I also replaced my website temporarily.
I’m going to try to wrap up/document existing projects this week.
I’ve been a little busy, and haven’t posted updates for a week.
- Last Wednesday, I implemented minimax in my tic tac toe game in case players want to cheat and play the most optimal move. I was frustrated at first, because I tried to do too many things at once (minimax with alpha-beta pruning, and caching results). Note to self: start simple and work up.
- On Thursday, I worked on my local version control system and added a
current command to check which backup is currently being used. I took another look at what else I wanted to work on, as I wasn’t feeling very motivated by my projects. I had a revelation that I wanted to export McGill’s course schedules as iCalendar files, and started reading about the iCalendar specification and thinking about what information I wanted to retreive.
- On Saturday, I watched Boyhood with a group of Hacker Schoolers. It was intense, personal, and nostalgic. I’m glad I went!
- On Sunday, I watched Coursera Week 7 videos on Support Vector Machines (SVMs) and did the quiz.
- On Monday, I finished the Coursera Week 7 homework. I familiarized myself with Alex Coco’s Martlet app, which already authenticates with Minerva (McGill’s student portal) and parses the schedule information for courses. I was able to export a basic calendar with the course events for the first day of the course’s date range. However, this exposed a problem Martlet was having. Some of the course schedules had extra information about the last day of class, and this was running into the following course.
- Yesterday, I separated the schedule information by course, and worked with Alex Coco on the pull request until it was good enough to be merged into master. I worked on the iCalendar RRULE for repeating events, and was able to generate a valid calendar with the courses repeating on the correct days, except for the first and last day of school.
- This morning, I fixed the first day of classes by excluding the first day of the semester if it’s not a day on which the class occurs. I then worked on Asteroids with Marisa. We added some small features, ensuring that the random asteroid angles weren’t too straight, making smaller asteroids faster, and adding lives to the ship. We’re planning to improve the way the game is checking pairs of bodies for collisions. It’s still suuuper fun and motivating to work on the game together! For the rest of the day, I’d like to refactor my calendar code. Soon, I’d like to incorporate the information from the last day of classes that’s currently being ignored.
- This afternoon, I fixed the last day of classes problem! Hopefully I’ll get a couple of pull requests merged after some refactoring. I’m excited to get calendar export shipped before the school year starts. I’d love to save people hours of needless data entry!