Usar a programação em blocos para aprender a programar ou até mesmo criar programas a partir desta ferramenta tem sido algo que tem ganhado destaque nos últimos anos.

Esta metodologia não faz o uso de uma linguagem de programação propriamente dita por parte do usuário. Sendo assim quem a usa não precisa se preocupar com a escrita de comandos complexos e regras de sintaxe. Por sua vez, os blocos são usados no lugar da linha de código, usando formas e cores específicas para ajudar a diferenciar sua função. A organização desses blocos, em uma sequência lógica permite a realização de uma tarefa e resolução de um problema. Vi em um post uma pergunta se a programação em blocos pode ser considerada uma linguagem de programação. Se considerarmos a definição do que é uma linguagem e programação, a programação em blocos pode ser considerada uma interface entre o usuário e a linguagem, onde esta interface faz a tradução dos blocos para a linguagem.
Entretanto o resultado, que é o que muitas vezes interessa, acaba sendo muito bom. A programação em blocos é uma forma mais fácil de ensinar os conceitos básicos de programação, como estruturas sequenciais, condicionais e de decisão. Tenho usado uma ferramenta de programação em blocos em uma das minhas disciplinas no curso de Engenharia do Claretiano Centro Universitário, e os alunos tem desenvolvido programas para dispositivos móveis muito simples, mas eficientes.
Além disso o uso dessas ferramentas pode ser utilizada na educação básica para ensino de conceitos de programação para os alunos. Uma ferramenta muito boa para isso é a disponibilizada no site Code.Org, que usa uma série de lições com desafios das mais simples às mais complexas para ensinar os conceitos de programação.