Все языки программирования и технологии учил по принцыпу — надо, сделаем. Алгоритм прост: Ставим себе задачу, пичем обычно эта задача не простая а как можно более сложная, и думал как разбить это все на подзадачи. Потом при помощи гугла и исходников, найденых им реализовывал. В процессе работы возникает огромная масса вопросов, большая часть которых решается гуглом. Учить по книжке у меня не выходит, только если что-то «подсмотреть».