I've learned JavaScript basics, including variables, data types, operators, control flow, arrays, objects, and functions. I can write small functions, but I want to build fully functional website clones. I'm currently struggling to understand higher-order functions, first-class functions, and closures. What would be a practical next step, and how should I continue learning without getting stuck on these topics?
3 Answers
You don’t need to master higher-order functions, first-class functions, and closures before building websites. Learn the basics of those ideas, then revisit them when a project uses callbacks, event handlers, array methods, or private state. A practical path would be DOM manipulation, events, forms, asynchronous JavaScript, fetch and APIs, modules, and then a frontend framework such as React or Vue.
Build the calculator without following a complete tutorial. You’ll probably discover several gaps, such as handling button clicks, updating the DOM, storing the current value, and writing the calculation logic. Looking up a specific problem is completely fine, but try to search for the exact issue you’re facing rather than copying an entire finished project.
Start building projects instead of waiting until you understand every concept perfectly. Try making a calculator, to-do list, form validator, or simple interactive webpage. Projects will show you which concepts you actually need to learn, and you’ll remember them better because you used them.

So it’s better to first attempt each feature myself and then search for help with a specific problem, rather than starting with a full calculator tutorial?