I learnt that they have to be loosely coupled, that they have to rely upon some discovery service, they must not rely of availabilty of other services, they should have their own database.. a big portion of troubles.
Yup - in theory. In practice, this is basically going down the painful, crazy road
To me, microservices, as they are being marketed, are indeed nothing more than "the diet of the month", let's say the Paleo diet. And the terms "loosely coupled" and "own databases" makes we want to jump out of a window to be honest.
Other than that, I can pretty much second everything Tim said.
If you want to play with it, simple create two or three Spring Boot applications, that talk rest with each other, and their own databases. Then do the same thing, but from 1 main class ;) (this is pretty much what I demonstrated in my screencasts...from 1 app -> 2 apps).
And that already will let you feel some of the pain and give you some good experience.