My Hacker School Experience
That's it, my time as a
Hacker Schooler is officially over. I've spent an exciting three months in New York, met plenty of awesome people, discussed many interesting ideas and, above all, wrote A LOT of code. Here are some things I've learned about myself while being there:
My programming is actually not that bad.Before HS, I didn't regard myself as a "true programmer", mostly because I've never had any formal education in computer science or software development. Spending three months at HS, reading a lot of code from professional developers and working with other programmers taught me that my own coding is really not that bad.
There's much more to programming than programming.Writing clean, efficient and maintainable code is important, but there's so much more to being a successful software developer: Communicating effectively, knowing exactly which problem you're trying to solve, appreciating the work of others, accepting criticism and being able to criticize constructively, and above all, constantly keep learning and having a growth mindset .
Programming a lot won't necessarily make you a better programmer.While it's true that there cannot be mastery without practice, just churning out more code every day will not necessarily make you a better programmer. To really become a better programmer, you also need to constantly monitor your programming habits, identify bad ones and replace them with better ones. Personally, during my time at HS I got rid off my bad testing habits (
I don't like pair programming.There, I said it. Coming to HS, every facilitator and alumn advised me and my fellow batch-mates to "to pair as much as possible". So, naturally, I eagerly followed this and paired up on various programming problem with people of different skill levels, but I really didn't enjoy it much. Personally, I prefer to discuss ideas and possible solutions with people before I start to code, and I equally enjoy having my code reviewed early and often, but I just don't see the value of a "co-pilot" reading and commenting on my code while I write it, or me acting as such a "co-pilot". That said, I think pair programming can still be useful in small quantities, i.e. if you want to demonstrate a technique to someone or quickly try a new idea, I personally just wouldn't want to do it all day.
Persistence is more important than genius.In the software world, especially in the open-source community there are a lot of myths of the "genius programmer" that, in a streak of ingenuity, writes an amazing piece of software. The truth is, although talent and creativity is important, the most distinguishing factor of people that have built large open-source projects is that
they just keep working on it! Most projects have amassed thousands of commits over multiple years of work before they caught on.