
Declarative is a little flexible in that it works by telling the program what it should accomplish without specifying how the program is to achieve it. Functional programming is a subcategory of the declarative style with instructions that can run in any order without breaking the program.
There are two ways to program — imperatively and declaratively. Imperative programming focuses on describing how the program works. It is essentially a list of commands for computers to perform. It is a series of statements that is executed in turn. You can’t skip a step or else things go a bit haywire.
Senior developers often become effective code janitors, marking messes made by their peers and labeling the weak parts in the architecture. They are able to step back and see a much bigger picture with future contingencies while making choices based on the least expected negative impact. They are not bound to any one style of coding or paradigm — instead, focusing on the solution rather than the tool.