I often here this question and it pops up in the Xamarin subreddit frequently too: How do I get started with Xamarin? I think I have a pretty good answer. Learning Xamarin isn't really just about learning a framework or a set of API's. Those are just parts of a greater whole. Learning Xamarin, coming from say, a Web development background, is more about learning a different way of thinking because mobile development is its own animal.
Assuming you're looking to specialize or least become proficient in mobile development with Xamarin, this is my advice after spending the last 2 years working with it.
Don't Start with Certification
It's tempting to head over to Xamarin University and jump on the certification track, especially because it's so affordable now. But, don't worry about that just yet. Do use Xamarin University to learn, but hold off on the cert at first. It's good but not it's not everything. And, without actual experience, you'll probably fail the exam.
Start with a Real App
I got into Xamarin development because I was intrigued by it. Like most developers, I built a few sample apps, hit a few snags, dropped it and got on with life. There was no urgency to learn Xamarin. I didn't HAVE to learn it. Until I did. You see, a friend of mine hit me up on FB Messenger and asked if I would be interested in building an app. He had a client who needed an iOS only app. Foolishly, I said I could do it. One of the best risks I've taken in a long time.
So I signed a contract, took a sizable up-front payment and started working on this app. I HAD to deliver it, therefore, I HAD to learn Xamarin and more importantly, the iOS API's. This was a painful journey but a worthy journey. The app had some really tricky technical requirements involving audio ducking and timers. I felt in over my head on several occasions but if you're not in over your head, you're not learning. If you're not in over your head, you're comfortable and that's not safe. That's the deceiving aspect of comfort: it makes you feel safe. You're not.
Anyway, I delivered the app to this client...a few times (zero QA) and it wasn't over budget, but it was a bit late. Despite the slight delay, my client was very, very happy and I was too, because I learned a ton. I learned about Xamarin, sure, but more than that, I learned about mobile development. That's a big deal because it's not the web, it's not the desktop, it's something all its own. Mobile development is its own animal. Xamarin will expose you to it, but it's a mindset.
Anyway, if you really want to become a mobile developer, whether using Xamarin or Swift, or Ionic, or Java, or whatever sexy thing is hot today, commit to a client and create a real, deliverable product. Force yourself to deliver something. Deploy it to an app store. Otherwise, you'll flounder, you'll half-ass it. You'll drop it, like the seven other tech stacks you think are cool but did nothing with beyond a hello world. If you're not feeling the pressure to deliver, you're not learning.
Okay, you spent long periods of time doubting your ability as a developer, you created an app (through much toil and sweat), you're client is happy, now what? Go further. In my case, I became familiar with iOS, but Android was a mystery. Time to go further with the unknown. I'm still working on that.
If you want to get started with Xamarin, realize that Xamarin is only one aspect of a very large landscape. You're trying to learn a new paradigm, whether you realize it or not. If you learn the paradigm, Xamarin will just become a small part of it. It's a great piece of technology, but it's just one part of a whole. Also, get certified eventually, it's good...I hope.