If you're learning a computer language, any language, start off with silly little problems first. Say, print all numbers from 1 to 10 (this teaches you loops). Now print all numbers from 1 to 100 that contain the digit 7 (this teaches you branches). Write a game where the computer tries to guess the number (though pretty hard in 8-bit assembler from scratch because of I/O).
If you're really new to the language, expect to feel frustrated and confused at first (for me, Forth and Haskell were serious "Wait, what?!" languages), and be prepared to google a lot of simple things. But make yourself try first and accept that you will fail a lot, because that has been shown to strengthen the learning process more than just looking stuff up (see "Making it Stick" by Peter Brown, a book I can't recommend highly enough,
https://www.amazon.com/Make-Stick-Scien ... 0674729013). Be willing to ask questions that you feel are probably stupid (for examples, search me on the Forth forum *cough*).
Once you have the basics down, as Whartung said, try a mid-size project. I usually write a 65c02 disassembler because it's actually quite simple to do but requires working with strings, different base numbers, arrays, etc.
Then, finally, try something big. I didn't come close to understanding Forth until I wrote the crude emulator for the 65816 and had lots of little "oh, that's what they mean!" moments. A big project forces you to learn how to structure the code at a whole different level.