Lunch and Learn: Reading code good by Saron Yitbarek
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 :-)