I too find web development annoying for this reason - everything feels so arbitrary. Rather than learning a set of principles you're learning a huge bag of tricks.
The result is that when I forget something, I can't go back and figure it out from something simpler. It also makes it really hard to build abstractions that actually work.
The result is that when I forget something, I can't go back and figure it out from something simpler. It also makes it really hard to build abstractions that actually work.