“Aprendí” a programar antes de tener acceso a una computadora. No estoy sugiriendo aprender C ++ sin usar una computadora, pero sí quiero sugerir que no necesitas una clase o un libro de programación para hacerlo. Hubo varias revistas de informática y boletines en la década de 1970 que incluían programas o artículos sobre cómo hacer algo en particular. Y los leí una y otra vez. Al principio, no pude entender mucho de nada. Pero pronto me familiaricé con ciertos comandos y noté estructuras de control, etc. Recorrí mi camino a través de un programa y vi cómo funcionaba. [La película TRON obtuvo su título del comando TRace ON.] Fue desafiante y divertido, pero mucho trabajo, y no conocía a nadie más con quien pudiera hablar al respecto.
No sé qué le interesa, pero creo que podría enumerar tres o cuatro cosas de la cabeza que se prestarían a la programación. Hay muchas preguntas que nos serían difíciles de responder por nuestra cuenta, pero que pueden responderse fácilmente usando un programa de computadora muy corto, como “¿Qué día de la semana fue el 15/03/1832?” el año 1800 un año bisiesto? ”,“ ¿Cuáles son los primeros 500 números primos? ”,“ ¿cuál es la suma de los múltiplos pares de tres menos de 1000? ”- haga una lista de tales preguntas y hágase estas preguntas sobre cada una: ¿Qué información necesitas para poder responderlas? ¿Puedes encontrar una manera fácil de obtener la información? ¿necesita dividir el problema en pedazos? Algunos de estos son clásicos y aún vale la pena descubrirlos.
Además de estos programas “cortos”, también hay algunos proyectos que podría hacer que le enseñarían sobre diferentes aspectos del lenguaje. Para ellos, podría comenzar con algún código que alguien más haya escrito e intentar averiguar cómo funciona. Luego ejecuta el código. ¿Hay algunas cosas que puede modificar en el código? Intente cambiar algunas cosas y vea si lo rompe o no. Ahora haga algunos cambios más grandes. ¡Guauu! Así es como aprendes y descubres.
Un lugar para comenzar, si está interesado en la psicología o el procesamiento del lenguaje natural o la inteligencia artificial, sería mirar algunos programas clásicos. Una que se ha modernizado a C ++ y tiene un buen artículo que explica la estructura de algunos de los códigos es Eliza. Si esta es su primera experiencia con un lenguaje de programación, puede parecer imposible descifrar algo del código. Pero es sorprendente lo que puedes aprender si decides no asustarte. Vea si puede descubrir las diferentes partes. Mira lo que depende de otra cosa. Vea dónde se procesa y crea el idioma real. No te preocupes si no lo entiendes todo, porque aprenderás mucho solo jugando con él. Este tipo de proyectos le enseñarán a usar cadenas, almacenar datos y mantener listas.
- ¿Cuál es la principal diferencia entre la escuela media y la secundaria?
- ¿Cómo pueden los maestros de escuelas públicas en San Francisco permitirse vivir en un área tan cara?
- Como un estudiante A directo en la escuela secundaria, ha habido muchas noches en las que elegí estudiar antes de salir con amigos. ¿Me arrepentiré de esto?
- ¿Cómo es graduarse de la escuela secundaria un año antes?
- ¿Cuál es el plan de estudios de matemáticas en las escuelas secundarias de Shangai especializadas en materias científicas / matemáticas?
Otro proyecto divertido se basa en el juego de la vida (no en el juego de mesa). Leí un artículo en Scientific American sobre el juego de la vida, y en particular, WaTor, donde había peces y tiburones en el mar y el tiburón se comió a los peces o murieron. Una versión actualizada llamada SugarScape [En esta, puedes pensar en hormigas en el suelo a las que les gusta comer azúcar. En lugar de un paisaje, tienes un Sugar Scape.] Podría ser un buen punto de partida. El código C ++ para esto está aquí. Es sorprendente qué patrones se pueden crear usando reglas muy simples. Lo que es bueno de este es que realmente se presta a la programación orientada a objetos, OOP.
Ambos proyectos usan código que alguien más ha creado y le enseñan aspectos importantes de C ++. Mire muchos ejemplos de código que intentan hacer lo mismo. Mira lo diferente que está escrito.
Después de haber realizado un par de proyectos en los que usa el código de otra persona, es hora de comenzar a trabajar en sus propios proyectos. Un comienzo fácil sería hacer un juego en el que dos jugadores, cada uno con cánones, intente borrar la ubicación de la otra persona; use ecuaciones cuadráticas para la trayectoria y permita que los jugadores decidan el ángulo de elevación del cañón y la cantidad de pólvora que pondrán en el tubo. Para un desafío mayor, crea un juego como tic-tac-toe donde la computadora juegue contra ti. Tenga en cuenta que hay diferentes cosas que debe hacer. Este segundo es más desafiante porque no es solo conectar una ecuación, sino descubrir cómo escribir un programa que descubra qué juego debe hacer la computadora.
Digamos, en cambio, que le fascina la trigonometría, los relojes o el tiempo. Un gran proyecto, que usaría esto, sería descubrir cómo programar una esfera de reloj analógica. (Si nunca ha aprendido a leer uno, esta sería una buena oportunidad sin siquiera tener que intentarlo). Esto le presentaría los gráficos y usaría muchas matemáticas. Rompe el problema. Primero, ¿puedes descubrir cómo dibujar un círculo? ¿Qué pasa con una línea desde el centro del círculo hasta el borde? Ahora descubre cómo dibujar números alrededor del interior del círculo y colócalos justo. ¿Son los tamaños correctos? ¿Qué hay del color? Tendría que descubrir cómo dibujar las manecillas y moverlas a medida que cambia el tiempo: su manecilla de segundo, minuto y hora comenzaría cada una en el centro de la esfera del reloj y se iría a una distancia diferente hacia el borde. Puede convertir el tiempo en ángulo alrededor de la esfera del reloj. ¡Guau, se ve horrible! pero lo hiciste así que es genial. Ahora intenta hacer que se vea bien. ¿Puedes agregar un lugar, como en algunos relojes, para mostrar la fecha y el día de la semana también? Los relojes viejos a menudo también mostraban la fase de la luna: un círculo grande que representaba la luna se movía entre dos círculos para mostrar una astilla de la luna, luego un poco más, luego un cuarto y media luna hasta que se mostraba todo (lleno) En la época de la bruja, la luna comenzó a desaparecer detrás del otro círculo hasta que desapareció (nueva). Un par de imágenes que muestran este tipo de caras están aquí y aquí.
¿Cómo averiguarías si pudieras ver a Marte en el cielo por la noche? ¿Puedes agregar eso a tu esfera del reloj?
Lo que básicamente digo es que te ensucies las manos. Averigüe algo que le resulte divertido programar, divídalo en pedazos, juegue con ellos y ajústelos, e intente escribir un programa que pueda hacer lo que quiera. Mire muchos ejemplos, especialmente donde se ha logrado lo mismo de diferentes maneras. Y pronto tendrá una idea de algunas de las cosas que C ++ puede hacer y cómo las hace.
Si un proyecto te lleva uno o dos meses, está bien. Si terminas haciendo algo completamente diferente de lo que esperabas, no hay problema. El objetivo es aprender, y la mejor manera de aprender es trabajar en cosas que le interesan y estirarlo para usar habilidades que ya ha aprendido, y desarrollar habilidades que aún no ha dominado.
Y libros? ¡Son geniales! Pero tendrán mucho más sentido después de que haya realizado algunos proyectos y haya tenido dificultades por su cuenta. Es posible que incluso desee rehacer algunos de los proyectos después de haber leído un libro o artículo. Eso es genial ¿Puedes ahora hacer el proyecto de una manera completamente diferente?
Una cosa que podría ayudar es tener la meta de gastar, por ejemplo, cinco horas en programación cada semana. Marque las horas, y si para el sábado no ha tenido tiempo, ya sabe lo que debe hacer durante el fin de semana.
Buena suerte y haznos saber cual fue tu decisión.