6 ms·
Why project-based learning fails (2018)
- schnitzelstoat 3y agoPersonally, I really liked the Nand2Tetris course which was project based and felt I learned a lot more from that than from reading about the topic. It's like Feynman said: “What I cannot create, I do not understand”
- rahimnathwani 3y agoNand2Tetris may have a lot of projects, but its pedagogical style is not what people normally mean by 'project-based learning'.
- robinbobbin 3y agoBy 'project-based learning' I understand learning by building projects (guided or unguided). What do normal people mean by 'project-based learning'?
- rahimnathwani 3y agotl;dr: student-led, inquiry-driven The phrase 'project-based learning' is typically used to describe an approach to education that centers around student-led, inquiry-driven projects. In this model, the student starts with a goal or project they aim to achieve and navigates their way towards it. The learning pathway isn't predefined; rather, the student learns as they progress, gaining knowledge on a need-to-know basis. Conversely, the Nand2Tetris course, while project-oriented, adopts an approach akin to a traditional curriculum. The path is meticulously charted out from the outset. You begin with the most fundamental concepts (e.g., understanding a logic gate) and progressively construct more complex structures, culminating in a fully operational system. The sequence of learning and the projects are predefined by the course structure, not dictated by the student's initiative or inquiry. Thus, while both involve project work, the degree of student autonomy and the nature of inquiry diverge significantly between traditional project-based learning and Nand2Tetris. I prefer the Nand2Tetris approach. I suspect that 100x as many people could complete Nand2Tetris, than could build tetris from scratch using a PBL approach, in some reasonable timeframe. Maybe ChatGPT makes this less true than it once was, because you're less likely to get totally stumped/blocked.
- sshine 3y agoThanks for sharing this quote! I've said this myself for many years. For some reason I prefer to quote Feynman for it.
- imtringued 3y agoMotivation is usually the most important factor. Someone who is motivated can learn and retain more in the same time span.
- cjs_ac 3y agoAs a self-taught software developer (with a degree in physics) I have a bigger problem with project-based learning (which is how I taught myself): completeness. Learning on my own meant I avoided the trap of only learning part of how to complete the project (because I had to do all the parts) but I only learnt enough to complete the project I was working on. I didn't learn any data structures or algorithms fundamentals until I started playing with C (in fact, my algorithms knowledge is still rubbish, and I've never implemented a hash map, I just use tries), and there's so much I pick up on just from listening to my CS-qualified colleagues in the office. To make guided project-based learning achieve this, the projects have to be so finely structured that they end up forming a traditional curriculum anyway.
- 2143 3y ago> hash map, I just use tries That's how I messed up my <big-company>-Luxembourg-office interview many years ago. At least, that's one way, out of the possibly many ways I messed up. The interviewer asked what was in retrospect a trivial question whose obvious and straightforward solution involved using a hash table, but me being clever proposed a ridiculous solution involving tries. Didn't get the job :)
- dgb23 3y agoSince you're self taught as well: there's an exceptionally great book (available online for free) Crafting Interpreters. It's entirely project based, but you learn so much from it because it explains the concepts along the way. As for A&D, there are a couple of data structures that are interesting and generally applicable. But I found that there are diminishing returns here. If you know a reasonable set of them, you _can_ stop there and pick up new ones when you actually need them for something.
- revskill 3y agoYou forgot to define "project" here, that made your article meaningless (just for the sake of advertising). Lol.
- Sytten 3y agoSo this is a big blog ranting about something to then sell you something else. Distasteful... We had project based learning at my university, it was fine. Not the best, but 2 weeks scoped projects are similar to sprints which is what businesses want. You are not reinventing the wheel in most programming jobs. I just feel it lacked some some theory, but theory is everywhere on the internet if you bother to look.
- BSEdlMMldESB 3y ago> So this is a big blog ranting about something to then sell you something else. Distasteful... like the overwhelming majority of new content on the public internet. but also somehow calling it out as advertisement is bad form.... why??? how? what!? maybe I should just get over myself, grow up, and give up on the idea that through digital technology we can share media for free between everybody. or maybe I just feel like this because I'm not collecting royalties?
- revskill 3y agoBecause it violates the Single-responsibility Principle (SRP), which states: A blog post should have one and only one reason to edit, meaning that a blog post should have only one job.
- gessha 3y agoIsn’t this applied to object oriented design and not (digital) writing?
- BSEdlMMldESB 3y agoyes, but I think they're making fun of me by being sarcastic they imply that my comment is wrong because clearly a blog post can do many things at once: be useful, but also invite the reader to buy more. like drug sellers know and make (ab)use of: "the first one is free" ... now who is going to pay me for this valuable AI training data? [explaining sarcasm over text]
- omgmajk 3y agoI like project based learning but there are a lot of terrible projects out there and a lot of them are never finished. I see especially tutorial series that are based on projects are almost always one or two articles shorter than it needs to be and there is never any follow up. If it's done right though, it's pretty good.
- zakm 3y agoIt's worth considering that in the networking example given you discover the skills you need via a project and then argue that the skills could be learned more effectively through deliberate practice. I think this post largely argues against a strawman (which I'm sure some people actually believe). Seems fairly clear to me that you should (1) do projects that resemble the work you're trying to improve to: a. Build up the basics across all the skills you need b. Uncover gaps And (2) then practice the skills you actually care to improve outside of the project. If you really want to try-hard you can spend time actively thinking about how to improve what you're doing and observe other people to learn from them. People who advocate project-based learning have generally experienced spending a ton of time learning things in theory and then being unprepared for actual work. Maybe address that concern instead of bypassing it with "I don’t want to debate the current way universities do things." To have a nuanced take you have to understand the arguments in favor and against the main options, no? I don't think people who advocate for project-based learning are advocating for exclusively project-based learning (mostly).
- ghaff 3y agoIt's definitely a mix. I have clear memories of some of my project-based courses/labs from school and would have had a poorer education for them not being part of the curriculum. But I also think it wouldn't be a very good curriculum (and presumably not an accredited one) if I mostly didn't do much beyond hacking around in machine shops and labs.
- sacredcows 3y agoCompleting a big project changed my life- it taught me so much about my field, showed employers evidence that I was capable, and gave me confidence. Granted, it took a lot of half-completed projects to get me there.
- carlossouza 3y agoClickbait article. Implying that project-based learning fails is like saying the practice of learning to play whole pieces of music on piano fails (to use the same comparison the author has used.) Staying on the author's comparison: to learn to play piano, one must practice exercises in isolation (deliberate practice, as Angela Duckworth calls it in "Grit," an amazing book) AND ALSO practice playing whole pieces of music. The same is true for learning anything. Practice exercises in isolation PLUS project-based learning is the most effective way.
- adamsmith143 3y agoI think one difference with Piano at least is feedback, practicing on your own is going to have limited value if you don't know what a Song "should" sound like, if you don't know what proper technique looks like, if you don't have taste for what a good player sounds like. You need a teacher for that. At least in Software you can easily get feedback on your own, i.e. if your program fails to run you have received instant feedback that you can improve on.
- respondo2134 3y agoYour description of feedback for software development that "it runs" is like playing something on the piano and saying it sounds like the midi version so I'm good. There are a lot more accessible examples for piano than software development. You might not be able to determine how they accomplished some aspect but you can definitely hear & see the difference. The same is not true for software.
- norir 3y agoI suspect the most underrated skill for learning music is listening. With a close listen, it becomes obvious that when I play piano (novice at best), even just a single note does not sound as good as an excellent player. Once you've identified a gap, you can focus on learning how to fill it. It's easy to get focused on objective measurements like how fast you play a scale and forget to ask "but does it sound great?" This is the bigges risk with the grit mindset. With software, it's more subtle but I think it's possible to essentially ask whether a program is lifeless or if it sings. The hard part is that usually you can feel whether a work is good before you can explain it. There is a lot of software that I might liken to some shredders on guitar: it's impressive technically but there is something ineffable missing and it leaves me feeling cold.
- mkl95 3y agoIt doesn't, though. Good project-based learning will teach you to build some stuff that works and deliver it, while gaining a decent understanding of what you are doing.
- SkyBelow 3y agoFrom the example, it might be better to title this "Why group project-based learning fails." My own education included learning fundamentals, individual projects, and group projects. I find a mix is the best. Do the fundamentals. Practice them in individual projects while also learning how to teach yourself things that weren't directly taught, which is an important skill set. Finally, practice these skills again in group projects to learn cooperation in software development and how to scale beyond single individual solutions. Source control is a skill you can learn the fundamentals and practice by yourself, but working in a group project makes some of the benefits immediately visible to many students. You have to match the intended learning with the right environment, there is no single solution.
- scarface_74 3y ago> The first counterargument is that industrial technologies come and go. I graduated college in 1996. I had four language classes - C, Pascal, FORTRAN, and COBOL. Out of those four C is still heavily used. If someone graduated college 20 years ago and they were taught Java, and they stayed on the course as a Java developer, they would still have plenty of work today. If they learned how to use SQL Server 2003, Oracle or MySQL, they would know one of the three top databases today. > Had she followed that advice in the 60s, she points out, her students would have spent their time studying JCL That’s kind of irrelevant. 20 years ago Microsoft was king of the desktop, Unix was big in servers and Apple was a distant second when it came to seconds. In 2023, how much has changed? > This is false. “The only way to improve at X is to do it” is the advice you give when you actually have no idea how to improve… This is also false. I was an active fitness instructor for 8 years and my cardio was great and also was a weightlifter. I could teach a two hour master class and go hard without giving out of breath. The first time I decided to do an outdoor 5K on a whim, it took me 40 minutes and I felt like I was going to die. I had to do run specific training. > Instead of substituting for a traditional degree, recruiters are calling bootcamps jokes I’ve found BootCamp grads far better junior developers when I was in enterprise dev than CS grads. > My Advanced Software Design Web “It is difficult to get a man to understand something, when his salary depends upon his not understanding it.”
- Swizec 3y agoYou need both. To get good at doing the thing, you have to do a lot of the thing. To optimize your doing of the thing, you have to spend time understanding the thing. Because pure doing eventually hits a wall. Take boxing for example. You can be really good, have great stamina, and even a fantastic jab. But then a coach looks at you and says ”When you throw the jab, try twisting your forearms 10deg more, and adjust your shoulder like so”. Suddenly you have a whole inch more reach. Whoa! And none of those optimizations will help when you’re sparring against a terminator who steamrolls you with 2x your punching rate. Even if all their punches suck. see also: The pottery class metaphor –> https://excellentjourney.net/2015/03/04/art-fear-the-ceramics-class-and-quantity-before-quality/ https://excellentjourney.net/2015/03/04/art-fear-the-ceramic...
- insanitybit 3y ago> They start writing tests because the teacher said they had to. Wait what, where the fuck did this teacher just pop out from? I thought Bob and Alice wanted to work together on this as a learning opportunity? Anyway they picked a dumb project. Next time just make it a CLI. Their fault here was thinking "I want to learn X, so I'll build a whole fucking SaaS where the tiniest possible component of that SaaS is X". Anyway I'll admit that I didn't read beyond that.
- adamsmith143 3y agoDoesn't this fly in the face of most advice on hacker type forums which is if you want to learn something go build something that uses it? Also for reference my Co. paid for a training course from this guy on Hoare Logic and I found it to be a complete waste of time as a professional developer and not a grad student in theoretical CS.
- Jean-Papoulos 3y agoThe first example given in the article is about a guy wanting to learn networking and embarking on a project where he does no networking. The article then asked "How could this guy have spent his time more efficiently ?" By working on a networking project, that's how. This article is a stupid joke.
- respondo2134 3y agoHe sets up the scenario like you need to build a full-feature, production-ready application for every student project, which is obviously not true if you've ever done one. And maybe the hypothetical guy didn't learn much networking but he sure learned what real world software development looks like.
- red_admiral 3y agoMy take is that project-based learning works well when you already have the subskills and need to learn to integrate them, and badly if you need to acquire the subskills first. Traditional educators were well aware of this: an old-style university degree has you take individual modules and exams first, and then do a big dissertation at the very end. A more scientific version of the claims here can be found e.g. in the paper "Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based Teaching" available at [1] (paywalled, other sources may be available) and a brief summary of the state of research in the field is available at [2] for free, with links to various relevant papers. Note that all of these show that discovery learning (which more or less overlaps with project-based learning unless the project is very tightly guided) is ineffective for learning new things, but this is often rounded off to "discovery learning is ineffective". As far as I know, the research does not show that projects are necessarily bad to practice and deepen knowledge that you've already built up. [1] https://www.tandfonline.com/doi/abs/10.1207/s15326985ep4102_1 https://www.tandfonline.com/doi/abs/10.1207/s15326985ep4102_... [2] https://debunker.club/2015/06/05/discovery-learning-is-not-effective https://debunker.club/2015/06/05/discovery-learning-is-not-e...
- KptMarchewa 3y agoBetter think of it as learning by earning.
- dimal 3y agoOr maybe, “Why project-based learning succeeds at some things, for people with certain personality traits, and performs less well for some things, for people with other personality traits”. A less catchy, clicky title, but more accurate.
- Mimmy 3y agoThat might be your opinion, and it might even be true, but it’s not really the point of the article. Personality traits aren’t mentioned at all. A better summary would be “Project-based learning does teach you things, but often ineffectively because you’re also made to focus on other concepts besides the one you were initially setting out to learn. Thus the best approach to learning needs to be targeted and customized with the help of a personal coach (and here’s my course).”
- colinmegill 3y agoIt's both. Most education institutions have a problem running any projects at all because they're difficult to support and assess. I've never met an ideological proponent of project based learning who wanted to eliminate discrete skill acquisition — gaining skills unlocks projects, attacking and completing projects engenders feelings of purpose and efficacy that motivate advancement.
- imtringued 3y ago>Why do many schools teach much of their curriculum in Haskell, not in the Tiobe Top 10, or even SML or OCaml, not even in the top 50? In what universe does the author live in? Universities teach you standard industrial languages like C, Java, Python and C++. The only course that had a functional programming language at my university has always been optional and is not available anymore. Also, project based learning is practiced in the form of assignments. Operating systems homework consists of writing your own OS primitives. You are supposed to write a simple memory allocator, a simple thread scheduler and so on.
- dang 3y agoDiscussed at the time: The Practice is not the Performance: Why project-based learning fails - https://news.ycombinator.com/item?id=16451797 https://news.ycombinator.com/item?id=16451797 - Feb 2018 (128 comments)
- fasterik 3y ago>People often ask me what’s the best language to learn to study software design. I ask them what’s the best instrument to learn to study music theory. Is the goal to learn music theory, or is it to learn to play an instrument? If I want to become a concert pianist, knowing music theory will help, but the only way to get good is to practice. The problem with computer science education is it's a bunch of music theorists teaching others how to play the piano. Doing projects is the only way to practice programming. You're not going to learn how to program from these people because most of them have no significant experience building real software.
- spaceprison 3y agoI'm on both sides of this. Project based learning is great in that the student gets exposure to 'things' and has to figure out how to wire it all together. The down side is depth of exposure and the ability gain 'real' understanding is typically lacking. A friend of my wife's husband is a boot camp grad, he can whip out a buzzword compliant web app, but is missing some foundational understanding of what's really happening under the covers. When his aws account started racking up charges like crazy, helping the poor guy debug what he'd built meant working back from his project based understanding of what he'd built meant filling in a lot of blanks for him so he could connect the dots.
- abhaynayar 3y agoYes, you could probably do things like "drill each component rapidly", but it's more important to be motivated to learn stuff. If you have something to look forward to, even if it's not the most efficient or optimal way to learn stuff, it will keep you coming back. If you're a nerd, you probably already know why the boring stuff is important because you've already aware of the domain and you can connect back. Just like the author, who also ONLY in hindsight started to realize that the boring stuff was important, doesn't mean everyone else will magically realize that as well. You need to make an explicit effort for them to do that, for example, through projects they can connect to.
- jejendkdnrnr 3y ago[flagged]
- constantcrying 3y agoI think the article fails to distinguish two very different skills: - learning a certain programming language - learning to programm The first one can only be learned through practice. The second one needs context and studying specific narrowly constrained subjects in isolation and, at times, only on a purely theoretical level (mathematics).