<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Free-Ideas on TanHo.ca</title><link>https://tanho.ca/tags/free-ideas/</link><description>Recent content in Free-Ideas on TanHo.ca</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright> © 2026 Tan Ho. Unless otherwise specified, content is licensed with [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).</copyright><lastBuildDate>Fri, 02 Oct 2026 14:22:39 -0400</lastBuildDate><atom:link href="https://tanho.ca/tags/free-ideas/index.xml" rel="self" type="application/rss+xml"/><item><title>The Beginner Data Science Programming Book That Doesn't Exist (Yet?)</title><link>https://tanho.ca/posts/2024-12-10_beginner-book/</link><pubDate>Tue, 10 Dec 2024 00:00:00 +0000</pubDate><guid>https://tanho.ca/posts/2024-12-10_beginner-book/</guid><description>&#10; &#10;&#10;&#10;&#10;&lt;div&#10; &#10; class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"&#10; &#10; &gt;&#10; &lt;span&#10; &#10; class="text-primary-400 pe-3 flex items-center"&#10; &#10; &gt;&#10; &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"&gt;&lt;path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;/span&gt;&#10;&#10; &lt;span&#10; &#10; class="dark:text-neutral-300"&#10; &#10; &gt;Ideas are &lt;a href="https://sive.rs/multiply" target="_blank" rel="noreferrer"&gt;worth nothing unless executed&lt;/a&gt;, and I&amp;rsquo;m&#10;tired of adding ideas to my backlog only to never get to them. This &lt;a href="https://tanho.ca/tags/free-ideas/" &gt;series&lt;/a&gt;&#10;aims to set those ideas free - let me know if you take it on!&lt;/span&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;Hot take: the ideal beginner data science programming book doesn&amp;rsquo;t exist (yet)&#10; &lt;div id="hot-take-the-ideal-beginner-data-science-programming-book-doesnt-exist-yet" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#hot-take-the-ideal-beginner-data-science-programming-book-doesnt-exist-yet" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;The beloved &lt;a href="https://r4ds.hadley.nz" target="_blank" rel="noreferrer"&gt;R for Data Science&lt;/a&gt; is a fantastic book, and&#10;yet I struggled immensely with following along with it. I think it&amp;rsquo;s because I&#10;can only care so much about flower irises, penguins, and NYC taxis: I quit halfway&#10;through the third chapter of R4DS on my first attempt in 2018ish, &amp;hellip; because I&#10;got bored.&lt;/p&gt;&#10;&lt;p&gt;Since then, I&amp;rsquo;ve gotten treatment for ADHD (which probably explains a lot, tbh),&#10;but I think what really helped the most with learning programming was that I&#10;started working on projects that I actually cared about: fantasy football and NFL.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;d work on something for a while, get stuck on something I didn&amp;rsquo;t know, Ctrl-F&#10;the R4DS book + dplyr/tidyr reference manuals, figure out what I needed to know&#10;and how it fit into what I already knew, and then keep going. Reading R4DS cover&#10;to cover was utterly unhelpful until I knew how to fit each concept into a mental&#10;model that I knew how to use.&lt;/p&gt;&#10;&lt;p&gt;My love of all things R and data has since taken off (enough to have made a whole&#10;career of it), and now I often get asked what books I&amp;rsquo;d recommend for learning&#10;NFL/sports analytics, R, data science, programming etc. I supply the easy answer&#10;(&lt;em&gt;&amp;ldquo;you should read R4DS&amp;rdquo;&lt;/em&gt;), but I&amp;rsquo;m a little uncomfortable with it because the book&#10;I wish I could recommend doesn&amp;rsquo;t quite exist.&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;the ideal book for learning programming and NFL analytics&#10; &lt;div id="the-ideal-book-for-learning-programming-and-nfl-analytics" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-ideal-book-for-learning-programming-and-nfl-analytics" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;There are a lot of introductory data science and programming books out there, and&#10;even ones that apply the context of NFL: both &lt;a href="https://www.oreilly.com/library/view/football-analytics-with/9781492099611/" target="_blank" rel="noreferrer"&gt;Eric Eager&lt;/a&gt;&#10;and &lt;a href="https://bradcongelio.com/nfl-analytics-with-r-book/" target="_blank" rel="noreferrer"&gt;Brad Congelio&lt;/a&gt; have great&#10;iterations of this (and the latter is free online)!&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;m so glad these books exist now and they&amp;rsquo;d have certainly helped a lot when I&#10;first got started, but I&amp;rsquo;m not quite sure these are the ones I&amp;rsquo;ve been wanting:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;how do they stay up to date with a fast-evolving programming landscape?&lt;/li&gt;&#10;&lt;li&gt;how do they compare with the existing literature that is beloved by the community,&#10;like R4DS, and how should beginners proceed if the books disagree on best code&#10;approach?&lt;/li&gt;&#10;&lt;li&gt;what happens if I want to learn another programming language other than R?&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I think the book I want to exist would be structured as a &lt;em&gt;companion&lt;/em&gt; to books&#10;like R4DS, but not include &lt;em&gt;any&lt;/em&gt; language-specific code whatsoever. Instead, I&amp;rsquo;d&#10;focus on a few goals:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;create a series of case studies and exercises that challenge learners to write&#10;their own solutions based on domain-specific research questions&#10;&lt;ul&gt;&#10;&lt;li&gt;provide starter data of appropriate complexity/cleanliness in a data repository&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;cover a full breadth of high-level data science / programming topics&#10;&lt;ul&gt;&#10;&lt;li&gt;kind of like R4DS&amp;rsquo;s visualize, transform, import, program, communicate sections&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;maintain up-to-date links to readings for each case study that help learners&#10;find best-practice guidance on a given topic in a supported programming language&#10;&lt;ul&gt;&#10;&lt;li&gt;each case study should provide links to &amp;ldquo;prerequisite reading&amp;rdquo; to solve it,&#10;e.g. links to relevant R4DS chapters for R&lt;/li&gt;&#10;&lt;li&gt;should be easily extended to other languages by linking to equivalent&#10;material, e.g. pivoting data, group by + summarize are relational data&#10;concepts that have parallels in almost every language&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;introduce the essential background knowledge for the domain in question&#10;&lt;ul&gt;&#10;&lt;li&gt;for NFL this should include concepts like EPA, fourth downs, completion&#10;probability, expected rushing yards etc - essentially covering the body of&#10;public research&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;suggest further research questions that can be tackled beyond the controlled&#10;sandbox of the book/repository&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I think something like this would be massively helpful for introducing people to&#10;the relevant public research in a domain, and with putting technical topics into&#10;practical use for learners. It would be robust to existing languages evolving (could&#10;approach the same case study in e.g. tidyverse, data.table etc), easily extended&#10;to new languages (e.g. Python, Julia, Rust), and even to new technologies (probably&#10;could do the whole thing in DuckDB one day). The format also would be easy to adopt&#10;in different sports (soccer, basketball, baseball, hockey?) and to other domains&#10;altogether.&lt;/p&gt;&#10;&lt;p&gt;Of course, I&amp;rsquo;ve been sitting on this idea for a while: I first started a&#10;&lt;a href="https://github.com/nflverse/nflbeginR" target="_blank" rel="noreferrer"&gt;repo&lt;/a&gt; for this idea ~ three years ago&#10;and convinced friends like Sebastian Carl to start thinking about it,&#10;but neither of us have made much progress, which I think is more due to just a lack&#10;of time/energy/expertise in it. I still think it&amp;rsquo;s a worthwhile idea and am writing this&#10;post mostly to set it free and hope someone is inspired to pick it up!&lt;/p&gt;&#10;&lt;p&gt;A similar idea has come up since then: the &lt;a href="https://scorenetwork.org/about.html" target="_blank" rel="noreferrer"&gt;SCORE project&lt;/a&gt;&#10;led by CMU&amp;rsquo;s Statistics and Data Science department aims to provide case studies across&#10;all sports for learning statistics and data science, and has a set of&#10;&lt;a href="https://modules.scorenetwork.org/by-statsds-topic.html" target="_blank" rel="noreferrer"&gt;modules&lt;/a&gt; already.&#10;I&amp;rsquo;m not sure if ~ learning to program in a given language is in the scope&#10;of the project - it seems to be very statistics-focused - but it could otherwise&#10;be an interesting parallel project?&lt;/p&gt;&#10;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://tanho.ca/posts/2024-12-10_beginner-book/featured.jpg"/></item></channel></rss>