Самый хороший вариант - это практика. Ну и + хороший (опытный) наставник, который может подсказать какие то моменты, показать что-то интересное, и объяснить с точки зрения своего опыта, почему к примеру, ваш вариант решения проблемы не эффективен или вовсе неправильный.
Также необходимо читать необходимую литературу (книги по ЯП, по алгоритмам + статьи по интересующим вас технологиям и подходам).