Feedback re: the new curriculum

Hey everyone!

I’ve started going through the new „Certified Full Stack Developer Curriculum”, and I have a few notes.

Background: I’ve studied programming a bit a long time ago - I never worked as a programmer, but I’ve got some basics. I decided to come back, refresh what I used to know and update the things that need updating, and I remembered that a couple of years back I tried freecodecamp and it was nice, so I’m back just in time to catch the curriculum change.

The good:

  • I like that there are reviews and quizzes now
  • I like the idea of having actual lectures (I’m not really a video person, but I love that you can choose between reading and watching)
  • having labs in addition to workshops is lovely; one of my biggest complaints about the archived curriculum was that it was hard to get the bigger picture of what you were doing - tiny steps were great for learning new things, but not so great at learning to piece everything together

So all in all - I’m a fan of the new concepts behind the new curriculum. Well done!

However, there are some issues.

Issue 1: Larger Structure

“Computer Basics” appears under CSS - and it’s really not a CSS topic. I think it would be worth creating an introductory “Basics”… module? (I’m not sure what you call the Welcome, HTML, CSS, Javascript categories, but one of those) to kick things off. Something like:

  1. Welcome
  2. Basics
    2.1 Computer Basics.
    2.2 Devices. (this would be a great place to add accessibility devices)
    2.3 Code editors
  3. HTML

After all, computer basics are just as important for HTML and JS as they are for CSS.

Issue 2: The Accessibility Lectures

They’re too much from several points of view.

First of all, there are… 23?.. of them in a row? Did I count them right? If you decided to implement a “Basics” module, the first 6 lessons about accessibility and devices could be moved there, familiarizing learners with the concept of assistive tech and multiple ways in which devices can be used.

That still leaves 17 or so lessons. I think things like “use headings in the correct order” can be sprinkled around lessons like headings (“use h1, h2 in order - this also helps with a11y”) to make accessibility feel more like the sort of thing you always take into consideration. If you want to keep the Accessibility lecture as a stand-alone thing, you can then condense some of the lessons into something like: “As we’ve mentioned before, browsers have built-in a11y support for things like headings, tables. Here are a couple of extra pointers:”

Second of all, workshops. I assume there’ll eventually be an a11y workshop added here, but it bears saying: I spend the entire day yesterday reading about accessibility attributes and not really using them. This isn’t great.

Issue 3: Peer Review Needed

It really feels like the new material isn’t sufficiently edited and double-checked for clarity, correctness and relevance.

For example, let’s take “What Are Screen Magnifiers Used For?” I’m not sure I, as a learner, really need to know all the screen magnifier apps. If I need a screen magnifier, I’ll probably search for an updated list of screen magnifiers online. But, whatever.

But the final question in this section’s quiz is:

Which of the following is not a third-party screen magnifier?

  • iZoom.
  • ZoomMe.
  • Zoom.
  • Loup.

The problem is:

  • iZoom: 3rd party app
  • ZoomMe: not mentioned in the lesson
  • Zoom: not a 3rd party app
  • Loup: misspelling of a 3rd party app

So the question itself is incorrect.

Or let’s take another case, this time from “What are the Basic Parts of a Computer?”:

The first major component of a computer would be the motherboard. The motherboard holds all of the memory, connectors, and hard drives that are needed to run the computer. It serves as the main circuit board for the computer.

The hard drives aren’t part of the motherboard, so phrasing it as “the motherboard holds” is misleading.

Or consider:

The CPU is a small square with a chip that goes into the motherboard’s CPU socket. A socket is a place where the CPU is inserted.

No, this socket is a place where the CPU is inserted; a socket in general is a place where something is inserted.

Or consider, from [What Are the Different Types of Internet Service Providers?:

The first tier are the giant conglomerate companies, which have the infrastructure to handle most (if not all) of their network traffic independently.

This isn’t very clear. This sentence can be read as “if the traffic takes place within their own network, their own network is sufficient to handle their traffic”… which is true of LAN networks.

Final Words

I hope this doesn’t sound too discouraging. As I’ve mentioned in the beginning, I really like the idea behind the new curriculum, and I think there’s really solid stuff here. It’s good to see info about a11y, and I was quite happy to see there was general computer basics stuff.

I know it’s hard to develop new lessons, and to find a good way to communicate to learners of all levels in a way that’s both accessible and covers a lot of ground - and I think the groundwork for that is well laid, but a bit more iterating on it wouldn’t hurt.

3 Likes

thank you for contributing to this, community contribution is exactly how we improve the curriculum


this I don’t think is something we are going to add, the start of the curriculum is structured so that the camper can immediately start practicing

we are making changes to this section, it will take some more work, but we are continuing improving it


I will open some issues from your review, if you have more feedback you can open issues, that’s the best place to give feedback that will be considered and if needed acted on

1 Like

here the issues for feedback that is immediately actionable:

I will bring up the rest internally

1 Like

In the CurriculumExpansion GitHub repo, it looks like they are working on adding two additional labs to the Accessibility section right now. One is a multimedia player and one is a movie review page. They will probably keep the amount of lectures but allow Campers to practice what they learned about accessibility more with the two new labs.

1 Like

Largely agree with everything you said, both positive and critical. :clap:

I’m really enjoying the new curriculum, the mix of video/transcripts, quiz, labs and workshops is good.

I agree with your critiques as well. It’s important to remember that freeCodeCamp is an open source project, and a lot of these issues can be brought up as GitHub issues (as mentioned above) to help improve the site. I try to open a quick issue as I’m going whenever I come across something that needs attention.

There’s also something to be said about a balance between getting a good curriculum out there vs. spending too much time on a perfect overall structure. In a “perfect is the enemy of good” sense.

1 Like

Thanks!

I haven’t gotten around to checking out how GitHub works yet, but I will, and then I’ll add issues there. Mainly, this was meant to be more of a general feedback with concrete examples, rather than an exhaustive list of small, punctual changes - especially since I don’t know enough about the topics at hand to provide the concrete feedback on the course materials that I’m sure would be needed. I’m not a peer, so I can’t peer review, as it were.