Active Reading: Crack Coding with the Bard

Posted by Christopher Kalfas on September 18, 2019

When thinking of an idea for a blog I tried to think about using a personal experience that other coders could benefit from. But I’ve only been coding for 6 months, and I come from the world of acting. What can I write, as a rookie, that others might see genuine contribution in? Well, I’ve l been learning lines for various shows since I was a kid. And honestly, the most asked question I ever got as an actor had nothing to do how I related to a character, or if something from my personal life helped me. No, the question I was most often asked was,” How did you memorize all those lines?” That was consistently the most anticipated question from my Grandma to some annoyed teenagers who were clearly dragged in to support someone’s cousin or something, to OTHER THEATRE PROFESSIONALS. At all levels of acting, I encountered it. It was a little funny and a little disappointing. You know, you’re trying to be an ‘artist’ and whatnot and people are looking at you like you pulled a 30-foot handkerchief out of your mustache.

Misunderstood artist aside, I thought I’d finally answer that burning question in a way that ‘green-coders’ such as myself might find helpful when trying to read about coding. While I’m new to learning to code, I have a record of learning material quickly and being able to communicate it effectively to people. Which, I’m discovering is pretty important in the programming world as well. The only way to do that is being comfortable recalling information, not remembering. You remember what happened on Game of Thrones last night. You recall your address. At its core, that’s a theatre degree. The process of consistently and quickly recalling complex information. The ‘acting’ part of it only happens once the script is internalized. So, if you can’t master the script, you can’t act. And so far, I’d say that’s not a bad way to approach learning coding. Reading and learning for other types of school, for previous jobs, or for pleasure (yes, there are still those weirdos out there) isn’t the same as reading for coding. Personally, I have found trying to read about code and internalizing core concepts to be really tough.

When we as people take in new information, we get uncomfortable (people don’t like ‘change’) and instinctively our mind tries to grasp the new concepts by associating it with our previous experiences and our ‘known’ conceptions of reality. This is a very useful skill embedded in our ‘lizard’ brain. It can still be accessed in times of pressure; such as a crowd of 2000 people on opening night or a technical code challenge/interview to land a ‘dev’ job. However, this native ability doesn’t always happen naturally on its own, especially, you’re dealing with abstract coding concepts or iambic pentameter. But the process of Active-Reading can sharply reduce the learning curve when you need to be able to recall information quickly and time is fleeting. I do not pretend to be an expert; I am just someone who had success using it at a time when I would have otherwise failed.

My junior year of college I played Macbeth. I was pretty pumped… until I saw the schedule. The rehearsal process was very quick. 15 days to opening night and with entire cast ‘off-book’ in eleven days for previews/final-dresses. For some context. There are 2,162 lines in Macbeth the play. The role of Mac’B, himself is 750 of those lines. That’s just shy of 70 lines a day that would need recallable. For even more context “To be or not to be” from Hamlet is 33 lines. Needless to say, the usual methods of learning weren’t going to hack it. There wasn’t enough time. Those two weeks forced me outside my comfort zone, and I found the process of Active Reading. While it wasn’t my greatest performance, because, well…Shakespeare is still hard. I didn’t drop a line in a single show all 20 performances.

Yours truly. That’s the face my girlfriend makes when I try to explain why object deconstruction/reconstruction is important when working with databases.

The short-cut to learning material and concepts quickly is …

…there is no short-cut…

Earth shattering stuff, I know. But there isn’t a trick. It’s a hard thing to do. And the sooner you stop looking for one, the sooner you’ll be ‘off-book’ and start acting/coding at a professional level. But there is a process that in essence:

  1. Gets you to spend a lot more time than a reader normally would initially.
  2. Designates a time table to go back intermediately to the material to create a routine of access that specific information in various auditory and visual processing mediums.
  3. And most importantly, keeps you moving forward.

The actionable advice I offer you is counter-intuitive and unattractive. However, in my defense, most good advice is. When you are pressed for time and need to actually “learn” something quickly. The ‘trick’ is to spend more time with it with you think you need to, and you need to do more than just read. After your initial ‘Active-Read,’ you don’t ever spend that much time with it again. The process of Active Reading engages a reader’s mind from ‘left’ and ‘right’ side. Allowing the information to create short-cut-neurological pathways. These obviously can about without Active Reading, but the embedding process is manually ‘hijackable’ with practice. In my experience the fastest I was able to go from:

  1. Seeing new material for the first time
  2. Memorizing material
  3. Recalling the material ….was 3 days. And that’s a script with dialogue written in English. A language I claim to be fluent in. These are abstract concepts in a new computer language. So, I’m going to cast a wide-assumption that for most people, myself included, it may take a little longer than 3 days. That’s important to remember as well. Just accepting that fact. And remembering, the goal of reading about new coding concepts is to be able to use that information to make us more knowledgeable and profitable software developers. New coding students shouldn’t just ‘get-through’ articles/READMEs we should be able to internalize them and implement them in our coding quickly. And that takes a minute. How to ‘Active-Read’ Coding Concepts
  4. Accept it is going to take longer than if you want it to. It’s important to acknowledge this every time. Think of it as an affirmation of ‘good’ learning.
  5. Get a notebook, pens, highlighters, 24oz thermos of ‘cold-brew’ Or iPad and Apple pencil, if you’re that person.
  6. Ask the question. What is the name of the concept? And write it down.
  7. ‘Scan’ don’t ‘read’ the first paragraph for one sentence that encapsulates the concept. Write it down. So much winning!
  8. Ask the question, how does this directly build on my previous knowledge. Looking for one-to-two sentences in the first few paragraphs. Write that down. Ex. Case statements are useful to create more ‘readable’ code for when a method’s conditional control flow has numerous conditions.
  9. Scan for a specific example and write it down.
  10. Look for a boiler-plate example and write how each part relates to the specific example. You’re not trying to memorize that example. You are practicing explaining it as you’re seeing it for the first time.
  11. Repeat 6 & 7 ‘until Article.all.examples == 0 ’
  12. Create a visual representation of what happens to the given information during this concept and the resulting information.
  13. Come back to your ‘active- reading’ notes for at least 10 minutes and no more than 30 minutes for the next 3 days ‘   until self.internialize_concept returns true’
  14. During those 3 days. Find a non-coder and try to explain the concept to them. Maybe a someone, like your parents, who you can trick into listening to you by simply calling them. They will be so happy you called they will sit through your ramblings and affirm your brilliance at the end. Personally, that person for me is my loving girlfriend who is recovering from a broken leg and can’t run away from me while I work out abstract coding concepts.
  15. After 3 days. Actually, go back read the article from top to bottom. It will only take one pass. Crazy, right? You’ll be able to pick on the nuances because the outline in your head is strong.
  16. Bask in warm-glow of recallable knowledge!

The idea is to keep adding new material every day and only going back to your active notes for a limited time as the information marinates in your brain. And it won’t be there the next day, and maybe not the next but sometime after day three. It’s there. Suddenly and unexpectedly like Macbeth seeing the Birnam Wood Marching on Dunsinane The process focuses on passing the information into your brain through auditory processing (scanning and speaking) and passing the information back out through visual processing (writing and mapping). The more you can pass the info back and forth by switching between auditory and visual parts of your brain will quicker the concept will get to a deeper place in your understanding, with the eventual goal of it making its final destination in your ‘lizard’ brain.

Example

Even when coding information is well articulated . Trying to internalize this relationship is difficult with a read-through. (seen above)

Annotation combines multiple visual and auditory stimulus . It’s a lot, it really is. And I fully recognize that for a lot of people this may be turning it up to 11. And a lot of people aren’t willing to go there. And that’s cool too. But if you are a new coder like me, and have a tough time getting used to learning this way, give active-reading a shot. And if you love it and it helps you learn, then consider yourself ‘Lady Macbeth’d’.

Resources and Additional Reading Active Reading Guide The Tragedy of Macbeth