Como empezar:
Escoge tu lenguaje de programacion (C, ASM, Basic, Niple), busca ejemplos faciles para hacer usa un PIC basico para empezar 16F84A o mejor 16F88. Planteate metas sencillas, lee su datasheet y veras que es mas sencillo.
Sobre tus proyectos una vez que entiendas muchos conceptos podras usar un RTC para programar tus temporaizadores y asi conseguir algo exacto, y tambien entenderas el dimmer para encender y apagar tu foco.
Suerte