I wrote many standardized tests over the last 15 years. I wrote the TOEFL (Test of English as A Foreign Language), the MCAT (Medical College Admission Test), and the SAT (Scholastic Aptitude Test).
Standardized tests give you precise goals you can use to create your own learning objectives.
I am not a big fan of writing these tests myself. However, I felt significant changes in my abilities every time I wrote one. My English proficiency was significantly better after I wrote the TOEFL test. My reading comprehension and my ability to critically analyze have improved significantly with the MCAT.
Now I am learning languages and computer programming with this method.
Learning French and Japanese with standardized tests.
The DELF/DALF tests the French language ability, while the JLPT tests the Japanese language proficiency.
I got a set of practice materials for both tests and set aside 30 minutes every day to achieve a specific learning objective.
Learning coding with "coding interview" preparations.
Although programming languages do not have standardized tests like spoken languages, I simulate the process with preparing for coding interviews.
I decided to prepare for the Google coding interviews. I collected materials and created a list of topics that Google accesses on coding skills. I set aside 15-20 minutes each day to learn specific topics to improve my coding skills.
When creating learning goals, don't reinvent the wheel. Use what is already created to increase your efficiency. Chunk down learning objectives to smaller sizes and practice them every day to improve your skills over time.