Lo ideal sería que ambos (si quieres que el software sea una carrera es más una necesidad que eventualmente hagas ambas cosas). Si tiene que elegir uno, realmente depende de cuáles sean sus objetivos, ¿desea ser un experto en todos los oficios o un especialista?
En el software, realmente necesitas ser un gato de todos los intercambios hasta cierto punto (al menos lo suficiente como para poder comunicarte con tus compañeros en otras especialidades), pero sin conocimientos especializados, eres fácilmente reemplazable, por lo que la seguridad en el trabajo exige algún tipo de especialidad. esa especialidad no tiene que ser lenguajes de programación, podría ser teórica (por ejemplo, algoritmos), dominio específico (por ejemplo, experiencia en física o contabilidad), arquitectura de software, gestión de proyectos, etc.
Otra razón por la que es importante tener un amplio conocimiento es porque las especialidades que se solicitan están en constante cambio, por lo que tener una comprensión general de una serie de áreas le ayudará a juzgar en qué debe especializarse a continuación.