Pergunta

Quais linguagens e ferramentas você considera que um jovem iniciante em programação deveria usar na era moderna?

Muitos de nós começamos com o Basics proprietário e eles não nos causaram danos a longo prazo :) mas dadas as experiências que você teve desde então e seu conhecimento do domínio agora, existem opções melhores?

Existem consultas relacionadas a esta, como "Melhores maneiras de ensinar um iniciante a programar?" e "Um conselho" sobre como iniciar a programação para adultos, para os quais enviei respostas, mas as crianças podem exigir uma ferramenta diferente.

Divulgação:é muito difícil escolher uma resposta 'correta' para uma pergunta como essa, então quem tiver a melhor pontuação em alguns dias receberá de mim a nota de 'melhor resposta' com base na escolha da comunidade.

Foi útil?

Solução

eu sugeriria Tempestade mental LEGO, ele fornece uma interface intuitiva de arrastar e soltar para programação e, como vem com hardware, fornece algo tangível para uma criança entender.Além disso, por ser "LEGO", eles podem considerá-lo mais um jogo do que um exercício de programação.

Outras dicas

Meu trabalho diário é em uma escola e, nos últimos anos, vi ou ensinei (ou tentei ensinar) várias crianças, em vários números, aulas de programação.

As crianças são todas diferentes - algumas aprendem rápido, outras não.Em particular, alguns têm melhores competências de alfabetização do que outros, e isso definitivamente faz diferença na velocidade com que aprendem a programar.Aposto que a maioria de nós aqui, como programadores de computador profissionais e o tipo de pessoa que lê e publica em fóruns por diversão, aprendeu a ler desde muito jovem.Para esse tipo de criança, e se for seu próprio filho a quem você pode ensinar individualmente, você poderia fazer pior do que JavaScript - tem a vantagem de poder fazer coisas reais com ele imediatamente, e o ciclo de teste e edição é simplesmente clicar em "atualizar" no navegador.Fica confuso quando você começa a perceber como o JavaScript faz tudo de forma assíncrona e é complicado de depurar, mas para uma criança inteligente sob ensino rigoroso, esses problemas podem ser superados.

LEGO Mindstorms está definitivamente no topo da lista.A maioria das escolas agora cola os tijolos para criar modelos pré-fabricados que não podem ter pedaços cortados, mas isso não deve ser um problema em casa.No site do Times Education Suplement (fórum do site para o jornal semanal de ensino do Reino Unido), o "que linguagem de programação é melhor para as crianças?" O tópico surge com bastante regularidade.Muitas recomendações por lá para o Scratch como uma alternativa ao Mindstorms - um pouco mais de liberdade do que o Mindstorms, novamente provavelmente melhor para o aluno mais brilhante que também poderia receber um ferro de solda.

Descobri que alunos mais lentos ainda podem ter problemas com Mindstorms, mesmo que o ambiente de programação seja "gráfico" - ainda há muita coisa acontecendo na tela e há muito para lembrar (esta era uma versão mais antiga, lembre-se - paraíso ainda não experimentei o novo e elegante).Na minha experiência, a melhor introdução completa à programação provavelmente ainda é LOGO - na verdade, uma linguagem consideravelmente mais poderosa do que a maioria das pessoas acredita.O original Tempestades mentais livro de Seymour Papert (nada a ver com LEGO - eles usaram o título do livro para seu produto), um dos criadores do LOGO, é a referência canônica para o ensino de programação para crianças como uma "habilidade de pensamento" e para o conceito de Construcionismo em aprender.

Já tivemos turmas de crianças de 7 ou 8 anos programando LOGO.Observe que não pretendemos torná-los "desenvolvedores de software", esse é um plano de carreira que eles podem decidir em algum momento após os 16 anos.Desde tenra idade, tentamos fazê-los pensar na "programação de computadores" como apenas mais uma ferramenta - como definir um problema a ser resolvido por um computador, da mesma forma que poderiam usar um mapa mental para ajudá-los a organizar e lembre-se de coisas para um exame.Nenhuma criança pobre deveria ser sentada e treinada nas minúcias e no uso de uma linguagem específica; elas deveriam ser deixadas para explorar e descobrir as coisas como quiserem.

Vou apoiar as sugestões de Geoff de Programa (costumava ser KPL), e Alice.

Minha única outra sugestão é Lego MindstormsNXT.A linguagem de programação do NXT é arrastar e soltar, é muito fácil de usar e pode realizar algumas tarefas muito complicadas depois de aprendida.Além disso, os meninos geralmente gostam de ver as coisas se movendo.:)

Eu usei Alice e NXTs com algumas crianças e eles se adaptaram muito bem.

Duas possibilidades são:

Scratch - desenvolvido no MIT - http://scratch.mit.edu/

e

EToys da fama de Um Laptop por Criança - http://wiki.laptop.org/go/Squeak

Transparência completa:Sou um dos caras que inventou a linguagem de programação infantil, que agora é http://www.Phrogram.com, que outros recomendaram aqui.Deixe-me adicionar algumas informações orientadas ao programador sobre isso.

É um IDE de código, em vez de arrastar e soltar ou baseado em designer.Isso foi intencional de nossa parte - queríamos tornar mais fácil e divertido fazer programação real baseada em texto, principalmente programar jogos e gráficos.Esta é uma diferença fundamental entre nós e Alice e Scratch.A escolha depende da criança, de sua idade e aptidões, de seus objetivos.Usá-los em série com o mesmo iniciante pode ser uma ótima opção - se você fizer isso, eu recomendaria Scratch, Alice, Phrogram como pedido.O Phrogram tem funcionado melhor há 12 anos ou mais, mas conheço pais com crianças de 6 anos que ensinaram seus filhos com ele, e conheço crianças de 10 anos que aprenderam sozinhas com ele.

A linguagem é tão parecida com o inglês quanto conseguimos e é tão mínima quanto conseguimos.O ingrediente secreto está na hierarquia de objetos baseada em classes, que é novamente tão simples, intuitiva e semelhante ao inglês quanto poderíamos fazer.A hierarquia de objetos é otimizada para jogos e gráficos.Modelos 3D estão disponíveis e sprites 2D.O movimento absoluto usando coordenadas da tela é suportado, ou movimento relativo como as tartarugas LOGO - Avançar(x), VirarEsquerda(y).

O IDE vem com mais de 100 exemplos, alguns exemplos de linguagem (loops), alguns exemplos de aprendizagem (arrays), alguns jogos e sims totalmente funcionais (Pong, Missile Command, Game of Life).

Para lhe dar uma ideia de quão altamente alavancados tornamos a linguagem e o IDE:com 27 instruções, você pode pilotar um modelo de nave espacial 3D em torno de um camarote 3D, usando o teclado.O mesmo com um sprite 2D é de 12 a 15 instruções.

Estamos trabalhando em uma versão do Phrogram compatível com Blade que permitirá que programas sejam executados no XBox 360.Sim, o XBox, na sua TV grande.Um bom motivador para começar uma criança?:)

Phrogram inclui suporte para programação baseada em classes, com métodos e propriedades - mas isso é apenas encapsulamento, não herança ou polimorfismo.

Um tutorial e um guia do usuário estão disponíveis,

Meu próprio e-book está disponível na Amazon e em outros lugares on-line, "Aprenda a programar com Phrogram!", e ajuda o iniciante a programar o clássico Pong.

Phrogram Programming for the Absolute Beginner, de Jerry Lee Ford, Jr., também está disponível, em brochura, na Amazon e em outros lugares.

Para uma criança eu iria com Alice.Qualquer criança vai gostar mais da interação de arrastar e soltar que Alice usa do que tentar lembrar como soletrar e pontuar qualquer linguagem de programação.Ele aprenderá as estruturas básicas de programação (condicionais, loops, etc.) e experimentará a diversão de construir um programa animado que poderá exibir para outros familiares ou amigos.

Uma aula de ciência da computação para iniciantes na faculdade comunitária local, na verdade, usa Alice para ensinar programação de uma forma independente da linguagem.Ele fornece uma boa base para avançar para a programação em uma linguagem específica (ou em algumas linguagens) no futuro.

Recentemente vi uma apresentação sobre Pé Verde (um ambiente de aprendizagem baseado em java para crianças).Parecia incrível.Se eu tivesse filhos, eu tentaria

Link para a apresentação

É um ambiente muito lúdico, onde você pode começar com métodos bem básicos.As crianças aprendem a pensar de forma orientada a objetos (você não pode instanciar um animal, mas pode instanciar um gato).E quanto melhores eles ficam, mais Java você pode descobrir para/com eles.

eu iria com Arranhar, alguns pontos a respeito.

  • É uma linguagem de programação gráfica.Não é baseado em texto (isso pode ser positivo ou negativo).Isso o torna mais intuitivo e fácil para as crianças (7 anos ou mais).
  • Na verdade, é altamente objeto.Os objetos que você escreve nesses scripts gráficos têm o código anexado a eles e podem ser reutilizados e movidos.
  • Muito importante:resultados rápidos e impressionantes.As crianças precisam avançar rápido e obter resultados para ficarem fisgadas.

Gostaria de observar que, embora muitos de nós tenhamos começado a programar ainda jovens, no básico ou no logo, e porque programar mais tarde na vida não significa que essas sejam boas linguagens para começar.Acho que as crianças de hoje têm opções muito melhores, como scratch ou Alice.Linguagens baseadas em texto (python, ruby, basic, c# ou mesmo c) dependem de bibliotecas e ferramentas externas (editores, compiladores), enquanto algo como Alice ou scratch é completo e ensinará conceitos de programação a crianças (não destinadas a adolescentes).Mais tarde, eles podem seguir em frente e expandir seu aprendizado.

Confira Programa (anteriormente KPL) e Alice

Eu diria:dê ao garoto um C64 de verdade, porque foi assim que comecei.Mas hoje...Eu diria Ruby, mas Ruby é um pouco caótico.BASIC seria melhor no longo prazo.O processamento é fácil de aprender e é basicamente Java.

A razão pela qual recomendo um C64 é porque é BASIC, mas você ainda precisa aprender certas coisas relacionadas ao computador, como modelo de memória, pixels, caracteres, mapas de caracteres, novas linhas, etc.etc, se você quiser fazer coisas mais avançadas.Além disso, se seu filho acha isso chato, você sabe que o coração dele realmente não gosta de codificação.

Eu lançaria o LOGO.Foi algo que foi ensinado na minha escola primária.Ele fornece feedback quase imediato e ensina conceitos de programação realmente básicos.Mover aquela pequena tartaruga pode ser muito divertido.

Para uma criança, eu iria com Alice.

Aqui está outro voto para Alice.Meus 4 filhos se divertiram muito trabalhando com ele e aprendendo os conceitos básicos de programação.É claro que para eles tudo se resume a socializar com fadas e ogros, mas, caramba, o maldito sistema legado em que trabalho poderia usar algumas fadas e ogros também.

Eu recomendaria python, porque é muito conciso e expressivo.Parece menos frustrante ao começar, mas também oferece muito espaço para aprender conceitos mais avançados.

Criador de jogos pode ser outra abordagem.Você pode começar de forma simples com um desenvolvimento fácil de arrastar e soltar e, em seguida, introduzir uma programação mais avançada conforme avança.O livro O Aprendiz do Game Maker:Desenvolvimento de jogos para iniciantes tem vários jogos de amostra e orienta você nas etapas necessárias para criá-los.

Acho que python é uma boa alternativa;é uma linguagem muito poderosa e você também pode fazer muitas coisas facilmente (nada chato).

Confira Rangido Desenvolvido por Alan Kay que acham que a programação deve ser ensinada desde cedo.

Que idade?Muitos de nós começamos com o BASIC em algum momento, mas antes disso, aprendi os conceitos de encadeamento de comandos, variáveis ​​e loops com LOGO.Descobrir como desenhar um círculo com um triângulo que só pode andar em linha reta e girar foi minha primeira conquista em programação.

Editar:Esta pergunta e suas respostas me fazem sentir velho.

Embora _porque não tenha dado muito amor a ele no ano passado, por um tempo eu fiquei muito animado com Hack hackeado.Acho que a chave para a maioria dos novos programadores, especialmente as crianças que são mais do que propensas a perder o interesse pelas coisas, é o feedback instantâneo.Essa foi a coisa realmente maravilhosa sobre o Hackety Hack:algumas linhas de código e, de repente, você tem algo na sua frente que faz alguma coisa.Existem alguns aplicativos semelhantes voltados para coisas como desenhar gráficos (um dos quais, ajudei brevemente Nathan Weizenbaum, Rabisco!).As crianças simplesmente precisam de feedback positivo de que estão fazendo algo correto regularmente, caso contrário, não há nada que as mantenha interessadas na tarefa em questão.O que eu acho que o futuro para ensinar as crianças a programar é algum tipo de DSL construída em cima de uma linguagem com sintaxe amigável (que incluiria, sem dúvida, Ruby, Python e Scheme) cujo objetivo é fornecer um ambiente intuitivo para a construção simples. jogos (digamos, Tic-Tac Toe ou Hangman).

Eu acho que você deveria começar em C.Quanto mais cedo eles pegarem o jeito das dicas, melhor.

Ver Compreendendo os ponteiros e Devo aprender C.

Acho que a primeira pergunta é:que tipo de programa seria interessante criar?Uma das coisas que me fez começar a programar quando criança (no BBC básico e depois no QBasic) foi a facilidade de escrever programas gráficos.Eu poderia escrever algumas linhas de código e ver meu programa desenhar uma linha na tela imediatamente.

O mais próximo que vi desse tipo de simplicidade recentemente foi o biblioteca pygame para python e Em processamento, um conjunto de bibliotecas Java com um IDE.

Imagino que hackear páginas da web seria outra boa maneira de começar:isso envolveria HTML, Javascript (usando uma biblioteca como jQuery), talvez PHP ou algo nesse sentido.

Quaisquer que sejam as ferramentas que você forneça, o crucial é que seja fácil começar imediatamente.Se você tiver que escrever vinte linhas de código correto e descobrir como invocar o compilador antes de ver quaisquer resultados tangíveis, o progresso será lento.

Já existem muitas sugestões boas aqui.Eu realmente concordo com Kronikarz.Obtenha um computador retrô (ou emulador) de seu interesse e ensine com ele.Por que um computador retrô?O básico está integrado.Criar sons e gráficos primitivos é uma tarefa trivial.O verdadeiro pode ser melhor do que um emulador porque será um pouco mais fascinante para uma criança que está acostumada a ver apenas dispositivos modernos.

Como eu disse aqui, eu iria para Squeakland e o famoso Dirigir um carro exemplo (alimentado por Rangido).

A sintaxe do Smalltalk é simples, o que é ótimo para crianças.

E mais tarde à medida que a criança evolui, ela consegue aprender conceitos mais complexos e até muito avançados que também estão no Squeak (ex.programação de webapps statefull com refatoração automatizada e testes de unidade automatizados!).

E como @cpuguru e @Rotem disseram, Scratch (também baseado em Squeak) também é ótimo.

Acho que Java pode ser uma boa escolha simplesmente porque você pode criar GUIs facilmente e ver "coisas legais" acontecendo.Pelo mesmo motivo, talvez qualquer uma das linguagens .NET.Também ouvi coisas boas sobre linguagens de script (especialmente Ruby e Python) para fazer as crianças aprenderem a programar.

Bem, se eles são jovens e ainda não aprenderam o ABC, você pode experimentá-los no BF - sem aquelas letras e números incômodos para lidar.

Vou buscar o meu casaco.

Skizz

Eu diria o que gostaria de ter sabido primeiro:uma caixa simples do MS-DOS e o assembler integrado (debug).É ótimo realmente aprender e compreender o básico de falar com um computador.

Se isso não assustar uma criança, então eu iria para o "próximo nível" e apresentaria C.Isso não deve ser difícil, visto que o conceito básico de ponteiros, registros e instruções em geral já é bem compreendido.

No entanto, não tenho certeza de para onde ir a seguir.Dê um grande salto para Lisp, Haskell ou linguagens abstratas semelhantes ou deveria haver algumas linguagens simples orientadas a objetos (talvez até C++) ou isso prejudicaria mais do que ajudaria?

Olhando para Alice, vejo que é “projetado para estudantes do ensino médio e universitários”.Parece haver outro idioma/versão chamado Contando Histórias Alice que é "projetado para alunos do ensino médio"

Página de download de Alice

Eu penso Arte Livre de Contexto pode ser uma boa escolha, com saída de gráficos, é muito divertido aprender sobre gramática livre de contexto.

Experimente [Guido van Robot] [1].É uma excelente introdução à robótica e uma ótima maneira de apresentar às crianças o lado da programação (em vez do lado de "construir os robôs").

O Smalltalk não foi projetado para tal propósito?Acho que Ruby seria uma boa escolha, como descendente do Smalltalk.

Eu sei que nos primeiros anos do ensino médio nos 'ensinaram' Logo e, estranhamente, HTML.Depois disso, a progressão foi para macros no MS Office, seguidas pelo VBA básico, seguido pelo Visual Basic.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top