We should invest more time in the skill of reading code.
It's funny that computer languages are the only languages where one learns to write before learning to read. It's actually not uncommon for people to never really learn to read code. This seems a little unbalanced given that we actually read code much more frequently than we write it.
Even those who promote software as a craft sometimes fall into the trap of often talking about writing clean code that people can read, yet not placing much emphasis on the skill of reading the code.
The ability to read code must also be a skill, and as such it must be something that can be learnt and practiced. In this presentation, we're going to look at:
- The different reasons we might have to read code, and how that should impact our reading
- The problems we face when reading code (even our own!)
- Tips to bear in mind when we're reading code
- Tools we can use to help our understanding
- How and where to practice these skills
At the end of the talk we will at least have considered whether we need to level up our "Reading Code" skill.
This talk was originally presented to the Java developers at Google (screensharing with audio).
- Reading other people's code (video) - highly recommended
- How to quickly and effectively read other people’s code
- Learn to Read the Source, Luke
- How to read code without ripping your hair out
"Why do people hate reading code?"
IDE Tips (IntelliJ IDEA)
- Navigation (video)
- Structural Search and Replace (video)
- Unit Testing and Coverage (video)
- Tutorial: Java Debugging Deep Dive
- Java Type Renderers
Books / Quotes
- Programming Sucks
- Badass: Making Users Awesome by Kathy Sierra - highly recommended
- William Shakespeare: The Complete Works (Illustrated)
- The Canterbury Tales by Geoffery Chaucer
- Everything Bad is Good for You: How Popular Culture is Making Us Smarter Kindle Edition by Steven Johnson
- Good Omens by Neil Gaiman & Terry Pratchett
- The Giant of Jum by Elli Woollard & Benji Davies
- Room on the Broom by Julia Donaldson & Axel Scheffler
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Pride & Prejudice by Jane Austen