Fui voluntário para sentar e conversar sobre a vida e o trabalho de um desenvolvedor com um aluno de 15 anos de experiência profissional na próxima semana.
O problema é que
- Eu tenho apenas meia hora e
- Serei apenas uma das pessoas conversando com ela - outras pessoas em diferentes funções nos negócios também estarão analisando os elementos de seus trabalhos ao longo do dia.
O que devo cobrir e o que diabos posso ensinar em apenas meia hora?
Suponho que ela provavelmente não tenha experiência com desenvolvimento ou programação.
teaching
profession
Dexter
fonte
fonte
Respostas:
Eu interajo muito com os estudantes do ensino médio, por isso respondo a essa pergunta com bastante frequência. Lembre-se de que as crianças de 15 anos são muito mais fáceis de explicar a programação para as de 50 anos - portanto, você não precisa fazer coisas idiotas nem usar analogias absurdas.
Normalmente começo com exemplos de quais programas são:
Depois disso, geralmente explico que codificamos programas em uma linguagem formal que o computador possa reconhecer, geralmente digitando-os em algo tão simples quanto o Bloco de Notas. Os idiomas parecem um cruzamento entre matemática e inglês, descrevendo conceitos e fornecendo fórmulas e instruções para o computador seguir.
Então eles costumam perguntar se eu estou no computador o tempo todo, se é por isso que estou sempre no Facebook e por que meus olhos ainda não estão ruins. Os caras perguntam se eu sei "hackear as pessoas", e as garotas perguntam se é um bom dinheiro ou quantas garotas existem nas aulas de ciência da computação.
Depois disso, se eles ainda estão interessados, geralmente começam a fazer perguntas específicas muito mais fáceis de responder (ou pelo menos ao Wiki): coisas como como você faria um jogo, como o Windows Messenger funciona etc.
Se você tem um computador por perto, pode mostrar e contar algum código - algo que teria efeitos tangíveis, como um manipulador de cliques de botão na caixa de diálogo de configurações do Firefox, o loop principal ou código de física em um mecanismo de jogo, alguns Fonte JavaScript de um site etc.
fonte
Expliquei isso aos meus cinco anos de idade com o seguinte:
Eu: "Você sabe como, nas histórias, as pessoas dizem palavras mágicas e mudam as coisas no mundo?"
Ela: "Yeaaa?"
Eu: "É isso que é a programação de computadores".
Ela (calmamente): "Uau".
15 a 30 minutos não são suficientes para explicar algo real, e explicar a complexidade subjacente é uma maneira de fazê-los gritar. Você trabalha nele todos os dias, esquece como é legal. Nenhuma outra profissão no mundo cria coisas funcionais a partir de nada além de palavras ... Em algum momento, todo mundo precisa entrar no mundo da carne e começar a bater nas coisas com um martelo. Essa é a única maneira de transformar sua ideia em algo funcional.
Nós não.
fonte
Uma pessoa de 15 anos pode entender qualquer conceito. Eu mesmo comecei a programar aos 14. (na escola, muitos anos atrás)
30 minutos são suficientes para uma demonstração. Mostre a ela a mágica da programação com algo tão difundido quanto um navegador.
fonte
Passos
Com quase 15 anos, posso dizer com segurança que você deve ter um começo espetacular .
Explique como você faz isso.
10101010
dia todo. Diga a eles que você nem sabe como fazer isso. ( Lie. Você não sabe o que10101010
significa, certo;?)) Diga-lhes que isso foi há anos.Mostre a eles uma amostra de algum pseudocódigo. Facilite a compreensão:
Siga esse passo a passo. Diga a eles que isso não é exatamente como o código se parece. Código parece
English + Math
. Mas não é difícil aprender o "idioma" (leia-se: sintaxe) em que você fala.Mostre a eles um exemplo com um pouco mais de "matemática", desta vez.
Explique que esse código adiciona dois números, como uma calculadora. Mostre a eles o código "real" para isso. (Certifique-se de colocar a maior parte da interface do usuário e outras coisas em um arquivo separado e mantenha o arquivo que você mostra curto e simples.) Altere-o para um programa de subtração (alterando o sinal de
+
para-
) bem diante dos olhos deles.Explique o que eles precisam saber para fazer a programação. (Em vários níveis.)
x + 1 = 2
, entãox = 1
.Termos que você pode usar
Sabemos mais do que você pensa.
Termos que você deve explicar
Sim, ainda precisamos de algumas coisas explicadas.
10101010
.Termos que você não pode usar
Alguns de nós sabem disso, mas por favor não o digam de qualquer maneira.
fonte
Se você começar a falar sobre coisas como processo, padrões, requisitos e outros, ela será desligada imediatamente. As crianças de hoje são gráficas e visualmente motivadas, então eu traria algo para ajudar a promover esses tipos de estímulo. Mostre a ela algo bacana na web e, em um nível alto, descreva a ela o que faz isso acontecer. Eu até sugeriria levar seu laptop de desenvolvimento e fazer com que algo "legal" acontecesse na tela - altere o código na frente dela e observe-o mudar na tela. Nessa idade, eles são MUITO inteligentes e qualquer coisa visual ajudará a despertar interesse.
fonte
Alice
?Existem duas grandes analogias em que confio ao explicar o trabalho dos programadores. Um é uma receita; essa metáfora é útil para explicar em pequena escala o que cada linha de código está fazendo. O trabalho de um programador está escrevendo a receita, e o computador é o cozinheiro.
A outra analogia é que um grande programa é como uma grande empresa. Há um monte de departamentos diferentes que se concentram em diferentes áreas e enviam mensagens para frente e para trás, e o conjunto acaba cumprindo os objetivos da empresa. O trabalho de um programador está projetando como a organização é configurada e o computador é todo o pessoal da empresa.
fonte
Eu diria que seja geral. A programação e muitas outras profissões se resumem à solução de problemas. Mostre a ela como você resolve problemas diariamente. Você pode contar a ela sobre um projeto em que você está trabalhando e como isso ajudará seus clientes. Inclua também um pouco sobre por que você (presumivelmente) gosta do seu trabalho.
No meu caso, desenvolvi um site de tutoriais em vídeo educacional, onde outros membros da equipe publicam tutoriais. Eu explicaria sobre a motivação do projeto (ensinar outras pessoas remotamente sem ter que amarrar as pessoas), os problemas que enfrentei (não preciso necessariamente vê-los como problemas difíceis) e como os resolvi. Eu também falaria sobre por que gosto de programar: gosto de criar coisas e a contribuição da programação para o mundo moderno.
fonte
Dê a ela exemplos de software em que você trabalhou. Você tem um cliente que usa publicamente seu software? Você desenvolve um aplicativo interno que pode mostrar a ela? Mostre a ela o resultado final do seu trabalho, o que o usuário final vê e usa.
Depois, explique que você ajudou a escrevê-lo. Examine as partes que você escreveu. Mostre algum código, se puder. Descreva como essas linhas de código fazem parte do aplicativo funcionar.
Fale sobre o quanto você desfruta ao ver seu código sendo usado por pessoas.
Foi assim que expliquei para o meu primo de 14 anos. Ele ficou bastante impressionado e decidiu fazer uma aula de programação no próximo semestre.
fonte
Você está familiarizado com o jogo de tabuleiro Robo Rally?
Eu descobri que é a analogia divertida do prefeito para a programação. Você está basicamente programando seu robô usando comandos simples (principalmente setas) para chegar a um determinado ponto no tabuleiro de jogo antes dos outros.
Cara, eu gostaria de ainda ter meu BigTrak ...
fonte
Mostre algo simples, mas útil. Um bom exemplo, acho que seria o seguinte:
As razões pelas quais eu gosto dessa abordagem são:
Você pode pensar em exemplos melhores, mas acho que o estilo é útil para uma "primeira introdução".
fonte
A maioria dos jovens de 15 anos "hoje em dia" tem muita experiência com computadores. Eu iria para uma abordagem mais prática. Eu mostraria a ela um pouco de código (não tente explicá-lo em detalhes, mas talvez cubra o extremo do "fluxo") e mostre a ela qual é o resultado. Até o HTML funcionará para esse tipo de exemplo. Então diga "Todos os dias, eu faço basicamente isso ... exceto com dezenas de milhares de linhas de código e um programa muito grande e complexo".
Em seguida, explique que tipo de problemas você resolve programando e por que gosta de fazê-lo. Por exemplo, eu diria que gosto de programar porque "adoro ver meu código ganhar vida no computador como um aplicativo"
fonte
Em primeiro lugar, você tem a concorrência que precisa desmascarar.
Filmes, cultura popular e até pessoas da área ( e essa questão ) tentam retratar a programação (e a maior parte do campo da ciência da computação) como algum tipo de mágica. Isso não é mágico.
Programar é simplesmente descrever tarefas e depois combiná-las para resolver um problema. Se você está tentando encontrar um paralelo, use matemática. Um computador é como um professor de matemática que exige que você mostre todo o seu trabalho .
Do ponto de vista físico, os computadores não são inteligentes - eles sabem apenas o que dizemos a eles. Portanto, quando um programador de computador deseja criar um programa que, por exemplo, reproduz músicas de um CD, "simplesmente" precisa informar ao computador como ler os dados armazenados no CD, como convertê-los em ondas sonoras e, finalmente, , como emitir essas ondas sonoras dos seus alto-falantes.
Levando essa idéia para o próximo nível, você pode continuar sobre como a programação cria tarefas umas sobre as outras. Assim como ele / ela teve que aprender aritmética antes de aprender álgebra em matemática, os computadores também precisam ser instruídos a "fazer o básico" antes que você possa dizer a eles como executar tarefas mais complexas. Ao longo dos anos, cientistas da computação e programadores foram capazes de "ensinar" computadores o suficiente sobre o básico, a ponto de podermos começar a "conversar" com eles muito mais perto de como conversamos.
Na vida real, seu professor de matemática pode dizer para você resolver "15 à potência de 3", mas você só sabe fazer isso porque foi ensinado anteriormente que "X à potência de Y" se divide nas tarefas de "Multiplique X por X e faça-o Y vezes" [tecnicamente Y -1 vezes, mas eh.]
Muito parecido com suas aulas de matemática, os programadores criaram uma base de tarefas 'conhecidos' por isso não precisa se concentrar sobre os detalhes das pequenas coisas e pode dedicar nosso tempo para resolver os problemas reais e não tanto como para executar o subjacente tarefas - agora podemos assumir que um computador entende como fazer coisas básicas.
fonte
Eu faria o que me deixava viciado aos 9 anos. Pegue o C64 no sótão e faça:
10 PRINT "YOU SMELL"
20 GOTO 10
(Obrigado pai).
Então, quando a diversão disso acabar. Eu mostraria a ela o jogo de adivinhação de números. Sim, tudo em BASIC. Não há necessidade de um idioma moderno mostrar um computador recebendo instruções.
fonte
Pode ser útil começar com algo que ela faz rotineiramente, como o Facebook, e explicar como um aspecto simples, como fazer login, pode ser muito complicado.
Você pode ramificar daqui para bancos de dados, design de aplicativos e, em seguida, alguns aspectos de segurança, algo útil que ela pode tirar.
Você pode até perguntar a ela algo como: "Se houvesse uma coisa no Facebook, você poderia mudar, o que seria?" Depois, ensine como você pode fazer a alteração e quantas pessoas estariam envolvidas.
Eu aprendi a programar Pascal pela primeira vez e fiquei impressionado que meu programa aceitasse minha entrada, mexesse nela e imprimisse algo diferente. Eu fui fisgado a partir daí. Algumas pessoas travam fácil.
fonte
Espero ter ido para um estágio em algum lugar que presumivelmente desenvolva software que ela deve ter algum interesse no campo?
Não há uma resposta definida, eu a questionaria por 5 a 10 minutos sobre o que ela sabe e, em seguida, tentaria desenvolver isso da melhor maneira possível.
fonte
Comece de alto nível. Talvez explique que a programação de computadores é sobre a solução de problemas: pegar um problema e criar uma solução que é escrita como um monte de instruções que uma máquina pode usar e entender.
A parte difícil pode ser a de exemplos que uma menina de 15 anos acharia interessante e relevante . Nunca tendo estado nessa situação e não a conhecendo, não sei o que recomendar para isso ... Evite exemplos de código até o final e exceto em casos muito simples ou interessantes, como o programa "Hello world" ou algo simples e gráfico (desenhe algumas formas em uma janela, rastreie um mouse, etc ...).
fonte
Aqui está minha opinião depois de algumas falhas e algumas boas tentativas:
Programar é resolver problemas.
Comece com coisas concretas que são programadas para serem usadas todos os dias - navegador de internet (facebook), telefone celular, caixa registradora, etc. Obtenha-os para dar muitos exemplos. Estabeleça que todas essas coisas tenham um tipo de computador. O coração de um computador é o processador.
O processador é como um trabalhador muito rápido, mas muito burro. Se você der algumas instruções, elas serão executadas exatamente como você diz. Não fará nada extra e não dirá se algo que você disse para fazer estava errado. No entanto, esse processador faz tudo - se você disser exatamente como fazê-lo, poderá fazer uma ligação ou colocar uma foto em um email.
Pergunte a ela como ela diria a um trabalhador muito rápido, mas muito burro, para comprar uma lata de refrigerante em uma máquina de refrigerante. Quando ela começa a descrever as etapas ("Coloque o dinheiro na máquina e pressione o botão."), Comece a dissecá-lo como um programa ("O que é dinheiro? Como o coloco na máquina? Quando coloco o dinheiro na máquina e pressione o botão ao mesmo tempo, nada acontece. "). Se você possui um quadro branco, inicie à esquerda com o primeiro conjunto de instruções. Enquanto ela os revisa, coloque a nova lista maior no lado direito. Quando você tiver um bom conjunto de instruções, comece a generalizar as peças ("Remova o dinheiro do bolso e remova o refrigerante da bandeja com um som semelhante - que partes são iguais / diferentes?") Pegue as generalizações e coloque-as no meio e riscam as peças que agora englobam. Tente, eventualmente, amarrar as peças para combinar com as instruções originais, como chamadas de função. Outros bons exercícios: envie uma carta, passe por uma porta, desenhe um círculo / quadrado / triângulo.
Portanto, programar é resolver problemas: dividir problemas em partes, identificar partes comuns e agrupar essas partes novamente para resolver problemas. Logo, você descobre que algumas partes são comuns em muitos problemas e começa a juntar as peças para resolver problemas que nem sabia que tinha.
Ok, a essa altura ela pode entender, mas provavelmente está entediada. Siga-o com um conjunto de exemplos interessantes de programação. Os shaders e o código visual relacionado são fáceis de demonstrar - você pode exibir uma imagem e começar a fazer alterações com alterações muito pequenas no código. Se ela manifestou interesse no Facebook, mostre conversas com o Facebook pelo REST para ver dados de amigos de amigos (6 graus dela). Se ela gosta de videogame, mostre algumas demos de jogos de código aberto, juntamente com alguns trechos de código e como eles ajudam o jogo a funcionar. Finalize mostrando algumas ferramentas e recursos gratuitos que ela poderia investigar em casa. (Python, C # etc.)
Minhas tentativas fracassadas: tentando explicar o cálculo do pi (eles estavam perguntando), o jogo de tabuleiro C-Jump http://c-jump.com/ (eles não entenderam e as instruções eram de buggy) e codificação ao vivo em 2D game (simplesmente não conseguia despertar o interesse, não importando quão pequenos passos eu estava dando entre as demos).
Boa sorte!
fonte
Faça um programa simples. Não, não "Olá, mundo!"
O que eu faria é dizer que existem muitos tipos de linguagens de programação - que fazem jogos, que controlam robôs -, mas o que você vai trabalhar é o HTML.
Faça uma página da Web sem nada e adicione um formulário que enviará um email para o endereço de email dela. Ela provavelmente possui um telefone celular capaz de notificar o proprietário de que ele tem um novo e-mail, para que você possa dizer a ela que é uma ótima maneira de seus amigos e familiares entrarem em contato com ela. Se ela obtiver seu próprio site no futuro, você poderá dizer a ela que ele pode colocar o formulário em seu site, permitindo que seus clientes e parceiros de negócios entrem em contato com ela.
Como alternativa, se ela é um pouco travessa, vou lhe dizer o que me interessou em programar: hackers. Naquela época, eu fiz o melhor programa já feito para mexer com a AOL (fora de um programa que superou o meu em apenas uma das dezenas de coisas que o meu fez) - com 14 a 15 anos. No lado do chapéu branco, também criei um dos primeiros programas de remoção de spam (1995). Consegui tornar minha experiência on-line muito mais agradável e deixaremos assim. Tudo o que eu queria fazer no computador era uma aventura ou quebra-cabeça que eu precisava descobrir, e as coisas que eu queria fazer no computador eram infinitas. Certamente, fazê-lo funcionar às vezes era uma dor de cabeça, mas escrever um programa que realizava as coisas melhor e mais rápido do que qualquer humano poderia, ou fazer coisas que eram simplesmente impossíveis para o público em geral, era como construir uma boa peça de máquina da qual se pudesse orgulhar. Agora, você provavelmente evita qualquer coisa séria, mas seria extremamente fácil criar algo no Visual Basic que pudesse ser iniciado na inicialização (sentado na lateral da tela ou na bandeja do sistema) e, a partir daí, você poderia fazê-lo lançar seus sites favoritos, seus programas favoritos etc. Você poderia apresentá-la aos comandos necessários para iniciar um exe e um site, e depois pedir a ela para fazer alguns botões e adicionar o código a esses botões , colocando seus sites favoritos (facebook, twitter etc.) e programas (iTunes, processador de texto etc.) Se o computador dela estiver no quarto dela, você também poderá acionar um despertador para aumentar a funcionalidade. Claro, 30 minutos é muito curto para orientá-la sobre isso, então você já deve ter feito. No final, você envia um e-mail com um pequeno manual de 2-3 páginas, o código e o .exe para ela ... e depois a deixa com um pequeno discurso de vendas: não é fácil no começo, mas depois de obter o o jeito, não é tão ruim, será extremamente útil na vida e ajudará a desenvolver seu pensamento analítico.
fonte
Eu costumava ensinar estudantes universitários de 18 anos, e suponho que os de 15 anos sejam iguais. Não espere sucesso sem prática. Levei algumas semanas na minha primeira aula para ser "arrombado".
A maior coisa que tive que aprender foi que o que eu pensava ser tão simples e óbvio que eu tinha medo de não conseguir preencher o tempo não era assim para os alunos. Eu aprendi que você tem que dar passos de bebê - caso contrário, é apenas mágica "gee whiz".
Como você se encaixa nisso em 30 minutos, não tenho certeza, mas a primeira coisa que fiz foi mostrar a eles um pequeno computador caseiro que eu construí, que foi programado para tocar uma pequena música clicando e entrando e saindo de um alto-falante. Expliquei que ele podia tocar uma nota diminuindo um contador, para agir como um atraso, entre cliques. Acabei de escrever o pseudo-código no quadro, como uma receita. Então, havia um pequeno capacitor que eu poderia prender sob um fio que faria a coisa toda funcionar cerca de 1000 vezes mais devagar. Então eles ouviram clique - espere - clique - espere ... Então, quando eu soltei o capacitor, ele explodiu com a pequena melodia.
O objetivo disso era entender que os computadores fazem apenas coisas simples e uma por vez. Eles não iniciam cada etapa até que a etapa anterior seja concluída. (Sim, sim, eu sei - canalização e tudo isso, mas estamos conversando com novatos .) É apenas a velocidade eletrônica que os faz parecer fazer tudo de uma só vez, que é o que os novatos tendem a assumir (junto com a leitura da mente) . Esse é um dos conceitos realmente básicos sem os quais você não pode começar a entender programação e computadores. Para nós, isso é tão complexo que nem percebemos que sabemos, mas os iniciantes não sabem.
fonte
Eu sei que não é linguagem de programação, mas acho que HTML é um bom lugar para começar. Porque você obtém resultados imediatos .... comece com
Olá Mundo
Então faça:
Olá <b> Mundo </b>
Etc.
fonte
Se fosse eu, diria a ela que programar é dividir uma tarefa em pequenas tarefas de uma maneira que o ajude a resolvê-las; e depois expressar essas pequenas tarefas em um idioma que não pode ser mal interpretado por um computador idiota. Mas você também precisa fazê-lo de tal maneira que outros programadores também possam entendê-lo facilmente - e isso não é a mesma coisa.
Ou seja, além do que todo mundo já disse ...
fonte
Essa é mais uma das minhas experiências pessoais do que uma "resposta" direta.
Por que me interessei? Meus pais compraram um IBM PC XT em 1984 (eu nasci em 1984). Ele tem 640kb de RAM e 20MB de HDD e um FDD de 5 "e executou o MS-DOS v3.2. Não era permitido tocá-lo até que eu estivesse no quinto padrão e, quando finalmente tive permissão para usá-lo, servi todos os meus anos de curiosidade acumulada nele.
Minha irmã, por outro lado, recebeu o mesmo PC e um Macintosh Quadra 610 sempre que quisesse e prestou tanta atenção a ela quanto na mesa em que estava.
Ensinando minha irmã ... Tentei ensinar programação de computadores a minha irmã no BASIC. Eu fiz tudo desde o início do computador até a digitação e execução do programa. Foi como programa de linha.
Isso levou meia hora. Quando ela finalmente o executou, imprimiu a palavra 'CAT' e ela ficou furiosa. Ela esperava que a foto de um gato aparecesse. Ela saiu da sala e esse foi o fim da programação para sempre!
Moral: é melhor que o resultado seja proporcional ao tempo e aos esforços que eles investem.
Ensinando as crianças do ensino médio Labview e Lego NXT Fui mentor da FIRST Robotics por um ano e tive que orientar as crianças na programação do robô no NI Labview. Francamente, a habilidade de programação necessária estava muito acima do nível de um garoto do ensino médio. Mas a competição tinha como objetivo deixar as crianças empolgadas com a engenharia e elevar a fasquia na capacidade de assumir um desafio. Desde que os programas tivessem apenas uma declaração if e um loop, tudo estava bem. As pessoas abandonaram a seção de programação do robô quando viram o diagrama de código que eu criei para o robô que construímos no ano anterior.
Por mais que as pessoas afirmem que as crianças de 15 anos podem fazer coisas complexas e ter atenção por horas, eu encontrei uma estranha falta de motivação nelas. Eles queriam fazer coisas fáceis que não sobrecarregavam seus cérebros. Eles preferiam o CAD e as peças fresadas na máquina do que os programas de gravação.
fonte
O que é CS?
Acho que antes de você fazer demos, isso ajuda a dar uma breve opinião sobre o lugar da CS no mundo. Gostei da descrição de CS de Hal Abelson em relação à matemática: enquanto a matemática o ajuda a descrever o mundo em termos de leis, o CS o ajuda a descrever como fazer as coisas. Seu exemplo foi a função de raiz quadrada: a matemática a definirá, mas não o ajudará a encontrá-la para nenhuma entrada. CS vai. Em um nível inferior, a engenharia elétrica e a física lançaram as bases para o hardware que permitia a Internet, mas deixaram em aberto as questões de como levar as pessoas a usá-lo.
Como é ser um programador?
Depois, há a questão de como é ser um programador. O que me chamou a atenção foi que ele tem uma recuperação mais rápida de tentar algo, testar, consertar, do que qualquer outro campo técnico. É uma solução sem problemas, enquanto em outros campos o tempo de resposta de um único loop pode ser de meses. Também é útil para quase todos os outros campos técnicos, o que é mais do que pode ser dito para ... a maioria dos outros campos técnicos. Portanto, se você ainda não sabe o que deseja fazer (provavelmente), é uma boa coisa começar cedo. Na faculdade, poucas coisas o tornarão mais útil para mais professores do que ser capaz de codificar seus experimentos.
Colírio para os olhos, vinculado ao código
Então, é claro, não esqueça as demos. Pode ser legal obter uma cópia do terremoto (código aberto) e fazer algumas alterações em uma linha (por exemplo, alterar a força da gravidade) e recompilar, por exemplo. Também dê uma olhada no código. Tranquilize-a de que ela não deve esperar entender muito, pode parecer bobagem agora, mas, novamente, o mesmo acontece com jornais em idiomas estrangeiros que ela ainda não aprendeu. Você pode dizer que, no entanto, ela pode ver que as coisas estão sendo atribuídas, objetos estão sendo instruídos sobre o que fazer, e é aqui que definimos a gravidade, etc.
fonte
Comecei a programar aos 14 anos. Embora a maioria (47 dos 50 alunos matriculados) tenha desistido no meio do ano ou tenha decidido não continuar no curso avançado no próximo ano, continuei com ele e aprendi algo muito importante:
A programação oferece a capacidade de criar algo do nada. Você tem o poder de transformar as palavras em uma ferramenta útil que preenche uma necessidade, uma atividade divertida para você e seus amigos, ou apenas algo que você pode mostrar a seus amigos e dizer: "Veja o que eu fiz".
Nós fomos ensinados "Olá Mundo", para começar, mas eu não tinha interesse até poder fazer meu código interagir com o usuário . No momento em que fomos ensinados a ler as entradas com "cin", propus-me a criar um programa Mad-Lib que pudéssemos tocar em sala de aula. Meu primeiro obstáculo foi ler entradas contendo espaços, seguidas pela formatação da saída. Mais tarde, eu queria poder salvar essas histórias em um arquivo e, portanto, precisava aprender as E / S de arquivos. Enfrentar obstáculos para alcançar meus próprios objetivos foi o que me manteve engajado.
Mais tarde, descobrimos que os administradores de rede estavam registrando nosso uso do "Net send" e do cliente Novell SendMessage que estávamos usando para se comunicar durante a aula de informática, e eles o desativaram depois que os alunos o usaram para trapacear em um teste. Então , escrevi uma sala de bate-papo para substituir a que os administradores desativaram. Foi a primeira coisa verdadeiramente útil que eu criei. Eu o modelei após o sistema de bate-papo da Battle.Net, completo com registro de usuários, moderadores e até mesmo um sistema básico de criptografia e arquivos de sombra para impedir que os usuários violem (todos os arquivos tinham que residir em uma unidade de rede compartilhada para que os alunos pudessem acessar e usar o programa). Esses não eram conceitos que eu já conhecia, mas as soluções que eu criei por conta própria para resolver um problema. Para mim, essa foi a alegria da programação.
Portanto, para responder à pergunta corretamente, além da discussão sobre o que significa desenvolver software, uma demonstração interativa é provavelmente uma ótima idéia. De preferência, algo que resolva um problema que ela tem, como redimensionar todas as fotos gigantes da câmera automaticamente. Embora um pouco mais complicada, ela pode se divertir com uma simples página da web que você pode compartilhar com seus amigos. Você pode mandar um e-mail para alguém sempre que uma nova mensagem for publicada e ela editar o código para enviá-lo para o e-mail dela em vez do seu. Além disso, faça com que a página mostre o último número X de comentários e faça com que ela ajuste esse número também, e veja quais são os resultados.
fonte
Onde eu costumava trabalhar, às vezes tínhamos crianças com experiência profissional entrando. Algumas estavam interessadas em computadores, outras não. Costumávamos fazê-los sentar na frente de um computador e fazê-los escrever um jogo de adivinhação. (O computador seleciona aleatoriamente um número, o usuário obtém feedback se o seu palpite foi alto / baixo demais.) É simples de fazer e é realmente um resultado divertido. Nada é mais poderoso do que mostrar tangivelmente o que ELES podem criar.
fonte
Quando você deseja obter - e manter - a atenção de alguém, PERGUNTE, NÃO DIGA. Pergunte como eles executariam uma tarefa simples, como beber água. Depois, mostre a eles como seguir as instruções que eles forneceram (como "Desça o corredor") não resolve os problemas de quando virar à esquerda, virar à direita, parar etc. Entender e lidar com essas condições de contorno, esse é o negócio de programação! Em seguida, você pode mostrar como um loop do tipo "faça até" pode lidar com o tipo de situação "ande até chegar à parede", para fazer meta-tarefas com a tarefa de um pé na frente da outra de andar.
fonte
Não tenho certeza se isso é uma lenda ou uma história verdadeira, mas eu estava lendo sobre o motivo da sorte um dia. Parte de uma história foi como ele mostrou a programação para uma criança (ou talvez até crianças) que conheceu em um trem.
Como alguns de vocês devem saber, _por que era um cara Ruby (e Ruby é, bem, sendo bastante amigável com humanos comuns). Ele estava trabalhando em algum jogo em Ruby, enquanto um garoto se aproximava dele para ver o que ele estava fazendo. Ele mostrou o resultado primeiro - o jogo de trabalho. Em seguida, ele mostrou ao garoto como ele pode modificar as coisas no código para alterar o resultado. Então ele deixou o garoto brincar com o código e ver o resultado modificado.
Eu acho que esse deve ser o seu fluxo de trabalho geral - resultar, modificar, jogar. Você deve encontrar algum projeto (o jogo seria a melhor escolha) em linguagem humana e mostrá-lo à criança.
Como estou triste, não tenho ideia se essa história é verdadeira ou não. Ainda é muito legal.
Além disso, mais uma coisa. Lembro-me da minha primeira experiência com programação -
MessageBox
em Delphi. Foi legal, porque eu podia fazer o computador fazer o que eu queria e ver imediatamente o resultado.Então, os microcontroladores apareceram. Eles foram ainda melhores, porque meu código poderia mudar o mundo real. Quero dizer, atribuir algum valor à variável deixou de ser tão abstrato, pois fazia aparecer uma voltagem na porta de saída, o que fazia meu motor se mover. Isso foi legal. Você pode escolher esse caminho - mostre ao garoto algo como o Arduino.
Veja bem, acho que é tudo uma questão de mudar e ver o resultado.
fonte
Mostre a ela o resultado final de algumas das coisas que você fez. Fale em geral sobre seu papel nos projetos. Talvez até a ajude a dar um olá mundo se ela parecer interessada.
fonte
Minha analogia favorita para programação é bruxaria (estilo harry potter), como Satanicpuppy. Eu uso isso para colegas não técnicos e crianças, parece que funciona muito bem e transmite definitivamente o poder que os computadores nos dão.
Os computadores são nossas varinhas mágicas. Eles nos permitem realizar magia com o movimento direito do pulso e encantamentos. Como programadores, temos acesso a livros de ortografia (bibliotecas) trabalhados e refinados por nossos antecessores. Podemos criar novos feitiços e encantamentos ou trabalhar com os existentes. Alguns são fáceis, outros exigem mais prática para realmente usá-lo efetivamente, geralmente existem trocas e muitas maneiras diferentes de resolver o mesmo problema (devo usar uma boa poção ou um encantamento?).
Essa metáfora estendida pode realmente ser bem esticada e muitas vezes me permite transmitir minha paixão pela programação de uma maneira que seja acessível a pessoas fora do campo.
fonte
A melhor maneira de entender as crianças é ser uma criança primeiro ..! Quando criança, eu odiava fazer trabalhos de casa, imposições etc.! então existem pontos de entrada onde você pode chamar a atenção deles. Em um intervalo de 30 minutos, embora não possamos explicar tudo, podemos tentar dar a eles um tipo de exposição em que crianças interessadas acham isso uma inspiração. Comece com tópicos relacionados, como trabalhos de casa, etc. Diga-lhes como um computador pode escrever imposição em apenas alguns segundos, etc.
Desejo a todos o melhor.. ! bom trabalho
fonte