You're partially right.
Lambda calculus is base for understanding how functional programming WORK.
Turing machine is base for understanding how imperative programming WORK.
Formal languages are ways of WRITING programms.
Lambda calculus and Turing machine are totally different, but both in some way do the same as sentence "if you add two and three, you get five" for math.
Formal languages are ways of saying "2+2 means 'add two and two'".
PS. @SK-logic: yes, you are right. This above is simplification, realy close to being false. Still, answer was written for complete newbie in topic, it was intended to give him SLIGHTEST idea, so he can choose what is more interesting for him, and where he want to start learning.