Hi,
There are so many micros and so many different languages to program them in.
Are you after a particular one to keep in line with your college or work ?
If not, then for hobby use the Pic or Avr micros are the way to go as they are so well suported with lots of free software and online help.
No need to buy books.
As for learning a programming language do you have any idea ? - say Assembler , C or Basic ?
There are also other easier ways to start programming like Flowcode and Arduino C++.
Give us some idea of what you want to use and we can hopefully point you in the right direction.