All applications have things in common, so rather than each developer re-inventing the wheel, a framework can be used.
Frameworks are often open source, so if the framework doesn't meet all your requirements, you can build them yourself and submit your changes, if they are good enough they will become part of the framework so others can benefit from your work.
If however the framework meets all your requirements, you can quickly build an app by just learning how to configure it.
I would recommend frameworks to novices, but don't be scared to look at the source code, frameworks often make use of design patterns, and follow best practices and are therefore a good example of how to code. Although it maybe easier to rely on active record database abstraction, and other plug and play modules, if you don't learn to roll your own, you will eventually run into problems that you won't know how to fix.