¿Tengo que estudiar matemáticas discretas, algoritmos y estructura de datos para convertirme en un buen desarrollador de Android?

Para convertirse en un buen desarrollador de Android, debe aprender absolutamente sobre algoritmos y estructuras de datos. No es necesario que pueda construir el suyo (necesariamente), pero comprender cosas como las características de rendimiento de los diferentes algoritmos lo ayudará a tomar decisiones de diseño sensatas cuando planifique la arquitectura de su aplicación y le ahorrará grandes dolores de cabeza más adelante. Le ahorrará realizar optimizaciones innecesarias y lo ayudará a asegurarse de que su aplicación funcione de manera rápida y sin problemas, entre otras cosas. Para ser un gran desarrollador, debe tener una comprensión profunda de estos temas. Para ser un buen desarrollador, al menos un descuidado superficial. Tendría serias reservas acerca de contratar a alguien que al menos no entienda la diferencia en las características de rendimiento entre un tipo de burbuja y un tipo rápido, por ejemplo (aunque considero esto tan fundamental que nunca lo he hecho en una pregunta de entrevista )

No es así sin estos, no puedes ser un buen desarrollador de Android, pero si tienes conocimiento de estas cosas, te ayudará a resolver diferentes problemas al momento de desarrollar la aplicación.

Supongamos que está desarrollando una aplicación de calculadora en la que necesita verificar si los paréntesis proporcionados por el usuario están equilibrados o no, necesita una pila para hacerlo, así que si tiene el conocimiento de cómo funciona una pila, que es un concepto de estructura de datos, entonces sería muy fácil resolver ese problema; de lo contrario, tendrá que aprender qué es una pila, cómo funciona, cómo implementarla, primero, luego podrá resolver ese problema.