Como otros han respondido, no necesitas una licenciatura para escribir software. Sin embargo creo que sí necesitas experiencia universitaria para ser ingeniero de software. Un grado universitario de Ciencias de la Computación te enseñará mucho más que la programación y con suerte te dará una mayor comprensión de lo que significa resolver un problema de principio a fin, utilizando la programación de computadoras como la herramienta.
A menos que seas extremadamente autodisciplinado, la universidad es el camino a seguir para aprender estas habilidades.
Si el gasto, u otros factores se interponen en tu camino de un título universitario, hay una tercera opción. Sitios como Coursera (y algunos otros) ofrecen clases de ciencias de la computación de las principales universidades de forma gratuita (o por una pequeña cuota en algunos casos). Si tienes la suficiente disciplina para mantenerte en ello, puedes conseguir la educación necesaria a tu propio ritmo.
Sin embargo, como han dicho otras respuestas, la experiencia es clave para el mercado laboral. Y un currículum que diga que recibiste tu educación de Coursera podría levantar algunas cejas. Por lo tanto, asegúrate de combinar cualquier título de ingeniería de software con trabajo práctico. Puedes empezar contribuyendo a proyectos de código abierto o pequeños trabajos como freelance, o haciendo prácticas en una empresa de software, etc. cuando llegue el momento.