Sugerencias para desarrollar programas para el aprendizaje [cerrado]

12

Además de esas aplicaciones muy simples de hello world, me pregunto qué otros programas debería intentar desarrollar para aprender. Estoy entrando en la universidad el año que viene y me pregunto qué tipo de programas se desarrollarán en ese entorno.

esto no es realmente una cuestión de idioma específico, pero si quieres saber qué uso actualmente, principalmente

  • windows: C # / WPF: estudié java / vb, etc. en poli, pero creo que C # es el camino a seguir, tal vez incluso F #
  • web: PHP / MySQL, Zend Framework / Doctrine, + HTML / CSS / JS (jQuery), por supuesto. buscando probar el motor de aplicaciones de Google con Python también.

por ahora, estoy pensando en

  • listas de tareas
  • aplicaciones que se integran con la API, por ejemplo. twitter / tumblr que uso
  • editor de texto: actualmente estoy tratando de desarrollar un editor de texto que use markdown y genere archivos html para ver (enlace a la entrada del blog). No es muy práctico después de que comencé a desarrollarlo. porque al editar no hay formato y en formato HTML, no puedo editar directamente

  • software de blog (para web)

Jiew Meng
fuente

Respuestas:

18

Echa un vistazo al Proyecto Euler. No hay nada más parecido para agudizar sus habilidades de programación fundamentales.

Robert Harvey
fuente
2
+1. La ventaja de Project Euler es que puede implementar las soluciones en cualquier idioma y luego compararlas / contrastarlas.
Thomas Owens
1
+1 - ¡Gran respuesta! Has abierto un gimnasio para nuestros cerebros.
Karthik Sreenivasan
6

Actualmente estoy escribiendo un analizador / analizador de expresiones regulares y me está enseñando una gran cantidad sobre el análisis y las máquinas de estados finitos y las expresiones regulares, entre otras cosas. La razón por la que particularmente creo que un analizador de expresiones regulares es útil es porque el lenguaje de expresiones regulares es pequeño y es bastante limitado en lo que puede hacer.

¡Otra cosa que hice fue escribir un intérprete para Ook! , que es una tarea simple, pero una vez más, te enseña un montón.

Chinmay Kanchi
fuente
+1 SC Kleene no fue el inventor de la expresión regular sin ninguna razón.
ixtmixilix
2

CodePlex.com enumera muchos proyectos de código abierto que se realizaron con C #. Puede echar un vistazo al sitio para obtener algunas ideas.

Mamta D
fuente
2

También puedes mirar TopCoder . Este sitio tiene grandes algoritmos para aprender y realizan competencia de vez en cuando. La ventaja importante de este sitio es que puede ver el código fuente de otros para un problema en particular y puede obtener más información.

E incluso en los sitios de SE, tienes que mirar CodeGolf .

Hormiga
fuente
1

(Esto es principalmente una respuesta mata, en lugar de una lista de proyectos).

Piense por qué está escribiendo el programa: ¿será útil por derecho propio o es simplemente para aprender un aspecto de una herramienta / API / lenguaje?

En el último caso, hay un beneficio en que el programa resultante sea lo más breve posible y luego se mantenga como referencia.

En el primer caso, ¿por qué no extender el aprendizaje a las buenas prácticas en todos los aspectos? Suponga que necesitará mantenerlo y extenderlo. Por lo tanto, utilice el control de origen, el seguimiento de problemas, la refactorización, las pruebas unitarias, ... ya que todas estas cosas son al menos tan importantes para un desarrollador como conocer otra API.


¿Qué tal un integrador de feed?

  • Fuentes RSS / Atom
  • Manejar Twitter usando su API (y acortar enlaces)
  • Según la fuente, permite el procesamiento posterior enchufable (por ejemplo, descarga de mp3 desde un podcast)

(La idea es centrarse en la integración de diferentes implementaciones del mismo paradigma: la obtención HTTP programada de una fuente RSS frente a la API de Twitter frente a ... todo lo cual se encuentra debajo de un flujo de entradas con sello de tiempo, fuente y contenido.

Ricardo
fuente
Gracias. Creo que esto está en la línea de lo que estoy pensando, integrar con los servicios web. También estoy pensando en aplicaciones abt diferentes aplicaciones que utilizan diferentes características del lenguaje. p.ej. con el editor de texto, intenté integrar wpf ribbon
Jiew Meng
1

Aprendí mucho trabajando en este tipo de proyectos de hobby:

  • Juegos simples (clon de serpiente, clon de Tic Tac Toe, etc.)
  • Protectores de pantalla

Sin mencionar que ese tipo de proyectos son increíblemente divertidos de trabajar :-).

sabiland
fuente
1

Programe un juego pequeño: es divertido y aprende mucho.

Algunas ideas:

  • Dragaminas
  • Tetris
  • Un juego de cartas
  • Serpiente

Y cuando está hecho, ¿por qué no implementar un sitio web de puntaje alto ...

Carra
fuente
0

Spyrograph Especifique las dimensiones de un anillo externo, un disco interno y un punto de pluma a lo largo de su diámetro. Trace la trayectoria de la pluma mientras el disco interno rueda a lo largo del interior del anillo externo.

Cambiar fabricante. Costo de entrada y cantidad entregada al cajero. Calcule el óptimo para que el cajero haga el cambio. Hay una manera lenta y una manera rápida de resolver esto. Encuentra el camino rápido.

OO-Life Simulation. Busque Algoritmo de vida. Realice un estado de inicio aleatorio y envíe los pasos posteriores, utilizando el diseño OO para desacoplar la lógica de la presentación. Dar salida de texto y salida gráfica.

Misionero / Solucionador de caníbales, busque este famoso rompecabezas. Escribe un programa para resolverlo usando árboles de búsqueda. Compare BFS con DFS.

Aaron Anodide
fuente