Hello Usama. I'm a self-taught developer too. I started with Java and directly tried to start learning Android development. Actually, I failed because I didn't PRACTICE enough before starting Android development ( Now I'm a web developer :) ).
Try to practice with "coding" in parallel with the technology you are trying to learn ( Such as mobile or web development ).
Try to practice a bit in problem-solving. This sheet may help you to start with easy problems:
And you should start learning some CS principles such as data structure and algorithms. You will be a better developer when you learn these things. Because you will learn about some problems and how they analyzed and solved.