Thirty one years ago I typed tic tac toe code, found at the back of a computer magazine, into my VIC 20. I didn’t understand the code but I felt wizardly when the game popped up on the living room TV. Thirteen years later I would code my own tic tac toe game for the first time while learning to build Microsoft Access apps during my coding internship at MTS. I added the game as an easter egg to the time tracking app I built for the MTS Solutions Group.
All were written as code kata in the name of learning through experimentation. Sketching with code.
“This kind of coding as thinking out loud is known in the Agile methodology as a spike. It is meant to be as informal as possible. It’s the equivalent of whiteboarding. And just as whiteboarding sometimes leads to a formal solution, sometimes it’s benefit is in quickly and simply framing a problem. Coding allows us to whiteboard directly with data.”
Sam’s talk is embedded below. Worth the watch if you’re into such things as digital literacy in libraries, agency through computational thinking, formalism vs hermeneutics, amateurism, openness and pedagogy. ლ(´ڡ`ლ)
Sam’s talk got me thinking about how I learned to program computers. It also got me thinking about the privilege of having spent three decades thinking in code. I was fortunate to have access to a computer from a young age, with leisure time for computational tinkering, encouraging parents, friends, teachers and mentors. The gender, race and class issues present in the tech world have not been working against me.
Sketching with code. As an IT educator I’ve tried to balance the strict formalism required by technology with an informal exploratory approach to learning.
Sketching with empathy. To better serve all my students a recognition of privilege must also inform my teaching practice.
* * *
I read fifteen books this past year. Ten less than 2014, four less than in 2013, three less than in 2012, and one less than in 2011. All fifteen books were read in deadtree format. Fourteen of them were fiction. One was non-fiction.
As you’ll see at the end of this post, my drop in book consumption can be attributed to my new found love of podcasts.
Books Read in 2015
- On Beauty - Zadie Smith
- Howards End - E. M. Forster
- Dune - Frank Herbert
- The Mandala of Sherlock Holmes - Jamyang Norbu
- East of Eden - John Steinbeck
- The Player of Games - Iain M. Banks
- Death of an Expert Witness - P.D. James
- Idlewild - Nick Sagan
- Never Let Me Go - Kazuo Ishiguro
- Dune Messiah - Frank Herbert
- Geek Sublime - Vikram Chandra
- Power and the Glory - Graham Greene
- Harry Potter and the Goblet of Fire - J. K. Rowling
- NW - Zadie Smith
- The Valkyries - Paulo Coelho
Read in that order. No incompletes this year. The majority of these books were really great.
Top Three Books in 2015
“I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.”
Publish 50 years ago, this sci-fi novel set 21,000 years in the future, has aged incredibly well.
Politics, religion, ecology, philosophy… Dune has it all. Forget top books of 2015, I’d say this would be one of my favourite books of all time. If forced to find fault, I’d point to sexism: The Bene Gesserit, a matriarchal order, develop a breeding program to produce the Kwisatz Haderach, a male Bene Gesserit who, being male, can do what they cannot do, can see what they cannot see.
“The American Standard translation orders men to triumph over sin, and you can call sin ignorance. The King James translation makes a promise in ‘Thou shalt,’ meaning that men will surely triumph over sin. But the Hebrew word, the word timshel —'Thou mayest'— that gives a choice. It might be the most important word in the world. That says the way is open. That throws it right back on a man. For if 'Thou mayest’ — it is also true that 'Thou mayest not.’”
This book came highly recommend by Sam and it did not disappoint. The characters (even the minor ones) felt so real, their struggles so familiar.
Oh, the things we do for love (or the lack of).
“All children have to be deceived if they are to grow up without trauma.”
What would you do to preserve the innocence of a group of children shuned by the rest of society? A melancholy story about purpose, love and mortality. Like Ishiguro’s The Remains of the Day (one of my top three from 2014) it’s also about memory and denial.
This book left me feeling sad and protective. Protective of my children but also of the entire human race. And that’s a weird feeling.
I don’t want to say much more, because spoilers, but I really enjoyed how well the author captured the way children see and interpret the adult world.
Podcasts in 2015
2015 was the year I discovered podcasts, which is why I read far fewer books this year. I listened to hundreds of hours worth of podcasts throughout the year. The podcasts I’ve been listening to, in alphabetical order, split into non-techical and coding categories:
General Interest Podcasts
- Invisibilia - The invisible forces that control human behavior – ideas, beliefs, assumptions and emotions.
- The Longest Shortest Time - The parenting show for for everyone.
- Media Nerds / Starwards Nerds - Fellow RRC instructors Kenton and Dan talk media and Star Wars.
- Mystery Show - A podcast where Starlee Kine solves mysteries.
- Philosophy Bites - Top philosophers interviewed on bite-sized topics.
- Public Philosopher - Harvard political philosopher Michael Sandel examines the thinking behind a current controversy.
- Radiolab - A show about curiosity.
- Reply All - A show about the internet.
- Song Exploder - Musicians take apart their songs, and piece by piece, tell the story of how they were made.
- Start Up - what it’s really like to get a business off the ground.
- Think Again - Surprising the smartest people you know with ideas they’re not prepared to discuss.
- This American Life - Themed story-driven journalism.
Programming Related Podcasts
- Giant Robots Smashing into other Giant Robots - Another thoughtbot podcast, this one is being less technical and lately more about product management / product marketing.
- Ruby Rogues - My favourite programming podcast. Panel discussions and interviews about coding in Ruby and beyond.
- This Developer’s Life - What’s it like to be a developer? This is the podcast that got me into podcasts!
Top Three Podcast Episodes
The story of a blind man who says expectations have helped him see. Literally, see.
A young boy finds an enchanting object in the street.
Reply All - #36 Today’s The Day.
PJ and Alex go outside. I highly recommend listening to episodes 1 through 35 first for context.
Audio Lectures and Audio Book in 2015
I only completed one set of audio lectures in 2015, but it was a doozy, a 42 hour review of Western philosophy. I also listend to the ebook version of Thinking, Fast and Slow, which was an amazing look at how we othen place too much faith in human intuition.
Coding is hard because it’s two things:
- Expressing ideas in the rigid syntax & grammar of a formal language.
- Problem solving.
While learning to code we often focus too much on the first. This is also true while teaching others to code.
This fall I’m going to highlight problem solving while teaching my intro programming courses. Below you will find some of the problem solving strategies I may adapt for my students.
Solving Problems in Five Acts
- Define the Problem
- Let it Simmer
- Plan a Solution
- Carry out the Plan
FOWL Problem Solving
Figure out What You’re Being Asked
Organize the Presented Data
Work out the Problem
Look Over Your Answer
George Pólya’s Problem Solving Techniques
- Understand the Problem
- Devise a Plan
- Carry out the Plan
- Look Back
How do you solve problems?
On reviewing this post Sam suggested emphasising hypothesis and testing when teaching these strategies. I agree that formulating a hypothesis during planning makes room for false starts, while testing adds rigure to the self-assesment of the “Look Back”/Reflect phases. The wonderful part about making these two steps explicit is that we now have something akin to the scientific method:
- Statement of the problem.
- Hypotheses as to the cause of the problem.
- Experiments designed to test each hypothesis.
- Predicted results of the experiments.
- Observed results of the experiments
- Conclusions from the results of the experiments.
Language geek note: The word solve comes from the Latin solvo, to loose an object bound, to release, set free, disengage, dissolve, take apart.
Related Posts on StungEye:
- A Scientific Approach to Debugging - March 2013
- Self-Assessment While Learning to Code - February 2013
- Coding Challenges in the Classroom - May 2011