Programador web = enfocado en el back-end (la parte que genera el contenido dinámico habeces desde una base de datos), maneja lenguajes como php, perl, python o frameworks como asp.net, laravel etc. suele tener conocimientos de diseño (front-end, la parte que se mira de la web) pero no es su especialidad.
Desarrollador web = suele tener conocimientos generales de todas las tecnologias que involucran un sitio web (html, css, javascript, php, mysql, apache etc.) teniendo como mas fuerte alguna de ellas y puede o no llegar un nivel especializado.
Diseñador web = enfocado en el front-end (la parte que se mira de la web) se enfoca en programas de diseño como photoshop y gimp, también en html y css, también conoce sobre estándares, suelen tener conocimientos de programación a nivel básico para poder encajar el diseño con la funcionalidad.