полноценно изучить все принципы и понять как думать в этом ключе?
(имхо) Лучше взять какой-нибудь простой лисп (Common Lisp например) и пописать недельку на нем что-нибудь для себя. Без разницы какие книжки брать, насколько они будут старые, не обязательно все запоминать или пытаться написать что-то нереально большое. Главное - попробовать и проникнуться общими подходами к делу, которые вы там увидите. А потом взять свой JS и посмотреть на него свежим взглядом.