A project, a project. Almost any project. Build it to throw away when you've completed it.
Any project you begin will turn out to have a stumbling block where you can't move forwards because you are deficient in your knowledge.
Now spend some time on Software manuals, Google, the forums online and learn what is necessary to remove that deficiency in your knowledge.
Fixing that deficiency, and therefore being able to move onwards with the project means you have learned something.
Keep moving past the all of the stumbling blocks and eventually you will complete that project.
"But, throw it away?"
Yes. Now throw it away. And now rewrite it using all those hindsights of all the new knowledge you now have on hand. You will now know many shortcuts, algorithms, methods, etc. that will make better code than you had before.
That is how I learned programming.