[HN Gopher] Why project-based learning fails (2018)
       ___________________________________________________________________
        
       Why project-based learning fails (2018)
        
       Author : jger15
       Score  : 73 points
       Date   : 2023-07-20 10:50 UTC (12 hours ago)
        
 (HTM) web link (www.pathsensitive.com)
 (TXT) w3m dump (www.pathsensitive.com)
        
       | mkl95 wrote:
       | It 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.
        
       | sacredcows wrote:
       | Completing 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.
        
       | omgmajk wrote:
       | I 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.
        
       | jejendkdnrnr wrote:
       | [flagged]
        
       | SkyBelow wrote:
       | From 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.
        
       | zakm wrote:
       | It'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 wrote:
         | It'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.
        
       | dang wrote:
       | Discussed at the time:
       | 
       |  _The Practice is not the Performance: Why project-based learning
       | fails_ - https://news.ycombinator.com/item?id=16451797 - Feb 2018
       | (128 comments)
        
       | KptMarchewa wrote:
       | Better think of it as learning by earning.
        
       | abhaynayar wrote:
       | Yes, 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.
        
       | scarface_74 wrote:
       | > 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 wrote:
         | You 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-ceramic...
        
           | scarface_74 wrote:
           | The canonical thing you are describing uses bowling as an
           | analogy
           | 
           | https://daedtech.com/how-developers-stop-learning-rise-of-
           | th...
        
           | [deleted]
        
         | jeremy_wiebe wrote:
         | > > 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.
         | 
         | To be fair, I graduated from a small college in 2001 and I
         | still had a course on JCL. Local industry used it and my
         | program was basically a factory for graduating programmers who
         | could help fix Y2K issues.
        
           | scarface_74 wrote:
           | I have a friend who has worked for a contractor for the
           | military who was doing JCL at least as late as 2015.
           | 
           | I think another friend is still doing mainframe type stuff
           | today.
        
         | ghaff wrote:
         | >I've found BootCamp grads far better junior developers when I
         | was in enterprise dev than CS grads.
         | 
         | And I imagine someone who had a crash hands-on course in
         | plumbing would be better at doing some basic plumbing that
         | someone with a mechanical engineering degree from an elite
         | school. And that's fine if I need some basic plumbing done
         | rather than someone who can model fluid dynamics.
        
           | scarface_74 wrote:
           | What do you think the vast majority of the 2.7 million
           | developers in the US are doing? They are your standard
           | Enterprise CRUD/framework developers.
        
             | ghaff wrote:
             | I don't think I'm disagreeing.
             | 
             | If I need some basic plumbing work done, I'm far more
             | likely to hire even a relatively inexperienced plumber than
             | an MIT mechanical engineer with very little practical
             | experience.
             | 
             | And if I just need a fairly interchangeable entry-level
             | enterprise developer I might well hire a bootcamp grad
             | rather than an MIT EECS major (who will cost more and may
             | have less hands-on experience). The former may not grow in
             | their job as much--or they may--but that's not really my
             | problem if they help address my current need.
        
               | imtringued wrote:
               | The thing is, the big money isn't in being a highly
               | skilled theoretical computer scientist who is a technical
               | expert. The big money is in being someone who is able to
               | execute an idea that he came up based on his knowledge in
               | another area of expertise that is completely orthogonal
               | to his technical skills.
        
               | ghaff wrote:
               | Sure but at that point, someone is experienced and it
               | becomes harder and harder to draw a line from their
               | educational credentials to knowledge and abilities
               | they've picked up over 10+ years of experience.
        
               | scarface_74 wrote:
               | I posit that you can't tell the difference between a mid
               | level developer with 3-4 years of experience whether they
               | learned on the job or from college or through a boot
               | camp. If their company has a good mentorship program.
               | 
               | And on the other hand if they did go to a good college
               | and ended up at a company without good practices, they
               | will probably end up being "expert beginners".
               | 
               | Also, I would be very hesitant to hire a software
               | developer who only got experience at BigTech at a
               | startup. They usually don't have the breadth of
               | experience that you need at an early startup.
        
               | scarface_74 wrote:
               | I think we are mostly in agreement.
               | 
               | Even though I started in computers like this.
               | 
               | https://news.ycombinator.com/item?id=36801868
               | 
               | I "pivoted" to Enterprise Dev - and really restarted a
               | stagnant career - in 2008-2012 (muddled my way through
               | the recession)
               | 
               | Career projection for an enterprise dev is just like a
               | BigTech dev to a smaller degree.
               | 
               | Junior engineer - learning the ropes and learning how to
               | be a real professional developer. They will learn the
               | then current frameworks and learn how to turn
               | requirements into code. A boot camp grad has a leg up
               | here.
               | 
               | Mid level - they can work mostly independently and by now
               | they can take a relatively complicated feature from
               | requirements to production following standard best
               | practices. They may even be able to lead a team of
               | developers working on a feature.
               | 
               | Senior - they can figure out what needs to be done (high
               | ambiguity), lead multiple teams (scope and impact).
               | 
               | (After this I happened to pivot slightly and fell into a
               | role at BigTech in the cloud consulting department.)
               | 
               | Senior+ - they can have an organizational impact and lead
               | corporate technical strategy.
               | 
               | At higher levels, you need to know more about
               | architecture and design. Even in large tech companies,
               | being a good developer and knowing algorithms only
               | distinguishes junior and a mid level developer
               | 
               | College wouldn't help anyone after they pass the L5
               | level.
        
               | PartiallyTyped wrote:
               | > learn how to turn requirements into code. A boot camp
               | grad has a leg up here.
               | 
               | We did that in undergrad, most of my friends and I are
               | leading small teams a few short years after graduation.
               | We found that people without CS degrees can't handle
               | ambiguity, and need a lot of hand holding to get things
               | done, but maybe bootcamp grads are different.
               | 
               | > Senior - they can figure out what needs to be done
               | (high ambiguity), lead multiple teams (scope and impact).
               | 
               | I am doing that, on AWS, one of the most important
               | projects of the org, even though on-paper I don't have a
               | lot of "experience".
               | 
               | I, the cs grad with an MSc, was the only one who could
               | show that what the seniors wanted to do was
               | [fundamentally] impossible - because this is very exotic
               | CS knowledge. I delivered an approach - on time - that
               | actually worked, when all senior engineers said it would
               | take months. I was the only one who found a way out, and
               | it leveraged all of my diverse - and at times exotic -
               | knowledge and background.
               | 
               | > At higher levels, you need to know more about
               | architecture and design. Even in large tech companies,
               | being a good developer and knowing algorithms only
               | distinguishes junior and a mid level developer
               | 
               | Ehhh, when you try to solve NP-Hard (or worse) problems,
               | it is good to have people who can identify reductions and
               | implement the right kind of algorithms. When the
               | complexity (hah!) of the task is so enormous that exact
               | solutions are impossible and you need to involve exotic
               | stuff, neither design nor architecture can compensate.
               | 
               | To design a good system you need proper knowledge of what
               | you are solving, no amount of engineering and
               | architecture can get around a bad solution to a problem
               | you don't understand.
        
               | scarface_74 wrote:
               | > Ehhh, when you try to solve NP-Hard (or worse)
               | problems, it is good to have people who can identify
               | reductions and implement the right kind of algorithms.
               | When the complexity (hah!) of the task is so enormous
               | that exact solutions are impossible and you need to
               | involve exotic stuff, neither design nor architecture can
               | compensate.
               | 
               | I happen to have access to the internal guidelines for
               | being promoted to a senior developer at AWS. It mostly
               | talks about "scope","impact" and "dealing with
               | ambiguity".
               | 
               | It very possible for a mid level developer to be stronger
               | than a senior technically. But that doesn't put you on
               | the promotion track.
        
               | PartiallyTyped wrote:
               | I am an "L4" because I, on-paper, lacked the experience
               | to be considered for L5 roles when I had joined.
               | 
               | I had been previously rejected from vacancies because,
               | according to HMs, "I would find the role and
               | responsibilities boring", and the company didn't want to
               | "hire me and on board me, only for me to leave 3 months
               | later".
               | 
               | > It mostly talks about "scope","impact" and "dealing
               | with ambiguity".
               | 
               | Yet, here I am, org-wide impact, and, deep in ambiguity,
               | project-wide scope with no requirements and specs outside
               | "do magic" to make it happen. So much ambiguity that no
               | other team wanted this part of the project, and all
               | managers were worried about us delivering, yet we are the
               | only team ahead of the schedule.
               | 
               | I am not a back-end engineer, I don't know frameworks, I
               | don't "know" cloud or front-end either. What I am good at
               | is finding the right models to use to think about
               | problems and then asking the right questions.
               | 
               | I understood what needed to be done because I understood
               | what we were actually solving, I built the prototypes and
               | showed that _it works_. The two actual SDE3s we have
               | treat me as an equal and everyone else asks for my
               | opinion and listens to me.
        
               | scarface_74 wrote:
               | I'm in no way taking away or doubting your technical
               | skill or knowledge. I'm saying according to the
               | guidelines at Amazon and as far as I have seen at any
               | other large tech company, it isn't how you advance your
               | career past a mid level developer.
               | 
               | I'm saying that you have to continuously demonstrate and
               | document a history of showing that you can deal with
               | increasing amount of scope, impact, and ambiguity to get
               | promoted or do well on behavioral interviews at your next
               | job.
               | 
               | From your description, the problem was well defined (we
               | want to be able to do $x), you designed the solution.
               | That's not how "ambiguity" is defined according to the
               | leveling guidelines. Being able to solve "complex"
               | problems without help is L5 level behavior. That's what
               | you are describing.
               | 
               | > I understood what needed to be done because I
               | understood what we were actually solving, I built the
               | prototypes and showed that it works. The two actual SDE3s
               | we have treat me as an equal and everyone else asks for
               | my opinion and listens to me.
               | 
               | The difference between an L5 and L6 is not subject matter
               | expertise either. There are plenty of areas where I have
               | more and deeper subject matter expertise than L6s or L7s
               | and I'm called in to talk to and advise customers based
               | on my experience.
               | 
               | Have you read the internal definitions of
               | "impact","scope", and "ambiguity" as it pertains to the
               | leveling guidelines? Your manager if he is decent should
               | be able to help you.
               | 
               | I understand your frustration. But "what got you here
               | won't get you there". It's not about technical expertise.
               | 
               | My contact information is in my "About" section. From
               | there we can exchange internal usernames.
        
               | em-bee wrote:
               | >> learn how to turn requirements into code. A boot camp
               | grad has a leg up here.
               | 
               | > _We did that in undergrad_ , most of my friends and I
               | are leading small teams a few short years after
               | graduation. We found that people without CS degrees can't
               | handle ambiguity, and need a lot of hand holding to get
               | things done, but maybe bootcamp grads are different.
               | 
               | i don't think that bootcamp grads are different because
               | of the bootcamp but possibly because they already have
               | real world experience from before or were switching
               | fields. they are also often older and more mature, but,
               | most critically i wonder how many places teach how to
               | _turn requirements into code_. my CS undergrad classes
               | didn 't have any of that. it's not "science" to solve
               | peoples problems.
        
               | PartiallyTyped wrote:
               | > how many places teach how to turn requirements into
               | code.
               | 
               | I don't know. I know that where I did my undergraduate
               | and msc, you either learned to do that, or you failed the
               | courses. Fewer than 40% graduated on time where I did my
               | undergrad, and a large portion outright quit in the first
               | half of the first semester in grad school.
               | 
               | I did a year in the army, explosives-eod equiv, and it
               | was a lot more chill than university.
        
               | ghaff wrote:
               | I'll just add that a lot of the most senior people doing
               | software today didn't major in CS and have gone through a
               | variety of significant career pivots; CS is a pretty
               | young field. I suspect a lot of people coming into the
               | field today would be shocked at how circuitous a path a
               | lot of the senior engineers at their company have
               | followed.
        
           | sam0x17 wrote:
           | See I think what we all want though is the person who knows
           | basic plumbing _and_ can model fluid dynamics. Gotta look for
           | those rare CS devs who were already devs before they went to
           | school
        
       | carlossouza wrote:
       | Clickbait 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 wrote:
         | I 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 wrote:
           | Your 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 wrote:
             | I 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.
        
       | fasterik wrote:
       | _> 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.
        
       | insanitybit wrote:
       | > 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.
        
       | schnitzelstoat wrote:
       | Personally, 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 wrote:
         | Nand2Tetris may have a lot of projects, but its pedagogical
         | style is not what people normally mean by 'project-based
         | learning'.
        
           | robinbobbin wrote:
           | By 'project-based learning' I understand learning by building
           | projects (guided or unguided).
           | 
           | What do normal people mean by 'project-based learning'?
        
             | rahimnathwani wrote:
             | tl;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.
        
         | imtringued wrote:
         | Motivation is usually the most important factor. Someone who is
         | motivated can learn and retain more in the same time span.
        
         | sshine wrote:
         | Thanks for sharing this quote!
         | 
         | I've said this myself for many years.
         | 
         | For some reason I prefer to quote Feynman for it.
        
       | adamsmith143 wrote:
       | Doesn'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.
        
       | imtringued wrote:
       | >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.
        
       | Jean-Papoulos wrote:
       | The 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 wrote:
         | He 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.
        
       | dimal wrote:
       | Or 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 wrote:
         | That 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 wrote:
       | It'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.
        
       | cjs_ac wrote:
       | As 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.
        
         | matwood wrote:
         | > to complete the project I was working on.
         | 
         | Which is itself an important skill. I was working at a small
         | startup while in undergrad. During the day I was being taught
         | theory and 'correctness', while at night I was coding with my
         | boss trying to get features built so the client would give us
         | another check to stay in business. Sometimes you just have to
         | get things done - "Real artists ship." - SJ
        
         | 2143 wrote:
         | > 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 :)
        
           | cinntaile wrote:
           | Amazon I presume.
        
           | sshine wrote:
           | Sometimes landing a job requires several tries.
        
         | scarface_74 wrote:
         | I've been developing professionally for 25+ years and by the
         | time I graduated college in 1996, I had been a hobbyist
         | assembly language developer on four architectures - 65C02, 68K,
         | PPC and x86.
         | 
         | I spent my first 12 years doing at least some C on mainframes,
         | x86 PCs and later maintaining a proprietary development stack
         | written in C for Windows CE devices.
         | 
         | I think in my entire career, the only algorithmic complex
         | things I had to do were some recursive programming and the
         | "Shunting Yard" algorithm.
         | 
         | I did some real hairy C and assembly language optimizations
         | back in the day that I haven't needed in over a decade. But
         | nothing that was taught in algorithms classes.
         | 
         | I would venture to say that a great majority of your developers
         | doing enterprise CRUD development - which most are - would need
         | to know any algorithms to get their job done.
        
         | dgb23 wrote:
         | Since 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.
        
           | PartiallyTyped wrote:
           | Crafting Interpreters is an easy recommendation! Very well
           | written, and gets straight to the point!
        
         | kerblang wrote:
         | Yes, _completeness_ is exactly right, but not just for computer
         | science. It 's true for learning a programming language, a
         | protocol, a database, really anything. Learning just enough to
         | push over the finish line by the seat of your pants inevitably
         | leaves gaps, and often leads to deficiencies causing unexpected
         | breakdowns in the future. It's a widespread problem.
         | 
         | The value in doing projects is learning to do... _projects_ -
         | not a trivial thing, actually.
        
         | aidenn0 wrote:
         | > in fact, my algorithms knowledge is still rubbish, and I've
         | never implemented a hash map, I just use tries
         | 
         | If you need to write an associative data structure, write a
         | trie. There are too many pitfalls when implementing a hash-
         | table. e.g. It's really hard to accidentally write a trie with
         | linear lookup performance or quadratic space usage, but it's
         | really easy to accidentally write a hash-table that does one of
         | those.
         | 
         | A well implemented hash-table will beat a well-implemented trie
         | for pretty much all unordered operations, but a quick and dirty
         | trie will usually be far more robust to corner cases than a
         | quick and dirty hash-table.
        
       | red_admiral wrote:
       | My 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_...
       | [2] https://debunker.club/2015/06/05/discovery-learning-is-
       | not-e...
        
       | revskill wrote:
       | You forgot to define "project" here, that made your article
       | meaningless (just for the sake of advertising). Lol.
        
       | spaceprison wrote:
       | I'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.
        
       | Sytten wrote:
       | So 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 wrote:
         | > 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 wrote:
           | Because 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.
        
             | BSEdlMMldESB wrote:
             | clearly I'm downvoted because people find something useful
             | in the blogpost, hence my criticism is rejected.
             | 
             | but I see the trends: any time now we will have to pay to
             | watch publicity of this level. I've seen some youtube
             | content which is really just advertisement prefixed by a
             | funny skit.
        
             | gessha wrote:
             | Isn't this applied to object oriented design and not
             | (digital) writing?
        
               | BSEdlMMldESB wrote:
               | yes, 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]
        
             | scarface_74 wrote:
             | I think it would have been more honest if he hadn't buried
             | the lede something like :
             | 
             | "I have a course I am selling based on my theory of
             | learning. Let me give you my thoughts".
             | 
             | And the title being
             | 
             | "Why I created my course".
        
       ___________________________________________________________________
       (page generated 2023-07-20 23:03 UTC)