I'm learning programming on my own and trying to follow a step-by-step path instead of studying everything at once. The problem is that I get overwhelmed easily, which makes it hard to stay motivated. For example, while learning Dart, how can I tell when I know enough to start learning Flutter widgets? Is there a milestone or practical skill level I should reach before moving on?
3 Answers
You don’t need to completely master one topic before moving on. Learn the basic ideas, try using them in a small exercise, and continue. If you later discover that you don’t understand something important, go back and review it. Getting stuck trying to perfect every subject can slow you down unnecessarily.
Pick a project you actually want to build and let it guide your learning. If the app needs a database, learn the database concepts then. If you need a particular widget, study that when it becomes relevant. Learning only abstract topics for too long can make it much harder to stay interested and motivated.
Use a topic briefly, then keep bringing it back as you learn new material. Combining older skills with newer ones helps the concepts become familiar over time and leads to those useful ‘aha’ moments. You can’t learn everything at once or understand every detail perfectly. Aim to know enough to use a concept, then expect to revisit and improve your code as your skills grow.

That makes sense—I'll try to focus on understanding the basics instead of waiting until I know everything perfectly.