Hola, son cuestiones interesantes pero en algunos casos difíciles de responder
![Gui�ar ;)](https://aprenderaprogramar.com/foros/Smileys/default/wink.gif)
Has indicado "El objetivo era conseguir y asentar unas bases sólidas de programación y creo que lo he conseguido"
Enhorabuena, completar los cursos no es una tarea sencilla, requiere mucha constancia. Y gracias por el apoyo/reconocimiento a quienes preparamos los materiales.
La duda respecto a cuándo usar while o until: yo te recomendaría que los uses según veas más razonable para resolver el problema concreto al que te enfrentes. No hay una cosa mejor que otra. Aunque dicho esto, el bucle de este tipo más habitual en programación es el while (digamos que es el que más ampliamente usan los programadores). Considéralo una opción del programador y no le des demasiadas vueltas a esto.
Sobre cosas que no se tratan en el curso de Visual Basic, como bien dices se trata de un curso de iniciación por lo que muchas cosas han quedado fuera. Algunas quizás indebidamente, pero se ha tratado de hacer lo mejor posible.
Esta pregunta. ¿Podría alguien explicarme que es un ArrayList y que lo diferencia de un Array? no es sencilla de responder. Digamos que para comprender qué es un ArrayList hay que comprender qué es un objeto, y para comprender esto hay que estudiar programación orientada a objetos, que es el siguiente paso lógico si quisieras seguir avanzando...
Creo que las preguntas sobre arraylist, enum, y otras cosas puedes resolverlas siguiendo el curso de Java (aunque lógicamente requiere tiempo).
Las máquinas de estados son algo bastante específico y sí que no te puedo dar ninguna referencia...
En fin, gracias a tí y adelante con la programación
Saludos