Yo creo que hay que hacer el distingo entre las 2 grandes ramas los diseñadores y los programadores. Lo ideal es especializarse en alguna de estas áreas si tenemos una sensibilidad estética o por ponerlo en términos simples tenemos buen gusto pues el diseño y sus herramientas es lo nuestro (Adobe Photoshop y Adobe Illustrator) por el contrario si lo nuestro es la creatividad para solucionar problemas y no les tenemos miedo a los lenguajes de Programación entonces lo ideal será dedicarnos a los lenguajes de programación (PHP, ASP, Javascripts, AJAX, AS3, etc.).

Hay algunos que podemos dedicarnos tanto al diseño como la programación indistintamente pero usualmente nos va mejor en una u otra área así que es mejor especializarnos. Cualquiera sea la rama que optemos debemos dominar XHTML y CSS además de tener nociones básicas de las herramientas tanto del diseñador como del programador.

¿Cómo Aprender?

Yo se que en Internet hay muchos tutoriales y videos que explican como usar las herramientas respectivas pero casi no hay ninguna página que nos enseñe los fundamentos y estos son más importantes de lo que creemos así que lo mejor es empezar en algun instituto.

En el caso de los diseñadores se requieren tener los fundamentos de manejo de colores, armonía de colores, técnicas de comunicación visual, marketing, etc. Y eso no se aprende en ninguna página web. Para el manejo de las herramientas no necesariamente debes ir a algún instituto aunque tener un profesor siempre es más provechoso y luego se complementa con tutoriales, blogs, etc.

En el caso de los programadores no basta con conocer la sintaxis del lenguaje de programación o saber como copiar tal o cual script (error muy común en programadores novatos). Yo recomiendo ir a un instituto o a una universidad para que nos enseñen las técnicas de programación, programación orientada a objetos, análisis de sistemas, etc. Los fundamentos son válidos para cualquier lenguaje de programación.

Yo no niego que la experiencia nos puede dar conocimientos iguales o superiores a los de un instituto pero por qué optar por el camino más largo y tedioso si podemos tomar una vía más segura. Tampoco creo que tener un cartón (título profesional) por si sólo te haga un profesional también se requiere la experiencia o como decimos por aquí «Hay que pagar el derecho de piso».

Conclusión

Saber manejar el Photoshop no te hace un diseñador, conocer las técnicas de comunicación visual y aplicarlos en tu trabajo es lo que distingue al profesional.

Saber los comandos de PHP, javascript u otro tampoco te convierte en un programador, lo que distingue a un profesional es conocer y aplicar los estándares tanto al escribir el código como al aplicarlos creando un sistema bien estructurado que satisfaga las necesidades del cliente.