Becoming an expert is usually a side effect of building something. As opposed to the other way around.
I am assuming you already have a project in mind. Assuming you are already technically competent. Then you can design, in detail the project. When you have identified the pieces of the project, build each piece, using the new language/framework. Test each piece. The first piece I would do is one that exercised the building of code in the new language. Second piece would target the new framework. You also want to determine how you are going to debug this, at some point, you will scream WTF you piece of S* why are you doing this! Thats when you learn to love your debugger.
It helps a lot if you have a buddy who knows the language / framework. Not to have them do it but to guide you. When you have your first few pieces of code, ask them their opinion.
When lacking a buddy, I usually grab some 'step by step' instruction, build what they say. Recently I built a web site for work, we needed to post time relevant material, that would expire. The activity on the page we expected to be very low. So I looked at doing Github. Found this wonderful step by step guide by Jonathan McGlone. http://jmcglone.com/guides/github-pages/ I followed it faithfully to make my first site, FWIW I am a backend / embedded developer. I took that knowledge as a spring board to create what I needed.
When following a guide be careful of software version issues. I have gone through some guides just to find out it would not work because the version they used is no longer available. Sadly I have had this happen several times with Unity, to the point I have stopped trying. Video guides are often good as you can see what they are talking about.