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:
- Welcome
- Basics
2.1 Computer Basics.
2.2 Devices. (this would be a great place to add accessibility devices)
2.3 Code editors - 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.