Лучший способ обучения?
Как и во всем. Лучший способ это практика. То что ты там что-то пишешь вылетит из головы через неделю. А вот то, что ты закодил единожды и самостоятельно - останется с тобой на годы.
Универсального наилучшего способа для любого человека нет.
Человек - существо сложное, и состоит из 3х основных компонентов: тело, эмоции и мозги. 
Учится тело. А программирование - это как раз сначала мозги. 
Поэтому найдите для себя наилучший способ "опредметить" то, что вы читаете по программированию.
Также лично мне очень нравится все курсы про обучение. Один из них был давно на Coursera, и как раз в понедельник начинается снова. 
Ну и практический опыт - конечно же незаменим.
P.S. Читая книги и смотря курсы не забывайте об одном: все что рассказывает (или пишет) автор - это всего лишь его точка зрения на этот предмет. Но вы можете не иметь такого опыта, чтобы понимать это. Поэтому, если не понимаете что пишут - не переживайте, даже спецы с многолетним стажем не все понимают. 
Начинайте с самого-присамого простого, и затем разматывайте свой клубок знаний.