I, a high school student, had almost never used Next.js before I built [Zyma](https://github.com/EvanZhouDev/zyma) with my friend in a 12-hour hackathon. I learned how to use Next.js properly within and beyond that hackathon (in around 3-6 hours of actual learning and experimenting in total), just from reading the documentation.
I almost never used Next.js before because I had contributed to another project before that uses Next.js, but never really touched the parts that are Next.js-specific.
The main thing about Next.js (or I guess any modern React meta-framework in this day) that was a new concept to me would be React Server Components.
My experience with Vite consists of SvelteKit (which is built on Vite) and I would just say that the DX of Vite is a bit nicer than Next.js as Next.js tries to get in everything: it’s fairly opinionated on how to do things while Vite typically doesn’t get in your way.