15 cursos online que puedes hacer para aprender a programar sin pisar la universidad

Hace unos días conocimos la historia de Matthew Reimer, un granjero canadiense que desarrolló un tractor autónomo capaz de trabajar en la cosecha sin necesidad de un conductor que lo guíe.

En plena explosión de los “vehículos autónomos”, que se desarrolle un tractor capaz de funcionar con un piloto automático, quizás, no debería sorprendernos.

Sin embargo, Matthew Reimer no es ingeniero y tampoco ha ido a la universidad, aprendió a programar en lenguaje Python gracias a un curso online del MIT y, al finalizarlo, se puso a modificar un software para el control de drones que sumada a una pequeña inversión en hardware dio como resultado su tractor autónomo.

Aprendiendo a programar a través de Internet

La historia del granjero canadiense demuestra la cantidad de información que tenemos disponible a través de la red. Hoy es posible formarse sin tener que pisar un aula tradicional y, desde nuestra casa, podemos acceder a contenidos de centros tan prestigiosos como el MIT (Massachusetts Institute of Technology), la Universidad de Harvard o la Universidad de Stanford.

Los contenidos están disponibles a través de Internet en forma de MOOCs (Massive Open Online Course), es decir, en formato de curso online que, en su mayoría, son de acceso gratuito. ¿Los requisitos de acceso? Un ordenador personal, un smartphone o una tablet, conexión a Internet, conocimientos de inglés, dedicar tiempo y, sobre todo, muchas ganas de aprender. En el caso que queramos obtener un diploma acreditativo, además deberíamos disponer de unos 40 €, por ejemplo para Coursera.

¿Y es posible aprender a programar a través de Internet?aprender a programar a través de Internet Si tenemos constancia, sin duda podemos llegar a aprender a programar y desarrollar nuestros propios proyectos.

Plataformas como Codecademy, Code School o W3Schools (o Code.org en el caso de escolares) nos ofrecen buenos contenidos y la posibilidad de aprender siguiendo la metodología del learning by doing, es decir, aprender a la vez que vamos desarrollando nuestros primeros programas.

Si lo que buscamos es un aprendizaje algo más “tradicional” basado en lecciones y en sus correspondientes ejercicios, podemos seguir los pasos de Matthew Reimer y aprender a programar a través de los MOOCs de plataformas como edX (que tuvo su origen en el MIT), Coursera, Khan Academy o Udacity (que es una plataforma en la que hay docentes que provienen de empresas de referencia como, por ejemplo, Google). A través de un MOOC como los que encontramos en edX o Coursera, una persona con interés puede asistir a clases del nivel de una universidad sin necesidad de tener que pisar un aula.

¿Por dónde empezar?

Si con el final del verano te has propuesto aprender a programar, un buen punto de inicio pueden ser algunos de estos cursos que te recomendamos y que te introducirán en el mundo de la programación sin tener que pisar un aula universitaria:

1. Introduction to Computer Science and Programming Using Python

Introduction to Computer Science and Programming Using Python es un MOOC gratuito (o 50 dólares si requerimos un certificado oficial) que podemos encontrar en edX y que está desarrollado por el MIT.

Es un curso básico de introducción a las ciencias de la computación y la programación que sirve como puente para adentrarse en aspectos básicos como los algoritmos, las estructuras de datos, la realización de pruebas de un programa o la depuración de éste. Además, el curso (que arranca en una nueva edición el 26 de agosto y se imparte en inglés) también nos introduce en el lenguaje de programación Python.

Según los docentes que están detrás de este curso, este MOOC tiene como objetivo introducir en el mundo de la programación a alumnos que nunca han programado. Es un primer paso que se apoya en lecciones en vídeo, exámenes al finalizar cada módulo y trabajos complementarios.

2. Algorithms (Algoritmos)

Algoritmos es una serie de 2 cursos (parte I y parte II) organizados por la Universidad de Princeton y que podemos encontrar a través de la plataforma Coursera. Ambos MOOCs tienen una duración aproximada de 6 semanas asumiendo una dedicación semanal de entre 6 y 12 horas por parte del alumno. Las próximas ediciones arrancan el próximo 4 de septiembre para la primera parte y el 30 de octubre para la segunda parte.

Siguiendo la filosofía de Coursera, el acceso al curso es gratuito y aunque pueda parecer que son cursos de introducción a la programación y la algoritmia, están orientados a alumnos de primer y segundo curso de ingeniería, por tanto, el curso requiere conocimientos previos en programación, concretamente, en el lenguaje de programación Java. El objetivo del curso es profundizar en los tipos de datos, algoritmos y estructuras de datos en Java para su aplicación en programas de búsqueda, ordenación de datos, tratamiento de expresiones regulares o resolución de grafos.

3. Intro to Java Programming

Intro to Java Programming es un curso organizado por la Universidad Estatal de San José (California) que se imparte a través de la plataforma Udacity. El curso no es gratuito, tiene un coste de 199 dólares mensuales y una duración de 4 semanas (796 dólares en total aunque incluye un acceso gratuito a modo de pruebas durante 14 días) donde el alumno debe dedicar una media de 6 horas semanales para aprender a programar en lenguaje Java.

El curso, que han seguido más de 240.000 alumnos, está orientado a personas que nunca han programado y que tampoco conocen el lenguaje Java, el objetivo es sentar las bases para empezar a desarrollar software y también comenzar a adentrarse en el ámbito de la programación orientada a objetos empezando desde lo más básico: algoritmia, entorno de programación en Java, clases y objetos, tipos de datos, iteraciones, etc.

4. Learn HTML5 from W3C

Learn HTML5 from W3C es un MOOC disponible en edX, la plataforma de formación del MIT, que tiene como objetivo introducir a los alumnos en el desarrollo con HTML5 (con el valor añadido que la organizadora del curso es el W3C, el World Wide Web Consortium, la organización que fundó Tim Berners-Lee y que tiene como objetivo la estandarización de las tecnologías sobre las que se apoya la web).

El curso es gratuito si no se requiere una certificación oficial (si se requiere tiene un coste de 99 dólares) y arranca una nueva edición el próximo 15 de octubre. Con una duración aproximada de 6 semanas (y una dedicación de 6 a 8 horas semanales), este MOOC requiere que los alumnos tengan conocimientos básicos de HTML y CSS y se recomienda experiencia con JavaScript puesto que los contenidos están orientados a “dar el siguiente salto” que supone HTML5 y, por tanto, la integración de contenidos multimedia sin necesidad de plugins externos, el uso de APIs o el desarrollo multiplataforma.

5. Intro to HTML and CSS

Intro to HTML and CSS es un curso totalmente gratuito que está disponible en Udacity y que tiene como objetivo introducir al alumno en el desarrollo web pero, eso sí, con cierto carácter profesional. En este MOOC, que ya han seguido más de 100.000 alumnos, se puede aprender HTML, CSS y también a manejarse con Bootstrap, el framework de CSS de Twitter.

El objetivo del curso, que tiene una duración aproximada de 3 semanas asumiendo una dedicación semanal de 6 horas por nuestra parte, es que el alumno sea capaz de desarrollar un front-end a partir de un boceto o un mockup. Dicho de otra forma, el objetivo del curso no es enseñar la sintaxis de HTML sino que el alumno sea capaz de desarrollar un proyecto real y afrontar el problema como si lo hiciera en un entorno real.

6. Learn to Program Using Python

Learn to Program Using Python es un curso de la Universidad de Texas en Arlington y disponible a través de la plataforma edX. Este MOOC es gratuito, salvo que requiramos un certificado oficial que entonces tendrá un coste de 50 dólares. Tiene una duración de 9 semanas, requiere una dedicación de entre 6 y 8 horas por parte del alumno y, como nos podemos imaginar por el título, el objetivo es enseñarnos a programar en lenguaje Python.

El curso (cuya próxima convocatoria arranca el 10 de enero de 2016) es de introducción a Python, es decir, no es necesario tener conocimientos previos en este lenguaje ni tampoco sobre programación. Por tanto, es un buena opción para empezar a aprender a programar y dar nuestros primeros pasos en un lenguaje que es bastante utilizado en múltiples ámbitos. El contenido del curso cubre los aspectos básicos de Python, el desarrollo de estructuras como bucles y funciones, lectura y escritura de ficheros desde Python, uso de funciones de biblioteca o, incluso, la depuración de programas y localización de errores.

Quizás sea uno de los cursos más completos que podemos encontrar dentro de las plataformas existentes aunque también hay una muy buena opción en Coursera: Programación para todos (Python), un curso organizado por la Universidad de Michigan y que arranca su próxima convocatoria el próximo 5 de octubre.

7. Design of Computer Programs

Design of Computer Programs es un curso gratuito disponible a través de la plataforma Udacity. Este MOOC, que ya han seguido más de 100.000 alumnos, es gratuito, tiene una duración de 2 meses y aunque por su título pueda parecer un curso de “introducción al desarrollo de aplicaciones”, es un curso de nivel avanzado para alumnos que ya saben programar en Python.

El objetivo de este curso, que ha sido diseñado por Peter Norvig, Director of Research de Google, es profesionalizar a los desarrolladores y darles las claves que les permitan afrontar un proyecto desde cero. Dicho de otra forma, el alumno del curso tendrá que ser capaz de desarrollar aplicaciones partiendo de una serie de requisitos, en muchos casos ambiguos como en la vida real.

8. Code Yourself! An Introduction to Programming

Code Yourself! An Introduction to Programming es uno de los cursos más básicos de programación que, seguramente, vamos a encontrar en Coursera. Este MOOC desarrollado por la Universidad de Edimburgo y la Universidad de ORT de Uruguay solamente requiere entre 15 y 20 horas de dedicación y su objetivo es introducir al alumno en la programación en Scratch, un lenguaje desarrollado en el MIT para enseñar a los niños a programar.

El contenido del curso es muy básico pero puede ser interesante para aprender desde cero conceptos como los algoritmos, variables, iteraciones (o bucles), toma de requisitos o la reutilización del código para el desarrollo de nuevos programas.

9. Intro to Algorithms

Intro to Algorithms es un curso gratuito que podemos encontrar en la plataforma Udacity y que tiene como objetivo introducir al alumno en el mundo de la algoritmia, concretamente, en los algoritmos que están relacionados con las redes sociales y, por tanto, con la conexión entre personas.

Este MOOC tiene una duración aproximada de 4 semanas (asumiendo una dedicación media de 6 horas semanales) y parte de la base de que el alumno tiene conocimientos de programación y sabe desarrollar en lenguaje Python. Partiendo de esta premisa, el curso introduce al alumno en la teoría de grafos y su aplicación a las “conexiones sociales” (incluyendo el análisis de la “teoría de los 6 grados de separación con Kevin Bacon”).

10. Programación de Juegos con C# para principiantes

Programación de Juegos con C# para principiantes es un curso que organiza la Universidad de Colorado a través de la plataforma Coursera y cuyo objetivo es introducir al alumno en el desarrollo de videojuegos usando el lenguaje C#.

A través de un programa de 12 semanas de estudio (y una dedicación media de entre 5 a 10 horas semanales de trabajo por parte del alumno), este MOOC lleva al alumno al entorno Visual Studio y la estructura de Microsoft XNA como punto de partida para comenzar a programar con C# realizando programas simples e ir aumentando, gradualmente, la complejidad hasta poder deasrrollar un juego completo con efectos o música.

Aunque pueda parecer complicado, el curso no requiere conocimientos previos en programación. El objetivo es aprender desde cero, por tanto, si quieres introducirte en el mundo del desarrollo de videojuegos puede ser un buen punto de partida.

11. Artificial Intelligence for Robotics: Programming a Robotic Car

Artificial Intelligence for Robotics: Programming a Robotic Car podría ser el siguiente curso que podría tomar Matthew Reimer para hacer evolucionar su tractor autónomo. Este MOOC gratuito que podemos encontrar en la plataforma Udacity está dirigido por Sebastian Thrun, profesor de ciencias de la computación de Stanford y empleado de Google (vinculado al proyecto de vehículos autónomos de la compañía ahora conocida como “Alphabet”).

El curso es de nivel avanzado y parte de la base de que el alumno sabe programar en Python (o algún otro lenguaje) y se maneja bien con ecuaciones matemáticas y álgebra lineal. Sobre esta base, el curso tiene como objetivo introducir al alumno en el control automático, control de robots, geolocalización o el trazado automático de rutas.

12. Desarrollador de aplicaciones para dispositivos móviles

Si quieres aprender a programar para comenzar a desarrollar tus propias aplicaciones móviles, puede ser interesante que eches un vistazo a parte de la oferta disponible en Udacity. Si bien es cierto que muchos de los cursos disponibles en Udacity son de pago, están muy orientados al mercado laboral y podremos encontrar especializaciones para Aprender a programar en Android desde cero o bien convertirnos en desarrolladores expertos en iOS o en AndroidiOSAndroid.

En Coursera también podemos encontrar algunos MOOCs que también nos pueden servir para dar nuestros primeros pasos en el desarrollo de aplicaciones Android y, por ejemplo, en Programming Mobile Applications for Android Handheld Systems I y Programming Mobile Applications for Android Handheld Systems II de la Universidad de Maryland podremos encontrar formación básica para empezar a desarrollar nuestras propias aplicaciones móviles (aunque, eso sí, estos cursos parten de la base de que sabemos programar en Java).

13. Programming Languages: Building a Web Browser

Programming Languages: Building a Web Browser es un programa formativo de 2 semanas de duración que tenemos disponible a través de la plataforma Udacity. Este MOOC gratuito, impartido por docentes de la Universidad de Virginia, tiene como objetivo aplicar los conocimientos de programación de los alumnos en el desarrollo de un proyecto real: un navegador.

Durante las 2 semanas de duración del curso, se complementan los vídeos con lecciones con ejercicios prácticos y el desarrollo del proyecto que ejerce de hilo conductor del curso: desarrollar una versión “simple” de una navegador web capaz de interpretar HTML y JavaScript. Evidentemente, no es un curso básico ni tampoco de introducción; es importante tener base previa para poder afrontar el proyecto a realizar.

14. From Nand to Tetris

From Nand to Tetris es un curso que podemos encontrar en Coursera de la mano de la Universidad Hebrea de Jerusalem. Este MOOC, de 7 semanas de duración, está enmarcado dentro del área de ciencias de la computación aunque, eso sí, es un poco distinto a todos los cursos que habitualmente encontramos dentro del área de desarrollo de software.

En vez de enseñarnos a desarrollar software, este curso tiene como objetivo enseñarnos a “desarrollar hardware”. Concretamente, el curso nos introduce en el ámbito del desarrollo de sistemas electrónicos digitales a través de dispositivos programables (como es la FPGA) y lenguajes de descripción de hardware (HDL); recursos que podremos combinar para describir, mediante código, la construcción de un sistema hardware capaz de emular una vieja máquina arcade de los años 60 (que se realizaban directamente mediante componentes hardware y no mediante una placa base y un software con el juego).

15. Software Testing

Software Testing es un MOOC disponible en Udacity por el que ya han pasado más de 75.000 estudiantes de todo el mundo; un curso impartido por profesores de la Universidad de Utah que tiene como objetivo enseñar a los alumnos a “cazar bugs”, es decir, a localizar errores en el software y, por tanto, aplicar criterios de calidad a la hora de desarrollar aplicaciones (generando un código mucho más optimizado).

En este curso, que tiene una duración de 1 mes y asume una dedicación de 6 horas semanales, los alumnos combinarán lecciones en vídeo junto a ejercicios prácticos que aplican la metodología del “learning by doing”. En este caso, se espera que el alumno tenga conocimientos previos en programación puesto que el testing implica analizar código y automatizar procesos para realizar pruebas funcionales o detectar errores de ejecución.

Imagen: Wikipedia