TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Learnable Programming (2012)

166 点作者 noyesno超过 4 年前

11 条评论

euske超过 4 年前
I teach CS to freshmen. The author keeps telling something is "a wrong question", but I feel that he is tackling a wrong problem. The problems shown here are rather syntactic/superficial - it's mostly a matter of language/tool proficiency. The real problem I commonly see among students is to systematically verbalize a thought that you're initially unaware of - e.g. take the binary search for example. The idea can be easily understood, but realizing that a range can be expressed with two numbers (high & low) is hard. Another example is to enumerate all permutations of given items. It's easy to imagine what are the expected result for a certain input, but it's not easy to describe the systematic process - it'd require some mental leap. These are what many people are struggling with, and something we still don't know how to teach.
评论 #25356431 未加载
评论 #25356221 未加载
评论 #25356228 未加载
评论 #25358044 未加载
评论 #25359640 未加载
glenvdb超过 4 年前
I love this kind of stuff, but it feels like shooting fish in a barrel when the examples used are inherently visual. Lots of programming deals with abstract &quot;things&quot; that don&#x27;t naturally lend themselves to being visualised, and it&#x27;s there that some of the the more difficult challenges of programming exist (perhaps because they&#x27;re difficult to visualise in the first place).<p>I&#x27;d like to see Bret&#x27;s brilliance tackle visualising those types of examples.<p>Maybe most of it simply can&#x27;t be visualised, but I feel like there&#x27;s a lot of unrealised potential in that space.
评论 #25355715 未加载
评论 #25358059 未加载
评论 #25359615 未加载
djmips超过 4 年前
&quot;People understand what they can see. If a programmer cannot see what a program is doing, she can&#x27;t understand it.&quot;<p>I think about this all the time. In my area I see a lot of programmers who don&#x27;t do a great job at writing optimal code but it&#x27;s not because they are lazy or stupid but because they cannot understand something they cannot see. This is why some kind of appropriate visual idiom for efficient core usage and time spent is a necessity in any project that cares about efficiency. I still don&#x27;t think we have found the best visual idiom but we have to keep trying to make obvious visually, the way a computer really works.
评论 #25355999 未加载
评论 #25358077 未加载
ipsum2超过 4 年前
For context, Khan Academy used some of Bret Victor&#x27;s writings as inspiration for their teachable programming courses back in 2012. A lot of their work was well-intended but missed the point of his essays, and this is Bret&#x27;s response. Not sure if Khan Academy improved their course afterwards.
Wowfunhappy超过 4 年前
I want this IDE. I want to be able to write a loop and see a timeline of all the steps, arranged like these video concepts. Certainly for teaching children—the 11-year-olds I taught at Girls Who Code pre-COVID would absolutely benefit from something like this—and possibly even for my own use when debugging certain types of problems, depending on the editor&#x27;s robustness.<p>This article was written eight years ago, and every year since, it has been dutifully posted to Hacker News, where we all stare in wonder at the concept... and yet nothing like this exists yet?<p>&quot;Why has no one else done a ton of work (that I&#x27;m also not planning to do)?&quot; is never a great question, so I don&#x27;t want to be too flippant... but seriously, it would be an <i>excellent</i> project, either for someone stuck at home in lock down, or possibly even as the basis for some sort of coding education startup.
emmanueloga_超过 4 年前
imho we are still riding the peak of inflated expectations when it comes to Bret Victor stuff.<p>I&#x27;d rather see focus in making our current batch of tools way better rather than looking for direct manipulation methods, A.I. assisted no-code environments, novel user interfaces, retro-futuristic hypercard-excel mashups, etc etc&lt;&#x2F;grinch&gt; :-p<p>To be fair &quot;seeing&quot; doesn&#x27;t necessarily mean drawing vector graphics, any advance helping reveal hidden structure of a codebase or generate better documentation would also allow us to better &quot;see&quot; the working of the code... I&#x27;m all for that!<p>I hope things like model driven development get a second renaissance at some point, without the burden of UML, the sad XML reputation, &quot;extreme programming&quot; BS and such.<p>One project I like that&#x27;s futuristic, and yet has reasonable goals, is Unison [1].<p>1: <a href="https:&#x2F;&#x2F;www.unisonweb.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.unisonweb.org&#x2F;</a>
评论 #25356480 未加载
mettamage超过 4 年前
I&#x27;ve read this post time and time again. But I&#x27;d like to mention, for me learnable programming is and has been firing up a debugger. I&#x27;m learning 3 things because of it:<p>1. See how state changes<p>2. See what hidden state there is<p>3. See how state changes if I interact with it. E.g. in C by changing register values or variables. In Python by changing variables.
评论 #25358092 未加载
nbaksalyar超过 4 年前
If you liked this article, you should not ignore Bret Victor&#x27;s recommendation to read Seymour Papert&#x27;s &quot;Mindstorms&quot; [1]. Whilst &quot;Learnable Programming&quot; is a critique of programming education approaches, Papert&#x27;s book can be seen as a critique of the <i>education system</i>. It was truly ahead of this time. This book describes ideas behind Logo&#x2F;Turtle and its use for teaching programming, but it goes beyond just that - it&#x27;s more about teaching <i>everything</i> through programming, including maths and geometry.<p>Shameless plug: I&#x27;m also trying to implement these ideas at Low-Level Academy [2], teaching systems programming concepts in a visual way.<p>[1] <a href="http:&#x2F;&#x2F;worrydream.com&#x2F;refs&#x2F;Papert%20-%20Mindstorms%201st%20ed.pdf" rel="nofollow">http:&#x2F;&#x2F;worrydream.com&#x2F;refs&#x2F;Papert%20-%20Mindstorms%201st%20e...</a><p>[2] <a href="https:&#x2F;&#x2F;lowlvl.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;lowlvl.org&#x2F;</a>
dang超过 4 年前
Discussed at the time: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4577133" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4577133</a>
drdeca超过 4 年前
Does it work though?<p>Suppose I want to minimize the time taken from someone having not done any programming, to implementing a B+ tree. Is this really what you would recommend?<p>Also, sometimes code takes a long enough time to run that one can&#x27;t instantly show the results upon changing some code. That&#x27;s not something you can dismiss with &quot;that&#x27;s just asking the wrong question&quot;. There are actually things that need computing, and some of them can&#x27;t be done quickly.<p>I wonder if a good measure of a programming curriculum might be, how quickly can a student become able to make something self-hosting (though, the curriculum should have various natural stopping points before this point, depending on what skills they personally need).
评论 #25356550 未加载
thewebcount超过 4 年前
I&#x27;ve only read the first few sections and am already agreeing fully. In fact, I don&#x27;t think he goes far enough:<p>&gt; Likewise, guessing the third argument of the &quot;ellipse&quot; function isn&#x27;t &quot;learning programming&quot;. It&#x27;s simply a barrier to learning.<p>It&#x27;s even worse than that. The &quot;ellipse&quot; function should only take 2 arguments - a point and a size (or 2 points if that&#x27;s your thing).<p>I see so much of this sort of terrible API design, especially in graphics where good API design makes things so much clearer and easier to use. Writing out a point and a size as 4 variables is madness.
评论 #25356097 未加载