Cuál es la mejor programación informática para aprender?

Prueba Udacity o Coursera.org. Tienen cursos gratuitos (y certificaciones de pago, créditos universitarios o nanotítulos) con clases en vídeo, cuestionarios, así como calificadores en línea para que puedas enviar una tarea de programación para su calificación y saber si tu programa funciona correctamente.

Estas clases también muestran cómo configurar un buen entorno de programación (como un shell interactivo/REPL) para jugar con los comandos/estructuras de control/expresiones para familiarizarse con ellos y seguir a lo largo de las conferencias y tutoriales.

También, para el desarrollo web, el tutorial AngularJS Phonecat es genial para los principiantes. Es un tutorial paso a paso que te introduce a Git (control de versiones), pruebas unitarias y los conceptos básicos del desarrollo de Angular. Lo que es particularmente bueno es que las instrucciones utilizan el proyecto Angular Seed, que te prepara con una aplicación de arranque donde las pruebas unitarias, la automatización de la construcción, etc. están preconfiguradas para ti. No es un solo programa, sino más bien un conjunto de herramientas preconfiguradas que realmente ayudan a los principiantes a aprender un flujo de trabajo de desarrollo front-end profesional de una manera indolora.

CheckiO es otro de mis favoritos. Es un juego de programación donde tienes que resolver retos de programación para avanzar en el juego. Hay muchos otros por ahí (CodeWars, CodeCombat, etc.), pero este tiene un ritmo más rápido y no se centra tanto en problemas triviales. CodeCombat podría ser más amigable para los niños, pero comienza de forma increíblemente básica, y no estoy seguro de cómo avanza, mientras que CheckIO comienza sin asumir que tienes experiencia en programación, pero inmediatamente comienza a hacerte aprender tareas de programación útiles.

También está el clásico de la vieja escuela, AT-Robots y sus varios clones modernos, que no es instructivo, pero todavía puede ser una forma divertida de aprender programación básica en ensamblador. Esencialmente, se codifican IAs de robots de batalla virtuales en ensamblador y luego se les hace enfrentarse en batallas/torneos simulados.