[eluser]theprodigy[/eluser]
I'm not against knowing what you're doing. I'm actually quite the opposite. I think that you should know what the code does that your typing (even if using someone else's libraries). Whenever I use someone else's stuff (whether copied/pasted from a website, or downloaded library), I always read through it to see what it's doing.
But, on the other hand, if you know what you're doing, then using AR, or ORM, or some other helper functions can save you a lot of time with both initial writing and maintaining.
I agree with your thoughts about these tools allowing un-knowledgeable developers to be able to do things they normally would not be able to do, but I also know that that is exactly where the languages of the web are going. With the advent of jQuery (and other js frameworks), very user friendly sites are popping up everywhere by people that would not have been able to do it with straight javascript. With the advent of CI, Symfony, CakePHP, etc, robust websites are being created by people who don't know very much at all about php. Hell, how many WordPress sites are there now? Many of them being maintained by people that don't even know what php is. And it's not just php. Other backend programming languages are suffering from the same thing.
Basically, the point is, I agree with you that you should know what you're doing, but for every 1 person I get to learn about it, 500 more are building sites using these tools that don't and never will understand it.
Fight the good fight, but don't expect large results. Companies nowadays prefer results over knowledge. If you can do it, you're hired, who cares if you know why or how it works as long as it does.