Me di cuenta de que preguntabas por cursos en Java tras escribir algunas recomendaciones para programación en general... Pero por si te interesa lo dejo publicado.
A mí también me toca pasar por caja sobre todo porque no estoy seguro si podré entrar al sector mediante autoaprendizaje.
No había comentado nada hasta ahora porque no estoy familiarizado con análisis de datos, pero si te interesa recursos para el tema de desarrollo puedo recomendarte unos cuantos ya que veo que muchos de los que usas están en inglés. Bueno tambíen hay que ver las preferencias de cada uno en cuanto a la forma de aprendizaje y antes que nada decir primero que soy un principiante, si ves que esto no es adecuado ignora el resto del mensaje.
Como habías mencionado anteriormente recursos gratis y en formato video, yo los suelo categorizar en: videos en youtube y videos de cursos universitarios. Personalmente me decanto por este último, así que mis recomendaciones serán en esta categoría, aunque admito que el formato no es para todo el mundo.
Cursos introductorios de programación en general:
- La serie CS50 de Harvard. CS50x si prefieres una introducción en general sobre ciencias de la computación o CS50p si es introductorio a programación en Python, aunque tienen otros cursos también.
- La serie 6.000x introducción de ciencias de la computación y programación en Python del MIT, dividida en MIT 6.0001 y MIT 6.0002.
La serie CS61 de Berkeley, dividida en CS61A, CS61B y CS61C, que es básicamente los conceptos que imparte el CS50x y el 6.000x pero en mucha más profundidad. CS61A es programación en general (en parte basado en este libro), CS61B es algorithmos y estructura de datos, y CS61C es sobre arquitectura de computadores. Estoy teniendo problemas para encontrar enlaces de estos cursos, parece que lo han puesto privado recientemente.
Creo que estos están bien como cursos introductorios, los he puesto en grado de dificultad de menos a más. Luego también tienes cursos en texto como los que han recomendado de la universidad de Helsinki vía MOOC-fi (introductorio Java o Python con algunos videos) y también hay más específicos pero eso sería salir de lo introductorio.
El único incoveniente es que algunos son cursos adaptados para ser cursos online (los de Harvard y Helsinki) mientras que otros son clases presenciales que sencillamente suben a la red (MIT) y algunos sin acceso a todo el contenido de clase (Berkeley).
De esa lista la mayoría solo los he ojeado por encima así que coge mi opinión con pinzas (son recomendaciones en general de gente que se decantan por este formato), salvo el CS50x, que estoy cursando y sí puedo recomendar como curso introductorio.
En cuanto al porqué prefiero este tipo de formato sobre los videos en youtube, hace un tiempo escribí sobre las ventajas y desventajas de cada:
spoiler- Primera toma de contacto: cualquier video en youtube.
- Ventajas: videos cortos y directo al grano o en algunos super largo con subdivisiones. Más guiado y cogiditos de la mano la mayoría de las veces.
- Desventajas: menos contexto histórico o panorama general dependiendo del creador. Baja dificultad y poca variedad de ejercicios. Calidad del contenido inconsistente, puede haber tanto docentes que sabe de pedagogía o cualquiera creyendo que con que sepa programar ya puede enseñar. Puedes tener una buena experiencia o terminar viendo la documentación en formato video.
- Neutro: muchas opciones si contamos diferentes idiomas del contenido e ignoramos lo priorizado por el algoritmo de youtube.
- Principiante: videos cursos universitarios.
- Ventajas: más contexto histórico o panorama general. Calidad del contenido más consistente aunque es entorno universitario por si existiese malos recuerdos. Más variación en dificultad y variedad de ejercicios, en algunos casos con autograder para el testeo de los resultados. Más estructurado y mejor organizado.
- Desventajas: videos largos concorde con la clase semanal impartida aunque los hay con videos cortos. Menos acompañamiento. Puede haber profesores desfasados y monótonos. Alta cantidad de información impartida en poco tiempo, sueles beber de una manguera aunque al no estar matriculado uno va a su ritmo. Falsa sensasión de confianza al superar ejercicios muchas veces diseñado para reducir alumnos excedentes de clase aunque en realidad no sabes nada.
- Neutro: puede contener conceptos matemáticos o relacionado que facilitan el aprendizaje.
Básicamente se podría resumir en el grado de dificultad de los ejercicios de un tipo de recurso sobre el otro y de la autonomía percibida cuando uno está solo frente a los ejercicios.
Creo que existe un incentivo económico que inclina los videos de youtube a tener cierto formato, muchas veces da la impresión que aprendes muchísimos conceptos en muy poco tiempo o en el peor de los casos llegan a ser una combinación de información + entretenimiento, pero realmente no llegas a desarrollar autonomía porque no fomentan el proceso y peor aún si no aplicas lo aprendido lo acabas olvidando. Lo que nos lleva muchas veces a la recomendación de Odin que es todo por tu cuenta, y aún así no lo recomendaría del todo especialmente para principiantes que empiezan absolutamente desde 0 porque es más un repositorio de información y enlaces en vez de un curso independiente.
También verás que muchos de los cursos de la lista tiene menos contenido que los videos de youtube, creo que es debido a la duración del curso escolar, por lo que cada curso se centra en lo que cree que es fundamental y a partir de ahí fomenta al alumno a aprender por su cuenta a base de documentación y de otras bibliografías. Quizás exista videos en youtube de este tipo pero no sabría decirte.
En cuanto lo que comentaste anteriormente sobre recursos tipo:
Trato de buscar vídeos que por norma general NO sean tutoriales. Quiero salir del tutorial hell. Aunque son MUY difíciles de encontrar de forma gratuita estoy buscando personas que hagan live coding en análisis de datos, es decir:
...
Si lo explican sobre la marcha, mejor, pero no es necesario, parando el vídeo y leyendo las funciones que emplean se puede comprender bien si sabes inglés.
Los hay y conozco uno para principiantes de 0, pero es de pago. Es más, es el curso que hice antes de CS50x por lo que me dio cierta base de autonomía, pero no lo recomendaría debido a que es muy específico y por la cantidad de material gratis que hay por internet. Pero para que te hagas una idea a lo que me refiero con "autonomía" aunque intuyo que ya lo sabes por el mensaje citado, aun así lo menciono por si acaso:
Usando el mundo del entrenamiento como analogía, es como cuando un principiante pasa a ser un intermedio y es capaz de programar sus propias rutinas. Durante esta transición, el trainee adquiere cierta capacidad de resolución de problemas, ya sea por experiencia, aumento de conocimientos fundamentales o sencillamente siendo la rata de laboratorio mientras se aplica el método científico a sí mismo. Puede que esta capacidad no sea el más óptimo ni el más adecuado pero por lo menos le permite saber por dónde empezar, le permite progresar de cierta manera, además de saber investigar y reajustar cuando fuese necesario para evitar estancarse.
Lo que pasa con muchos videos de youtube y ahora con el auge de las IAs, es que la mayoría de la carga cognitiva del proceso de resolución de problemas se deja en manos del instructor o de la IA por lo que el estudiante siempre se siente atrapado en ese "tutorial hell" sin saber cómo salir. Esto lo veo mucho al estar cursando CS50 y frecuentar la comunidad que tienen para hacer preguntas sobre el curso. Ahí cada vez ves a más usuarios sugerir "pregúntale al pato" (el pato es la GPT capeada para el curso) a otros usuarios a la primera de dudas para luego ver a esos mismos usuarios, que sugirieron el uso de la IA, hacer preguntas en problemas más difíciles cuando la IA no les han dado gran parte de la respuesta (al estar capeada no da respuesta entera).
En cambio es muy común ver este tipo de procesos en los videos de live coding, donde puedes ver cómo el programador piensa y toma decisiones, qué hace en caso de equivocarse, cómo investiga, prueba con distintas estrategias, etc. El problema es que no suele ser un formato muy popular porque hay mucho tiempo muerto de por medio, ya sea porque la persona detrás está pensando en silencio o en caso de esos buenos instructores, que saben destilar su razonimiento de forma clara y sencilla, alargan el video al tener que verbalizar todo el proceso. Así de primeras solo me viene a la mente videos de Ben Eater o parecidos pero no suelen ser cursos completo en sí.
Los cursos de la lista no suelen tener videos de este tipo pero sí fomentan que el alumno sea más independiente, de vez en cuando ofrecen consejos para ello y a base de resolver ejercicios uno acaba adoptando esta práctica.