What is this talk about?

  • How can I become an expert
    • Dreyfus model of skill acquisition
  • Reading code
  • What type of code should I read?
    • Popular
    • Well documented
    • Well written
    • Well maintained
  • Ask yourself questions about what you are reading
    • How was the experience?
    • What did I learned?
    • How can I improve?
  • Pick a manageable code base
    • Maximum 100 lines of code (Arbitrary number but a good start)
  • Ask questions: irc, mailing lists
  • Try what you are reading to know how exactly it works and validates your assumptions
  • Research on topics that you don’t know
  • Learning happens in figuring out what you don’t know and learn it
  • Finding ‘exemplary’ code is hard; just pick any code base and try to figure out the following:
    • What’s the intent?
    • Why was this written this way?
    • How can I rewrite it?
    • How does it fit in the overall code base?
  • What to do with knowledge gaps?
    • Railscasts
    • Blog posts
    • Books
  • Keep doing it, make it an habit
  • Find code bases that are align with your interests
  • Benefits of reading code apart of getting better at your craft
    • See collaboration happening in real time
    • Build your confidence on reading someone else code
    • See code organization

What do I think about the talk?

Sometimes small and focus topics are the ones that change the way you think about things; this was one talk that make me realize a lot of things about myself and my craft.

For starters I’ve been struggling on how to read code for a long time and this is a very comprehensive guide to do such thing. Even when the author is suggesting on doing it with a group I will try to do it alone and make a blog post about my findings; yes I know that I did the same promise to myself with the “A Kata a Day”, which by the way I try to keep doing katas on a regular basics just on Codewars now; without writing about it. So regarding reading code I’m planning on doing this each week with summary blog post at the end; will try to read part of the selected code base daily so I will be able to read the entire thing by the end of the week. If the code is pretty big and I can’t make it I will just blog about my findings of the parts I did read. I think this is a very doable endeavor and as one of the suggestions from the talk I have to ‘keep at it’ to become an expert on my craft :-)