Separate the language from the framework
A course on JavaScript and a course on a JavaScript framework age at completely different rates. Language fundamentals stay useful for years; framework specifics can be out of date within one major release. If you are starting out, the language course is usually the better investment, and it makes the framework course shorter later.
Check how recently it was updated
Screenshots of an old interface, a deprecated API or an installation step that no longer works will cost you more time than the course saves. Where a provider publishes a last-updated date we record it. Where they do not, the listing shows only the date we checked the page, which tells you about our research rather than about the course.
Look for work you actually do
Watching someone type is not learning to type. The courses that produce competence tend to have exercises you complete, a project you build, or an environment you work in. The format is recorded on each listing where the provider states it, and the summary usually says whether the material is written, video, or interactive.
Take the stated prerequisites seriously
A course that says it assumes a year of Python usually means it. Starting an advanced course early is the most common way people conclude they cannot program, when in fact they simply started three steps along. The level on each listing comes from what the provider states.
Exhaust the free material before paying
Programming is unusual in how much serious teaching is published free of charge by universities, browser vendors and open-source projects. A paid course can still be worth it for structure, feedback or a specific niche, but in this subject it is worth knowing what is free before deciding.