Estoy en desacuerdo con Carxl, a lo mejor el aprendió así pero como que es una via muy tonta de hacerlo, cada quien aprende lo que requiere aprender, para que aprender a diseñar software si nunca lo vas a usar? como en mi caso, que primero aprendi php, luego c++, despues javascirpt despues POO y al final AJAX, y sigo sin saber diseñar software, por que no lo requiero, si te sirve yo aprendi mucho en esta web, trata php estructurado y phpOO
http://cesarcancino.com