{
  "description": "Browse aymeric's, an independent, searchable archive of readable snapshots from followed feeds, preserved in Git with aggr.",
  "feed_url": "https://aggr.aymericbeaumet.com/sources/cphiri.dev/feed.json",
  "home_page_url": "https://aggr.aymericbeaumet.com/sources/cphiri.dev/",
  "items": [
    {
      "authors": [
        {
          "name": "jslakro"
        }
      ],
      "content_html": "<p>You guys are getting paid?</p>\n<h2>Show of hands:</h2>\n<p>How many of you learned programming because it was fun?</p>\n<h2>Part 1</h2>\n<h2>What is Recreational Programming?</h2>\n<h2>Definition</h2>\n<p>Programming for the joy of programming itself - not for work, not for money, not for external requirements.</p>\n<h2>What it looks like:</h2>\n<ul>\n<li>Building things because you're curious how they work</li>\n<li>Exploring new languages just to see what they feel like</li>\n<li>Solving problems that only exist in your head</li>\n<li>Creating tools for problems you don't actually have</li>\n<li>Writing code that makes you smile</li>\n</ul>\n<h2>What it's NOT:</h2>\n<ul>\n<li>Side hustles or potential startups</li>\n<li>Skill building for career advancement</li>\n<li>Following tutorials step-by-step</li>\n<li>Grinding through coding challenges for interviews</li>\n<li>Building what others expect you to build</li>\n</ul>\n<p><strong>The key distinction:</strong> Internal motivation vs. external pressure</p>\n<h2>Why it matters:</h2>\n<ul>\n<li>Prevents burnout by reconnecting with intrinsic motivation</li>\n<li>Develops intuition through low-stakes exploration</li>\n<li>Maintains long-term passion for the craft</li>\n<li>Often leads to unexpected breakthroughs and learning</li>\n</ul>\n<h2>Part 2</h2>\n<h2>The Recreational Programming Spectrum</h2>\n<h2>Style 1: The Live Explorer</h2>\n<ul>\n<li>Builds in public through streams or blogs</li>\n<li>Shows the messy process: dead ends, bugs, restarts</li>\n<li>Community becomes accountability and energy source</li>\n<li>Projects range from practical tools to pure experiments</li>\n</ul>\n<h2>Style 2: The Deep Diver</h2>\n<ul>\n<li>Obsesses over understanding how things really work</li>\n<li>Builds toy versions of complex systems</li>\n<li>Values learning over shipping</li>\n<li>Often has multiple &quot;educational&quot; implementations</li>\n</ul>\n<h2>Style 3: The Creative Technologist</h2>\n<ul>\n<li>Uses code as artistic medium</li>\n<li>Generative art, music synthesis, interactive installations</li>\n<li>Technology serves creative vision</li>\n<li>Often blends programming with other disciplines</li>\n</ul>\n<h2>Style 4: The Problem Solver</h2>\n<ul>\n<li>Scratches personal itches with code</li>\n<li>Tools that solve tiny annoying problems</li>\n<li>&quot;Good enough&quot; solutions that work for them</li>\n<li>Often accidentally builds useful things</li>\n</ul>\n<h2>Style 5: The Language Explorer</h2>\n<ul>\n<li>Constantly trying new languages and paradigms</li>\n<li>Implements same concepts across different languages</li>\n<li>Drawn to unusual or experimental languages</li>\n<li>Code as intellectual curiosity</li>\n</ul>\n<h2>Part 3</h2>\n<h2>Common Patterns Across All Styles</h2>\n<h2>Permission to Build &quot;Useless&quot; Things</h2>\n<ul>\n<li>No business case required</li>\n<li>Curiosity is sufficient justification</li>\n<li>Failed experiments still teach valuable lessons</li>\n</ul>\n<p><strong>Key insight:</strong> ROI doesn't apply to recreational programming</p>\n<h2>Follow Energy, Not Plans</h2>\n<ul>\n<li>Switch projects when excitement fades</li>\n<li>Multiple abandoned repos are exploration, not failure</li>\n<li>Boredom is data about what interests you</li>\n</ul>\n<p><strong>Key insight:</strong> Boredom is data, not defeat</p>\n<h2>Document the Journey</h2>\n<ul>\n<li>Share process, not just results</li>\n<li>Teaching forces deeper understanding</li>\n<li>Creates connection with others on similar paths</li>\n</ul>\n<p><strong>Key insight:</strong> Narrate your decisions</p>\n<h2>Embrace the Learning Process</h2>\n<ul>\n<li>Beginner's mind in new domains</li>\n<li>Comfortable with not knowing</li>\n<li>Process over product</li>\n</ul>\n<p><strong>Key insight:</strong> Progress over perfection</p>\n<h2>Part 4</h2>\n<h2>Your Personal Programming Playground</h2>\n<h2>The Environment</h2>\n<ul>\n<li>Dedicated &quot;experiments&quot; folder/repo</li>\n<li>No production concerns: minimal setup, no CI/CD pressure</li>\n<li>Quick project initialization scripts</li>\n<li>Version control optional</li>\n</ul>\n<h2>Approaches You Can Try</h2>\n<ul>\n<li>Weekly Experiments (2-4 hours exploring one new thing)</li>\n<li>Scratch-Built Challenges (Build toy versions of tools you use)</li>\n<li>Itch-Scratching Projects (Solve your own annoying problems)</li>\n<li>Teaching Projects (Build something while explaining it)</li>\n<li>Cross-Language Challenges (Same problem, different languages)</li>\n</ul>\n<h2>The Mindset Shifts</h2>\n<ul>\n<li>&quot;What if...&quot; instead of &quot;I should...&quot;</li>\n<li>Progress over perfection</li>\n<li>Learning over shipping</li>\n<li>Curiosity over productivity</li>\n</ul>\n<h2>Part 5</h2>\n<h2>Real Examples in the Wild</h2>\n<h2>Zikani Nyirenda - <em>The Practical Experimenter</em></h2>\n<ul>\n<li>Creates random but useful tools: browser automation, file organizers, Git utilities</li>\n<li>Experiments across Go, Rust, Python, Vue, and React</li>\n<li>&quot;What small problem can I solve today?&quot; approach to coding</li>\n<li>Perfect example of scratching personal itches through code</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/zikani03\">github.com/zikani03</a></p>\n<h2>Jeremiah Chienda - <em>The Full-Stack Experimenter</em></h2>\n<ul>\n<li>Explores different architectural patterns and frameworks</li>\n<li>Builds tools that solve real problems while learning new technologies</li>\n<li>Shows how recreational programming can span the entire tech stack</li>\n</ul>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/liwoo\">github.com/liwoo</a></p>\n<h2>Tsoding Daily - <em>The Live Explorer</em></h2>\n<ul>\n<li>Streams 4+ hours daily building random projects from scratch</li>\n<li>Built his own text editors, programming languages, ray tracers</li>\n<li>Shows complete process including failures and debugging</li>\n<li>&quot;Let's see what happens if...&quot; approach to everything</li>\n</ul>\n<h2>ThePrimeagen - <em>The High-Energy Problem Solver</em></h2>\n<ul>\n<li>Creates CLI tools and Neovim plugins for personal workflow optimization</li>\n<li>Infectious enthusiasm for dev tools and performance</li>\n<li>Reacts to and critiques other developers' code/approaches</li>\n<li>Makes optimization and tooling feel like extreme sports</li>\n</ul>\n<h2>Casey Muratori - <em>The Systems Deep Diver</em></h2>\n<ul>\n<li>Handmade Hero: Building a complete game from scratch on stream</li>\n<li>Explains every single line of code and system design decision</li>\n<li>No libraries, understanding everything from first principles</li>\n<li>Demonstrates that you can build modern software without frameworks</li>\n</ul>\n<h2>Ben Eater - <em>The Educational Builder</em></h2>\n<ul>\n<li>Builds computers on breadboards, explains every component</li>\n<li>Creates video series on how CPUs, memory, and networks actually work</li>\n<li>Takes months to build what you could buy for $5</li>\n<li>Makes hardware fundamentals accessible and fascinating</li>\n</ul>\n<h2>Dan Luu - <em>The Deep Technical Investigator</em></h2>\n<ul>\n<li>Writes detailed blog posts investigating performance mysteries</li>\n<li>Benchmarks everything: keyboards, terminals, programming languages</li>\n<li>Turns curiosity about &quot;why is X slow?&quot; into multi-thousand word research</li>\n<li>Demonstrates how recreational investigation can uncover industry-wide issues</li>\n</ul>\n<p><strong>Each represents a different path back to programming joy</strong></p>\n<h2>Closing Challenge</h2>\n<p>Pick one experiment:</p>\n<ol>\n<li>Build the worst possible version of a tool you use daily</li>\n<li>Spend 2 hours with a language you've been curious about</li>\n<li>Document yourself solving a small problem</li>\n<li>Fork an interesting project and mess with it</li>\n<li>Try live coding or streaming your process</li>\n</ol>\n<p><strong>The only rule:</strong> Stop if it stops being fun.</p>\n<h2>Final Thought</h2>\n<p>&quot;The goal isn't to become any of these programmers. It's to remember why you started coding and keep that curiosity alive alongside your career.&quot;</p>\n",
      "date_modified": "2026-10-13T22:33:33+00:00",
      "date_published": "2026-10-13T22:33:33+00:00",
      "external_url": "https://www.cphiri.dev/presentations/recreational-programming",
      "id": "urn:aggr:item:6cd033c3ae88e0392f754d8196f40baaebbf1621",
      "summary": "You guys are getting paid? Show of hands: How many of you learned programming because it was fun? Part 1 What is Recreational Programming? Definition Programming for the joy of programming itself - not for work, not for money, not for…",
      "tags": [
        "news"
      ],
      "title": "Recreational Programming",
      "url": "https://aggr.aymericbeaumet.com/items/hnrss-org/2026-10-13-recreational-programming/"
    }
  ],
  "language": "en",
  "title": "cphiri.dev",
  "version": "https://jsonfeed.org/version/1.1"
}