Aquí podría ser tu PUBLICIDAD


¿Las mejores maneras de enseñarle a un principiante a programar?

votos
325

Pregunta original

Actualmente me dedico a enseñar a mi hermano a programar. Él es un principiante total, pero muy inteligente. (Y él realmente quiere aprender). Me he dado cuenta de que algunas de nuestras sesiones se han empantanado en detalles menores, y no creo que haya sido muy organizado. ( Pero las respuestas a esta publicación han ayudado mucho ) .

¿Qué puedo hacer mejor para enseñarle efectivamente? ¿Existe un orden lógico que pueda usar para ejecutar concepto por concepto? ¿Hay complejidades que debería evitar hasta más tarde?

El lenguaje con el que estamos trabajando es Python , pero se recomienda el asesoramiento en cualquier idioma.


Como ayudar

Si tiene buenos, agregue lo siguiente en su respuesta:

  • Ejercicios para principiantes e ideas de proyectos
  • Recursos para enseñar a principiantes
  • Screencasts / publicaciones en el blog / libros electrónicos gratis
  • Imprima libros que sean buenos para principiantes

Por favor describe el recurso con un enlace para que pueda echar un vistazo. Quiero que todos sepan que definitivamente he estado usando algunas de estas ideas. Tus envíos se agregarán en esta publicación.


Recursos en línea para maestros principiantes:


Libros impresos recomendados para maestros principiantes

Publicado el 06/08/2008 a las 06:01
fuente por usuario Justin Standard
En otros idiomas...        العربية       

86 respuestas

votos
118

Tuve que trabajar con varios programadores principiantes (nunca escribí una línea de código), y este otoño voy a hacer un taller extracurricular con estudiantes de secundaria. Esto es lo más cercano que tengo a la documentación. Todavía es un trabajo en progreso, pero espero que ayude.

1) FizzBuzz. Comience con programas de línea de comando. Puede escribir algunos juegos o herramientas divertidas, muy rápidamente, y aprenderá todas las características del idioma muy rápidamente sin tener que aprender primero las herramientas de la GUI. Estas primeras aplicaciones deberían ser lo suficientemente simples como para que no necesites utilizar herramientas de depuración reales para que funcionen.

Si nada más cosas como FizzBuzz son buenos proyectos. Sus primeras aplicaciones no deberían tener que lidiar con bases de datos, sistema de archivos, configuración, etc. Estos son conceptos que simplemente confunden a la mayoría de las personas, y cuando recién está aprendiendo la sintaxis y las características básicas del marco, realmente no necesita más complejidad.

Algunos proyectos:

  • Hola Mundo!
  • Toma el año de mi nacimiento y calcula mi edad (solo (ahora - entonces) sin correcciones de mes). (matemáticas simples, entrada, salida)
  • Pide una dirección (arriba, abajo, izquierda, derecha), luego dile al usuario su destino (caer en un agujero, encontrar un pastel, ect). (Lógica booleana)
  • FizzBuzz, pero cuente una vez por segundo. (Bucles, temporizadores y más lógica)
  • Dependiendo de su edad, a algunos realmente les gusta una aplicación que llama a los usuarios un insulto al azar en algún intervalo. (Bucles, matrices, temporizadores y aleatorios si realiza el intervalo al azar)

2) Proyecto simple Una vez que tienen una buena comprensión de las características del lenguaje, puedes comenzar un proyecto (los juegos simples y divertidos funcionan bien). Debería intentar que el primer proyecto pueda completarse dentro de las 6-12 horas. No dedique tiempo a diseñarlo temprano. Déjelos diseñar incluso si es una mierda. Si se cae a pedazos, hable sobre lo que sucedió y por qué falló, luego elija otro tema y comience nuevamente.

Aquí es donde comienzas a introducir las capacidades de depuración de tus herramientas. Incluso si puede ver el problema leyendo el código, debe enseñarles cómo usar las herramientas y luego mostrarles cómo podría verlo. Eso tiene el doble propósito de enseñar las herramientas de depuración y enseñar cómo identificar errores sin herramientas.

Una vez, o si el proyecto se vuelve funcional, puede usarlo para introducir herramientas de refactorización. Es bueno si luego puede expandir el proyecto con algunas características simples que nunca planeó. Esto generalmente significa una refacturación y una depuración significativa, ya que muy pocas personas escriben código incluso decente la primera vez.

Algunos proyectos:

  • Juego Hangman
  • Experimentando con robótica ( Vex y Mindstorms son opciones)

3) Proyecto Real Comience un proyecto real que puede tomar algún tiempo. Use el control de fuente adecuado y asegúrese de tener un horario. Ejecute este proyecto como si fuera un proyecto real, por lo menos su buena experiencia al tener que lidiar con las herramientas.

Obviamente necesitas ajustar esto para cada persona. Lo más importante que he encontrado es hacer que incluso las primeras aplicaciones simples se apliquen a lo que le interesa a la persona.

Algunos proyectos:

  • Tetris
  • Motor de blog basado en archivos de texto
  • Trabajo de robótica más avanzado
Respondida el 06/08/2008 a las 07:00
fuente por usuario Eric Haskins


Aquí podría ser tu PUBLICIDAD


votos
30

Podría intentar usar Alice . Es un programa en 3D diseñado para usar en clases introductorias de programación.

Los dos obstáculos más grandes para los programadores nuevos a menudo son:

  • errores de sintaxis
  • motivación (escribir algo significativo y divertido en lugar de artificioso)

Alice usa una interfaz de arrastrar y soltar para construir programas, evitando la posibilidad de errores de sintaxis. Alice te permite construir mundos en 3D y tener tu código de control (simple) de caracteres 3D y animación, que suele ser mucho más interesante que implementar listas enlazadas.

Los programadores experimentados pueden mirar a Alice como un juguete y burlarse de arrastrar y soltar líneas de código, pero las investigaciones muestran que este enfoque funciona.

Descargo de responsabilidad: trabajé en Alice.

Respondida el 06/08/2008 a las 06:29
fuente por usuario Jason Pratt

votos
28

Recomiendo Logo (también conocido como la tortuga) para obtener los conceptos básicos. Proporciona una buena zona de pruebas con retroalimentación gráfica inmediata, y puede demostrar bucles, variables, funciones, condicionales, etc. Esta página proporciona un excelente tutorial.

Después de Logo, muévete a Python o Ruby. Recomiendo Python, ya que está basado en ABC, que fue inventado con el propósito de enseñar programación.

Al enseñar programación, debo secundar la sugerencia de EHaskins de proyectos simples y proyectos complejos. La mejor forma de aprender es comenzar con un resultado definido y un hito mensurable. Mantiene las lecciones enfocadas, permite que el alumno desarrolle habilidades y luego desarrolle esas habilidades, y le da algo al estudiante para presumir ante sus amigos. No subestimes el poder de tener algo que mostrar para tu trabajo.

Teóricamente, puedes quedarte con Python, ya que Python puede hacer casi cualquier cosa. Es un buen vehículo para enseñar programación orientada a objetos y (la mayoría) de algoritmos. Puede ejecutar Python en modo interactivo como una línea de comando para tener una idea de cómo funciona, o ejecutar scripts completos a la vez. Puede ejecutar sus scripts interpretados sobre la marcha, o compilarlos en binarios. Hay miles de módulos para extender la funcionalidad. Puede hacer una calculadora gráfica como la que viene con Windows, o puede hacer un cliente de IRC, o cualquier otra cosa.

XKCD describe el poder de Python un poco mejor: "¡Estás volando! ¿Cómo?"  "¡Pitón!"

Puede pasar a C # o Java después de eso, aunque no ofrecen mucho que Python no tenga. El beneficio de estos es que utilizan la sintaxis estilo C, que muchos (¿me atrevo a decir que la mayoría?) Utilizan. No necesita preocuparse por la administración de la memoria todavía, pero puede acostumbrarse a tener un poco más de libertad y menos atención por parte del intérprete de idiomas. Python impone el espacio en blanco y la sangría, lo que es bueno la mayoría de las veces pero no siempre. C # y Java le permiten administrar su propio espacio en blanco mientras permanece fuertemente tipado.

A partir de ahí, el estándar es C o C ++. La libertad en estos idiomas es casi existencial. Ahora está a cargo de su propia gestión de memoria. No hay recolección de basura para ayudarte. Aquí es donde se enseñan los algoritmos realmente avanzados (como mergesort y quicksort). Aquí es donde aprendes por qué "falla de segmentación" es una palabra de maldición. Aquí es donde puedes descargar el código fuente del kernel de Linux y mirar hacia el abismo. Comience por escribir un búfer circular y una pila para la manipulación de cadenas. Luego sigue tu camino hacia arriba.

Respondida el 20/08/2008 a las 10:09
fuente por usuario Magus

votos
15

Un buen curso de Python es Una introducción suave a la programación usando Python de MIT . Todo es gratis en línea, y no tiene que ser un experto en MIT para entenderlo.

Editar [ Justin Standard ]

Este curso utiliza este libro gratuito en línea: Cómo pensar como un científico de la computación
Definitivamente lo encuentro bastante útil.

Respondida el 06/08/2008 a las 06:47
fuente por usuario Mark Harrison

votos
12

Comience con los gráficos de Turtle en Python.

Usaría los gráficos de tortuga que vienen de manera estándar con Python. Es visual, simple y puede usar este entorno para introducir muchos conceptos de programación, como iteraciones y llamadas a procedimientos, antes de llegar demasiado lejos en la sintaxis. Considere la siguiente sesión interactiva en python:

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

Al tratar de cumplir las dos últimas asignaciones, tendrán muchos intentos fallidos, pero las fallas serán visualmente interesantes y aprenderán rápidamente a medida que tratan de descubrir por qué no dibujaron lo que esperaban.

Respondida el 25/02/2009 a las 10:00
fuente por usuario dyoung

votos
12

Paquete Python VPython - Programación 3D para Ordinary Mortal ( video tutorial ).

Ejemplo de código:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

Bola de rebote de VPython http://vpython.org/bounce.gif

Respondida el 08/09/2008 a las 07:26
fuente por usuario jfs

votos
11

La clave es que la persona en cuestión necesita tener algún problema que quiera resolver. Si no tienes un programa que quieras escribir (y algo sensato y bien definido, no "¡Quiero escribir el próximo Quake!") Entonces no puedes aprender a programar, porque no tienes nada que te motive . Es decir, podrías leer un libro y tener una comprensión aproximada de la sintaxis y la semántica de un idioma, pero hasta que tengas un programa que quieras escribir , nunca podrás dominarlo.

Si ese ímpetu existe, todo lo demás es solo detalles menores.

Respondida el 22/08/2008 a las 11:35
fuente por usuario DrPizza

votos
8

No sé si alguien ha mencionado esto aquí, sin embargo, pero es posible que desee comprobar hacia fuera Zed Shaw 's Learn Python la manera dura

Espero que esto ayude

Respondida el 19/10/2010 a las 01:42
fuente por usuario inspectorG4dget


votos
7

http://tryruby.hobix.com/">Try Ruby (en su navegador)

Respondida el 06/08/2008 a las 05:37
fuente por usuario CodingWithoutComments

votos
5

Este es un libro fantástico que mis hermanitos solían aprender:

http://pine.fm/LearnToProgram/

Por supuesto, lo más importante es comenzar INMEDIATAMENTE un programa real, útil de algún tipo después de terminar el libro.

Respondida el 07/08/2008 a las 06:33
fuente por usuario Jarin Udom

votos
4

Solo le dejaría escribir toneladas de código. Permita que maneje todo lo que ustedes hacen, y simplemente esté disponible para responder preguntas.

Créalo o no, después de unos meses de toneladas de códigos falsos, comenzará a hacerse una idea y comenzará a escribir mejores programas. En ese punto, puede empantanarse en detalles (memoria, etc.) y también hablar sobre principios generales de diseño.

He oído que lo que separa a los grandes artistas de los mediocres, es que cada vez que practican, mejoran en algo, sin importar cuán pequeño sea. Deja que tu hermano practique, y mejorará cada vez que se siente al teclado.

Editar: [Justin Standard]

Esteban, esto me recuerda a un reciente mensaje de terror de codificación , y yo no creo que tiene razón. Pero creo que todavía vale la pena encontrar métodos para guiar su práctica. Sin dudas, quiero que escriba tantos códigos como sabe hacer. Esa es una razón por la que estoy pidiendo proyectos de muestra.

Respondida el 09/08/2008 a las 02:37
fuente por usuario Esteban Araya

votos
4

Si está interesado, ¿no son los detalles menores las partes buenas? Usando Python, ya has cortado la GUI para que la confusión desaparezca. Por qué no elegir un proyecto, un juego o algo así, e implementarlo. El clásico juego de adivinar el número de hi-lo se puede implementar simplemente desde la línea de comando en 20-30 líneas de código (dependiendo del idioma, por supuesto) y le proporciona variables, condiciones, bucles y la entrada del usuario.

Respondida el 06/08/2008 a las 06:08
fuente por usuario jj33

votos
2

Después de pasar por un par de libros electrónicos gratuitos, he encontrado el mejor libro para aprender a programar fue cabeza primero Programación publicado por O'Reily Press. Se utiliza Python como el lenguaje y le da a los programas de trabajo desde el comienzo mismo. Todos ellos son más interesantes que 'Hola Mundo'. Es bien vale la pena el dinero que gasta en ella, y ya que ha estado fuera por un tiempo que puede ser capaz de encontrar una copia usada más barato en Ebay o Amazon.

Respondida el 03/01/2011 a las 02:54
fuente por usuario chrisfs

votos
2

Desafío Python

Respondida el 08/12/2010 a las 05:58
fuente por usuario Steve V.

votos
2

Si tu hermano le gusta rompecabezas, yo recomendaría Desafío Python . Yo no lo usaría como herramienta de enseñanza formal en un 1 contra 1 tutorial, pero es algo que puede hacer cuando no estás junto a desafiar a sí mismo y pasar un buen rato.

Respondida el 07/04/2010 a las 01:35
fuente por usuario Jacinda

votos
2

Simplemente hacer que sea divertido!

Sorprendentemente Scala podría ser el más fácil si se intenta Kojo

Respondida el 19/03/2010 a las 02:44
fuente por usuario Łukasz Lew

votos
2

Creo que Python es una gran idea. Le daría algunas tareas básicas para que haga por su cuenta y le diga que cualquier callejón sin salida que acierta puede ser resuelto con un viaje a Google. Para mí, al menos, resolver un problema por mi cuenta siempre lo hizo funcionar mejor que alguien que me dijera la solución.

Algunos posibles proyectos (sin ningún orden en particular):

  • Simulador de monedas. Permita que el usuario ingrese un número deseado de pruebas para el lanzamiento de monedas. Ejecútelo y muestre los resultados junto con el porcentaje de cara o cruz.

  • Haga un convertidor de temperatura con un menú que tome la entrada del usuario para elegir qué tipo de conversión quiere hacer el usuario. Después de elegir la conversión y hacerlo, debe regresar al menú principal.

    Aquí hay un ejemplo de un convertidor extendido con la misma idea: http://pastebin.org/6541

  • Haga un programa que tome una entrada numérica y muestre la calificación de la letra a la que se traduciría. Terminará evaluando la entrada contra las declaraciones if y elif para encontrar dónde encaja.

  • Haga una prueba simple que pase por varias opciones múltiples o complete las preguntas en blanco. Al final mostrará cómo lo hizo el usuario. Él puede elegir cualquier pregunta que quiera.

  • Tome una entrada de algunos (probablemente grandes) centavos y conviértalos en denominaciones más grandes. Por ejemplo, 149 centavos = 1 dólar, 1 trimestre, 2 monedas de diez centavos y 4 centavos.

  • Crea un simple administrador de listas. Poder agregar / eliminar listas y agregar / eliminar entradas en esas listas. Aquí hay un ejemplo de un administrador de lista de navidad: http://pastebin.org/6543

  • Cree un programa que construirá y luego pruebe si los números ingresados ​​forman un cuadrado mágico (con una matriz 2D). Aquí hay un ejemplo de código, pero realmente debería imprimir el cuadrado en cada paso para mostrar dónde está el usuario en términos de llenar el cuadrado: http://pastebin.org/6544

También sugeriría hacer algunas cosas con xTurtle u otro módulo de gráficos para mezclar las cosas y evitar que se vuelva aburrido. Por supuesto, esto es mucho más programación de práctica y no la secuencia de comandos que mucha gente usaría en realidad para Python, pero los ejemplos que di se tomaron directamente de cuando estaba aprendiendo a través de Python y funcionó muy bien para mí. ¡Buena suerte!

Respondida el 04/08/2009 a las 11:20
fuente por usuario Sean


votos
2

hay un wikibook que es bastante bueno para aprender Python .

No sé cómo son los wikibooks para otros idiomas, pero personalmente aprendí python del wikibook tal como era en febrero de 2007

PD: si no estás familiarizado con wikibooks , básicamente es la versión de wikipedia de autoría de libros. es algo difícil de describir, pero si echas un vistazo a algunos de los libros allí verás cómo funciona

Respondida el 26/08/2008 a las 04:39
fuente por usuario Jiaaro

votos
2

Si tu hermano tiene acceso a iTunes, puede descargar conferencias en video de un curso introductorio de informática impartido por Richard Buckland en la Universidad de Nueva Gales del Sur. Es un instructor interesante y cubre los fundamentos de la informática y el lenguaje C. Si nada más, dígale a su hermano que reproduzca los videos en segundo plano y algunos conceptos podrían interferir con la ósmosis. :)

COMP1917 Higher Computing - 2008 Session 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

Si el enlace no funciona, aquí hay una ruta:

Inicio -> iTunes U -> Ingeniería -> COMP1917 Higher Computing - 2008 Session 1

Respondida el 20/08/2008 a las 10:54
fuente por usuario CodeCurious

votos
2

Realmente depende del estilo de aprendizaje de tu hermano. Muchas personas aprenden más rápido ensuciando sus manos y simplemente metiéndose en él, cristalizando los conceptos y la imagen global a medida que progresan y desarrollan su conocimiento.

Yo, prefiero comenzar con la imagen completa y profundizar en lo esencial. Lo primero que quería saber era cómo encaja todo, luego todo lo relacionado con Objetos, luego sobre clases, instancias y demás. Me gusta conocer los conceptos subyacentes y un poco de teoría antes de aprender la sintaxis. Tenía un poco de ventaja porque escribí algunos juegos en BASIC hace 20 años, pero nada más desde entonces.

Tal vez sea útil sombrear un proceso de producción comenzando con una declaración de misión general, luego un plan y / o diagrama de flujo, luego elabore un pseudo código (apoyándose en la sintaxis que usará en última instancia) antes de escribir el código.

La regla de oro aquí es sugerir el estilo de inclinación de su estudiante.

Respondida el 06/08/2008 a las 11:44
fuente por usuario CAD bloke

votos
2

Solía ​​enseñar programación y tu hermano tiene una ventaja principal sobre la mayoría de mis alumnos que quiere aprender :)

Si decide ir con C, un amigo tiene un sitio que tiene el tipo de programas que usan las generaciones anteriores, recuerde como inserciones básicas. Los más complejos usan ncurses que de alguna manera anulan su uso como ayuda para la enseñanza, pero algunos de ellos son pequeños detalles y puedes aprender muchas cosas sin que te enseñen.

Personalmente, creo que Python y Ruby serían excelentes idiomas.

EDITAR: la lista de asignaciones de programación para principiantes apareció de la noche a la mañana podría ser justo lo que estás buscando.

Respondida el 06/08/2008 a las 07:07
fuente por usuario sparkes

votos
2

Algo de lo que deberías estar muy pendiente mientras le enseñas a tu hermano a programar es que no confíe demasiado en ti. A menudo, cuando me encuentro ayudando a otros, empiezan a pensar en mí como un libro de respuestas a todas sus preguntas y en lugar de experimentar para encontrar una respuesta, simplemente me preguntan. A menudo, el mejor maestro es la experimentación y cada vez que su hermano tiene una pregunta como "¿Qué pasará si agrego 2 a una cadena?" deberías decirle que lo pruebe y lo vea por sí mismo. También me he dado cuenta de que cuando no puedo transmitirle un concepto a alguien, es útil ver un código de muestra donde podamos ver cada segmento individualmente y explicarlo pieza por pieza. Como nota al margen, las personas nuevas en la programación a menudo tienen problemas con la idea de programación orientada a objetos,

Respondida el 06/08/2008 a las 06:18
fuente por usuario Anton

votos
2

En primer lugar, comience como todos los demás: con un programa Hello World . Es simple, y les da una sensación básica para el diseño de un programa. Intente recordar cuándo era la primera vez que programaba y cuán difíciles eran algunos de los conceptos: comience de manera simple.

Después de Hello World, continúe con la creación de algunas variables básicas, aritmética, luego en lógica booleana y en las sentencias if / else. Si tienes uno de tus viejos libros de texto de programación, mira algunos de los primeros ejemplos y pídele que los revise. Simplemente no intente introducir demasiado todo a la vez, o será abrumador y confuso.

Respondida el 06/08/2008 a las 06:13
fuente por usuario Brandon Wood

votos
1

Academic Earth ofrece enlaces para liberar Informática cursos de las mejores universidades. Tienen una sección orientada hacia Principio Ciencias de la Computación. Los idiomas que se enseñan en los cursos que comienzan varían:

  • MIT - Introducción a la Informática y Programación - Python
  • Stanford - Informática I: Metodología de Programación - Java
  • Harvard - Introducción a la Informática I - C (objetivo principal), con algunos otros roció en una buena medida (por ejemplo, SQL, PHP, LISP, ensamblador, etc.)
  • Berkeley - un dialecto de la lengua LISP
Respondida el 17/04/2010 a las 01:33
fuente por usuario Mithrill

votos
1

Intenta encontrar una copia de Why's (Poignant) Guide to Ruby en línea. El sitio original está fuera de línea, pero estoy seguro de que hay algunos espejos por ahí. No es tu guía de programación típica; ofrece un giro único (y divertido) para aprender un nuevo idioma que se adapte a tu amigo. Sin mencionar, Ruby es un gran lenguaje para aprender.

Respondida el 26/08/2009 a las 04:22
fuente por usuario Rob Sobers

votos
1

Puedo recomendar mi proyecto, PythonTurtle .

Resumen:

PythonTurtle se esfuerza por proporcionar la forma de umbral más bajo para aprender Python. Los estudiantes dirigen un shell interactivo de Python (similar al entorno de desarrollo IDLE) y usan las funciones de Python para mover una tortuga que se muestra en la pantalla. Una pantalla de ayuda ilustrada presenta al estudiante los principios básicos de la programación de Python mientras demuestra cómo mover la tortuga.

Se parece a esto:

texto alternativo http://www.pythonturtle.com/screenshot.gif

Respondida el 04/08/2009 a las 10:42
fuente por usuario Ram Rachum

votos
1

Creo que Python es un lenguaje realmente genial para empezar: :-)

Te sugiero que pruebes http://www.pythonchallenge.com/

Se desarrolla como una pequeña aventura y cada solución lo conecta con un nuevo y agradable problema.

Después de resolver el problema, obtienes acceso a un buen foro para hablar sobre tu código y ver lo que otras personas crearon.

Respondida el 08/07/2009 a las 10:57
fuente por usuario bastianneu

votos
1

una vez que les hayas enseñado cómo programar, es posible que quieran aprender a desarrollar software ... para eso creo que el curso de Software Carpentry de Greg Wilson es excelente ... también usa Python como el idioma del alumno.

Respondida el 18/03/2009 a las 03:51
fuente por usuario jbdavid

votos
1

Libro: Programación Java para niños, padres y abuelos (PDF)

No tengo experiencia personal sobre aprender a usar ese libro, pero parece ser bueno porque rápidamente se utiliza para producir algo visible, y no se pasa demasiado tiempo con los detalles sintácticos. ¿Alguien ha intentado usar ese libro?

Respondida el 14/02/2009 a las 02:47
fuente por usuario Esko Luontola

votos
1

Muy buen curso de introducción al video por la Universidad de Stanford (no se requiere conocimiento previo):

Metodología de programación

Te enseñará buenas "metodologías" que todo programador debe conocer y algunos programas de Java.

Respondida el 20/09/2008 a las 11:23
fuente por usuario Gu1234

votos
1

Una vez que tiene lo básico, sugiero la Torre de Hanoi como un buen ejercicio. Recomiendo comenzar con el juguete de madera si tienes uno; que intente resolver el problema por sí mismo y describa su método de manera sistemática. Muéstrele dónde entra en juego la recursividad. Explique cómo el número de movimientos depende de la cantidad de discos. Luego, permítale escribir un programa para imprimir la secuencia de movimientos, en el idioma de su elección.

Respondida el 19/09/2008 a las 12:43
fuente por usuario Federico A. Ramponi

votos
1

Revisé los comentarios y parece que nadie mencionó los Fundamentos de la programación de www.CodeBetter.com . Aunque requiere un poco de fundamento, sin duda puede ser un próximo paso en el proceso de aprendizaje.

Respondida el 10/09/2008 a las 01:29
fuente por usuario Gürkan Yeniçeri

votos
1

Si él está interesado, no me preocuparía centrarme en los juegos o lo que sea. Solo agarraría ese libro para principiantes 'enséñate a ti mismo x' que estabas a punto de arrojar y dámelo y déjalo luchar para superarlo. Tal vez hablar de eso después y luego hacer otro y otro. Después de eso, emparejaría el programa con él para que pudiera aprender cuán superficiales y cojos eran esos libros que leía. Luego empezaría a hacer que codificara algo para él. Un sitio web para rastrear estadísticas de softball o lo que sea que lo involucre. Para mí fue una base de datos para el vino en el día.

Después de eso comenzaría con los libros reales, el diseño de dominio, etc.

Respondida el 08/09/2008 a las 06:40
fuente por usuario Jake Hackl

votos
1

Un buen recurso para enseñar a los jóvenes es el libro electrónico gratuito "Inventa tus propios juegos con Python":

http://pythonbook.coffeeghost.net/book1/IYOCGwP_book1.pdf

Respondida el 01/09/2008 a las 02:21
fuente por usuario Martin Salias

votos
1

Comience por hacerle esta pregunta: " ¿Qué tipo de cosas quieres hacer con tu computadora? "

Luego, elija un conjunto de actividades que se ajusten a su respuesta, y elija un idioma que permita que esas cosas se hagan. Tanto mejor si se trata de un entorno de scripting simple (o simplificable) (por ejemplo, Applescript, Ruby, cualquier shell (Ksh, Bash, o incluso archivos .bat).

Las razones son:

  1. Si está interesado en los resultados, probablemente estará más motivado que si le cuentas los conejos de Fibonacci.
  2. Si está obteniendo resultados que le gustan, probablemente pensará variaciones en las actividades que crees.
  3. Si le estás enseñando, él no está siguiendo una carrera seria (todavía); siempre hay tiempo para cambiar a idiomas de "resistencia industrial" más adelante.
Respondida el 29/08/2008 a las 12:59
fuente por usuario joel.neely

votos
1

No estoy seguro de cuál será el mejor para su hermano, pero sé que comencé con Python. He jugado varios juegos desde muy temprana edad y quería hacer los míos, así que mi tío me presentó a Python con la biblioteca de pygame . Tiene muchos tutoriales y lo hace todo fácil (MUCHO más fácil que OpenGL en mi opinión). Se está limitada a 2d, pero debe estar empezando a cabo sencilla de todos modos.

Mi tío recomendó a Python porque estaba interesado en él en ese momento, pero lo recomiendo, ahora tengo bastante conocimiento, porque es fácil de aprender, intuitivo (o tan intuitivo como puede serlo un lenguaje de programación) y simple (pero ciertamente no simplista). .

Personalmente, encontré la programación básica simplemente para aprender programación obscenamente aburrida en ese momento, pero recogí un entusiasmo considerable a medida que avanzaba. Realmente quería aprender para construir algo, no solo para aprenderlo.

Respondida el 26/08/2008 a las 08:12
fuente por usuario dwestbrook

votos
1

Yo recomendaría el libro de Charles Petzold Code - The Hidden Langauge of Computer Hardware and Software como una excelente introducción general a cómo funcionan las computadoras.

Hay una gran cantidad de información en el libro (382 páginas) y puede tomar un principiante absoluto algo de tiempo para leer, pero vale la pena. Petzold se las arregla para explicar muchos de los conceptos básicos de computadoras y programación desde códigos simples, relés, memoria, CPU a sistemas operativos y GUI de una manera muy clara y agradable. Proporcionará a cualquier lector un buen sentido de lo que está sucediendo realmente detrás de las escenas cuando escriben código.

¡Ciertamente me gustaría tenerlo cuando estaba aprendiendo a programar!

Respondida el 23/08/2008 a las 07:14
fuente por usuario Jonathan Webb

votos
1

El Proyecto Euler tiene una serie de problemas matemáticos interesantes que podrían proporcionar un gran material para que un programador principiante se corte la dentadura. Los problemas comienzan fácilmente y aumentan en dificultad y la web está llena de soluciones de muestra en varios lenguajes de programación .

Respondida el 22/08/2008 a las 09:27
fuente por usuario Jared Updike

votos
1

Python es fácil de aprender para los nuevos desarrolladores. No se enrede en los detalles de la gestión de memoria y la definición de tipo. Dive Into Python es una buena guía para principiantes a la programación de Python. Cuando mi hermana quería aprender programación, le indiqué la línea de libros "Head Start", que le resultó muy fácil de leer y entender. Me resulta difícil comenzar a enseñar a alguien porque no tienes un léxico para usar con ellos. Primero haga que lea algunos libros o tutoriales y le haga preguntas. Desde allí puedes asignar proyectos y calificarlos. Me resulta difícil enseñar programación porque lo aprendí durante casi 15 años de retoques.

Respondida el 22/08/2008 a las 03:09
fuente por usuario Acuminate

votos
1

Hay un libro llamado Código . No recuerdo quién lo escribió, pero revisa los conceptos básicos de muchas cosas que nosotros (los programadores) sabemos y damos por sentado que las personas con las que hablamos también lo saben. Todo desde cómo se cuenta el binario hasta cómo funcionan los procesadores. No tiene nada que ver con los lenguajes de programación (bueno por lo que recuerdo), pero es un buen manual. Debo admitir que también soy de la escuela que cree que debe saber cómo funciona la computadora para poder programar cosas de manera efectiva.

Respondida el 19/08/2008 a las 03:52
fuente por usuario kemiller2002

votos
1

Qué tal esto: engendrar la próxima generación de hackers por Nat Torkington.

Respondida el 18/08/2008 a las 04:24
fuente por usuario Peter Stuifzand

votos
1

Muchas cosas me hicieron tropezar al principio, pero nada más que simples mecánicas. Conceptos, lo tomé de inmediato. ¿Pero echas de menos un corsé de cierre? Fácil de hacer, y con frecuencia difícil de depurar, en un programa no trivial.

Entonces, mi humilde consejo es: no subestimes lo básico (como escribir bien). Suena remediador, e incluso tonto, pero me ahorró tanto dolor al principio de mi proceso de aprendizaje cuando tropecé con la técnica simple de escribir el "esqueleto" completo de una estructura de código y luego simplemente rellenarlo.

Para una instrucción "if" en Python, comience con:

if  :

En C / C ++ / C # / Java:

if () 
{

}

En Pascal / Delphi:

If () Then
Begin

End

Luego, escriba entre los tokens de apertura y cierre. Una vez que esto se convierte en un hábito sólido, lo haces sin pensar, se libera más cerebro para hacer las cosas divertidas. No es un consejo muy ostentoso para publicar, lo admito, pero uno que he visto personalmente ¡hace mucho bien!

Editar: [ Justin Standard ]

Gracias por tu contribución, Wing. Relacionado con lo que dijiste, una de las cosas que he tratado de ayudar a mi hermano a recordar la sintaxis para el alcance de Python, es que cada vez que hay dos puntos, necesita sangrar la siguiente línea, y cada vez que crea que debe sangrar, será mejor que haya dos puntos que terminen la línea anterior.

Respondida el 16/08/2008 a las 01:46
fuente por usuario Wing

votos
1

Sugeriría adoptar un enfoque similar al del libro, Accelerated C ++, en el que cubren partes de C ++ que generalmente son útiles para hacer programas simples. Para cualquier persona nueva en la programación, creo que tener algo que mostrar por un poco de esfuerzo es una buena manera de mantenerlos interesados. Una vez que haya cubierto los fundamentos de Python, entonces debe sentarse y dejar que experimente con el lenguaje.

En una de mis asignaturas de la Universidad para este semestre han adoptado un enfoque llamado Aprendizaje Basado en Problemas (PBL) en el que utilizan conferencias para estimular a los estudiantes sobre diferentes enfoques de los problemas. Como tu hermano está interesado, debes adoptar un enfoque similar. Póngale pequeños proyectos para que trabaje y déjelo que lo resuelva por sí mismo. Luego, una vez que haya terminado, puede seguir su enfoque y comparar y contrastar con diferentes métodos.

Si puedes darle la cantidad justa de ayuda para guiarlo en la dirección correcta, entonces él debería estar bien. Proporcionarle buenos sitios web y libros también sería una buena idea.

También recomendaría alejarse de los IDE en las etapas iniciales. El uso de la línea de comando y un editor de texto le dará una mayor comprensión de los procesos involucrados en la compilación / ensamblado de código.

Espero haber sido de alguna ayuda. :)

Respondida el 13/08/2008 a las 10:29
fuente por usuario Nexus

votos
1

Esto puede sonar tonto, pero ¿por qué intentas enseñarle a tu hermano a programar?

A menudo, el mejor entorno de aprendizaje consiste en un objetivo que puede alcanzar un principiante entusiasta (un programa de ejemplo), una amplia oferta de recursos (google / tutoriales / libros) y una fuente de asesoramiento que puede proporcionar orientación cuando sea necesario.

Definitivamente puede ayudar con sugerencias para los dos primeros, pero el último es su función principal.

Respondida el 13/08/2008 a las 07:10
fuente por usuario Andrew Grant

votos
1

Copie un código simple línea por línea y haga que lo lean e interpreten a medida que avanzan. Pronto lo resolverán. Empecé a programar en un Acorn Electron con fragmentos de código de las revistas Acorn. No tenía idea acerca de la programación cuando tenía 6 años, solía copiar el texto, pero poco a poco aprendí lo que significaban las diferentes palabras.

Respondida el 11/08/2008 a las 01:23
fuente por usuario Mark Ingram

votos
1

Ya ha habido un montón de excelentes respuestas, pero para un principiante absoluto, recomendaría Hackety Hack de todo corazón . Fue creado por el irrazonablemente prolífico why_the_lucky_stiff específicamente para proporcionar un entorno BASIC / LOGO / Pascal para que los nuevos programadores experimenten. Se trata de un IDE Ruby con algunas excelentes bibliotecas (video flash, mensajería instantánea, servidor web) y lecciones interactivas. Hace un buen lanzamiento para la programación, ya que eligió lecciones que hacen cosas divertidas y útiles. "Hola, mundo" puede no impresionar de inmediato, pero crear un cliente de mensajería instantánea personalizado en 20 minutos puede inspirar a alguien a seguir aprendiendo. ¡Que te diviertas!

Respondida el 11/08/2008 a las 05:30
fuente por usuario Nick Mabry

votos
1

Robert Read escribió una guía útil, Cómo ser un programador , que cubre una amplia área de problemas de programación que a un principiante le resultaría útil.

Respondida el 09/08/2008 a las 05:28
fuente por usuario David

votos
1

También recomendaría ver algunos screencasts: generalmente se crean en el contexto de una tecnología específica, no de un idioma, aunque si hay un código de Python, eso será :). El punto es que son creados por algunos buenos programadores y observan qué tan bueno es el programa de programadores. Tú y tu hermano también podrían hacer algo de programación entre iguales, esa podría ser una idea aún mejor. Simplemente no te olvides de explicar POR QUÉ haces algo de esta manera y no de esa manera. Creo que la mejor forma de aprender a programar es con buenos ejemplos y tratar de no ver los malos.

Respondida el 09/08/2008 a las 09:17
fuente por usuario martinsb

votos
1

Me enseñaron aprendiendo a resolver problemas de una manera independiente del lenguaje usando diagramas de flujo y PDL (Lenguaje de diseño de programa). Después de un par de semanas de eso, aprendí a convertir el PDL que había escrito en un idioma. Me alegro de haber aprendido de esa manera porque he pasado la mayor parte de mis años programando, resolviendo problemas sin estar atado a un idioma. El lenguaje que uso siempre ha sido un detalle de implementación y no parte del diseño.

Tener que resolver el problema dividiéndolo en sus pasos básicos es una habilidad clave. Creo que es una de las cosas que separa a los que pueden programar de los que no.

En cuanto a cómo abordar el orden de los conceptos de un idioma, creo que la manera más fácil es decidir que es tener un proyecto en mente y abordar los conceptos a medida que se necesiten. Esto le permite aplicarlos a medida que se necesiten en algo que le interesa hacer. Al aprender un idioma, es bueno tener varios proyectos simples en mente y algunos con complejidad progresiva. Decidir sobre esos te ayudará a mapear los conceptos que se necesitan y su orden.

Respondida el 09/08/2008 a las 03:23
fuente por usuario bruceatk

votos
1

Creo que una vez que tenga los elementos básicos (variables, bucles, etc.), debe intentar ayudarlo a encontrar algo específico que le interese y ayúdelo a aprender las necesidades para hacerlo realidad. Sé que estoy mucho más inclinado y motivado para hacer algo si es de mi interés. Además, asegúrate de dejarlo luchar a pesar de algunos de los problemas más difíciles, nada es más satisfactorio que el momento en que lo resuelves por tu cuenta.

Respondida el 07/08/2008 a las 11:12
fuente por usuario DanV

votos
1

Si desea enseñar los conceptos básicos de la programación, sin ser un idioma específico, existe una aplicación llamada Scratch que se creó en MIT. Está diseñado para ayudar a las personas a desarrollar habilidades de programación. A medida que los usuarios crean proyectos de Scratch, aprenden a crear condiciones, bucles, etc. También hay una comunidad de proyectos de borrador, de los cuales se pueden descargar proyectos, de esa manera puede explorar los programas de otras personas y ver cómo se crearon.

Respondida el 06/08/2008 a las 08:15
fuente por usuario Lea Cohen

votos
0

Le recomiendo Python de programación: Una introducción a la Informática 2ª edición por John Zelle . Está dirigido a principiantes, y se ocupa de las semánticas de programación. Después de leer usted será capaz de recoger otros idiomas mucho más rápido debido vs enfoque sintáctico semántico de Zelle. ¡Echale un vistazo!

Respondida el 29/05/2011 a las 04:05
fuente por usuario user753986

votos
0

Pregunte a su hermano si hay algo que le gustaría hacer un programa de hacer o inventar un proyecto para él que crea que puede interesarle.

Algo en el que pueda saber lo que se supone que la salida sea y lo que apunte a los materiales (en línea o en forma impresa) pertinente para el proyecto. Si va a venir en Python o la programación 'frío' ser paciente, ya que trabaja su camino a través de la comprensión de los conceptos básicos, tales como la sintaxis, errores, el alcance y estar preparado para un lado y dejar que corra y crea sus propios errores cuando se empieza a ver la luz bombilla de ir por la cabeza.

Respondida el 12/05/2011 a las 02:28
fuente por usuario Andrew

votos
0

Utilice verdadera analogía mundo y los personajes imaginarios a ellos enseñar programación. Al igual que cuando enseño a la gente sobre variables e instrucciones de control, etc.

Por lo general, empiezo con el ejemplo de la calculadora. Yo digo imaginar u tiene una caja para cada variable y T tienen juntas 10 cartas con los números 0 - 9 impreso en ellos. Decir que la caja de cartón puede contener uno a la vez y de manera similar para explicar cómo funcionan los elementos de programación

Y el énfasis en cómo funciona cada operador .. como el sencillo '=' operador siempre calcula el lado derecho por primera vez en un valor. y puesto que el valor en la caja llamada "NUM_1" (que es nombre de variable)

Esto ha sido muy muy eficaz, ya que son capaces de imaginar el flujo muy rápidamente.

Respondida el 18/12/2009 a las 03:59
fuente por usuario Rajavanya Subramaniyan

votos
0

Estoy de acuerdo con Superjoe30 más arriba, pero aún no tengo la reputación suficiente como para dejar un comentario.

Fui profesor de CS por 4 años. Los idiomas fueron Básico y luego Pascal, pero en realidad no importa cuál es el idioma.

La mayor lección que aprendí como nuevo profesor fue: no importa cuán simple creí que era un concepto, no es simple para un novato. Nunca vayas más rápido de lo que tu estudiante puede ir. No puedo enfatizar eso lo suficiente. Ve realmente, realmente lento.

Comenzaría con cosas muy simples, leer e imprimir, tal vez un cálculo simple, solo para que el estudiante se acostumbre a poner algo y a sacar algo. Entonces IF declaraciones. Luego, loops FOR realmente simples, siempre en términos de algo con lo que el alumno podría escribir y divertirse.

Luego, pasaría unas 3 semanas enseñando un tipo de lenguaje de máquina muy simple para una máquina decimal falsa llamada SIMPL, que podría hacer en un solo paso. La razón para hacer esto es que el alumno pueda ver dónde se encuentra la "goma con el camino", que las computadoras hacen las cosas paso a paso, y hace una diferencia en qué orden suceden las cosas. Sin eso, los estudiantes tienden a pensar que la computadora puede tipo de leer su mente y hacer todo de una vez.

Luego de vuelta a Basic. Un par de semanas en arreglos, porque eso es un gran bache de velocidad. Luego archivos secuenciales, que es otro aumento de velocidad. Lo que quiero decir con "bache de velocidad" es que el alumno puede navegar sabiendo con bastante confianza, y luego los golpea con un concepto como arrays, y se pierden por completo otra vez, hasta que los ayude a pasar.

Luego, con esas habilidades a sus espaldas, les pediría que elijan un proyecto a término, porque eso es lo que hace que la programación sea interesante. Sin un uso para eso, es realmente aburrido. Sugeriría una variedad de proyectos, como juegos, programas de contabilidad, programas de ciencias, etc. Es realmente genial ver cómo se activan. A menudo me pedían ayuda, y eso es genial, porque sabes que están aprendiendo.

Mientras estaban haciendo sus proyectos, continuaríamos cubriendo técnicas de programación más avanzadas: búsqueda, clasificación, fusión, cómo hacer una base de datos simple, etc.

Buena suerte. Enseñar es un trabajo duro pero satisfactorio cuando ves crecer a los estudiantes.

Respondida el 18/11/2008 a las 03:06
fuente por usuario Mike Dunlavey

votos
0

Microsoft Small Basic es un entorno de programación gratuito basado en .NET destinado a ser un entorno de aprendizaje "divertido" para principiantes. El lenguaje es un subconjunto de VB.NET e incluso contiene un objeto "Tortuga" familiar desde el lenguaje Logo. El sitio web contiene un tutorial paso a paso.

Respondida el 18/11/2008 a las 02:40
fuente por usuario PoppaVein

votos
0

"¿Quién teme a C ++?" Por Heller

Podría valer la pena un tiro

Respondida el 30/10/2008 a las 05:38
fuente por usuario Tim

votos
0

Sugiero " Informática desconectada " como material didáctico complementario.

Respondida el 12/10/2008 a las 12:32
fuente por usuario Sergey Kivanov

votos
0

+1 a las conferencias de la Universidad de Stanford. http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

Son simples, de alta calidad y puedo dar fe de su capacidad para enseñar a principiantes (yo soy uno de ellos).

Respondida el 03/10/2008 a las 12:38
fuente por usuario Glitch

votos
0

Lo que sea que escriban, pídales que lo revisen en un depurador línea por línea en la primera ejecución. Permita que vean por sí mismos lo que está haciendo la computadora. Esto quita mucho misterio, reduce la intimidación ("¡oh, cada línea realmente es así de simple!"), Y les ayuda a aprender habilidades de depuración y reconocer por qué los errores comunes son comunes (y por qué son errores)

Respondida el 21/09/2008 a las 11:30
fuente por usuario Seth Morris

votos
0

Cualquiera que sea el idioma y el entorno que elijas, si el alumno desea aprender por razones profesionales o hacer una programación "real" (lo que sea que sea), pídales que empiecen escribiendo sus programas iniciales 1 en papel y llevándolos a correr. Regrese con los resultados de salida y / o error y pídales que arreglen las cosas en papel.

Esto no es más difícil al principio que hacerlo en la pantalla y golpear la carrera, pero facilitará las cosas cuando comiencen a descubrir el maravilloso mundo de los insectos.

1) abreviado, "Hello, World!" - escribe programas que todavía tienen un poco de lógica y / o cálculos, hazlo hasta con algunos programas que pueden tener errores

Respondida el 21/09/2008 a las 11:27
fuente por usuario Seth Morris

votos
0

Su pregunta depende de la edad y la educación de su hermano, pero si él es un niño / adolescente, le recomendaría hacer algo de programación de GUI o programación gráfica primero (con Canvas, etc.). Se ve bien, y tienes resultados inmediatos. Los algoritmos son aburridos y demasiado abstractos para los jóvenes (antes dicen, 15 años).

Cuando comencé a programar en ZX Spectrum (tenía 12 años), me gustaba dibujar varias cosas en la pantalla, y seguía siendo interesante. No aprendí sobre técnicas algorítmicas reales hasta que tuve quizás 18 años. No se deje engañar por el hecho de que una programación "simple" es un comienzo incorrecto; el interés de la persona que lo aprende es la parte más importante de él.

Entonces, analizaría PyKDE, PyGTK, PyQt o Python + OpenGL (ciertamente hay algunos tutoriales en la red, conozco algunos checos pero eso no te ayudará :)).

Por supuesto, si su hermano es mayor y tiene una educación cercana a las matemáticas, puede dirigirse directamente a los algoritmos y demás.

Respondida el 19/09/2008 a las 01:08
fuente por usuario J S

votos
0

Yo recomendaría Think Python .

Respondida el 16/09/2008 a las 11:31
fuente por usuario xenog

votos
0

Un par de otras plataformas de inicio:

  • Una buena calculadora programable (eso es lo que aprendí en los años 70), y HP25 luego HP41, ahora TI69, etc.
  • Las plataformas de Ficción interactiva, como "Inform 7" proporcionan otro ángulo en todo
  • Flash / ActionScript

Todos estos son diferentes y atractivos, y cualquiera de estos podría despertar el tipo de interés que se requiere para que un principiante pueda correr.

LBB

Respondida el 16/09/2008 a las 07:51
fuente por usuario leeborkman

votos
0

Como no programador, encontré el libro "Cómo programar" de programadores pragmáticos muy útil desde un punto de vista rudimentario. Es accesible y fácil de leer para un principiante. No lo llevará de principiante a experto, pero lo preparará para lo que debe hacer una vez que elija un idioma y recoja su primer libro "Aprenda a programar en (idioma aquí)".

Respondida el 12/09/2008 a las 09:51
fuente por usuario BrewinBombers

votos
0

Tener metas pequeñas y alcanzables es una de las mejores formas de aprender cualquier habilidad. La programación no es diferente. Python es un gran lenguaje para empezar porque es fácil de aprender, limpiar y aún puede hacer cosas avanzadas. Python solo está limitado por tu imaginación.

Una manera de hacer que alguien se interese realmente es dándoles pequeños proyectos que pueden hacer en una hora más o menos. Cuando originalmente comencé a aprender Python, jugaba Code Golf . Tienen muchos pequeños desafíos que ayudarán a enseñar los conceptos básicos de la programación. Yo recomendaría solo tratar de resolver uno de los desafíos diarios y luego jugar con los conceptos aprendidos. Tienes que aprender a programar la diversión o el interés se perderá muy rápidamente.

Respondida el 07/09/2008 a las 09:25
fuente por usuario David Lambert

votos
0

Uno que utilicé con mis hijos es CEEBot . No es Python, pero enseña programación C / Java en un divertido juego de programación tipo robot. Está dirigido a niños de 10-15 años, pero es realmente bueno.

Respondida el 06/09/2008 a las 05:42
fuente por usuario GrizzlyGuru

votos
0

Alguna información adicional que alguien podría adjuntar a la publicación anterior de Jason Pratt sobre Alicia ... específicamente, una variante Alicia narrativa .

Aunque el estudio presentado se dirige a niñas de escuela media, es posible que el libro blanco escrito por Caitlin Kelleher sea interesante.

Respondida el 06/09/2008 a las 04:30
fuente por usuario Luther Baker

votos
0

Puede parecer extraño, pero empecé a escribir código automatizando las tareas y el análisis de datos en mi trabajo anterior. Esto se logró grabando y luego estudiando el código generado por una macro de Excel. Por supuesto, este enfoque supone que puede aprender a través de VB.

Respondida el 05/09/2008 a las 03:20
fuente por usuario deadbug

votos
0

Algo a considerar ... no todos son capaces de programar:

Algunas personas simplemente no pueden superar cosas como:

A = 1

B = 2

A = B

(estas personas todavía pensarán A = 1)

Jeff también ha hablado de esto. De hecho, mi ejemplo está en el enlace (y explicado, para arrancar).

Respondida el 04/09/2008 a las 09:23
fuente por usuario Ja7on

votos
0

La mejor forma de aprender algo es comenzar con lo básico. Puede encontrar cualquier libro de texto bueno para explicar qué es programación, memoria, algoritmos.

El siguiente paso selecciona el idioma que depende de lo que sabe el profesor o por qué el alumno quiere aprender.

Entonces es solo código, código, código. Codifique cada ejemplo directamente desde el libro. Luego cámbialo ligeramente para hacer otra acción. Aprender a programar es un proceso activo, no pasivo. No puede simplemente leer C ++ Cómo programar por Dietal y luego esperar codificar C ++ sin haberlo hecho activamente mientras lo leía.

Incluso si eres un codificador experimentado, es útil escribir el código en el libro para aprender algo nuevo.

Respondida el 27/08/2008 a las 04:25
fuente por usuario David Basarab

votos
0

Para mí, explorar y experimentar dentro del IDE me ayudó a aprender Java y Visual Basic, pero aprendí los conceptos básicos de la programación de la peor manera: Perl 5. No había un IDE gratis en ese momento, por lo que significaba escribir códigos en el Bloc de notas , guardándolo, y luego ejecute el intérprete de Perl.

Diría que los IDEs facilitan el aprendizaje de los principios básicos de la programación. Intenta jugar con estructuras de control y variables primero. Diga en Java:

int a = 5;

for (int i = 0; i < a; i++) {
     System.out.println("i is now " + i);
}

Básicamente, simplemente aprender las estructuras de control y las variables le permitiría a un principiante comenzar a codificar cosas divertidas.

Respondida el 22/08/2008 a las 11:32
fuente por usuario pkchukiss

votos
0

En mi opinión sesgada, C es el mejor punto para comenzar. El lenguaje es pequeño, sus características de alto nivel son omnipresentes y las características de bajo nivel le permiten aprender la máquina.

Encontré el C Primer Plus, quinta edición muy útil como programador principiante y casi sin experiencia en programación. No asume ninguna experiencia de programación previa, es divertido de leer y cubre C en profundidad (incluido el último estándar C99).

Respondida el 19/08/2008 a las 09:37
fuente por usuario Imran

votos
0

Mi experiencia personal comenzó en primaria utilizando Logo Writer (que en cierto modo se ha convertido en Scratch), me concedieron que era un niño pequeño y las computadoras no eran tan impresionantes como lo son hoy en día, pero por el momento me llevó a lugares que no tenía. He estado antes ... Creo que así fue como me enganché en el negocio ... Podría decir que fueron estas primeras impresiones basadas en tanta simplicidad y frescura las que hicieron que los bienes se quedaran en mi cabeza de por vida. Así es como deben enseñarse los principios básicos de la enseñanza de la programación ... un proceso simple que anhela la magia.

Volviendo a mi primer CS 101, comencé con las nociones de lo que era un algoritmo construyendo un Tequila Sunrise (un proceso paso a paso que podría repetirse en cualquier momento con los ingredientes correctos, que darán como resultado el mismo resultado), a partir de ahí pasamos a las funciones matemáticas básicas usando Scheme (como decía EHaskins ... empieza de a poco y luego creces), y de ahí a nociones de bucles, lógica booleana, estructuras y luego construyendo conceptos de objetos y algunas ejecuciones de simulación. .

Una de las cosas buenas de este enfoque es que el lenguaje no era un objetivo, sino solo una herramienta en el proceso de aprendizaje de los conceptos y conceptos básicos de la programación (al igual que los operadores, las funciones y demás en las matemáticas).

En mi humilde opinión, aprender lo básico sobre programación y creación de una base es lo mejor que podría enseñarle a su hermano. Una vez que se cubre el objetivo, puede pasar a un lenguaje de uso más general como Python y enseñarles conceptos superiores como arquitectura y patrones de diseño. hágalos naturales en el proceso para que se acostumbre a las buenas prácticas desde las primeras etapas y las verá como parte del proceso) ... estamos lejos de reinventar el agua tibia, pero siempre debemos comenzar creando fuego.

¡A partir de ahí, el cielo es el límite!

Respondida el 16/08/2008 a las 04:56
fuente por usuario samiq

votos
0

Al principio estaba interesado en cómo funcionaban los diferentes programas, así que comencé mirando el código fuente. Luego, cuando comencé a entender cómo funcionaba el programa, cambiaba ciertos parámetros para ver qué sucedería. Entonces, básicamente, aprendí a leer antes de aprender a escribir. Que coincidentemente es la forma en que la mayoría de la gente aprende inglés.

Entonces, si estuviera tratando de enseñar a alguien cómo programar, les daría un pequeño programa para tratar de leer y comprender cómo funciona, y que simplemente jueguen con el código fuente.

Solo entonces les daré "asignaciones" para tratar de lograr.

Ahora bien, si tuvieran una razón particular para querer aprender a programar, sin duda sería una buena idea comenzar con algo parecido a lo que quieren lograr. Por ejemplo, si quisieran dominar una aplicación como Blender , definitivamente sería una buena idea comenzar con Alice .

Absolutamente recomiendo seguir con un lenguaje que tiene recolección de basura, como D , Perl o algún lenguaje interpretado como javascript. Puede ser una buena idea mantenerse alejado de Perl hasta que Perl 6 esté más cerca de completarse, ya que soluciona algunas de las dificultades de leer y comprender Perl.

Respondida el 14/08/2008 a las 05:23
fuente por usuario Brad Gilbert

votos
0

Este hilo me es muy útil como programador principiante (> 100 líneas de código).

En base a lo que he pasado, una vez que terminé con el "Hola mundo" y pasé a las variables y la declaración "if / else", me eliminaron con demasiada sintaxis; sin saber qué hacer con ellos.

Entonces, con un proyecto simple e interesante, podría despertar mi interés nuevamente. Aquí hay muchas sugerencias de proyectos.

¿Puedo hacer una pregunta aquí?

¿Es mejor aprender primero un lenguaje de scripting como Autohotkey ?

Editar: [Justin Standard]

Creo que aprender algo basado en macros como Autohotkey solo ayudará mínimamente. Intente primero aprender un lenguaje de programación "real". Los más fáciles de empezar (de acuerdo con la mayoría de las personas) son python y ruby . Yo prefiero Python, pero ambos son bastante simples. También hay una publicación completa de stackoverflow que responde a la pregunta de qué idioma comenzar.

Respondida el 14/08/2008 a las 02:30
fuente por usuario qwertyuu

votos
0

Mi proyecto favorito de "comenzar a aprender a codificar" es el Game Snakes o Tron porque te permite iniciar lentamente (variables para almacenar la "posición del gusano" actual, matrices para almacenar las posiciones del gusano si el gusano es más largo que una "pieza", bucles para hacer que el gusano se mueva, si / cambiar para permitir al usuario cambiar la dirección del gusano, ...). También permite incluir más y más cosas en el proyecto a largo plazo, por ejemplo, programación orientada a objetos (un gusano es un objeto con la posibilidad de tener dos gusanos al mismo tiempo) con herencia (pasar de "Serpientes" a "Tron" "o al revés, donde el gusano cambia ligeramente el comportamiento).

Sugeriría que uses el XNA de Microsoft para comenzar. En mi experiencia, comenzar a programar es mucho más divertido si puedes ver algo en tu pantalla, y XNA hace que sea realmente fácil hacer que algo se mueva en la pantalla. Es bastante fácil hacer pequeños cambios y obtener otra mirada, por ejemplo, cambiando los colores, para que pueda ver que sus acciones tienen un efecto -> Impresión del éxito. El éxito es divertido, lo cual es una gran motivación para seguir aprendiendo.

Respondida el 11/08/2008 a las 01:59
fuente por usuario BlaM

votos
0

Recomendaría en primer lugar enseñar los conceptos básicos que se utilizan en casi todos los idiomas, pero sin lenguaje. Describa todos los conceptos básicos If-Else If-Else, Loops, Classes, Variable Types, Structures, etc. Todo lo que constituye la base de la mayoría de los lenguajes. Luego pase a Boolean realmente comprensivo, comparaciones y sentencias OR complejas, para tener una idea de cuáles son los resultados para declaraciones más complejas.

Al hacerlo de esta manera, comprenderá los conceptos de programación y tendrá un tiempo mucho más fácil para acceder a los idiomas, a partir de ahí solo aprenderá los intrincados detalles de los idiomas, sus funciones y su sintaxis.

Respondida el 11/08/2008 a las 01:30
fuente por usuario Tanerax

votos
0

En primer lugar, creo que ya ha habido algunas respuestas excelentes, así que intentaré no engañarme demasiado.

  • Haz que escriban un montón de código, mantenlos haciendo preguntas para mantener fluidos los jugos cerebrales.
  • Yo diría que no te empantanes con la información realmente detallada hasta que o bien se topan con las implicaciones de ellos, o preguntan.

Creo que uno de los puntos más importantes que me aseguraría es que comprendan los conceptos básicos de un marco. Sé que estás trabajando en Python (sobre lo cual no tengo ni idea) pero, por ejemplo, con ASP.NET lograr que la gente comprenda la página / código detrás del modelo puede ser un verdadero desafío, pero es fundamental que lo entiendan. Como ejemplo, recientemente tuve una pregunta en un foro sobre " dónde pongo mi código de acceso a datos, en el archivo 'cs' o en el archivo 'aspx' ".

Por lo que yo diría, en su mayor parte, déjenles guiar el camino, solo estén ahí para apoyarlos cuando sea necesario y hagan más preguntas para mantener el interés. Solo asegúrate de tener los fundamentos bajos, y no los dejes correr antes de que puedan caminar.

¡Buena suerte!

Respondida el 09/08/2008 a las 07:52
fuente por usuario Rob Cooper

votos
0

Creo que aprender a programar porque quieres aprender a programar nunca será tan bueno como aprender a programar porque quieres HACER algo. Si puede encontrar algo que a su hermano le interese hacer el trabajo porque quiere hacerlo funcionar, puede dejarlo con Google y lo hará. Y él te tendrá a tu alrededor para verificar que va por el camino correcto.

Creo que uno de los mayores problemas con la enseñanza de la programación en abstracto es que no tiene un contexto del mundo real en el que el alumno pueda involucrarse emocionalmente. La programación es difícil, y tiene que haber una recompensa real para que valga la pena el esfuerzo de hacerlo En mi caso, hice informática en la universidad, aprendí Pascal y COBOL allí, y aprendí BÁSICO en casa antes de eso, pero nunca llegué a ninguna parte hasta que me convertí en un diseñador web autónomo en los 90 y mi los clientes necesitaban funcionalidad en sus sitios web y estaban dispuestos a pagar aproximadamente 10 veces más por la funcionalidad que por el diseño. ¡Poner comida en la mesa es un gran motivador!

Así que aprendí Perl, luego ASP / VBScript, luego JavaScript, luego Flash / ActionScript y PHP, todo para hacer las cosas que quería que sucedieran.

Respondida el 07/08/2008 a las 08:47
fuente por usuario Polsonby

votos
0

Recomiendo comenzar con C / C ++. Encuentro que es una buena base para casi cualquier otro idioma. Además, las diferentes versiones de BASIC pueden ser bastante dudosas, en el mejor de los casos, y no tienen una correlación real con la programación real.

Respondida el 07/08/2008 a las 06:35
fuente por usuario Ed.

votos
0

Estoy de acuerdo con Leac. De hecho juego con Scratch algunas veces si estoy aburrido. Es una forma visual bastante divertida de ver el código.

Cómo funciona es que te dan un montón de "bloques" (que parecen legos) que puedes apilar. Y al apilar estos bloques e interactuar con el lienzo (donde colocas tus sprites, gráficos), puedes crear juegos, películas, pases de diapositivas ... es realmente interesante.

Cuando esté completo, puede subirlo directamente a los sitios web de Scratch, que es un portal de youtube para aplicaciones Scratch. No solo eso, sino que puede descargar cualquier envío en el sitio web, y aprender de otras aplicaciones de Scratch o ampliarlas.

Respondida el 06/08/2008 a las 06:32
fuente por usuario Kevin

votos
0

Creo que la "sabiduría de las multitudes" funciona aquí. ¿Cómo aprendió la mayoría de la gente a programar? Muchos afirman que lo hicieron al copiar programas de otros, generalmente juegos que querían jugar en BASIC.

¿Tal vez esa ruta también funcionará con él?

Respondida el 06/08/2008 a las 07:20
fuente por usuario Jon Limjap

votos
0

En realidad, discutiría para elegir un lenguaje más simple con menos instrucciones. Aprendí personalmente en BASIC en casa, al igual que Jeff . De esta forma, no tiene que profundizar en cuestiones más complicadas, como la programación orientada a objetos, o incluso los procedimientos, si no lo desea. Una vez que puede manejar el flujo de control simple, luego pasar a algo un poco más complicado, pero solo características simples.

Tal vez comience con programas muy simples que solo agreguen 2 números, y luego desarrolle algo que pueda requerir una ramificación, luego tal vez leyendo la entrada y respondiendo a ella, luego algún tipo de ciclo, y comience a combinarlos todos juntos. Solo comienza poco y sigue subiendo. No hagas grandes proyectos hasta que pueda comprender los fundamentos (de lo contrario, puede ser demasiado desalentador y podría abandonar a mitad de camino). Una vez que haya dominado BASIC o lo que sea que elijas, pasa a algo más complicado.

Solo mi $ 0.02

Respondida el 06/08/2008 a las 06:16
fuente por usuario Mike Stone


Aquí podría ser tu PUBLICIDAD