Realmente depende de muchos factores. ¿Qué desea aprender, cuál es su nivel actual, desea obtener una visión general o una comprensión profunda, etc.
Así que supongamos que es estudiante de primer año con poca o ninguna experiencia en programación, algo familiarizado con los conceptos básicos de CS y el conocimiento básico de álgebra. En ese caso, algunos de los grandes MOOC serían:
- Si desea obtener una visión general amplia y tocar Linux, C, servidores web, bases de datos, PHP, JavaScript, HTML, CSS y quién sabe qué otra cosa, la CS50 Introducción a la informática de Harvard que se ofrece en edX es una excelente opción. Creo que esta es una opción especialmente buena para alguien interesado en la programación web y debería ser un excelente punto de partida.
- Si desea exponerse a Python, el lenguaje que está en todas partes hoy en día en informática científica, desarrollo web, inteligencia artificial y aprendizaje automático, etc. Introducción del MIT a la informática y programación usando Python que se ofrece en edX es una gran opción. Tal vez sea un poco más difícil que CS50, pero le dará una buena base en Python en cualquier dirección en la que se dirija después de este curso. El libro recomendado Introducción a la computación y programación usando Python: con aplicación para comprender datos (MIT Press): John V. Guttag: 9780262529624: Amazon.com: Books es un buen compañero del curso y si está interesado en Data Science o ML Sugeriría el próximo curso en la secuencia Introducción al pensamiento computacional y la ciencia de datos
- Si estás interesado en Java, sí, Java está en todas partes miles de millones de dispositivos, Android bla, bla, bla … el curso realmente bueno es uno de Sedgewick y Wayne Computer Science (Video Lectures): serie de conferencias de 20 partes. El problema aquí es que esto no es MOOC en el sentido real (leer gratis). Tienes que pagar ~ $ 30 pero vale cada centavo. El libro Informática: un enfoque interdisciplinario 1, Robert Sedgewick, Kevin Wayne, eBook – Amazon.com también es excelente, y como su nombre lo indica, es un enfoque interdisciplinario para CS que es básicamente Introducción a CS con programación Java en contexto de aplicación científica. También hay un sitio web complementario Introducción a la programación en Java que tiene muchas implementaciones de Java del libro. Personalmente, este es mi favorito entre estos tres cursos y puede ser una excelente introducción para los famosos Algoritmos de Sedgewick y Wayne, Parte I – Universidad de Princeton | Coursera y Algoritmos, Parte II – Universidad de Princeton | Cursos de Coursera.
También estoy completamente de acuerdo con Faizan Ahmad y creo que todos los estudiantes, no solo los estudiantes de CS, deberían aprender Aprendiendo a aprender: poderosas herramientas mentales para ayudarlo a dominar materias difíciles – Universidad de California, San Diego | Coursera.
Espero que esto pueda ayudar y cualquier cosa que tome no se equivocará, todos estos son excelentes cursos y excelentes profesores. De hecho, si quieres, enloquece y tómalos todos. Sí, lo hice solo por diversión (no tengo vida social) 🙂
Una vez que complete al menos uno de estos puede pensar en Desarrollo web, IA, Aprendizaje automático, Bases de datos, Redes definidas por software, Desarrollo de kernel o lo que sea de su interés.
¡Disfruta aprendiendo!