I'm a beginner learning Linux fundamentals and full-stack web development. I can study JavaScript for about two or three hours after school and hope to build a solid foundation within the next eight months before college. I prefer reading and practicing instead of relying on video tutorials because I want to avoid passively following tutorials without understanding the material. Right now I'm working through loops and arrays, but when I read documentation on sites like MDN, much of it feels difficult to understand. I often return to earlier lessons, reread them, and take notes, but my workflow feels disorganized and slow. How should I structure my learning, and will building projects make me lose progress if each project takes a long time?
4 Answers
Your learning path probably won’t be perfectly linear. Think of it as a connected web: sometimes you zoom in on one detail, and sometimes you step back to understand how it fits into a larger application. It’s fine to move forward while leaving some topics partially understood, then return to them when a project gives them more context. Don’t reread an entire course every time you feel confused; identify the specific idea blocking you and focus on that.
You learn programming by writing programs, not just by reading about them. Use each lesson as a tool for building something small, then look up documentation when you get stuck. Projects are what turn unfamiliar information into something you remember. Feeling uncomfortable or confused is normal, especially when you’re learning a new skill. A good course should give you regular projects, so use those to apply each topic rather than waiting until you understand everything perfectly.
Start with small, practical problems instead of trying to understand all of JavaScript’s documentation at once. You could make a calculator, a simple to-do list, a guessing game, or recreate one small feature from an app you already use. Break the project into tiny tasks, search the documentation for only the concepts needed for the current task, and test each change. This kind of struggle is useful because it teaches you how to solve problems independently.
Keep them small and treat them as practice, not as products that need to be perfect. A project that takes several days and teaches you how to use arrays, functions, or the DOM is usually more valuable than rushing through several lessons without applying them.
Choose the type of software you want to build first, because that determines which concepts matter most. For web development, focus on understanding what existing code does, then trace how it works and make small changes yourself. A useful routine is: read a short section, write a few examples from memory, build a tiny feature, and review what confused you. Reading other people’s code can also help, but make sure you understand and modify it instead of copying it blindly.

I’m worried that spending too long on projects will slow me down because I only have eight months. I’m aiming for solid fundamentals rather than mastery, so should I keep projects very small?