What is a functional programming language? How is it different from imperative languages?
Functional programming is a programming paradigm where computation is treated as the evaluation of mathematical functions and mutable data is avoided. It is different from imperative programming, which relies on changing the state of a program and modifying data. Functional languages like Haskell, Lisp, Scheme, and ML promote immutability, no side-effects, first-class and higher-order functions, recursion and declarative approach. Meanwhile imperative languages like C, C++, Java, Python focus on giving a sequence of statements that change a program state and how the code should execute step-by-step.
Should I learn a functional language or an imperative one as my first?
The answer is depending on your intentions,  ut if you want to get started with coding, I would recommend Python since it is beginner friendly, has a big community and with its many libraries it is very capable as well!