If I was going to teach a backend web framework (like Django, Rails, etc) my (unequally sized) lessons would be:

1. The request-response process
2. HTML
3. Basic CSS
4. Basic client side JavaScript (optional)
5. The backend language (Python, Ruby, etc)
6. The framework itself

The number of people learning Django (or whatever) and having zero understanding of HTML is amazing.

@philgyford Ancient tradition dictates that server-side devs must turn their noses up at lowly HTML/CSS while doing it really badly themselves
@mattround It is both too simple to be concerned with and yet somehow too difficult to do correctly!

@philgyford @mattround Writing dynamic HTML in a templating language with layouts and helpers is very different from writing it yourself. That doesn't excuse not putting in the reps to learn it (and you can of course save yourself So. Much. Work. by learning to write HTML properly), but it's understandable that the prerequisite gets short shrift.

Reminds me a bit of conversations that used to happen around learning assembly (which I say as someone who can't do assembly 😅).

@philgyford
I'd add (5.b) âž¡ SQL 101
@aspyrine Oh, good point! (See how much I rely on the ORM now that I forget SQL even exists. Bad me.)

@philgyford I found that an understanding of DOM and AJAX techniques was critical to building good dynamic "HTML/HTTP"...

Are those concepts too low-level? Are platforms (Django, etc.) A better way to start?

@Lsamuelson57 I probably wouldn’t look at AJAX etc until they’d done everything else
@philgyford To be honest, I’m not surprised at all, given that for the past five years or so, most Django (or Rails) newcomers focussed almost entirely on building a backend system that exposes an API to a React front end and didn’t touch the templating system at all.
@leotsem Yup, there’s the problem.
@philgyford as an ops person I'm always surprised by how many devs don't have the faintest clue about the request-response process.