Para desarrollar un sitio como el que dices, con tienda en linea y todo lo demas, necesitas muchas cosas, pero sobre todo paciencia. Obtener los conocimientos que requiere, lleva tiempo, y poder comprenderlos en su totalidad y aplicarlos de forma eficiente y productiva lleva aun mas tiempo. Sinceramente, no es algo que vallas a aprender en un curso. He visto muchos de esos cursos, la mayoría podrían ser impartidos por cualquiera que haya abierto el photoshop un par de veces y que sepa como poner una etiqueta estilo:
<h1>Headder</h1>
Aun que sin duda habrá un par entre muchos que si valga la pena. Si de verdad quieres aprender, necesitaras mas que eso, necesitaras
libros, y buscar información en la web. Contrario a las respuestas anteriores, yo no te voy a decir que necesitas este u otro lenguaje o programa, por que al final depende de cada uno decidir que metodología y herramientas usar. Por ejemplo, veo que muchos mencionan photoshop, cuando yo en mi vida nunca he usado photoshop para desarrollar sitios web. Todo eso que te han dicho son buenas sugerencias, pero al final eres tu quien debe decidir que herramientas usar. Por ejemplo nadie menciono Xara Xtreme, el programa que por ahora estoy usando para diseñar.
Lo que realmente necesitas, como alguien ya menciono antes, es ganas; ganas de aprender, de leer, ganas de desvelarte frente a un libro un editor de textos, ganas de mantener el navegador abierto todo el tiempo apuntando a un archivo en tu servidor local y no al youtube, ganas de sangrarte los dedos y arrancarte los pelos escribiendo y tratando de entender por que tu code no hace lo que tu quieres.
Otra cosa que tal vez necesites es cambiar tu forma de pensar. Si esta acostumbrado a pensar de forma muy literal, tendrás que aprender a pensar de forma mas abstracta. Sentarse frente a un pedazo de code y tratar de entender en tu cabeza todos los procesos que están pasando en la compu cuando interprete ese pedazo de code ayuda mucho a la hora de desarrollar.
De forma concreta, necesitaras aprender:
Diseño web y algún programa de diseño gráfico como los ya mencionados photoshop o illustrator, entre muchas otras opciones). Personalmente me inclino por los programas vectoriales como illustrator por su precisión y flexibilidad.
Lenguajes del lado del cliente. Aquilón si no hay de otra, aprende cualquier sabor de HTML o XHTML, (por el momento recomiendo XHTML y adentrarte un poco a HTML5, pero mantén en mente que este ultimo no está totalmente implementado por navegadores) aprende Javascript y mantente alejado, por lo menos mientras aprendes bien Javascript, de cualquier framework, llámese jquery, mootools o lo que sea.
Lenguaje del lado del servidor: aprende cualquier sabor de SQL (recomiendo mySql) o cualquier otro sistema de base de datos. Además, cualquier lenguaje de programación como puede ser php o asp (recomiendo php).
Con esas herramientas en la bolsa, estas listo para empezar, ya después iras aprendiendo temas mas avanzados. Algo a tener en mente siempre es la optimización y las implicaciones en desempeño que cada una de las tecnologías que decidas aprender trae consigo. Si piensas seriamente dedicarte a la web, no pierdas tu tiempo con flash, eso es una pesadilla para la web, aun que la verdad, si tienes ganas de aprenderlo, no de desanimo. Flash es muy divertido y fuera de la web puede tener muchos usos, pero por favor no desarrolles sitios web en flash...
Otra cosa que necesitaras es sentido del humor para poder soportarnos a muchos de aquí del foro jajaja... Ah! y por cierto, responsabilidad y disciplina son absolutamente necesarios.