Хороший вопрос.
База разделяется на несколько категорий:
1. Движок и как он устроен. Не нужно знать его реализацию под копотом, но нужно знать про контекст выполнения, лексическое окружение, стек вызовов, цикл событий, макро и микрозадачи, устройство памяти, как предотвратить утечки памяти, область видимости, поднятие, всплытие и перехват событий.
2. Синтаксис языка. Это самое простое — примитивные типы данных, работа с ними, операторы, промисы и подобное.
3. Структуры данных. Это уже более интересная тема, в ней можно засесть надолго, но пробежаться по верхам все равно советую. Связанные списки, куча, стек, хэш таблицы, очередь. Возможно даже графы.
4. Алгоритмы — это то, как оптимизировать каждое свое действие.
5. Паттерны и архитектура проектирования — знание о том как строить приложения.