30 minutos para explicar la programación a un joven de 15 años [cerrado]

100

Fui voluntario para sentarme y hablar sobre la vida y el trabajo de un Desarrollador con un estudiante de 15 años de experiencia laboral la próxima semana.

Las capturas son que

  • Solo tengo media hora, y
  • Seré solo una de las personas que hablará con ella: otras personas en diferentes roles en el negocio también estarán revisando los elementos de sus trabajos con ella durante todo el día.

¿Qué debería cubrir, y qué demonios puedo esperar enseñarle en solo media hora?

Supongo que probablemente no tenga experiencia con el desarrollo o la programación.

Dexter
fuente
158
Es deprimente lo condescendientes que muchas de estas respuestas son para los niños: tienen breves períodos de atención, no entienden las cosas si no son visuales, no pueden lidiar con nada complicado. Estamos hablando de un chico de quince años aquí. Los jóvenes de quince años son bastante capaces de comprender y hacer cosas complicadas, pasar horas involucrándose profundamente en algo y tener pensamientos abstractos. ¡Tomaría a un listo de quince años por encima de cualquiera de ustedes idiotas!
Tom Anderson
8
@tom Por otro lado, he experimentado personalmente cómo la mayoría de los adultos incluso encuentran que otras cosas que no sean las imágenes en una computadora son tediosas. Depende del niño y de cuánto interés tienen en las computadoras.
jhocking
66
@jh: ¡Je! Supongo que la pregunta no es si esta persona tiene quince años, sino si son inteligentes y curiosos. Es posible que todos (salvo Maxpm) seamos viejos tontos ahora, pero todos teníamos quince años una vez, y dudo mucho de que aquellos de nosotros que somos adultos inteligentes e inquisitivos somos adolescentes aburridos y desinteresados.
Tom Anderson
33
"Primero llego al trabajo un poco después de las 10 a.m., bebo mucho café, lo persigo con Mountain Dew y bebidas energéticas. Paso las siguientes 2 horas revisando mi correo, intercambiando recetas con la única y única mujer desarrolladora en el todo el edificio, luego una breve siesta después del almuerzo. Levántate, revisa el correo electrónico nuevamente, navega por YouTube para ver videos de gatos, ponte al día con los últimos cómics de dilbert y smbc. Antes de que te des cuenta, son las 4:30, hora de ir a casa. No puedo hacer mucho, pero 100 programadores hacen lo mismo todos los días 3 años, bueno, así es como nacen los videojuegos ".
Juliet
55
@Tom: exactamente. Muchos programadores comenzaron antes de los 15 años, así que no entiendo la condescendencia.
Neil G

Respuestas:

130

Interactúo mucho con los estudiantes de secundaria, por lo que respondo esta pregunta con bastante frecuencia. Tenga en cuenta que los niños de 15 años son mucho más fáciles de explicar la programación que los de 50 años, por lo que no necesita tonterías ni utilizar analogías descabelladas.

Normalmente comienzo con ejemplos de qué programas son:

  • Aplicaciones como iTunes, Photoshop, Chrome y juegos, incluidos los juegos de consola.
  • Sistemas operativos como Windows, Mac OS, iPhone's iOS, Android. (Confía en mí, sabrán de qué estás hablando).
  • Programas que reducen números o resuelven problemas matemáticos realmente complicados: simulaciones climáticas, simulaciones biológicas, cálculo de pi, IA, procesamiento del lenguaje, etc.
  • Los sitios web más sofisticados también implican programación.
  • Máquinas expendedoras de boletos de tránsito y cajeros automáticos, temporizadores de microondas y refrigerador, navegación para automóviles.

Después de eso, generalmente explico que codificamos programas en un lenguaje formal que la computadora puede reconocer, a menudo escribiéndolos en algo tan simple como el Bloc de notas. Los idiomas parecen un cruce entre las matemáticas y el inglés, que describen conceptos y dan fórmulas e instrucciones para que la computadora las siga.

Luego, generalmente me preguntan si estoy en la computadora todo el tiempo, si es por eso que siempre estoy en Facebook y por qué mis ojos aún no se han puesto mal. Los chicos preguntan si sé cómo "hackear personas", y las chicas preguntan si es buen dinero o cuántas chicas hay en las clases de informática.

Después de eso, si todavía están interesados, generalmente comienzan a hacer preguntas específicas que son mucho más fáciles de responder (o al menos a Wiki): cosas como cómo harías un juego, cómo funciona Windows Messenger, etc.

Si tiene una computadora cerca, puede mostrar y decir algo de código, algo que tendría efectos tangibles, como un controlador de clic de botón desde el cuadro de diálogo de configuración en Firefox, el bucle principal o el código de física en un motor de juego, algunos Fuente de JavaScript de un sitio web, etc.

Rei Miyasaka
fuente
73
Gracias por recordarme que explicarle la programación a un niño puede ser más fácil que explicárselo a un adulto. Se me sigue olvidando que ellos nunca han no sido rodeados por las computadoras.
jhocking
12
jajaja me sale eso todo el tiempo, si sabes cómo "hackear a la gente" jajajajaja
John Connelly
3
@jhocking También creo que muchos de ellos son más brillantes que gran parte de la generación de cajas idiotas. Dejando a un lado la calidad, la gran cantidad de texto que leen es útil.
Rei Miyasaka
44
@rei: Bueno, tengo habilidades sociales avanzadas, y me pareció muy difícil la cantidad de atención que recibieron las pocas mujeres en esas clases ... Fue bien intencionado, pero ... alarmante. Si hubiera sido yo, habría corrido gritando. Estar rodeado por una horda de respiradores sudorosos seguramente será un desvío para cualquier persona normal, por lo que o bien debería recibir la atención, o realmente debería gustarle realmente la ciencia ficción. Así que ciertamente no me sorprendió que hubiera tan pocas mujeres. Me imagino que en las escuelas más pequeñas no es tan horrible.
Satanicpuppy
44
Bueno, generalmente llego al menos quince minutos tarde, ah, uso la puerta lateral, de esa manera Lumbergh no puede verme, je, je, y, después de eso, me quedo fuera por alrededor de una hora. Sí, solo miro mi escritorio; pero parece que estoy trabajando También lo hago probablemente durante una hora después del almuerzo. Yo diría que en una semana dada probablemente solo haga unos quince minutos de trabajo real, real.
teambob
73

Se lo expliqué a mi hijo de cinco años con lo siguiente:

Yo: "¿Sabes cómo, en las historias, la gente dice palabras mágicas y cambia las cosas en el mundo?"
Ella: "¿Sí?"
Yo: "Eso es la programación de computadoras".
Ella (en voz baja): "Wow".

15-30 minutos no son suficientes para explicar algo real, y explicar la complejidad subyacente es una forma segura de hacerlos correr gritando. Trabajas en él todos los días, olvidas lo jodidamente genial que es. Ninguna otra profesión en el mundo crea cosas funcionales con nada más que palabras ... En algún momento, todos los demás tienen que salir al mundo de la carne y comenzar a golpear las cosas con un martillo. Esa es la única forma en que pueden convertir su idea en algo que funcione.

Nosotros no.

Satanicpuppy
fuente
77
lol @ enseñando a tu hijo que eres un mago
jhocking
23
"Ninguna otra profesión en el mundo crea cosas funcionales de la nada más que palabras" - hacen abogados y legisladores contratados.
Tom Anderson
48
@Tom Probablemente limitan las cosas funcionales más de lo que las crean.
Maxpm
16
@tom: No, no lo hacen. Un informe legal no es más funcional que una historia o un poema. Una ley es como un plan: establece una idea, pero luego alguien tiene que salir al mundo de la carne y hacerla cumplir. ¿Pero el código? Podría escribir un programa para comprar o vender acciones en función de su propia lógica interna, e iría a hacer lo suyo sin más aportes de mi parte. Podría escribir uno para gobernar las compuertas de inundación, redirigir la electricidad, encender o apagar las luces dependiendo de la hora del día. Es único entre las profesiones.
Satanicpuppy
15
@Satanicpuppy: No, no puedes escribir un programa que haga cualquiera de esas cosas. Sin embargo, un ingeniero electrónico podría construir una computadora que pudiera hacerlos. Si preguntaste amablemente, tal vez podría hacer que salga al mundo de la carne y haga cumplir tus programas.
Tom Anderson
56

Una persona de 15 años puede entender cualquier concepto. Yo mismo comencé a programar a los 14. (en la escuela, hace muchos años)

30 minutos es suficiente para una demostración. Muéstrele la magia de programar con algo tan extendido como un navegador.

  1. Encuentra una PC conectada a internet. (más divertido si no es tuyo, y aún más si es suyo)
  2. Vaya a http://api.jquery.com/jQuery.getJSON/
  3. Desplácese hacia abajo de la página y busque el código HTML para el ejemplo de gatos .
  4. Seleccione el código HTML y cópielo.
  5. Vaya a http://jsdo.it y haga clic en Iniciar codificación .
  6. Abra una cuenta con un OpenID suyo. (proceso de un paso)
  7. Seleccione la pestaña HTML en el panel izquierdo y péguelo allí.
    • en un segundo aparecerá un grupo de gatos en el panel derecho
  8. Corta el javascript y pégalo en la pestaña de JavaScript . (para resaltar la sintaxis)
    • en un segundo los gatos se actualizan automáticamente en el panel derecho
  9. Busque la propiedad de etiquetas en el javascript y cámbiela a "dog".
    • aparece un montón de perros
  10. Haz que repita el proceso sola con otras etiquetas de su elección.
    • sugiérale que pruebe con dos etiquetas, separadas por una coma
  11. Cambie la línea "if (i == 3)" a "if (i == 5)"; déjala darse cuenta de que
    • ahora hay 6 imágenes y antes había 4
    • sería mejor si el número en el código coincide con el número en la página
  12. Arregle el error juntos (intercambie esa línea y la anterior)
  13. ...
Ando
fuente
1
O puede usar jsfiddle, sin necesidad de registrarse: jsfiddle.net/WXVra
rjmunro
¡mejor! codecademy.com
jhocking
26

Pasos

Como casi 15 años de edad, puedo decirle con confianza que debe tener un comienzo espectacular .

  1. Explica qué hacen los programadores. (Juegos, simuladores). Muestra algo genial que hayas hecho. (En la computadora. Por favor, no hay línea de comando, eso parece asustar a todos).
  2. Explica cómo lo haces.

    • Diles que no escribes en 10101010todo el día. Diles que ni siquiera sabes cómo hacerlo. ( Lie. Usted no sabe lo que 10101010significa, a la derecha;?)) Les dice que eso fue hace años.
    • Inicia tu IDE. Asegúrese de que se vea bien: MSVS2010, QtCreator y NetBeans son buenos. Asegúrese de eliminar algunas de las cosas adicionales para que parezca menos intimidante (menos menús), pero mantenga los efectos visuales.
    • Muéstreles una muestra de algún pseudocódigo. Haz que sea fácil de entender:

      Display Window
      Display "I like cheese!"
      Display OK button
      
      If user clicks OK button, close Window
      

      Ve a través de eso paso a paso. Diles que así no es exactamente cómo se ve el código. El código se ve así English + Math. Pero no es difícil aprender el "idioma" (léase: sintaxis) en el que habla.

    • Muéstreles un ejemplo con un poco más de "matemáticas", esta vez.

      User inputs A
      User inputs B
      
      C = A + B
      
      Display C
      

      Explique que ese código agrega dos números juntos, como una calculadora. Muéstreles el código "real" para esto. (Asegúrese de poner la mayor parte de la interfaz de usuario y otras cosas en un archivo separado, y mantenga el archivo que les muestra corto y simple). Cámbielo a un programa de resta (cambiando el signo de +a -) justo delante de sus ojos.

  3. Explique lo que necesitan saber para programar. (En varios niveles).

    • Habilidades básicas de álgebra, como si x + 1 = 2, entonces x = 1.
    • Habilidades para resolver problemas.
    • ["Avanzado"] Matemáticas de nivel superior. Esto es para programadores que trabajan en lugares como la NASA.

Términos que puedes usar

Sabemos más de lo que piensas.

  • Facebook, Twitter, redes sociales
  • Windows, Mac, Linux
  • Diseño, más rápido, pruebas, inicio / ejecución

Términos que debes explicar

Sí, todavía necesitamos algunas cosas explicadas.

  • Compilador: Convierte código (como el ejemplo en el paso 2) en 10101010.
  • Lenguaje de programación: parece un ejemplo en el paso 2.

Términos que no puedes usar

Algunos de nosotros sabemos esto, pero por favor no lo digas de todos modos.

  • Cualquier tipo de "sistema" que no sea el sistema operativo
  • Optimización, Análisis (oh oh)
  • Entrada / Salida (si necesita usar esto, intente hacerlo lo más simple posible)
muntoo
fuente
¿Buscas un IDE 'genial'? No busque más que Xcode.
Alan Zeino
2
@ Alan Zeino te refieres a Emacs.
derecha el
Me gusta más esta respuesta. Creo que alguien que tome esta táctica lograría más que alguien que trabaje con otras respuestas (también de alta calidad) a esta pregunta.
TehShrike
17

Si comienzas a hablar sobre cosas como procesos, patrones, requisitos y demás, ella se cerrará de inmediato. Los niños de hoy son gráficos y visualmente motivados, así que traería algo para ayudar a promover ese tipo de estímulo. Muéstrele algo elegante en la web y luego, en un nivel alto, descríbale lo que hace que eso suceda. Incluso sugeriría llevar su computadora portátil de desarrollo y hacer que ocurra algo "genial" en la pantalla: cambie el código frente a ella y luego vea cómo cambia en la pantalla. A esa edad, son MUY inteligentes y cualquier cosa visual ayudará a despertar interés.

Catchops
fuente
oh sí, los visuales son una gran idea. A riesgo de que esto se parezca demasiado a una clase, es muy probable que dibuje diagramas en la pizarra para ilustrar todo lo que digo.
jhocking
1
Hablando de imágenes, ¿qué tal mostrarle un pequeño video o programa de Alice?
Carlos Campderrós
99
@Carlos A los 15 años, puedo dar fe personalmente de que odio a Alice con la pasión ardiente de mil soles. Sin embargo, probablemente sea porque ya sé cómo programar. No estoy seguro de cómo lo ven los principiantes.
Maxpm
1
+1 para "cambiar el código frente a ella y luego verlo cambiar en la pantalla" - comience mostrándole una conexión directa entre lo 'real' y el código detrás de ella. Algo moderadamente profundo, como ordenar o consultar algunos datos, no solo ajustar un poco de JSP o formato de cadena. Haga esa conexión, luego construya a partir de ella.
Tom Anderson
1
La capacidad de cambiar el aspecto de un programa con solo unas pocas líneas de código es lo que me metió en la programación hace muchos años. Gracias por la sugerencia
Dexter
13

Hay dos grandes analogías en las que confío para explicar el trabajo de los programadores. Uno es una receta; esa metáfora es útil para explicar a pequeña escala lo que está haciendo cada línea de código. El trabajo de un programador es escribir la receta, y la computadora es la cocinera.

La otra analogía es que un gran programa es como una gran empresa. Hay un montón de departamentos diferentes que se centran en diferentes áreas y envían mensajes de un lado a otro, y todo termina cumpliendo los objetivos de la empresa. El trabajo de un programador es diseñar cómo se configura la organización, y la computadora son todas las personas de la empresa.

jhocking
fuente
8

Yo diría que sea general. La programación y muchas otras profesiones se reducen a la resolución de problemas. Muéstrele cómo resuelve los problemas a diario. Puede contarle sobre un proyecto en el que ha estado trabajando y cómo va a ayudar a sus clientes. También incluya un poco sobre por qué (presumiblemente) le gusta su trabajo.

En mi caso, he desarrollado un sitio web de video tutorial educativo donde otros miembros del personal publican tutoriales. Explicaría sobre la motivación para el proyecto (enseñar a otros de forma remota sin tener que vincular a las personas), los problemas que enfrenté (no necesariamente tengo que verlos como problemas difíciles) y cómo los resolví. También me gustaría hablar de por qué me gusta programar en primer lugar: me gusta crear cosas y la contribución de la programación al mundo moderno.

Peter Smith
fuente
8

Dale ejemplos de software en el que hayas trabajado. ¿Tiene un cliente que usa públicamente su software? ¿Desarrollas una aplicación interna que puedas mostrarle? Muéstrele el resultado final de su trabajo, lo que ve y usa el usuario final.

Luego, explique que ayudó a escribirlo. Repasa las partes que escribiste. Muestra un código si puedes. Describa cómo esas líneas de código hacen que parte de la aplicación funcione.

Hable sobre cuánto disfrute al ver que las personas usan su código.

Así es como se lo expliqué a mi primo de 14 años de todos modos. Estaba bastante impresionado y decidió tomar una clase de programación el próximo trimestre.

Tyanna
fuente
55
Funciona bien si trabajas en un software que se ve genial para los no programadores. Muchos de mis proyectos recientes viven en una base de datos y "se ven" como una línea de comando (e incluso los que no estaban en una aplicación web que parecía muy aburrida, pero mientras los datos se procesaran, a nadie le importaba). Para un no programador, es un mensaje parpadeante que genera una línea de texto cada pocos minutos y luego se detiene. Tan aburrido de mirar ... suspiro :(
FrustratedWithFormsDesigner
1
Tome una vista más amplia del "resultado final de su trabajo". Eso no solo significa el software en el que trabajó; También podría significar las diversas aplicaciones cliente que están habilitadas por el software de fondo en el que trabajó.
jhocking
Al menos no eres un desarrollador de SharePoint como yo, @FrustratedWithFormsDesigner ... ¡Estoy seguro de que puedo encontrar algo que se vea bien entre todos mis corchetes angulares!
Dexter
44
@FrustratedWithFormsDesigner Fui a un día de "persuadir a los niños de la escuela de que vale la pena aplicar a CS" cuando tenía 15 años, junto con varios otros niños brillantes de mi escuela. Cosas de la línea de comando LOOKED COOL. Parecía súper poderoso para nosotros, y eso lo hizo COOOOOL. No asumas que las chicas de 15 años no quieren gobernar el universo :)
testerab
Seguramente has programado algo divertido en tu tiempo libre que podrías mostrar. Programé un juego de Tetris, un visor fractal y un solucionador de sudoku. Cualquiera de estos es divertido de mostrar.
Carra
7

¿Conoces el juego de mesa Robo Rally?

He descubierto que es la analogía divertida perfecta para la programación. Básicamente, está programando su robot usando comandos simples (flechas en su mayoría) para llegar a un cierto lugar en el tablero de juego antes que los demás.

Hombre, desearía tener mi BigTrak ...

Se cayó el sistema
fuente
44
Jugamos esto regularmente en nuestra noche de juegos (hasta 8 personas, la mayoría son estudiantes de matemáticas o CS). Es bueno mostrar cómo los subprocesos múltiples pueden salir mal :-p
Paŭlo Ebermann
@Paulo - LOL Nunca lo pensé de esa manera, ¡pero tienes razón!
Sistema
6

Muestra algo simple, pero útil. Un buen ejemplo creo que sería el siguiente:

  1. Obtenga una carpeta llena o imágenes (lo suficiente como para que no quepan todas en una pantalla en su explorador de carpetas)
  2. Dígales que su objetivo es cambiar el tamaño de las imágenes (tal vez para que pueda enviarlas por correo electrónico a sus amigos, o publicar en línea en cualquier lugar, lo que sea)
  3. Demuestre cambiar el tamaño de una imagen en GIMP / Photoshop / lo que sea
  4. Ahora señale que hacer eso tomó al menos 30 segundos, y tiene muchas imágenes, no desea pasar una hora haciendo esto
  5. Escriba un script de shell para redimensionarlos a todos usando ImageMagick
  6. Que se sorprendan de que cambiar el tamaño de todas las imágenes con su sencillo programa de 3 líneas fue más rápido que cambiar el tamaño de una sola imagen en Photoshop

Las razones por las que me gusta este enfoque son:

  • No tienes que decirles por qué programación es útil, solo vieron por qué
  • Puede escribir todo el programa en un par de segundos mientras están mirando (le aconsejo que lo intente de antemano, ya que las demostraciones siempre salen mal)
  • No estás asumiendo que son idiotas / necesitan algún tipo de ejemplo de "niño". Este es un ejemplo simple, pero tiene usos en el mundo real .

Puede pensar en mejores ejemplos, pero creo que el estilo es útil para una "primera introducción".

Reinstalar a Mónica
fuente
5

La mayoría de los jóvenes de 15 años "en estos días" tienen mucha experiencia con las computadoras. Me gustaría tener un enfoque más práctico. Le mostraría un poco de código (no trate de explicarlo en detalle, pero tal vez cubra los conceptos básicos extremos del "flujo") y le muestre cuál es el resultado. Incluso HTML funcionará para este tipo de ejemplo. Luego diga "Todos los días, básicamente hago eso ... excepto con decenas de miles de líneas de código y un programa muy grande y complejo".

Luego explique qué tipo de problemas resuelve programando y por qué le gusta hacerlo. Por ejemplo, diría que me gusta la programación porque "Me encanta ver que mi código cobra vida en la computadora como una aplicación"

Earlz
fuente
4

En primer lugar, tienes competencia que necesitas desacreditar.

Las películas, la cultura popular e incluso las personas en el campo ( y esta pregunta ) intentan retratar la programación (y la mayor parte del campo de la informática) como algún tipo de magia.No es magia

La programación es simplemente describir tareas y luego combinar esas tareas para resolver un problema. Si está tratando de encontrar un paralelo, use las matemáticas. Una computadora es como un maestro de matemáticas que requiere que muestres todo tu trabajo .

Desde un punto de vista físico, las computadoras no son inteligentes, solo saben tanto como les decimos. Entonces, cuando un programador de computadoras quiere crear un programa que, por ejemplo, reproduce música de un CD, "simplemente" necesita decirle a la computadora cómo leer los datos almacenados en el CD, luego cómo convertir esos datos en ondas de sonido y, por último, , cómo emitir esas ondas de sonido desde sus altavoces.

Llevando esta idea al siguiente nivel, puedes continuar sobre cómo la programación construye tareas una encima de la otra. Al igual que él / ella tuvo que aprender aritmética antes de que pudieran aprender álgebra en matemáticas, las computadoras también necesitan que se les diga cómo 'hacer lo básico' antes de que pueda decirles cómo hacer tareas más complejas. Con los años, los informáticos y los programadores han podido "enseñar" a las computadoras lo suficiente como para poder comenzar a "hablarles" mucho más cerca de cómo nos hablamos entre nosotros.

De vuelta en la vida real, su maestro de matemáticas puede decirle que resuelva "15 al poder de 3", pero solo sabe cómo hacerlo porque previamente le enseñaron que "X al poder de Y" se descompone en las tareas de "Multiplica X por X y hazlo Y veces" [técnicamente Y -1 veces, pero eh.]

Al igual que sus clases de matemáticas, los programadores han establecido una base de tareas 'conocidos' por lo que no es necesario centrarse en los detalles de las cosas pequeñas y podemos dedicar nuestro tiempo a la solución de los problemas reales y no tanto de cómo llevar a cabo el subyacente tareas: ahora podemos suponer que una computadora entiende cómo hacer cosas básicas.

colinross
fuente
3

Hacía lo que me enganchó cuando tenía unos 9 años. Toma el C64 del desván y haz lo siguiente:

10 PRINT "YOU SMELL"

20 GOTO 10

(Gracias Papa).

Luego, cuando la diversión haya terminado. Le mostraría el juego de adivinar números. Sí, todo en BÁSICO. No hay necesidad de morir de un lenguaje moderno para mostrar una computadora tomando instrucciones.

Martin Blore
fuente
2
Bueno. Le diste al clavo. Hazlo realmente simple y hazlo divertido. Y BASIC es perfecto para eso.
Mike Dunlavey
1
De acuerdo, BASIC es excelente y GOTO es la mejor construcción de lenguaje para comenzar. Mi primer programa fue muy similar.
Tomas Andrle
No diré que estoy totalmente en contra de esto, pero no aprendí sobre goto hasta después de unos años de programación en C ++. Incluso desde entonces, nunca he escrito un solo goto en mi vida. Bueno o malo, no juzgaré, solo quería que se supiera que goto no es necesariamente ... eh ... necesario.
31eee384
3

Puede ser útil comenzar con algo que hace habitualmente, como Facebook, y explicarle cómo un aspecto simple como iniciar sesión puede ser muy complicado.

Podría ramificarse desde aquí a bases de datos, diseño de aplicaciones y luego a algunos aspectos de seguridad que es algo útil que ella puede quitar.

Incluso puedes preguntarle algo como: "Si hubiera una cosa sobre Facebook que pudieras cambiar, ¿cuál sería?" Luego, hágale saber cómo podría hacer el cambio y cuántas personas estarían involucradas.

La primera vez que aprendí a programar Pascal fue que me entusiasmó que mi programa aceptara mi aporte, lo manipule e imprimiera algo diferente. Me enganché desde allí. Algunas personas se agarran fácilmente.

cliente09
fuente
Usar Facebook es una buena sugerencia, gracias @ client09
Dexter
2

¿Espero haber ido a un puesto de trabajo en algún lugar que presumiblemente desarrolle software que ella debe tener algún interés en el campo?

No hay una respuesta fija, la interrogaría durante 5-10 minutos sobre lo que sabe y luego trataré de aprovecharla lo mejor que pueda.

Anónimo
fuente
No estoy seguro @Chris: hay muchos roles diferentes en una empresa de tecnología, desde contabilidad hasta recursos humanos, desarrollo y consultoría. Le estamos dando una breve muestra de muchos roles diferentes, así que no creo que haga esta suposición
Dexter
Bueno, para ser justos, nunca dijiste por qué tipo de empresa era. : p Sería seguro decir que si alguien fuera por una colocación en una tienda de guitarras probablemente estaría interesado en las guitarras en lugar de ser un luthier de madera.
Anónimo
2

Comience de alto nivel. Tal vez explique que la programación de computadoras se trata de resolver problemas: tomar un problema e idear una solución escrita como un montón de instrucciones que una máquina puede usar y comprender.

La parte difícil podría ser encontrar ejemplos que una niña de 15 años encontraría interesantes y relevantes . Como nunca he estado en esa situación y no la conozco, no estoy seguro de qué recomendar para eso ... Evite muestras de código, hasta cerca del final, y excepto en casos muy simples o interesantes, como un programa "Hola mundo" o algo simple y gráfico (dibujar algunas formas en una ventana, rastrear un mouse, etc.).

FrustratedWithFormsDesigner
fuente
No creo que pueda enseñar a alguien acerca de la programación sin mostrarlos al menos algunas muestras del código que estoy trabajando en ..
Dexter
@Dexter: en 30 minutos, no estoy seguro de querer detenerme demasiado en cómo se ve el código. No quise mostrar nada, pero como no tienes mucho tiempo, no creo que el código sea el foco. Podría volverse muy seco y aburrido. Hable más sobre ideas y conceptos si puede. Si puede encontrar un ejemplo simple (tal vez menos de 10 líneas) que sea fácil de entender y también interesante, ¡adelante!
FrustratedWithFormsDesigner
de acuerdo, pero creo que en lugar de ir a un simple ejemplo del capítulo 1, prefiero mostrar un programa que desarrollé y alternar algunas líneas de código para mostrar un resultado ... en última instancia, no creo que sea voy a poder enseñarle a programar, pero tal vez pueda inspirarla para que quiera saber más ...
Dexter
2

Aquí está mi opinión después de un par de intentos fallidos y un par de intentos bastante buenos:

La programación es la resolución de problemas.

Comience con cosas concretas que están programadas y que usan todos los días: navegador de internet (facebook), teléfono celular, caja registradora, etc. Pídales que le den muchos ejemplos. Establezca que todas estas cosas tienen una especie de computadora en ellas. El corazón de una computadora es el procesador.

El procesador es como un trabajador muy rápido, pero muy tonto. Si le das algunas instrucciones, las hará exactamente como dices. No hará nada extra y no le dirá si algo que le dijo que hiciera estaba mal. Sin embargo, este procesador hace todo: si le dice exactamente cómo hacerlo, puede hacer una llamada telefónica o poner una imagen en un correo electrónico.

Pregúntele cómo le diría a un trabajador muy rápido pero muy tonto que compre una lata de refresco en una máquina de refrescos. Cuando ella comienza a describir los pasos ("Poner dinero en la máquina y presionar el botón"), comienza a diseccionarlo como un programa ("¿Qué es el dinero? ¿Cómo lo pongo en la máquina? Cuando pongo dinero en la máquina y presiono el botón al mismo tiempo, no pasa nada "). Si tiene una pizarra, comience por la izquierda con su primer conjunto de instrucciones. A medida que los revise, coloque la nueva lista más grande en el lado derecho. Cuando tenga un buen conjunto de instrucciones, comience a generalizar las piezas ("Saque el dinero de su bolsillo y retire el refresco de la bandeja con un sonido similar, ¿qué partes son iguales / diferentes?") Tome las generalizaciones y colóquelas en el medio y tachar las piezas que ahora abarcan. Intente finalmente atar las piezas para que coincidan con sus instrucciones originales, algo así como llamadas a funciones. Otros buenos ejercicios: enviar una carta, pasar por una puerta, dibujar un círculo / cuadrado / triángulo.

Entonces, programar es resolver problemas: dividir los problemas en partes, identificar partes que son comunes y agrupar esas partes para resolver problemas. Pronto, descubre que algunas partes son comunes en muchos problemas, y luego comienza a juntar partes para resolver problemas que ni siquiera sabía que tenía.

De acuerdo, en este punto ella puede entender pero probablemente esté aburrida. Siga con un conjunto de ejemplos de programación geniales. Los sombreadores y el código visual relacionado son fáciles de demostrar: puede colocar una imagen y comenzar a hacer cambios con cambios de código muy pequeños. Si ella expresó interés en Facebook, presumir hablando con Facebook a través de REST para ver los datos de amigos de amigos (6 grados de ella). Si le gustan los videojuegos, muestre un par de demostraciones de juegos de código abierto junto con algunos fragmentos de su código y cómo ayudan a que el juego funcione. Para terminar, muestra un par de herramientas y recursos gratuitos que podría investigar en casa. (Python, C #, etc.)

Mis intentos fallidos: tratar de explicar el cálculo de pi (preguntaban), el juego de mesa C-Jump http://c-jump.com/ (no lo entendieron y las instrucciones tenían errores) y codificar en vivo un 2d juego (simplemente no podía mantener el interés, no importa cuán pequeños pasos estaba dando entre demostraciones).

¡Buena suerte!

Jeremy Murray
fuente
2

Haz un programa simple. No, no "¡Hola mundo!"

Lo que haría es decir que hay muchos tipos de lenguajes de programación, unos que hacen juegos, otros que controlan robots, pero con lo que vas a trabajar es HTML.

Crea una página web sin nada y luego agrega un formulario que enviará un correo electrónico a su dirección de correo electrónico. Presumiblemente tiene un teléfono celular que puede notificar al propietario que tiene un nuevo correo electrónico, por lo que podría decirle que es una excelente manera para que sus amigos y familiares se comuniquen con ella. Si obtiene su propio sitio web en el futuro, puede decirle que puede poner el formulario en su sitio web, permitiendo que sus clientes y socios comerciales la contacten.

Alternativamente, si es un poco traviesa, te diré lo que me interesó en la programación: piratería. En el pasado, hice el mejor programa para perder el tiempo en AOL (fuera de un programa que superó al mío en solo una de las docenas de cosas que hizo el mío), a la edad de 14-15. Por el lado del sombrero blanco, también hice uno de los primeros programas de eliminación de spam (1995). Pude hacer que mi experiencia en línea fuera mucho más agradable, y lo dejaremos así. Todo lo que quería hacer en una computadora era una aventura o un rompecabezas que tenía que resolver, y las cosas que quería hacer en una computadora eran infinitas. Claro, hacer que funcione fue un dolor de cabeza a veces, pero escribir un programa que lograra las cosas mejor y más rápido que cualquier humano, o hacer cosas que simplemente eran imposibles para el público en general, era como construir una excelente maquinaria de la que uno pudiera estar orgulloso. Ahora, es probable que evite cualquier cosa grave, pero sería extremadamente fácil hacer algo en Visual Basic que pudiera iniciarse en el inicio (sentado al costado de la pantalla o la bandeja del sistema) y desde allí, puede hacer que inicie sus sitios web favoritos, sus programas favoritos, etc. Puede presentarle los comandos necesarios para iniciar un exe y un sitio web, y luego simplemente pedirle que haga algunos botones, luego agregue el código a esos botones , colocando en sus sitios web favoritos (Facebook, Twitter, etc.) y programas (iTunes, procesador de textos, etc.) Si su computadora está en su habitación, también podría lanzarle un despertador para mayor funcionalidad. Por supuesto, 30 minutos es demasiado corto para guiarla a través de eso, por lo que ya deberías haberlo hecho. Al final, le enviaría un pequeño manual de usuario de 2-3 páginas, el código y el .exe ... y luego le dejaría un pequeño argumento de venta: no es fácil al principio, pero una vez que obtiene el Pero no es tan malo, será extremadamente útil en la vida y ayudará a desarrollar su pensamiento analítico.

Miguel
fuente
2

Yo solía enseñar a estudiantes universitarios de 18 años, y supongo que los de 15 años son casi lo mismo. No esperes el éxito sin práctica. Me tomó algunas semanas en mi primera clase para "irrumpir".

Lo más importante que tuve que aprender fue que lo que pensaba era tan simple y obvio que temía no poder ocupar el tiempo no era del todo así para los estudiantes. Aprendí que tienes que ir en pasos pequeños, de lo contrario es solo magia "gee whiz".

No estoy seguro de cómo encajar esto en 30 minutos, pero lo primero que hice fue mostrarles una pequeña computadora casera que había construido, que estaba programada para reproducir una pequeña melodía haciendo clic dentro y fuera de un altavoz. Le expliqué que podía tocar una nota decrementando un contador, para actuar como un retraso, entre clics. Acabo de escribir el pseudocódigo en la pizarra, como una receta. Luego, había un pequeño condensador que podía enganchar debajo de un cable que haría que todo funcionara unas 1000 veces más lento. Entonces oyeron clic - espera - clic - espera ... Luego, cuando desenganché el condensador, estalló con la pequeña melodía.

El objetivo de esto era transmitir que las computadoras solo hacen cosas simples y las hacen de una en una. No comienzan cada paso hasta que finaliza el paso anterior. (Sí, sí, lo sé, tuberías y todo eso, pero estamos hablando con los novatos ). Es solo la velocidad electrónica lo que hace que parezcan hacer todo a la vez, que es lo que los novatos tienden a asumir (junto con la lectura de la mente) . Ese es uno de los conceptos realmente básicos sin los cuales no puedes comenzar a entender la programación y las computadoras. Para nosotros, esto está tan arraigado que ni siquiera nos damos cuenta de que lo sabemos, pero los principiantes no lo saben.

Mike Dunlavey
fuente
1

Sé que no es un lenguaje de programación, pero creo que HTML es un buen lugar para comenzar. Porque obtienes resultados inmediatos ... comienza con

Hola Mundo

Entonces hazlo:

Hola <b> mundo </b>

Etc.

Mike Jones
fuente
1

Si fuera yo, le diría que la programación consiste en dividir una tarea en pequeñas tareas de una manera que te ayude a resolverlas; y luego expresar esas pequeñas tareas en un lenguaje que no puede ser malinterpretado por una computadora idiota. Pero también debe hacerlo de tal manera que otros programadores puedan entenderlo fácilmente, y eso no es lo mismo.

Es decir, además de lo que todos los demás han dicho ...

Andy
fuente
1

Esto es más de mis experiencias personales que una "respuesta" directa.

¿Por qué me interesé? Mis padres compraron una IBM PC XT en 1984 (nací en 1984). Tiene 640kb de RAM y 20MB HDD y un FDD de 5 "y ejecutó MS-DOS v3.2. No se me permitió tocarlo hasta que estuve en el 5to estándar y cuando finalmente se me permitió usarlo, pasé todos mis años de curiosidad acumulada en él.

A mi hermana, por otro lado, le permitieron la misma PC y un mackintosh Quadra 610 cada vez que lo quería y le prestó tanta atención como a la mesa en la que estaba puesta.

Enseñando a mi hermana ... Traté de enseñarle a mi hermana programación de computadoras en BASIC. Le hice todo bien, desde iniciar la computadora hasta escribir el programa y ejecutarlo. Fue como un programa de línea.

10 PRINT "CAT"
20 END

Esto tomó media hora. Cuando finalmente lo ejecutó, imprimió la palabra 'CAT' y estaba furiosa. Había esperado que apareciera la foto de un gato. ¡Salió de la habitación y ese fue el final de la programación para siempre!

Moraleja: es mejor que la producción sea proporcional al tiempo y los esfuerzos que realizan.

Enseñar a los niños de secundaria Labview y Lego NXT Fui mentor de FIRST Robotics durante un año y tuve que guiar a los niños en la programación del robot en NI Labview. Francamente, la habilidad de programación requerida estaba muy por encima del nivel de un niño de secundaria. Pero la competencia tenía la intención de entusiasmar a los niños sobre la ingeniería y elevar su nivel en la capacidad de asumir un desafío. Mientras los programas tuvieran solo una declaración if y un bucle, las cosas estaban bien. La gente abandonó la sección de programación del robot cuando vieron el diagrama de código que había creado para el robot que habíamos construido el año anterior.

Por mucho que la gente afirme que los jóvenes de 15 años pueden hacer cosas complejas y pueden tener un lapso de atención de horas, encontré una extraña falta de motivación en ellos para hacerlo. Querían hacer cosas fáciles que no gravaran sus cerebros. Preferían mucho más CAD y fresar piezas en la máquina de torno que escribir programas.

Lord Loh
fuente
1

¿Qué es la CS?

Creo que antes de entrar en demostraciones, es útil dar su opinión brevemente sobre el lugar de CS en el mundo. Me gustó la descripción de Hal Abelson de CS en relación con las matemáticas: mientras que las matemáticas te ayudan a describir el mundo en términos de leyes, CS te ayuda a describir cómo hacer las cosas. Su ejemplo fue la función de raíz cuadrada: las matemáticas lo definirán, pero no lo ayudarán a encontrarlo para ninguna entrada dada. CS lo hará. En un nivel inferior, la ingeniería eléctrica y la física sentaron las bases para el hardware que habilitó Internet, pero dejaron abiertas las preguntas sobre cómo hacer que las personas lo usen.

¿Cómo es ser programador?

Luego está la cuestión de cómo es ser un programador. Lo que me atrajo fue que tiene una respuesta más rápida de probar algo, probarlo, solucionarlo, que cualquier otro campo técnico. Es una resolución ininterrumpida de problemas, mientras que en otros campos el tiempo de respuesta para un solo ciclo puede ser de meses. También es útil para casi cualquier otro campo técnico, que es más de lo que se puede decir para ... la mayoría de los otros campos técnicos. Entonces, si aún no sabe lo que quiere hacer (probablemente), es bueno que se recupere temprano. En la universidad, pocas cosas te harán más útil para más profesores que poder codificar sus experimentos.

Eye candy, atado al código

Entonces, por supuesto, no olvides las demos. Puede ser genial obtener una copia del terremoto (código abierto), y hacer un cambio de una línea (por ejemplo, cambiar la fuerza de la gravedad) y recompilar, por ejemplo. También haga que mire el código. Asegúrele que no debería esperar entender mucho, puede parecer un galimatías ahora, pero de nuevo, también lo hacen los periódicos en idiomas extranjeros que aún no ha aprendido. Puede decir que, sin embargo, ella puede ver que las cosas se asignan a las cosas, a los objetos se les dice qué hacer, y aquí es donde establecemos la gravedad, etc.

Súper eléctrico
fuente
1

Comencé a programar cuando tenía 14 años. Si bien la mayoría (47 de los 50 estudiantes que se matricularon) abandonaron la escuela a mitad de año o simplemente decidieron no continuar en el curso avanzado el próximo año, me quedé y aprendí algo muy importante:

La programación te da la capacidad de crear algo de la nada. Tiene el poder de convertir las palabras en una herramienta útil que satisface una necesidad, una actividad entretenida para usted y sus amigos, o simplemente algo que puede mostrar a sus amigos y decir: "Mira lo que hice".

Para empezar, nos enseñaron "Hola mundo", pero no tuve interés hasta que pude hacer que mi código interactúe con el usuario . En el momento en que nos enseñaron a leer la entrada con "cin", me propuse hacer un programa Mad-Lib que pudiéramos tocar en clase. Mi primer obstáculo fue leer entradas que contenían espacios, seguidas de formato de salida. Más tarde, quería poder guardar estas historias en un archivo y, por lo tanto, necesitaba aprender el archivo IO. Afrontar obstáculos para lograr mis propios objetivos fue lo que me mantuvo comprometido.

Más adelante en el año descubrimos que los administradores de la red estaban registrando nuestro uso de "Net send" y el cliente Novell SendMessage que habíamos estado utilizando para comunicarnos durante la clase de informática, y lo deshabilitaron después de que los estudiantes lo usaran para hacer trampa en un examen. Entonces escribí una sala de chat para reemplazar la que los administradores deshabilitaron. Fue la primera cosa realmente útil que creé. Lo modelé según el sistema de chat de Battle.Net, completo con registro de usuarios, moderadores e incluso un sistema básico de cifrado y archivos de sombra para evitar que los usuarios manipulen (todos los archivos tenían que residir en una unidad de red compartida para que los estudiantes pudieran acceder y usar el programa). Estos no eran conceptos que ya conocía, sino soluciones que se me ocurrieron por mi cuenta para resolver un problema. Para mí, esa fue la alegría de la programación.

Entonces, para responder la pregunta correctamente, más allá de la discusión de lo que significa desarrollar software, una demostración interactiva es probablemente una gran idea. Preferiblemente, algo que resuelva un problema que tiene, como cambiar el tamaño de todas esas imágenes gigantes de su cámara automáticamente. Si bien es un poco más complicado, podría divertirse con una simple página web de dejar un mensaje que puede compartir con sus amigos. Puede hacer que envíe un correo electrónico a alguien cada vez que se publique un nuevo mensaje, y que edite el código para enviarlo a su correo electrónico en lugar del suyo. Además, haga que la página muestre la última X cantidad de comentarios, y haga que ella también ajuste esa cantidad y vea cuáles son los resultados.

vsTerminus
fuente
1

Donde solía trabajar, a veces teníamos experiencia laboral cuando entraban niños. Algunos estaban interesados ​​en las computadoras, otros no. Solíamos hacer que se sentaran frente a una computadora y que escribieran un juego de adivinanzas. (La computadora selecciona aleatoriamente un número, el usuario recibe comentarios sobre si su suposición fue demasiado alta / baja.) Es simple de hacer y es realmente un resultado divertido. Nada es más poderoso que mostrarles tangiblemente lo que ELLOS pueden crear.

usuario30241
fuente
1

Cuando desee obtener, y mantener, la atención de alguien, luego PREGUNTE, no le digas. Pregunte cómo realizarían una tarea simple, como tomar un trago de agua. Luego muéstreles cómo seguir las instrucciones que proporcionaron (como "Ir al final del pasillo") realmente no maneja los problemas de cuándo girar a la izquierda, girar a la derecha, detenerse, etc. Comprender y manejar esas condiciones límite, ese es el negocio de programación! Luego puede mostrar cómo un bucle de "hacer hasta" puede manejar el tipo de situación "caminar hasta llegar a la pared", para hacer metatareas fuera de la tarea de un pie delante del otro de caminar

Brian
fuente
1

No estoy seguro de si se trata de una leyenda o una historia real, pero estaba leyendo acerca de por qué la suerte está rígida algún día. Parte de una historia fue cómo le mostró la programación a un niño (o tal vez incluso niños) que conoció en un tren.
Como algunos de ustedes sabrán, _por qué era un chico Ruby (y Ruby es, bueno, muy amable con los humanos normales). Estaba trabajando en algún juego en Ruby, mientras un niño se le acercaba para ver qué estaba haciendo. Primero les mostró el resultado : el juego de trabajo. Luego, le mostró al niño cómo puede modificar las cosas en el código para cambiar el resultado. Luego dejó que el niño jugara con el código y viera el resultado modificado.
. Creo que ese debería ser tu flujo de trabajo general: resultado, modificación, juego. Debería encontrar algún proyecto (el juego sería la mejor opción) en un lenguaje amigable para los humanos y mostrárselo al niño.

Como estoy triste, no tengo idea de si esta historia es cierta o no. Todavía es muy genial.

Además, una cosa más. Recuerdo mi primera experiencia con la programación, MessageBoxen Delphi. Fue genial, porque pude hacer que la computadora haga lo que quiero e inmediatamente veo el resultado.
Entonces, aparecieron los microcontroladores. Eran aún mejores, porque mi código podría cambiar el mundo real. Quiero decir, asignar algún valor a la variable dejó de ser tan abstracto, ya que causó que apareciera un voltaje en el puerto de salida, lo que provocó que mi motor se moviera. Fue genial. Es posible que desee elegir de esta manera: muéstrele al niño algo como Arduino.

Verá, creo que se trata de cambiar y ver el resultado.

Dr. McKay
fuente
0

Muéstrale el resultado final de algunas de las cosas que has hecho. Hable en general sobre su papel en los proyectos. Tal vez incluso ayudarla a hacer un mundo hola si parece interesada.

SoylentGray
fuente
0

Mi analogía favorita para la programación es la magia (estilo harry potter), como Satanicpuppy. Utilizo esto tanto para compañeros no técnicos como para niños, parece que funciona bastante bien y definitivamente transmite la potencia que nos dan las computadoras.

Las computadoras son nuestras varitas mágicas. Nos permiten realizar magia dado el movimiento correcto de la muñeca y los encantamientos. Como programadores, tenemos acceso a libros de hechizos (bibliotecas) trabajados y refinados por nuestros predecesores. Podemos crear nuevos hechizos y encantamientos o trabajar con los existentes. Algunos son fáciles, otros requieren más práctica para usarlos realmente de manera efectiva, a menudo hay compensaciones y muchas formas diferentes de resolver el mismo problema (¿debería usar una buena poción o un encantamiento?).

Esta metáfora extendida realmente se puede estirar bien y, a menudo, me permite transmitir mi pasión por la programación de una manera accesible para las personas fuera del campo.

Grantismo
fuente
0

¡La mejor manera de entender a los niños es ser un niño primero ...! Cuando era niño, ¡odiaba hacer tareas, imposiciones, etc.! así que hay puntos de entrada donde puedes captar su atención. En un lapso de 30 minutos, aunque no podemos explicar todo, podemos tratar de darles una especie de exposición donde los niños interesados ​​lo encuentren como inspiración. Comience con sus temas relacionados, como tareas, etc. Dígales cómo una computadora puede escribir imposición en solo unos segundos, etc.

Te deseo lo mejor.. ! buen trabajo

Ratna Dinakar
fuente