James explains the distinction between imperative and declarative programming languages, likening imperative programming to a checklist of steps to achieve a result. In contrast, declarative languages focus on the desired end state without detailing the underlying processes. He highlights SQL as a prime example of a declarative language, where users specify the data they want without knowing how the database retrieves it.