Zutanito, un estudiante de programación, cree que los tipos de datos definidos por el programador son redundantes y no tienen una utilidad real. ¿Podrías explicarle a Zutanito en qué situaciones son necesarios los tipos de datos definidos por el programador y cómo se pueden utilizar en la programación?