Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
By Sam Livingston-Gray Experienced developers tend to build up a library of creative problem-solving tools: rubber ducks, code smells, anthropomorphizing code, &c. These tools map abstract problems into forms our brains are good at solving. But our brains are also good at lying to us. We'll talk about some of these tools, when to use them (or not), and how their biases can lead us astray. "A change in perspective is worth 80 IQ points." -Alan Kay New developers very welcome: we don't teach this in school! A developer from sunny* Portland, Oregon, Sam's been working in code since 1998, in Ruby since 2006, and at LivingSocial since 2012. He likes TDD/BDD/TATFT, pair programming, and refactoring—but finds that long walks on the beach tend to result in sandy keyboards. YMMV Help us caption & translate this video! http://amara.org/v/FG08/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the video titled "Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies," Sam Livingston-Gray discusses the cognitive tools that experienced developers use to solve abstract programming problems. The talk emphasizes that while these tools can be beneficial, our brains are also prone to biases and inaccuracies. The presentation is structured in three parts: - **Understanding the Nature of Abstraction**: Livingston-Gray explains how programming is inherently abstract, which makes it challenging for our brains that are better suited for dealing with concrete and physical realities. He recounts insights from a Ruby Rogues podcast that highlight the necessity of techniques to visualize and conceptualize abstract programming tasks. - **Cognitive Lapses and Biases**: The speaker details how our brains can mislead us due to cognitive biases, such as the bias blind spot, which causes individuals to view themselves as less biased compared to others. Livingston-Gray emphasizes the importance of acknowledging these biases and learning about various cognitive pitfalls to improve problem-solving capabilities. - **Techniques to Navigate Programming Challenges**: In this section, he outlines several tools and techniques developers can use: - **Visual Tools**: Diagrams such as entity relationship diagrams and state machines help leverage spatial reasoning to understand data structure relationships. - **The Squint Test**: This technique helps simplify code analysis by focusing on patterns rather than individual lines. - **Rubber Duck Debugging**: Explaining problems out loud to a rubber duck or other objects can unveil overlooked assumptions. - **Metaphors and Code Smells**: Using metaphors like the turtle graphics system illustrates complex problems in a more approachable way; likewise, recognizing code smells can indicate design flaws. Furthermore, he highlights a novel approach to programming AI for the video game Pac-Man, which utilizes a 'smell' diffusion model to create intelligent ghost behavior without complex conditional logic. This example illustrates the value of rethinking conventional methods and emphasizes the psychological nature of problem-solving as we model ourselves after the objects involved. **Conclusions**: Livingston-Gray advocates for the importance of teaching new developers about these cognitive shortcuts while simultaneously educating them about the biases that accompany these techniques. The final takeaway is that by recognizing and reflecting on biases, developers can enhance their problem-solving skills, ultimately leading to better coding practices and software design.
Suggest modifications
Cancel