Хотите научиться решать сложные задачи берете (или придумываете) проект и делаете его.
Хотите научиться проектировать проекты берете листочек и ручку и рисуете, потом в течении недели подходите к листочку и редактируете.
Хотите научиться писать код чтоб потом не смотреть на него и не плакать, пишите много кода.
На истину не претендую, таков мой путь ниндзя. =)