Kinda related to how I like to learn, I think a common code smell — need a better phrase for this, that's not quite right — is people asking "how do I do X with Y technology". Like, you might see "how do I set cookies with Express" or "how do I set cookies with Next.js", but the core question is of course "how does one set cookies on a server".
I was talking to my mom (a middle school teacher) again this morning about how students learn to write effectively and thought again of this tweet (no longer public) I linked in this post.
‘lol’ and ‘lmao’ are actually both punctuation marks — @raunchonpizza
That's informal of course, but implicitly understood by most internet people. And I think it's prescient to identify them as punctuation. Other examples might be leaving off an ending period to indicate levity, or dropping a question mark to highlight sarcasm. If you know how something works, like grammar, you can improvise within that framework and showcase intent. Doing more with less.
set-cookie headers can open up more possibilities for a developer. And frameworks that support users setting headers directly would require fewer questions like "X with Y" questions.
Frameworks that obscure this are doing it at best to improve ergonomics, and at worst to lock users into their systems. You could probably make both sides of a glass half full/empty argument for most examples of this. I think good abstractions are those that provide ergonomic options with direct low-level access when needed.
I think that's good. Like you're running bare bones tech, but can layer in niceties as you need them. Harder for new developers to piece together though.