I've been studying web development since May of last year. I completed Angela Yu's full-stack course on Udemy, covering HTML, CSS, Bootstrap, JavaScript, some Node.js, authentication, and PostgreSQL. I switched to The Odin Project before reaching React because I was told its React material would be stronger, and I'm now about halfway through that module.
Some assignments take me a while, which I'm trying to accept instead of immediately using AI for solutions. However, I often feel like I'm forgetting fundamentals as I move forward. For example, I recently questioned why items rendered from a mapped array need a distinct name or key, and was told that the answer should have been obvious from my HTML fundamentals. That made me worry that the material hasn't really stuck or that I'm not building a strong enough understanding of the underlying concepts.
I know I previously relied too heavily on AI when debugging or solving course assignments. I also haven't built many projects outside of the required exercises, so I may simply need more repetition. I work another job and study during my downtime, which limits how much extra time I can spend on side projects. I also tend to over-polish projects even when they are not intended for my portfolio.
I want to become a better developer and hopefully transition into tech within the next year or so. Am I approaching learning incorrectly? Is it normal to forget concepts and need to look them up, and what are effective ways to retain the fundamentals? Should I revisit HTML, CSS, and JavaScript before continuing with React, build repeated versions of the same project, or use AI in a more structured way?
4 Answers
Going back to the basics is not a step backward. Spend some time writing very simple code without abstractions: semantic HTML, straightforward CSS, JavaScript arrays and objects, DOM manipulation, events, asynchronous requests, and basic database normalization. Use these tools repeatedly until they feel familiar.
For React specifically, understanding the browser and vanilla JavaScript helps a lot. React is not a replacement for those fundamentals; it is a way to organize and update interfaces. You should be able to explain what problem components, state, props, and list keys solve, even if you still need to check the exact syntax.
The most important thing is to keep going while making the process sustainable. A few focused hours around another job can still add up, but becoming job-ready may take longer than an online course suggests. Avoid turning every practice project into a perfect portfolio piece. Build small, deliberately limited projects that are useful to you, finish them, and then rebuild or extend them.
When stuck, use a progression: reread the requirements, inspect the error, search the documentation, create a tiny isolated example, and only then ask AI or someone else for help. Keep a short record of mistakes and solutions, then revisit it periodically. The goal isn’t to memorize every API; it’s to develop enough understanding that you can find, test, and apply the right information.
Forgetting things while learning is normal, especially when you’re moving through several connected technologies. Programming knowledge becomes more reliable through repeated use, not by recognizing a concept once in a tutorial. Try rebuilding small projects several times: make a simple to-do app with plain HTML, CSS, and JavaScript, then recreate it with React, and later connect it to a backend and database. Each version will reinforce a different layer of the same fundamentals.
AI can be useful, but treat it as a tutor rather than an answer machine. Before asking for code, explain the problem yourself, make a small attempt, and identify what you think is failing. When you do use AI, make sure you can explain every suggested change and reproduce it without blindly copying. Documentation and debugging practice are also part of becoming a developer, so needing to look things up does not mean you are failing.
Don’t underestimate how much time full-stack development covers. You’re combining programming fundamentals, browser behavior, HTML and CSS, JavaScript, React, servers, APIs, databases, authentication, deployment, and software design. It’s a large area, so feeling lost after a year of part-time study is not unusual, and being in your late twenties does not mean you are running out of time.
Set a narrower goal instead of trying to master every possible stack. Pick one practical path, such as JavaScript, React, Node, and PostgreSQL, then build a few useful applications with it. Other frameworks and runtimes will still exist later, but you do not need to understand every alternative before becoming employable. Focus on making steady progress and learning to solve problems, rather than completing a curriculum as quickly as possible.

That makes sense. I think I’ve been measuring myself by how quickly I can recall everything instead of whether I can work through a problem and understand the solution. I’ll try repeating smaller projects instead of constantly moving to new topics.