When I started to learn about imperative programming and declarative programming it raised many doubts, like, how are structured, modular and object-oriented programming classified: declarative or imperative?
closed as too broad by D.W.♦, FrankW, Rick Decker, J.-E. Pin, Juho Feb 25 '14 at 11:37
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
Do not be too obsessed with it. It is often only buzzwords covering a fuzzy trend (from structured to object oriented) towards better organization of programs, with somewhat different realizations in different languages. It can appear in any programming paradigm, whether imperative or declarative. They are intended to improve readability of programs, good programming practice, maintainability, code reuse in various guises, independence of program parts, information hiding.
What is a lot more important is to understand the specific techniques that can be used, their costs and benefits, the constraints they create and the freedom they provide. The more interesting techniques are based on formal mathematical analysis.
It involves a variety of more precisely definable concepts, such as environments, scoping and binding of variables, typing systems, modularity and interfacing, parameterization of code and modules, exception handling ...
I would think you will be better off concentrating on these identified technical issues than on more popular but fuzzier concept.