(Hacker School: Week 4, Day 1)

  1. It’s unexpectedly difficult to write a blog post every single day. So, while I’ll try to, it’s naive of me to think I can do that before/after spending all day learning.
  2. It’s hard enough to focus in a directed environment like college or a job; it’s that much harder to do it in a completely undirected environment. It takes a lot of willpower to direct my attention toward only a few things in a given day or week and shift my attention away from a million other interesting things.
  3. Because of that effort, I know I’ll gradually improve at focusing in this environment, which will only be more helpful in a more directed environment.1
  4. Programming is a complex and involved discipline. When I started learning over a year ago, I definitely did not have enough respect for how much I’d need to learn and how difficult it is. Learning a language is only a tiny piece (and likely the most straightforward) of becoming a programmer, and I know I still have a while to go.
  5. Recursion is an inherently confusing concept, and even when I thought I understood it (at many points in the last year), I realized I really didn’t. Last week brought me a little closer.
  6. Hacker School has presentations every Thursday where they encourage anyone and everyone to present whatever it is they’re working on or interested in, in any state of completion. It really feels great, and motivating, to present something to a group of people who aren’t primed to judge you or your project. It’s also much easier for someone like me who is usually nervous to show anyone any of my work - because I’d be afraid they’d think it was simple, or bad, or uninteresting. That’s a silly way for me to think - if anyone would be so judgmental about my creating something, however simple, bad, or uninteresting, they’re probably not worth my time anyway.
  7. When programming (but I think when doing anything), while it feels good and productive to build something - to display visible progress - it feels equally good, if not better, to go back and refine it, to fix any issues and shore up the foundation, to make it smaller, less complex, and ultimately better grounding on which to build more. I did this with the project I presented - I refactored the code2, made indentation and variable names consistent, and added comments to clarify anything that’s confusing about my code. It sounds boring; it felt great.
  8. Reading about not-directly-relevant things often helps me to understand more about what I’m focusing most of my energy on. I talked a little in other posts about _Make It Stick - _which I’d definitely recommend, especially if you’re interested in learning itself - it helped me to structure my time and energy here in a way that engenders better, more lasting learning. And it helped me to be more comfortable with getting frustrated, and feeling lost and incompetent. After I finished that, I started _Quiet - _a similarly structured book (drawing on equal parts empirical research, anecdotes, and history to make a larger point about the topic) - and it’s already helped me to view my introversion and desire to work on my own or spend time thinking about things in a more positive light. Neither have a single thing to say about programming (yet) but both have already supported my time here in a very positive way.

And now I begin my work for the week - which will be completely destroyed by the STORM OF THE CENTURY.


1 This is related to what that book, Make it Stick, had to say about learning - it’s only going to stick when it’s effortful. I think that’s generalizable to other things - like focusing. If it’s hard now, and I struggle through it, it’ll be easier later, especially in a more structured environment.

2 Pretty much exactly that - refined it, made it smaller, simpler, easier to understand what’s going on.