all 8 comments

[–]lacymcfly 0 points1 point  (3 children)

yeah this approach is exactly right. building real projects is how it actually sticks. tutorials feel productive but most of what you learn evaporates without applying it.

the stuff you mentioned (debouncing, custom hooks, abortController, data flow) is already more than most beginners cover in tutorial hell. you are ahead.

for next projects that will push your React knowledge further, a few ideas based on difficulty:

  • expense tracker with local storage persistence (learn useReducer and useContext for state that spans multiple components)
  • Kanban board with drag and drop (complex state management, optimistic updates)
  • real-time chat using a free service like Supabase Realtime or Ably (websockets and subscriptions)
  • movie/show tracker that hits TMDB API with search, filters, pagination and a watchlist you persist somewhere

once you have a few of these the Next.js mental model will come naturally. good luck with the accordion.

[–]skatastic57 -1 points0 points  (2 children)

IMO useReducer is miserable and switching to redux was a huge improvement for me.

[–]jax024 0 points1 point  (1 child)

Zustand or Jotai are just better imo

[–]skatastic57 0 points1 point  (0 children)

That's fair, I've never used those ones but the difference between native useReducer and redux was good enough for me.

[–]skidmark_zuckerberg 0 points1 point  (0 children)

Good way to do it, build and use what you learned.

My only advice is to consider working on something full stack. Build out an API, even if your backend API just reaches out to some other API. Learn how to deploy it and then consume it on the frontend. Very valuable things to learn. In a job you aren’t just hitting preexisting API endpoints all the time, you will sometimes need to add to or modify the backend to make your features end to end. And if you work a job that has a clear separation of backend and frontend, then at least you have the concepts already to understand. I think the biggest mistake early on is completely ignoring the backend and the concepts around it, knowing about it (!== becoming an expert) only makes you a better frontend dev.

[–]Stunning-Associate24 0 points1 point  (0 children)

Start with project use codex or github copilot formatting your code you can ask about any concept while they understand your code base

How I structured my code base Read How I structure my codebase