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