More Goto tech episodes

Tech Truth: Teaching Kids to Code with Sonic Pi  Sam Aaron & James Lewis thumbnail

Tech Truth: Teaching Kids to Code with Sonic Pi Sam Aaron & James Lewis

Published 15 May 2026

Duration: 00:49:32

A blend of personal programming and music journeys, technical challenges in concurrency and tool development, Sonic Pi's educational impact, and reflections on AI's role versus human creativity in art and code.

Episode Description

This conversation was recorded at GOTO Copenhagen 2025. https://gotocph.com Sam Aaron - Live Coding Musician & Creator of Sonic Pi James Lewis - Princ...

Overview

The podcast explores the intersection of software development and creative innovation, emphasizing collaboration among professionals to address technical challenges and envision future advancements. It highlights the speakers early engagement with programming through 1980s hardware like the ZX Spectrum and BBC Micro, where self-directed learning and experimental projectssuch as coding games on calculatorsfostered a passion for coding. The discussion contrasts structured academic education with the freedom of self-driven project-based learning, showcasing how early access to affordable tools and community resources like programming magazines played a pivotal role in shaping the speakers career path. Themes of persistence, adapting to new technologies, and balancing technical rigor with creative expression recur throughout.

The narrative also delves into the fusion of music and computing, beginning with the speakers childhood interest in instruments and evolving into a project that blended coding with musical composition, such as using tracker programs for school productions. This led to experiments with programming music, challenges in concurrency using Ruby, and a shift toward Clojure for its robust handling of parallel processes. The development of projects like Overtone and Sonic Pi, which combine Clojure and Supercollider, is detailed, including their educational impact in schools and music institutions. The discussion critiques systemic barriers to adopting tools like Sonic Pi in curricula, highlights its versatility across music genres, and addresses technical limitations in multilingual support and advanced features like microtonal composition. The role of secure, sandboxed environments for music creation and the philosophical underpinnings of concurrency models (e.g., Erlangs isolated processes) are also examined, alongside reflections on the balance between human creativity and AIs role in artistic domains.

Broader themes include the importance of curiosity as a declining but cultivable trait, the value of learning multiple programming languages (e.g., Lisp, Erlang, Clojure) to adapt strategies, and the need for deliberate effort to maintain open-mindedness. The podcast underscores the significance of simplifying complex systems, leveraging concurrency for resilience, and fostering collaboration across disciplines to drive innovation. It also critiques the overreliance on statistics to measure educational impact, advocating instead for qualitative outcomes like student engagement and transformative learning experiences. The interplay between secure development practices, agent-based tools for composition, and the enduring relevance of code as a form of musical notation ties together technical, educational, and creative dimensions, reflecting a holistic approach to problem-solving and artistic expression.

What If

  • What if you built a multilingual CLI version of Sonic Pi to bypass Ruby syntax barriers?
    Move: Develop a command-line interface (CLI) for Sonic Pi that supports non-English languages by abstracting Ruby syntax into natural language commands (e.g., "play a C major chord" instead of play :c4).
    Why now: The text highlights translation challenges in Sonic Pi due to Ruby's English-specific syntax, limiting accessibility for non-English speakers. A CLI could democratize music coding globally.
    Expected upside: Expands Sonic Pis educational reach in non-English-speaking regions, enabling broader adoption in schools and extracurricular programs.

  • What if you prototyped a music composition tool using Erlangs OTP for fault-tolerant concurrency?
    Move: Use Erlangs OTP framework to design a tool that handles concurrent musical processes (e.g., multiple instruments, real-time collaboration) with built-in failure recovery.
    Why now: The text emphasizes Erlangs isolated concurrency model and fault-tolerance as superior to JVM-based languages. This aligns with Sonic Pis need for robust concurrency in music systems.
    Expected upside: Creates a resilient, scalable platform for live music coding, addressing Sonic Pis current limitations in handling complex, real-time musical interactions.

  • What if you created a "code-as-music-score" plugin for Sonic Pi to preserve compositional structure?
    Move: Develop a plugin that exports Sonic Pi projects as annotated code-based scores (e.g., with metadata for tempo, key, and instrument details), mirroring classical music notations durability.
    Why now: The text critiques modern musics lack of documented scores, contrasting with classical composers. This plugin would enable analysis and recreation of digital music, fostering educational and creative reuse.
    Expected upside: Positions Sonic Pi as a tool for both performance and study, bridging gaps in music education and preserving compositional techniques for future generations.

Takeaway

  • Leverage Sonic Pi for Educational Projects: Integrate Sonic Pi into coding tutorials or school programs to teach programming through music, capitalizing on its versatility across genres and its use in formal music education (e.g., Royal Conservatoire in Antwerp).
  • Adopt Erlang/Elixir for Concurrency Needs: Prioritize Erlang or Elixir for projects requiring robust concurrency and fault tolerance, given their isolated process model and OTP framework, which simplify distributed system design and failure recovery.
  • Use Clojures Concurrency Concepts in Ruby: Apply Clojures concurrency primitives (e.g., Promises) to Ruby projects, even if not fully adopting Clojure, to improve handling of parallel processes in music or other domains.
  • Opt for CLI Workarounds in Sonic Pi: Bypass GUI limitations for advanced tasks (e.g., microtonal compositions) by using Sonic Pis command-line interface, which allows external Ruby code generation and compatibility with audio protocols like Open Sound Control.
  • Focus on Teacher Collaboration for Tool Adoption: Engage "super teachers" who actively seek new tools to promote Sonic Pi or similar platforms, emphasizing qualitative student outcomes (e.g., performance improvements) rather than relying on statistics for impact measurement.

Recent Episodes of Goto tech

19 Jun 2026 Continuous Delivery in a World of Constant Change Abby Bangser & Dave Farley

Continuous delivery principles, AI's challenges in code generation, and the necessity of incrementalism, rigorous testing, and human validation in software development are emphasized, alongside critiques of AI's lack of precision and the push for structured validation in high-stakes systems.

16 Jun 2026 Go for Java Programmers Barry Feigenbaum & Shon Saliga

Go emphasizes simplicity, concurrency, and efficiency for lightweight applications through explicit error handling and goroutines, while Java offers a feature-rich, object-oriented framework with extensive libraries and inheritance for complex, general-purpose systems, each suited to distinct development priorities and domains.

12 Jun 2026 Engineering Leadership in Turbulent Times Sarah Wells, Pat Kua & Daniel Terhorst-North

The text contrasts technical leadership and management, highlighting leadership's emphasis on vision and team alignment with management's focus on systems and accountability, while exploring change strategies, frameworks like the "Three Threes Model," challenges in technical debt and cross-functional alignment, and the role of communication, culture, and adaptability in fostering innovation.

9 Jun 2026 Modern Concurrency in Java Bazlur Rahman & Michael Redlich

Modern Java concurrency explores the shift from traditional threads to virtual threads (JDK 21) and structured concurrency, emphasizing scalability for I/O-bound tasks, task management simplification, limitations in CPU-bound work, comparisons with reactive programming, adoption challenges, and the book's unification of knowledge around Project Loom and scoped values for intermediate developers.

5 Jun 2026 Roc & Zig: A Compiler Rewrite Story Anjana Vakil & Richard Feldman

The text covers Rock's evolution as a simplified, statically typed alternative to Elm with a Zig-based compiler, AI's expanding role in software development beyond automation, open-source challenges, education's shift toward conceptual understanding, and the tension between rapid AI-driven productivity and quality-focused project development.

More Goto tech episodes