Up to you! That being said: when learning, I typically suggest:

* learn how to use existing things
* learn how things are implemented
* learn how to implement them yourself (from scratch)

That way you can usually start from something that actually works, which was your whole struggle the past 2-3 days.

But, everyone learns their own way :)