Hola,
Bueno ... en fin .. espero haber sido de alguna ayuda ... y para terminar ... (me tardé mucho en escribirlo y al parecer sucedieron muchas cosas en el intervalo
)
La programación se divide en dos grandes facetas claramente definidas, la lógica de las aplicaciones y los lenguajes de programación, que aunque van de la mano son independiente una de la otra, a veces saber PHP no significa que sepan programar y que sepan programar no significa obligatoriamiente que conozcan PHP.
La lógica te permite diseñar los programas en cualquier lenguaje siguiendo normas preestablecidas como los algoritmos y los diagramas de flujo. Así mismo los lenguajes de programación son las plataformas para llevar dicha lógica a su implementación final, (poner en marcha); dentro del ordenador.
Es decir que sabiendo diseñar un algoritmo o diagrama de flujo donde esté plasmada la lógica o la idea de una aplicación se hace mas fácil traducirla al lenguaje que estés trabajando.
La filosofía de un programa viene siendo la corriente de pensamiento sobre la cual se basaron. Por ejemplo podríamos decir que una de las filosofías de Joomla es el patrón MVC (modelo-vista-controlador); es decir que la forma de pensar de los programadores que la diseñaron se inclinó por la corriente de dicho patrón.
Los algoritmos te permiten enfocar tu mente sobre la solución de un problema antes que enfocarte en la complejidad de un lenguaje de programación; con algún tiempo de experiencia diseñando algoritmos puedes llegar a saltarte correctamente ese paso, de diseñar el algoritmo.
Los lenguajes de programación te permiten traducir al ordenador las órdenes que quieres que ejecute para solucionar el algoritmo o idea. Pero es independiente de la lógica, así puedes implementar la misma idea en cualquier lenguaje como PHP, C, Erlan, Pascal, Java, etc.
Hay muchos lugares donde puedes encontrar información sobre el diseño de aplicaciones. El sitio de php.net es bueno para los programadores que ya tienen la lógica del diseño de aplicaciones, pero no así para alguien que desea aprender a programar. Haciendo una analogía ... viene siendo como el manual operativo de un avión, te da las instrucciones básicas del funcionamiento de un avión, pero no te enseña a volar directamente.
Primero tendrías que comenzar diseñando aplicaciones muy simples, una vez que tienes la 'lógica' todo lo demás viene por añadidura. Por mala suerte no conozco ningún sitio específico donde puedas aprender la lógica de programación; la mayoría de tutoriales y manuales se orientan sobre el lenguaje y básicamente sobre la sintáxis, y no así sobre la lógica.
En este caso lo que a mi me hizo entender el problema no fue solamente el conocimiento del lenguaje PHP, sino abstraje la idea que plasmaste aquí en un algoritmo mental para poder entenderlo, después era solo de traducir en las instrucciones para lograr el objetivo que se había planeado.
Pero no conozco ningún sitio específico donde exista un tutorial para programar, pero en base a lo que describí anteriormente puedes buscar mayor información,
Saludos.