<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Oz’s Newsletter]]></title><description><![CDATA[Thoughts on computer science education and things 2-3 degrees thence, from the creator of CS Primer, teachyourselfcs.com and Bradfield]]></description><link>https://newsletter.ozwrites.com</link><image><url>https://substackcdn.com/image/fetch/$s_!TUME!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91306439-1ce8-4506-ab71-47bde2101a95_400x400.png</url><title>Oz’s Newsletter</title><link>https://newsletter.ozwrites.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 05 Apr 2026 12:31:57 GMT</lastBuildDate><atom:link href="https://newsletter.ozwrites.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Oz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[oznova@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[oznova@substack.com]]></itunes:email><itunes:name><![CDATA[Oz Nova]]></itunes:name></itunes:owner><itunes:author><![CDATA[Oz Nova]]></itunes:author><googleplay:owner><![CDATA[oznova@substack.com]]></googleplay:owner><googleplay:email><![CDATA[oznova@substack.com]]></googleplay:email><googleplay:author><![CDATA[Oz Nova]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[A balanced review of Math Academy]]></title><description><![CDATA[And some thoughts on motivation and structure, for autodidacts]]></description><link>https://newsletter.ozwrites.com/p/a-balanced-review-of-math-academy</link><guid isPermaLink="false">https://newsletter.ozwrites.com/p/a-balanced-review-of-math-academy</guid><dc:creator><![CDATA[Oz Nova]]></dc:creator><pubDate>Thu, 10 Apr 2025 23:21:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TFB2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TFB2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 424w, https://substackcdn.com/image/fetch/$s_!TFB2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 848w, https://substackcdn.com/image/fetch/$s_!TFB2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 1272w, https://substackcdn.com/image/fetch/$s_!TFB2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TFB2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png" width="1456" height="921" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:921,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3320197,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.ozwrites.com/i/158876902?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TFB2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 424w, https://substackcdn.com/image/fetch/$s_!TFB2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 848w, https://substackcdn.com/image/fetch/$s_!TFB2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 1272w, https://substackcdn.com/image/fetch/$s_!TFB2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634e06b9-f9b0-407a-8247-c596b0d7c3cb_1502x950.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>I haven&#8217;t written in a couple of months as we had another baby (kid #3, a boy) in January. So far he really likes it when we vacuum or play Metallica&#8230; not sure what that says about his personality but at least the house is clean. Also I&#8217;m still working on a major update to <a href="https://teachyourselfcs.com">teachyourselfcs.com</a> so please keep your helpful suggestions coming!</em></p><div><hr></div><p>A number of my students rave about Math Academy, an online math program that claims extraordinary outcomes. It&#8217;s rare to find a discussion of math education on Twitter or Hacker News now without somebody <a href="https://news.ycombinator.com/item?id=43241499">chiming in to recommend it</a>. </p><p>The reviews from thoughtful math teachers, though, are not so positive. Michael Pershan <a href="https://substack.com/home/post/p-156035266">feels that it is &#8220;fundamentally broken&#8221; and can&#8217;t be fixed</a>. Dan Meyer suggests that the learning may be illusory but that <a href="https://substack.com/home/post/p-156902547">It Is Fun to Pretend That Hard Things Are Easy!</a> Math Academy employee Justin Skycak was the most requested guest we&#8217;ve ever had for the CS Primer podcast; after <a href="https://www.youtube.com/watch?v=esco3wSre2E&amp;list=PL4E4jY21e9ntlbxBV1rUU3b8HWldkUTz2">his appearance</a>, the private response from some of the educators I most respect suggested that I should have given him a harder time!</p><p>Education is complex, so it&#8217;s common for the most beloved courses and books to also be the most criticized. <em>Structure and Interpretation of Computer Programs</em> springs to mind, or the Dragon book. My goal here is not to resolve the conflict so much as to tease it apart, hopefully in a way that&#8217;s interesting irrespective of whether you&#8217;re in the market for a drilling app. Admittedly this will take some time (3000 words, 15 min reading time) so: </p><p><strong>TL;DR:</strong></p><p>Math Academy can be an effective and fun&#8212;even mildly addictive&#8212;way to drill procedural fluency. If your goal is anything more than test prep through, you should probably find a textbook or lecture series that <em>moves you</em>, for depth of conceptual understanding, and only use something like Math Academy as a supplement. If the Math Academy team were to just acknowledge this limitation and perhaps <em>suggest</em> good accompanying material, I would find it easier to recommend.</p><blockquote><p>Any fool can know. The point is to understand.</p><p>&#8212; <a href="https://quoteinvestigator.com/2021/11/20/fool-know/">Fictional Einstein</a></p></blockquote><p>Also a caveat: I&#8217;m concerned that by giving anything other than a rave review of Math Academy, I&#8217;ll discourage those who are finding success with it from continuing. Please, if you like Math Academy already, don&#8217;t quit!</p><h2>A possibly addictive feedback loop</h2><p>The core structure of a Math Academy lesson is a worked example, followed by a few typically multiple choice questions. Explanations are minimal and motivating context virtually nonexistent. The experience is roughly as follows:</p><blockquote><p>MA: Let&#8217;s say you wish to differentiate an inverse reciprocal hyperbolic function</p><p>You: Ok&#8230;</p><p>MA: The derivative of arcsch(x) is [&#8230;]</p><p>You: Ok I&#8217;m sure that will come in useful later</p><p>MA: Yes it&#8217;s an important node in the dependency graph of all of mathematics, you need to master it to progress. Now, here&#8217;s an example of applying the formula for a trivially different function like d/dx arcsch(3x)</p><p>You: Sure, that makes sense</p><p>MA: Follow those same steps, for these further slight variations</p><p>You: Ok&#8230;</p><p>MA: You get 10 XP! Keep going to maintain your streak! Just 100 more XP to get promoted to the next league!</p></blockquote><p>The funny thing is that it does actually feel good to earn made up points and move up a leaderboard. At one point, I was racking up enough XP that a stranger on the internet noticed:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rs4a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rs4a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 424w, https://substackcdn.com/image/fetch/$s_!rs4a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 848w, https://substackcdn.com/image/fetch/$s_!rs4a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!rs4a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rs4a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png" width="416" height="462.4533333333333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1334,&quot;width&quot;:1200,&quot;resizeWidth&quot;:416,&quot;bytes&quot;:312509,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.ozwrites.com/i/158876902?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rs4a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 424w, https://substackcdn.com/image/fetch/$s_!rs4a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 848w, https://substackcdn.com/image/fetch/$s_!rs4a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!rs4a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3165506e-dec0-453c-8c6c-a38690f2f65e_1200x1334.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Having someone ask if I was &#8220;hooked&#8221; frankly rankled. Yes, I was enjoying the process, enough that I kept going beyond my original goal of giving the system a good try. But did I <em>want</em> to be hooked on this? It was fun, and the XP showed that I was (re)building procedural fluency in a topic that I do think is worthwhile. Certainly, it would be better than being hooked on some other kinds of fake internet points. But there is more to mathematics than being able to follow a sequence of rules, and I was concerned that my attention was being captured in a way that I did not in fact want.</p><h2>Look where procedural fluency got me</h2><p>The reason I could startle strangers on the internet with my &#8220;insane numbers&#8221; is that I&#8217;d been through this process already, 20 years ago. In high school, I studied hard for my final exams including for an advanced course which covered much of the same material as the early undergraduate level courses on Math Academy. I did well enough that I was accepted into a highly competitive program at university, intended for the most promising math students&#8230; which I promptly discovered was not me.</p><p>See, I had &#8220;earned&#8221; my place by practicing enough to score well on tests without really understanding what I was doing. Another student in the program&#8212;actually, the one who scored highest in the entrance exams&#8212;was in a similar position, and mentioned he had worked multiple times through <em>decades</em> of past papers, in preparation. He ended up becoming an engineer, and I ended up doing whatever it is that I do.</p><p>Meanwhile, the two people from our cohort who did become professional mathematicians were entirely different: they didn&#8217;t drill at all, but instead interrogated gaps in their understanding, found novel ways to develop their intuition, and overall focused on subtle conceptual aspects of a topic that could never conceivably be formulated as exam questions. They still did well enough on exams, but that was an afterthought.</p><p>The gap between us was confronting, and apparently insurmountable. I quietly gave up, and mostly coasted through the rest of my degree, taking as many computer science topics as I could through the math department and hoping that I would learn the lesson for next time.</p><h2>Shortcomings of the diagnostic tests</h2><p>Since my time at school I&#8217;ve come back to a few math topics with more of an &#8220;understand what I&#8217;m actually doing&#8221; approach, but I still have a lot of gaping wide holes, including embarrassingly in calculus. This came up recently as a barrier to my current study of biology, as I wanted to understand certain processes that are well modelled as differential equations. So in trying Math Academy, I had in mind that I might also do a better job with calculus this time.</p><p>I wasn&#8217;t surprised not to be able to test out of Calculus 1 on Math Academy, although it was telling how poorly the diagnostic captured the core issue:</p><ul><li><p>Many of the questions I answered correctly were in areas that I <em>don&#8217;t </em>feel I understand well, but where I suppose I had drilled enough in the past for my procedural fluency to survive 20 years of atrophy.</p></li><li><p>Each question is timed individually, so some of my correct answers were too slow to count. These tended to be in areas where I <em>do</em> <em>have</em> some fundamental understanding, since I was able to re-derive a relationship I had forgotten, or reason about a problem creatively, albeit slowly.</p></li><li><p>Some of the questions I got wrong were those where I felt like I understood the key concept well enough, but misunderstood something about how the question was posed, or made two thoughtless mistakes (if you make just one, they mercifully allow you to try a second problem). One slip up here cursed me with a long sequence of middle school trigonometry problems that were excruciatingly easy but couldn&#8217;t be skipped, to the point where I just retook the entire diagnostic. I will say more about the hubris of the &#8220;way&#8221; in a moment.</p></li></ul><p>All of this is to say that the concept of a diagnostic test is great, and it does a fairly good&#8212;if frustrating&#8212;job of testing procedural fluency. Understandably, it does a poor job of testing other things like the depth of your conceptual understanding, or your ability to generalize. This should serve as a reminder of what you should or should not expect to get out of the platform overall.</p><h2>The hubris of the &#8220;way&#8221;</h2><p>Speaking of highly hyped educational products with major shortcomings, my 6yo daughter occasionally uses a program called <a href="http://synthesis.com/">Synthesis</a>, and quite likes it. It claims and of course fails to be a &#8220;superhuman math tutor&#8221; but thankfully it&#8217;s just a collection of thoughtful interactive explainers and mini-games. The most common complaint I&#8217;ve heard about it is that there is not yet enough content, so they are doing ok!</p><p>Lessons are presented as conversations &#8220;with&#8221; the Synthesis &#8220;tutor&#8221;, which in practice is a few sentences of hardcoded prose followed by a multiple choice question. There is clearly a main path through the lesson, so most &#8220;choices&#8221; lead to effectively the same place at the same pace. This is not altogether terrible: I&#8217;m glad they thoughtfully designed a main lesson sequence, and the interaction mode can be cute and engaging.</p><p>That said, it is frustratingly the least &#8220;adaptive&#8221; of any math app we&#8217;ve tried. It is the only app where long sections can be both mandatory and so mind numbingly obvious that I need to speedrun it <em>myself</em> to keep my kid&#8217;s interest. In theory, the &#8220;interactive&#8221; structure should be more responsive than a traditional program; certainly the human teachers that some Synthesis ads condemn would allow a bored kid to progress faster.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gURf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gURf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 424w, https://substackcdn.com/image/fetch/$s_!gURf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 848w, https://substackcdn.com/image/fetch/$s_!gURf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 1272w, https://substackcdn.com/image/fetch/$s_!gURf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gURf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png" width="504" height="335.7" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:746,&quot;width&quot;:1120,&quot;resizeWidth&quot;:504,&quot;bytes&quot;:870028,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.ozwrites.com/i/158876902?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F656594ed-c2a2-4734-a6db-99e9d27f49de_1120x746.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gURf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 424w, https://substackcdn.com/image/fetch/$s_!gURf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 848w, https://substackcdn.com/image/fetch/$s_!gURf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 1272w, https://substackcdn.com/image/fetch/$s_!gURf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd504c459-afce-4d70-8f3a-c1af40044c77_1120x746.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Nothing is true about this other than the price. It&#8217;s certainly the least &#8220;adaptive&#8221; math app we&#8217;ve tried.</figcaption></figure></div><p>All it needs is a &#8220;skip lesson&#8221; button! Why is there no &#8220;skip lesson&#8221; button!?</p><p>My suspicion, having made similar mistakes in the past, is that they were too confident in the brilliance of their solution to recognize its shortcomings. A &#8220;skip lesson&#8221; button can feel like an admission of failure, and hey maybe the brilliant original idea can still be salvaged.</p><p>Math Academy fails with similar hubris, although to their credit, they do seem to be making an earnest attempt to smooth the rough edges. Allowing a second attempt at a failed diagnostic question is a good idea. But subjecting someone to literal years of unnecessary remedial &#8220;pre-requisites&#8221; is too great a punishment for a second slip up. So too is requiring review questions on a topic after any incorrect answers in a quiz: a human tutor would focus on conceptually significant misunderstandings, rather than trivial errors and typos. The justification from Math Academy for this design is likely that the program is based on &#8220;mastery&#8221;, but the kind of mastery I care about is about developing my intuition, not honing my mechanical precision.</p><h2>The DAG is a lie</h2><p>One of the biggest falsehoods in education is that everything we might want to learn has its tidy little place on a dependency graph. Want to be a machine learning engineer? Of course you should understand how the algorithms work, so first learn linear algebra and calculus, for which you need algebra, so of course pre-algebra, and so on. Don&#8217;t forget to do it on the systems side too! Perhaps start with CUDA, no wait computer architecture, no electrical engineering, no physics&#8230;</p><p>Look I understand the appeal. As a teacher it&#8217;s nice to be able to establish some assumed knowledge for a course so that we can build on from there. When I teach operating systems I like to assume some understanding of computer architecture so that I can explain a context switch, say, at the level of the CPU. Similarly I wouldn&#8217;t encourage you to teach calculus before arithmetic.</p><p>But should you learn integration before differentiation? I&#8217;d never considered this approach until I read David M. Bressoud&#8217;s fantastic book <em><a href="https://www.amazon.com/dp/0691181314">Calculus Reordered</a></em>, which argues among other things that the conceptual basis of integration&#8212;as accumulation of thin slices&#8212;is a more intuitive starting point than tangents to a curve or rates of change. This was certainly the case for Archimedes, who computed volumes this way two millennia before Fermat and Descartes started finding tangents.</p><p>Talk to high school math teachers, and you&#8217;ll see that it&#8217;s also problematic to start with integration: problems can quickly grow too challenging algebraically, deviation from the standard sequence can leave you without much external support, and students can lose motivation when the applications move beyond areas and volumes. </p><p>Of course it&#8217;s not just differentiation vs integration. For any customary &#8220;dependency&#8221; of one topic on another, it&#8217;s quite reasonable to consider the inverse:</p><ul><li><p>If I taught operating systems before computer architecture, would that better motivate the latter?</p></li><li><p>If someone&#8217;s excited to learn about deep learning, should we really tell them to go away and do 5 years of math first? Jeremy Howard vehemently opposes the standard bottom-up approach; his fast.ai course is extremely successful and top down.</p></li><li><p>If my kids learnt physics intuitively at a young age, for instance in the style of Lewis Carroll Epstein&#8217;s <em><a href="https://www.amazon.com/Thinking-Physics-Understandable-Practical-Reality/dp/0935218084">Thinking Physics</a></em>, wouldn&#8217;t this be great motivation for calculus, later?</p></li><li><p>If data structures and algorithms were hypothetically the <em>final </em>course in an undergraduate computer science program rather than one of the first, wouldn&#8217;t students approach it with much more contextual understanding? And would it really be so bad for the others?</p></li></ul><p>Ultimately there&#8217;s no one best way. Ideally each student would bounce between topics based on their specific background and goals, a level of flexibility that&#8217;s challenging for a school but easier in a less structured environment. If the learner is unconstrained by structure and driven to succeed, they&#8217;re served best by the meta skill of knowing when to switch focus from A to B, and when to return to A. Chess grandmasters don&#8217;t &#8220;master&#8221; openings before moving on to middle game and then endgame; all aspects of the game are studied continuously, and each informs the others.</p><p>So why do some learning resources designed for autodidacts&#8212;such as Math Academy, or the generally very good Execute Program&#8212;rely so heavily on dependency graphs? The generous answer may be that it&#8217;s unrealistic for the learner to know an appropriate ordering, and perhaps motivating for them to be shown the &#8220;ideal&#8221;. The cynical answer is that these programs take the idea of mastery learning too far, and have become dogmatic. The hubris of the DAG. After all, it&#8217;d be easy enough to <em>present</em> users with a suggested sequencing without strictly requiring that it be followed.</p><p>This is all part of a broader gripe I have with &#8220;mastery learning&#8221;. At first glance it all sounds well and good: yes surely we should &#8220;provide students with individualized support and repeated opportunities to demonstrate mastery&#8221; before moving on. But what happens if the student is still not passing, say due to poor curriculum design, or insignificant issues like test-taking skills, or simply boredom? Do you tell them to just try harder or give up?</p><p>I recently read Jonathan Watts&#8217; eye opening <a href="https://www.amazon.com.au/Many-Lives-James-Lovelock-Science/dp/1805302876">biography of James Lovelock</a>, a world class scientist who among other things invented the electron capture detector and first observed increased levels of CFCs in the atmosphere. Lovelock nonetheless struggled with basic arithmetic his entire life, requiring some impressive workarounds:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X95A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X95A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 424w, https://substackcdn.com/image/fetch/$s_!X95A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 848w, https://substackcdn.com/image/fetch/$s_!X95A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 1272w, https://substackcdn.com/image/fetch/$s_!X95A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X95A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png" width="548" height="277.7637362637363" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:738,&quot;width&quot;:1456,&quot;resizeWidth&quot;:548,&quot;bytes&quot;:2939316,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.ozwrites.com/i/158876902?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X95A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 424w, https://substackcdn.com/image/fetch/$s_!X95A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 848w, https://substackcdn.com/image/fetch/$s_!X95A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 1272w, https://substackcdn.com/image/fetch/$s_!X95A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd44660-acf8-4e2e-9a3b-16fbf4d00ee3_1830x928.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>How would &#8220;mastery learning&#8221; have treated James Lovelock? The school system was bad enough already; thankfully he had the confidence to endure its poor judgment of him for long enough to prove himself in other ways. But if you were to place elementary school arithmetic on a dependency graph of <em>all of mathematics</em>, it is surely a very early vertex. If someone like Lovelock simply could not progress from there, it is a failure of the learning system, not the individual.</p><h2>Social movements are good, actually</h2><p>Despite these structural issues with Math Academy, it is still a great option for many learners, as evidenced by hundreds of happy users and frequent rave reviews. I wish Pershan and the other detractors had at least acknowledged this: all these students are now doing math on a regular basis, when they simply weren&#8217;t previously. What reason could we possibly have for discouraging them?</p><p>Sure, much of the positive sentiment is due to buzz. Somebody may read a Twitter thread by a Math Academy employee and test it out. They enjoy the feedback loop for a while and recommend it to others. Before long, people are recommending the program without even trying it, based on a halo of novelty and general social interest. A textbook may be much better than the corresponding Math Academy course but unlikely to generate the same level of hype.</p><p>But this is fine, even good. We are social animals, often with social motivations. It can be fun to participate in something that others are excited about, and buzz can help provide the activation energy for trying something new. Some people will stick with it for a long time, others cancel after a month, but this is simply how things are with educational products: everyone arrives with different context so no single resource will be universally ideal. If social buzz encourages a few more people to try it, great.</p><h2>Understanding the glories of civilization</h2><p>I&#8217;m not very socially motivated, myself. I&#8217;m glad that the hive mind suggested I try Math Academy, but social buzz and leaderboards won&#8217;t sustain my interest for long. Nor are points, streaks or other game mechanics. These may provide a little activation energy, but if I&#8217;m going to invest hundreds of hours into learning something hard, and retain what I&#8217;ve learnt a decade later, the motivation must come from elsewhere.</p><p>Every person has their own mix of motivation and the last thing I want to do is to judge another&#8217;s. But speaking personally, if a book promises to help me grapple mathematically with <em>the chief glories of Western civilization</em>, now THAT might sustain my interest.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lFYS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lFYS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lFYS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lFYS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lFYS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lFYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg" width="548" height="411" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:548,&quot;bytes&quot;:1280936,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.ozwrites.com/i/158876902?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lFYS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lFYS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lFYS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lFYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F203f4b9c-7258-49ab-9682-2c62469f256a_4032x3024.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is from the introduction to <em>Differential Equations with Applications and Historical Notes </em>by George F. Simmons, a book as close as possible to perfect, for me, for this topic. It is not just motivating but stirring, driving, elevating. By math textbook standards, it overflows with fascination, excitement, even love.</p><p>The Simmons treatment is so vibrant that something like Math Academy sits lifeless in comparison. It feels rude to use them side by side. But that&#8217;s likely what I&#8217;ll do.</p><p>My fundamental gripe with Math Academy is that it overstates the value of procedural fluency. I wish they would conceded this, and at least suggest conceptually rich Simmons-tier books as supplements. Personally, I see the textbook or lecture series as core and Math Academy as the supplement, for extra drilling where needed, like a digital Schaum&#8217;s Outline. Resources like these are <a href="https://newsletter.ozwrites.com/p/skipping-ahead-to-the-problems">highly worthwhile</a> but ultimately limited, so if you&#8217;re taking responsibility for the outcomes of your study effort, you should remember to mix and match as needed.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.ozwrites.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Oz&#8217;s Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[November ramble]]></title><description><![CDATA[AI coding assistants, teaching kids to code, and general updates and recommendations]]></description><link>https://newsletter.ozwrites.com/p/november-ramble</link><guid isPermaLink="false">https://newsletter.ozwrites.com/p/november-ramble</guid><dc:creator><![CDATA[Oz Nova]]></dc:creator><pubDate>Tue, 12 Nov 2024 19:15:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TUME!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91306439-1ce8-4506-ab71-47bde2101a95_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I briefly tried mooting in school&#8212;a long and embarrassing story. One piece of advice I still remember is that it doesn&#8217;t matter how long you take to think before you talk, as any silence will be forgotten as focus shifts to the profundity of your remark. Of course, this assumes something about the effectiveness of one&#8217;s silent thinking. Did I already mention that it&#8217;s an embarrassing story?</p><p>&#8230; anyway, it&#8217;s been a while since the last of these newsletters! Instead of trying to sound profound enough to make up for the silence, I&#8217;m going to try a new format that should be easier both for me to write and for you to skim.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.ozwrites.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Oz&#8217;s Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Thoughts on AI coding assistants</h2><p>I generally prefer not to comment on software development practices, because of something I&#8217;ve observed often enough that it feels like a law: <em>for every excellent engineer who swears by a particular practice, there&#8217;s an even better one who swears by the opposite. </em>Some people couldn&#8217;t imagine coding without unit tests, or code review, or continuous integration, or step-through debugging, or [your preferred &#8220;best practice&#8221;]. Yet, there are people out there who do the exact opposite and outperform us all.</p><p>But people keep asking for my take on AI coding assistants, and with the caveat, again, that there are better programmers than me at <em>both</em> ends of this spectrum, here is my current practice.</p><p>For almost all meaningful tasks, I don&#8217;t use AI. I use my brain, pen and paper, a minimally configured text editor, and something to run my code. I don&#8217;t like something like Cursor for most tasks as it feels like a distraction, as if I&#8217;m pair programming with an intern with great recall but poor judgment. To compensate for my imperfect memory, I mostly stick to my ingrained habits of reading official docs, man pages and source code, or just running quick experiments.</p><p>I <em>have</em> enjoyed using Cursor&#8212;or more often just Claude via the website, since I don&#8217;t usually want a whole new editor&#8212;for smaller projects, like translating short programs into an unfamiliar language, writing throwaway personal tools, or learning a new library or domain, where I can ask a lot of questions and run faster experiments. I know that the &#8220;poor judgment&#8221; aspect of the LLM is still problematic here, and that I may have to update my mental models as I go, but I see that as an unavoidable part of learning anyway. I would  far prefer an expert human pairing partner for such things, but they too will teach me imperfectly, and in any case there&#8217;s not always one around.</p><p>I&#8217;m also aware that I have some baggage, or &#8220;experience&#8221;, however you prefer to think about it. Some people are writing their first line of code today with LLM assistance; I wrote mine without an internet connection. Google came later, as did Stack Overflow, as did ubiquitous small open source projects. In each case I could make a conscious decision about the extent to which I would use the new thing&#8212;often substantially, but rarely as much as those who arrived after the new-to-me thing was commonplace.</p><p>My path isn&#8217;t optimal, it&#8217;s just the one I happened to take. For somebody learning today, it may well be the case that prudent use of an in-editor LLM for rapid Q&amp;A will expedite their journey. Jeremy Howard&#8217;s new course <a href="https://solveit.fast.ai/">How To Solve It With Code</a> seems to be an earnest exploration of this possibility, so I look forward to working through it, and to seeing similar efforts.</p><h2>Will LLMs substantially change the industry?</h2><p>Software engineering tends to take its greatest strides from one major abstraction to another. These are innovations like the stored program, the compiler, the relational database system, and the process abstraction in operating systems. These dramatically changed the kind of work we could do&#8212;not to mention the constitution of the labor force&#8212;by packing a great deal of functionality behind a high leverage interface that could still be pierced as required.</p><p>My favorite example is Fortran, or more broadly &#8220;high level&#8221; (higher than assembly) programming languages. When Fortran, COBOL and Lisp all showed up in the late 50s, it was clear that programming would never be the same again: programmers would no longer require an intimate understanding of the machine; they could think in terms of the high level language (&#8220;formulas&#8221; in the case of Fortran) and have that be compiled or interpreted. As early as 1954, Fortran&#8217;s lead designer John Backus imagined that this should <a href="https://x.com/oznova_/status/1646690055824748544/photo/1">virtually eliminate coding and debugging</a>, and he wasn&#8217;t entirely wrong. Coding as he knew it is now extremely rare. Very few people write much assembly. </p><p>But these languages and there descendants were very thoughtfully designed, the compilers are understandable without strictly <em>needing</em> to be understood, the disassembly can still be generated and stepped through one instruction at a time if necessary. These are phenomenal abstractions.</p><p>I would ask LLM hyperenthusiasts to question the degree to which LLMs are good abstractions, or can be incorporated into good abstractions in the future. Perhaps we end up with programming languages designed as LLM targets, where it&#8217;s easy to prompt engineer in front of this abstraction, and to debug deterministically behind it when needed. But these have not yet been invented, and it remains to be seen whether such a target language could be mostly ignored in a way comparable to a compiler&#8217;s output or intermediate representation.</p><p>If such abstractions don&#8217;t eventuate, LLMs may end up only as <em>tools</em>, with an impact comparable to IDEs or Stack Overflow, but well short of the hype.</p><h2>Teach Yourself CS updates</h2><p>I&#8217;m planning a major round of updates to <a href="https://teachyourselfcs.com">teachyourselfcs.com</a> around the end of the year, focused on clarifying context for topics and resources that come across as &#8220;pre-requisites&#8221; like SICP for programming, or broadly the topic of mathematics for computer science. A major failure mode I see with those using the curriculum is that they hit a roadblock on a topic they see as necessary for one they&#8217;re actually interested in, and give up rather than either persevering or skipping ahead.</p><p>I&#8217;m also planning to refresh some of the specific suggestions. On my radar are Andy Pavlo&#8217;s intro databases course, John Denero&#8217;s Composing Programs for introductory programming, the Kurose and Ross lecture recordings for networking, and a few others. If you have a favorite resource not yet on Teach Yourself CS, or another suggestion, this is a good time to send it through!</p><p>I&#8217;d also like to add some more self-guided project suggestions for those not able to commit to CS Primer. This is the biggest failure mode I see with Teach Yourself CS: grinding through textbooks and video lectures without consolidating that knowledge with projects and exercises.</p><h2>CS Primer updates</h2><p>My content production work on <a href="https://csprimer.com">CS Primer</a> is progressing decently, although slower than I&#8217;d like as usual. Since last newsletter I&#8217;ve cleaned up a number of existing courses, released an early version of <a href="https://csprimer.com/courses/programming/">Programming: Beyond the Basics</a> and am progressively releasing the <a href="https://csprimer.com/courses/databases/">Relational Databases</a> course, where the major project sequence is to write your own from scratch!</p><h2>Jason&#8217;s MLE club</h2><p>Former Bradfield student Jason Benn has been running a sabbatical/study club for machine learning engineers, meeting in person in San Francisco. <a href="https://mleclub.com/">Check it out</a>, or see the podcast episode with Jason below for a little context.</p><h2>Book recommendations</h2><p>My favorite non-fiction book I read since last writing was <em><a href="https://www.amazon.com.au/dp/1439148813">Failure is Not an Option</a></em> by Gene Kranz, flight director for many of the Mercury and Apollo missions including Apollo 11 and Apollo 13. It&#8217;s a fascinating view of the first era of space exploration, best paired with a pilgrimage to see the Saturn V at Kennedy Space Center. I speak about this a little with Charlie in a podcast recording, linked below.</p><p>My favorite fiction book over this period was <em><a href="https://www.amazon.com.au/Project-Hail-Mary-Andy-Weir/dp/0593135202">Project Hail Mary</a> </em>by Andy Weir, an extremely fun read, with much of the engineering napkin math style of The Martian, but also some quite interesting exploration of communication with an alien life form.</p><p>Some honorable mention recent reads:</p><ul><li><p><em><a href="https://www.amazon.com.au/Reentry-SpaceX-Reusable-Rockets-Launched/dp/1637745273">Reentry</a></em>, on the start of the (hopefully) second space age</p></li><li><p><em><a href="https://www.amazon.com/Wright-Brothers-David-McCullough/dp/1476728755">The Wright Brothers</a> </em>for clarity around how they actually managed to invent powered flight. Best paired with a visit to the National Air and Space Museum.</p></li><li><p><em><a href="https://www.amazon.com/Metals-Service-Man-Street/dp/0140148892">Metals in The Service of Man</a> </em>covering just about the perfect scope of what I wanted to know about metallurgy</p></li></ul><h2>Podcast recordings</h2><p>In case you need to fill the void, here are some podcast recordings since the last newsletter:</p><ul><li><p><a href="https://www.youtube.com/watch?v=C7WZ7bqijNM">When failure is not an option</a> mentioned above</p></li><li><p><a href="https://www.youtube.com/watch?v=gXN-UoA7-3U">Jason Benn&#8217;s path to ML engineering</a></p></li><li><p><a href="https://www.youtube.com/watch?v=Yu0IwiNh0qI&amp;t=10s">Making the easy things harder (with Madison Kanna)</a></p></li></ul><h2>Teaching kids to code</h2><p>Thorsten Ball asked me to share a little about how I&#8217;m teaching my kids to code. We are in the early days but so far I&#8217;ve really liked <a href="https://app.codemonkey.com/courses">CodeMonkey</a> for its thoughtful skill progression and balance between substance and kid-friendly whimsy. It starts with <a href="https://lightbot.lu/">Lightbot</a> style icon-based programming puzzles (good for 3+ year olds) and progresses through Scratch style block coding, to short puzzles in CoffeeScript (don&#8217;t laugh, it&#8217;s great for young and old) and Python.</p><p>With this basic competency in Scratch, my 5 year old was then able to make a few games, mostly riffing off those in the book <em><a href="https://www.amazon.com/Coding-Games-Scratch-Carol-Vorderman/dp/0593841867/">Coding Games in Scratch</a></em>, generally with me my her side to debug as she went. It may not seem like &#8220;real learning&#8221; to copy 80% of a program from a book, but you may be surprised how many coders of my vintage first learned to code by tying in QBASIC games from a magazine, or using &#8220;view source&#8221;. </p><p>At this point my 3 year old is dabbling in CodeMonkey puzzles, mostly motivated by her big sister. She may have only put in a few hours, but she does have a basic intuition for loops and procedures in a way that&#8217;s typically achieved much more circuitously through the &#8220;computational thinking&#8221; offline games and activities typically pitched to this age range.</p><p>My 5 year old is currently doing simple Python programming, with a mix of the CodeMonkey challenges, a book <em><a href="https://www.amazon.com/Coding-Projects-Python-DK/dp/1465461884">Coding Projects in Python</a></em> and of course a little direct tutoring from dad. For anybody who has taught their kids Python, I&#8217;d appreciate any tips for knocking off the sharp edges while using real tools, so that we can keep progressing. At the moment we are using VS Code for a little linting and tab completion, but I haven&#8217;t thought much about configuring it for a kid.</p><p>Overall the core of my pedagogy is trying to find the right challenge for that learner at that time. It&#8217;s rarely a good idea to dump information on somebody&#8212;particularly a kid!&#8212;but it&#8217;s also problematic to just provide an open-ended &#8220;learning environment&#8221; and hope for a good feedback loop. So while some kids can do ok with information-heavy resources at one end or a constructionist playground like Scratch at the other, I think most are going to thrive on something in the middle: a sequence of challenges, or somewhat structured mini projects, or a mix.</p><h2>Synthesis &#8220;AI tutor&#8221; is not bad</h2><p>I mostly avoided <a href="https://tutor.synthesis.com/">this product</a> because I can&#8217;t imagine a good &#8220;AI tutor&#8221; at our current level of AI capability. Thankfully it appears that the use of AI is well restrained, and the positioning is mostly for hype. In practice, there&#8217;s a fairly thoughtful sequence of mostly multiple choice prompts around interactive widgets, to teach topics like number systems and arithmetic. The prompts are somewhat responsive&#8212;mostly by way of decision trees, and sometimes with a text field allowing for natural language input. My 5 year old quite enjoys it, and is currently using it alongside her long running favorites Beast Academy and Matific.</p><p>This is a good use of current capabilities in my view, and allows for a substantially better experience than less interactive substitutes such as Khan Academy and the like. It is of course no replacement for a good tutor, but again, it&#8217;s right there, and cheap, and can be done with my loose supervision rather than full attention.</p><p>Overall I quite like this approach of focusing on core instructional design, but using LLMs (I presume) to allow for higher interactivity and reduced friction. I previously explored a similar design&#8212;with mostly pre-scripted responses, but LLM-based classification of user input and some highly targeted LLM generated feedback&#8212;in unpublished prototypes, one for geometric construction and another for a software library. I didn&#8217;t continue these mostly for lack of time, but I think it would be particularly great for learning to code, or similar scenarios that involve basic guided feedback on an artefact. If you are interested in working on something like this, let me know.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.ozwrites.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Oz&#8217;s Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Skipping ahead to the problems]]></title><description><![CDATA[Balaji's simple technique for highly effective self-teaching]]></description><link>https://newsletter.ozwrites.com/p/skipping-ahead-to-the-problems</link><guid isPermaLink="false">https://newsletter.ozwrites.com/p/skipping-ahead-to-the-problems</guid><dc:creator><![CDATA[Oz Nova]]></dc:creator><pubDate>Sat, 18 May 2024 17:21:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Quick note: my family and I will be in the US for June, July and August. <a href="https://twitter.com/oznova_/status/1791548913599856653">Here&#8217;s our rough itinerary</a>. Please let me know if you&#8217;d like to catch up or have me visit your company. If your a Bradfield alum, we&#8217;ll have a get together on June 1st at the Computer History Museum in Mountain View, <a href="https://docs.google.com/forms/d/e/1FAIpQLSfWZwjUCzuTaT8e6Oh9GqOZ2MYvMBsokxTo8w3VtqAk7NUTng/viewform?usp=sf_link">RSVP here.</a> I&#8217;ll also likely do an informal live class in SF on June 27th, details TBD.</em></p><div><hr></div><p>I worked briefly at Counsyl, a genetic testing company founded by Ramji and Balaji Srinivasan. I was burnt out before starting so mostly wasted the opportunity to learn from these immensely capable brothers, but I did pick up a thing or two worth sharing.</p><p>From Ramji, I learnt &#8220;list, rank, iterate&#8221; the world&#8217;s most effective operational strategy that hardly anyone uses. Balaji explains it in <a href="https://conversationswithtyler.com/episodes/balaji-srinivasan/">this Conversation with Tyler</a>. </p><div id="youtube2-sFVBpiej8Hk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sFVBpiej8Hk&quot;,&quot;startTime&quot;:&quot;2942&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/sFVBpiej8Hk?start=2942&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>I also observed a master CEO at work: somehow Ramji could identify the company&#8217;s biggest problem, rebuild himself into just the leader who could solve it, then do it again every 6 months until he sold the company to Myriad Genetics for $375 million.</p><p>You can&#8217;t build a biotech company through operational effectiveness alone, though. You also need a mad scientist! Thankfully there was one in the family: Counsyl started thanks to a genetic testing technique invented by Balaji combining his expertise in genomics, chemical and electrical engineering, software and statistics. </p><p>I had assumed he&#8217;d <em>been taught</em> what he knew, at Stanford, a place he talks of very fondly. I figured he&#8217;d encourage others to do the same. Coming into a genomics company with little background in science, I proposed to him that I might attend his alma mater in the evenings to fill some gaps and maybe pursue a masters degree.</p><p>He told me that would be a colossal waste of time. Why not just teach myself? I was surprised to learn that this is what he&#8217;d done himself from a young age, achieving mastery of multiple challenging fields, and that he loved Stanford for the ethos more than the education. From Balaji, I learnt how much it is possible to teach oneself.</p><p>This is how he suggested I go about things: get a textbook and open it up to the problems. Do them. You might be surprised, he said, how much you can figure out yourself. Only when I got stuck should I consider reading the prose. Keep solving the problems maniacally, and one set of techniques will unlock another.</p><p>I was too distracted to fully heed his advice at the time, but I&#8217;ve carried it with me, and it&#8217;s the primary way I approach self-teaching now. I seek out textbooks with thoughtful problems, or that directly help me solve one that&#8217;s been bugging me. I ignore any unsolicited explanatory material, like a MOOC that &#8220;looks interesting&#8221; or a book on a topic I &#8220;should learn&#8221;. If I encounter a problem set, challenge, project idea or just a juicy question, I will file it away for later.</p><p>Balaji was particularly fond of a series of books <a href="https://www.mhprofessional.com/schaum-s/schaum-s-outlines?limit=24&amp;p=7">Schaum&#8217;s Outlines</a>. This surprised me, as they&#8217;re basically cram books marketed at overwhelmed college students. Their authors are qualified but not particularly distinguished, and the prose is generally uninspired, but each has hundreds of worked problems! If you agree that learning organic chemistry, say, is ultimately about being able to solve problems involving organic chemistry, then this kind of practice is surely more effective than watching a lecture.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M4AB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M4AB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 424w, https://substackcdn.com/image/fetch/$s_!M4AB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 848w, https://substackcdn.com/image/fetch/$s_!M4AB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 1272w, https://substackcdn.com/image/fetch/$s_!M4AB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M4AB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png" width="1456" height="1454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1454,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2230844,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M4AB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 424w, https://substackcdn.com/image/fetch/$s_!M4AB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 848w, https://substackcdn.com/image/fetch/$s_!M4AB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 1272w, https://substackcdn.com/image/fetch/$s_!M4AB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c2f98c-3267-435a-a675-77c757ec07ec_1472x1470.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Ronnie Coleman: &#8220;Everybody wants to be a bodybuilder, but nobody wants to lift no heavy-ass weights.&#8221;</figcaption></figure></div><p>I can&#8217;t vouch for the quality of any given Schaum&#8217;s book. In fact, the corresponding Schaum for any given topic is unlikely to be the absolute best book: <em><a href="https://www.amazon.com/One-Thousand-Exercises-Probability-Third/dp/0198847610">One Thousand Exercises in Probability</a></em> is probably better than the Schaum&#8217;s equivalent. But the Schaum&#8217;s books are cheap, easy to find, and often a fast track to competency. Perhaps they will work as well for you as they did for Balaji.</p>]]></content:encoded></item><item><title><![CDATA[The problem with education]]></title><description><![CDATA[And a solution: problems]]></description><link>https://newsletter.ozwrites.com/p/the-problem-with-education</link><guid isPermaLink="false">https://newsletter.ozwrites.com/p/the-problem-with-education</guid><dc:creator><![CDATA[Oz Nova]]></dc:creator><pubDate>Sat, 27 Apr 2024 09:29:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CZPd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you want to melt iron, you need an extremely hot fire. This wasn&#8217;t possible for most of history, so iron was <em>wrought </em>(literally &#8220;worked&#8221;) by laboriously beating at spongy lumps of iron and slag produced in a basic furnace called a bloomery.</p><p>This eventually changed with the invention of the blast furnace, but unfortunately the resulting cast iron was too brittle for many applications. It wasn&#8217;t until the development of the Bessemer Process in the 1850s that we could control the carbon content of molten iron reliably enough to make steel.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CZPd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CZPd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 424w, https://substackcdn.com/image/fetch/$s_!CZPd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 848w, https://substackcdn.com/image/fetch/$s_!CZPd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 1272w, https://substackcdn.com/image/fetch/$s_!CZPd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CZPd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png" width="667" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:667,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:901526,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CZPd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 424w, https://substackcdn.com/image/fetch/$s_!CZPd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 848w, https://substackcdn.com/image/fetch/$s_!CZPd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 1272w, https://substackcdn.com/image/fetch/$s_!CZPd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0030167-3042-48f7-8be2-a4e1611c30a3_667x576.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Working an iron bloom. Seems like hard work but what other choice is there? Image credit: metalcastinginstitute.com</figcaption></figure></div><p>What I find fascinating about this history is that for 3,000 years, ironsmiths were just banging away at slag, oblivious to the fact that we would eventually find a much better method. This is the crazy thing about technology. There can be an obvious and universal way of doing something, until it isn&#8217;t. Just imagine yourself hammering iron blooms in the tradition of generations of smiths before you&#8230; what would prompt you to even contemplate doing things differently?</p><h2>Better technique, better results</h2><p>I like to ask people what they think is &#8220;the problem with education&#8221;. It&#8217;s a fun way to get a glimpse of their general worldview. Perhaps it&#8217;s an unfair question but everybody seems to take for granted that there is in fact a problem, and typically just one big one.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x0yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x0yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 424w, https://substackcdn.com/image/fetch/$s_!x0yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 848w, https://substackcdn.com/image/fetch/$s_!x0yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 1272w, https://substackcdn.com/image/fetch/$s_!x0yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x0yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png" width="587" height="196" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:196,&quot;width&quot;:587,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36988,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x0yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 424w, https://substackcdn.com/image/fetch/$s_!x0yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 848w, https://substackcdn.com/image/fetch/$s_!x0yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 1272w, https://substackcdn.com/image/fetch/$s_!x0yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F472fee88-cd99-48c5-aa3d-e9fbec537f1d_587x196.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>Depending on who I ask, the problem is that there&#8217;s too little school choice, or too much of it, or that the elites are too progressive or too conservative, or that we need to pay teachers more or dismantle their unions. Like I said, it&#8217;s a fun question.</p><p>The most interesting answers to me are technological, in the broad sense of &#8220;technology&#8221; as a repeatable technique, like pumping air into a blast furnace. I&#8217;m generally not swayed by the political arguments, because education is so <em>broadly ineffective</em>. We tend to be bad at teaching things both within and outside of traditional systems, whether or not the state in question has a voucher system, and so on.</p><p>The technological answers are exciting though because they suggest that we may be just one idea away from a breakthrough. We may be able to <em>get better results</em> simply by<em> doing a better job</em>.</p><h2>Have you tried not blurting out the answer?</h2><p>An acquaintance of mine runs a coding interview platform. When LLMs started taking off, they trialed an LLM based interviewer, but it failed somewhat comically: if a candidate showed any sign of struggle, the LLM would just blurt out the answer.</p><p>This is a major barrier to LLM use in education, too. We&#8217;d like AI tutors to debug student misconceptions and ask well-calibrated questions, like an expert tennis coach feeding balls with just the right amount of spin. Unfortunately they tend to prefer reeling off explanations, so the hard work falls on the user.</p><p>In fairness to AI tutors, human educators rarely do much better! Most lecturers just lecture. Most textbooks just explain. Standardized curricula lay out bodies of knowledge as a sequence of foregone conclusions: this is how you manipulate algebraic symbols, this is how you factor polynomials, this is how you differentiate them, and so on. Exercises tend to just check whether you were listening. Factor the given polynomials.</p><p>This is the standard way of teaching: we want students to know X so we tell them X. It seems like it should work, and in a way it does, like whacking iron blooms repeatedly with a hammer. It is true that some people manage to learn mathematics this way, but it is rare. If you don&#8217;t believe me, try factoring a polynomial.</p><h2>Have I mentioned nand2tetris yet?</h2><p>There are some educational resources that I can&#8217;t help but recommend over and over again, to the point where students joke about having them on their bingo cards. These are things like <a href="https://www.nand2tetris.org/">nand2tetris</a>, or <a href="https://store.steampowered.com/app/684270/Silicon_Zeroes/">Silicon Zeroes</a> and the <a href="https://www.zachtronics.com/shenzhen-io/">Zachtronics games</a>. Among programming books, those like <em><a href="https://mitpress.mit.edu/9780262560993/the-little-schemer/">The Little Schemer</a></em>, with a thousand tiny questions. Among textbooks, those that are project oriented, like <em><a href="https://codingthematrix.com/">Coding the Matrix</a>. </em>Perhaps a dozen sites full of problems: <a href="https://projecteuler.net/">Project Euler</a>, <a href="https://exercism.org/">exercism</a>, <a href="https://cryptopals.com/">cryptopals</a>. Outside of computing, I keep raving about <em><a href="https://www.cavemanchemistry.com/">Caveman Chemistry</a></em>, which is like nand2tetris for the physical world.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-tf_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-tf_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-tf_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-tf_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-tf_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-tf_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:542761,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-tf_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-tf_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-tf_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-tf_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ee9fdf-4497-4f23-8ff7-389efb5d0b7f_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Would you rather read about branch prediction or build an intuition for it through a fun game?</figcaption></figure></div><p>What makes all of these resources wonderful is that they don&#8217;t blurt out the answers. Each is a well designed set of challenges, problems, questions: ultimately, learning stimulus. They are fun, and in working through them you learn their subject matter enjoyably and authentically. <em>The Little Schemer</em>, is full of cartoons and starts very gently, but by the end you will have implemented a meta-circular evaluator.</p><p>Sadly, these resources can be hard to produce and challenging to cater to a broad audience. Many people find Project Euler too mathy, for instance, and give up after a problem or two, but one non-programmer friend to whom I recommended it disappeared for a few weeks and remerged as a highly capable coder. These challenges of problem-based education resources I see as akin to the brittleness of cast iron: something to be aware of and work around, through further innovation.</p><h2>CS Primer is Generally Available</h2><p>All of this is my uniquely convoluted way of announcing that <a href="https://csprimer.com">CS Primer</a> is now generally available, after over a year of paid beta. I am aware that writing this at the end of a rambling article is not optimal in terms of marketing, but I wanted to give you better context on why I designed it this way.</p><p>The biggest problem with how we teach, in my opinion, is that we use the blunt force tool of simply telling students what we think they should know. This is not nearly as effective, in my experience, as setting up a sequence of well calibrated challenges: at least questions, but ideally exercises or projects that are authentic to the topic being studied. For systems focused computer science, this means programming problems, so these are the backbone of CS Primer. I have included my best problems from teaching these topics in person and seeing what students find most rewarding.</p><p>At the same time, I&#8217;m well aware of the hazards of building an entire CS curriculum around programming problems. Most importantly, nobody should get stuck on a problem and left to flail. My attempt to address these challenges is to include full video walkthroughs to all of the problems, structured with hints and stretch goals to allow students to calibrate the difficulty for themselves. When progress on a problem requires a piece of conceptual understanding, that&#8217;s when I provide a short explanation, as a JIT supplement to the walkthrough. If that&#8217;s not enough, I&#8217;m available via Discord and office hours.</p><p>I&#8217;ve now given this treatment to four courses: algorithms and data structures, computer architecture, operating systems and networking. For most software engineers this will take a year or two to work through in earnest: there are over 100 hours of recorded content but of course it&#8217;s more about the time that you spend solving the problems, than watching me do the same. I&#8217;m still working on a few remaining courses but I&#8217;m happy with what&#8217;s there and excited to release general availability! There are many possible ways to learn computer science but this is the most effective way I could imagine for those who can already code, while still being self-paced and so affordable to students worldwide.<br><br>If you choose to <a href="https://csprimer.com">sign up</a>, I hope you find it challenging and rewarding. Good luck with the problems!</p><p></p>]]></content:encoded></item><item><title><![CDATA[Transitions]]></title><description><![CDATA[Somehow our lives are defined both by periods of consistent progress and by dramatic transitions.]]></description><link>https://newsletter.ozwrites.com/p/transitions</link><guid isPermaLink="false">https://newsletter.ozwrites.com/p/transitions</guid><dc:creator><![CDATA[Oz Nova]]></dc:creator><pubDate>Tue, 26 Mar 2024 21:47:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TUME!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91306439-1ce8-4506-ab71-47bde2101a95_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Somehow our lives are defined both by periods of consistent progress and by dramatic transitions. I want to write about a major personal transition, but more on that later.</p><p>You may be wondering, what is the transition that brought us here? I'm not referring to existence or anything, I just mean this Substack. Was your email address sold to a surprisingly long-winded spammer? Did you sign up for it in a transitional moment of weakness? No, loyal reader, it was the kind of transition known as a <em>migration</em>: I was paying a substantial amount of money to maintain a mailing list which I emailed infrequently, whereas Substack figured out how to store 11,154 rows in a database for much less than $50/month, so here we are. You may have signed up via <a href="http://teachyourselfcs.com">teachyourselfcs.com</a> or the Bradfield website. If you'd rather not receive these, that's totally fine by me! There's a link to unsubscribe at the bottom.</p><h1>Career transitions</h1><p>My job since 2015 has been to teach computer science, mostly to those who transitioned into software engineering from another field.</p><p>Software as an industry is fantastic and dysfunctional mostly for the same reason: we don&#8217;t have a professional body to maintain any kind of standard of professional practice. We're simply not a profession. If you want to be a civil engineer in the US, you need to complete an accredited degree program then pursue certification overseen by the American Society of Civil Engineers. To be a <em>software</em> engineer, you need to grind Leetcode until you can performatively solve "medium" difficulty dynamic programming problems. Or, you can just start calling yourself a software engineer, maybe make a portfolio website that says "I'm not a charlatan, I even did a Rust tutorial", and start sending out resumes.</p><p>Sometimes I wonder if our software systems might be of a higher standard if we had more gatekeeping. But then I think about doctors and lawyers and public school teachers and snap out of my daydream. Even if we could improve software quality a little by decertifying the occasional reprobate (I see you "serverless" folk avoiding eye contact right now) it would undermine what's really great about what we do: practically anybody can learn to write software, given enough motivation, and practically any of those people can bring a lot of value to the world, or at least their families and 401K balances, by doing so.</p><p>I was never in the business of helping people with this particular transition, but I was fortunate to see it happening. While I was CTO of Vida Health, my friend Myles was teaching at one of the first coding bootcamps, and it was he who convinced me that a lot of talented people were entering the industry this way. <a href="https://www.youtube.com/watch?v=vDF22YXGUuA">I hired one of them</a> (Omar), helped him learn a little computer science on the job, then quit to spend the next 8 years helping other non-traditionally educated engineers do the same. I've sometimes described this as joining my students for a few steps on their journeys. I would love to take credit for their sometimes spectacular success, but if anything I show up <em>right after</em> they've done the hard work.</p><h1>Your transitions</h1><p>I'm constantly inspired by the leaps of faith that my students have taken. Omar was an ophthalmologist, in Spain, with kids. While sure, he's the only former Spanish ophthalmologist dad turned Senior Staff Software Engineer I'm aware of, many others left equally comfortable career tracks to find their respective callings in software. Among those who worked their way into web development, many ventured out once more to challenging specialty areas like performance engineering, platform and infrastructure work, security, even <a href="https://www.youtube.com/watch?v=jwfTvyM76KY&amp;t=16s">quantum computing</a>.</p><p>Perhaps there's a degree of survivorship bias, but I struggle to think of cases where somebody took too much of a risk, quit their job too soon, or was too ambitious with their next set of career goals. When somebody asks me for advice on a potential transition like this, I'm always honest about what it might take: are they ready, for instance, to learn the math required for that machine learning researcher role they&#8217;re interested in? But I also point out: even when you fail to achieve your goal, you are likely to have ended up somewhere better than where you started. Very few people invest in themselves once they have established, well-paying careers. Almost nobody studies in their 30s. If you take some time off to work through some textbooks or tinker with a programming project or two, you're almost certain to end up ahead.</p><p>So why are career risks so underrated, particularly in computing? Frankly, I think many of us feel like things are too good to be true, that we don't want to risk our enviable, cushy L-whatever positions for something indulgent like the thrill of a major technical challenge.</p><p>But life is short. You should learn about what excites you and direct your productive energy to where it can have the most impact.</p><h1>My transition</h1><p>After 8 years of running the Bradfield School of Computer Science, I have decided to send it a SIGTSTP. While I may SIGCONT it at some point, my current plan is to stop teaching live classes once the current cohort graduates in a few months.</p><p>It feels strange to stop something that&#8217;s running so well: each year the curriculum is better, the brand is stronger, we teach more effectively and students get more value. So why stop now?</p><p>Simply put, I feel acutely aware that life is short, and would like to learn about what excites me and direct my productive energy where I can have the most impact. Most notably, <a href="https://csprimer.com">CS Primer</a> is my ongoing attempt to adapt all of the best parts of live Bradfield classes to a more affordable self-paced format. My goal with Bradfield was to be the best place for self-taught engineers to learn foundational, systems-focused computer science. While many students felt that Bradfield achieved precisely that, the structure of live small group instruction would always make it inaccessible to many of the people who would benefit the most. So I would like to dedicate myself to CS Primer, and then to other educational projects that could operate at a broader scale.</p><p>That said, it has been a tremendous privilege to share a few steps on the journey of each individual student we have had. A little over 1,000 of you took our classes; many of you investing hundreds of hours of your time. I have always felt honoured by your commitment, and I hope we did it justice. The hardest thing about this decision is knowing how much I&#8217;ll miss being in the classroom with you all, having fun while we learn a little computer science together.</p><p>To the instructors who taught alongside me over the years: Brian Spiering, Haseeb Qureshi, Tim Olshansky, Tom Alcorn, Tom Ballinger, Tyler Bettilyon, Xavier Shay&#8230; a heartfelt thank you for your commitment to the cause, and for everything you did for your students. An extra special thank you to Myles Byrne, without whom this all simply wouldn&#8217;t have started, and to Elliott Jin, my fellow traveler to the end. I am forever grateful.</p><h1>Awkward transitions</h1><p>Oh, umm, while you&#8217;re here:</p><ul><li><p>If you&#8217;re a former Bradfield student and would like to leave a short reflection on the website <em>in memoriam</em>, please <a href="https://docs.google.com/forms/d/e/1FAIpQLSfQ-UrGN9heMkdwSAS12YCl6hGmljgzLR5-q8KXshyoTuoX3Q/viewform?usp=sf_link">write it here</a>. I thought this would be a nice way to leave the website, and also leave a good impression with any recruiters or hiring managers who see Bradfield on a resume.</p></li><li><p>I'll be in the US in June, July and August. My final Bradfield class will be in person, and likely open to everybody. I'll also host an alumni trip to the Computer History Museum in Mountain View. Stay tuned here for updates, if you'd like to join.</p></li><li><p>Charlie and I did a number of podcast interviews since my last email, including with some amazing folk like <a href="https://www.youtube.com/watch?v=_JA04KfD7a4">Thorsten Ball</a>, <a href="https://www.youtube.com/watch?v=FuJUnzYeYTE&amp;t=16s">Zach Latta</a>, <a href="https://www.youtube.com/watch?v=7gQmRk_4BqU&amp;t=3695s">Brandon Hendrickson</a>, <a href="https://www.youtube.com/watch?v=dvS9GmDWyIU">Brit Cruise</a>, <a href="https://www.youtube.com/watch?v=P_PBQiWrZcg&amp;t=2s">Linda Liukas</a>, <a href="https://www.youtube.com/watch?v=XMr4zBHj1pU&amp;t=1301s">Jimmy Soni and Jon Gertner</a>, and the man, myth, legend and Bradfield alum <a href="https://www.youtube.com/watch?v=f7zMZjMAnro">Richie Artoul</a></p></li><li><p>Speaking of Richie, he announced their <a href="https://www.warpstream.com/blog/the-original-sin-of-cloud-infrastructure">$20M fundraise and plans for world domination</a> with WarpStream. Go, man, go!</p></li><li><p>I wrote <a href="https://ozwrites.com/rfc/">a little thing</a> highlighting some project ideas that I'd be excited to collaborate on if somebody came to me with a lot of their own energy.</p></li><li><p>For those who haven't checked in on <a href="https://csprimer.com">CS Primer</a> for a while, I now have almost all the content up for Computer Systems, Computer Networking, Operating Systems and Algorithms and Data Structures. This is around the halfway point for content, so I'll be launching the general availability release soon after somehow a year in paid beta!</p></li><li><p>Home schooling is going great. My 3yo is learning to read now in much the same way that my 5yo <a href="https://ozwrites.com/3yo-reading">did at the same age</a>, and I'm having a lot of fun doing science projects with both of them. I highly recommend home schooling if you can, even if it's just an hour in the morning or afternoon around school. If you're taking a more active role in your kids education, and would like to join a little Discord server of others, let me know.</p></li><li><p>The best nonfiction book I've read recently was <em>Origins</em> by Lewis Dartnell, the author of one of my all time favorites <em>The Knowledge</em>. On the fiction side, it was <em>Last and First Men</em>, a mind altering work spanning 2 billion years. Both very highly recommended.</p></li><li><p>I'm spending my study energy at the moment on <em>Molecular Biology of the Cell</em>, mostly out of long suppressed fascination, but also with half a notion that I might do some work in computational biology some day. If you are or know of somebody who might give me a little mentorship in this area, please let me know! &#128591;</p></li></ul><p>That's all for now. Thank you everyone &#129761;. Back to your irregular schedule of computer science education and tech news that matters, after this.</p>]]></content:encoded></item></channel></rss>