Back End Development course needs an update

I completed the Relational Database course not so long ago and I loved it.
Now I’ve decided that I won’t complete the Back End course and here is why. (More objective reason first, more subjective reason second.)

  1. It is severely outdated (at least the MongoDB part).
    The course constantly makes us use the ancient callback syntax to catch errors. It is so outdated that it is impossible to find any information, any examples for this approach in the internet. Even the freeCodeCamp articles that are linked in the Back End course itself use the more modern .then(…).catch(…) syntax. And the official docs mostly use the most modern await syntax.
    e.g. the course requires me to pass a callback to “findOne” function - and the only thing the official mongoose docs say about this callback is:

// Model.findOne() no longer accepts a callback

see Mongoose docs

  1. I think this course is structured much worse than the Relational Database course.

In the RelDB course we create a database and fill it with data, then query it. We also write bash scripts to make automatic queries.

In the MongoDB course we are constantly asked to write middleware that could be used to fill the database with data… but then we don’t use the functions that we write to fill the database with data or to make queries! We write the functions only for those functions to be tested.

In the beginning of the MongoDB course I had to connect a database - then I realised that I won’t be using it, because I am only writing the middleware functions to pass the tests, not to use them.

Now, you can say that this could also be a good approach - first make the students write the functions and move on to using them later. But I really preferred the approach taken by the Relational Database course. It felt like I was actually working with the database.

You can complete the course using the latest version of mongoose and use the more modern async and await and it won’t effect the results of the tests it doesn’t take that long to learn the new syntax to do the coding without the callback functions.

Also many of the projects require you to populate the database with data and query the database its just a diiferent type of database you are working with.

I’m not sure that using the new syntax won’t have an effect on the results of the tests in the MongoDB course. The tests are very picky with lots of irrelevant things having an effect on the results. And also the package.json is already provided in the Github repo, so we can’t choose the version of Mongoose. It has to be ^5.11.15 - while the modern version is 7.4.1. That’s two major updates.

The projects, though, are a different thing. I’ve just checked again and mongoose isn’t mentioned in the “package.json” files of the projects, so it should be possible to do what you suggested and use the latest version of mongoose.

Project aren’t a replacement for a proper course, though. A course is meant to consist of something more than projects, right? Paraphrasing Wikipedia, “This course is a stub. You can help freeCodeCamp by expanding it.”

The tests work fine if you use the latest version of mongoose I did all the projects using the latest version and didn’t have any problems.