First-class functions are functions that are treated as first-class citizens in a programming language, meaning they can be passed as arguments to other functions, returned from other functions, and assigned to variables. This property allows for a high degree of flexibility and abstraction in programming, enabling powerful coding techniques such as callbacks and functional programming paradigms, which are particularly useful in recursive problem-solving techniques.