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)
fuente
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.
fuente
CodePlex.com enumera muchos proyectos de código abierto que se realizaron con C #. Puede echar un vistazo al sitio para obtener algunas ideas.
fuente
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 .
fuente
(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?
(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.
fuente
Aprendí mucho trabajando en este tipo de proyectos de hobby:
Sin mencionar que ese tipo de proyectos son increíblemente divertidos de trabajar :-).
fuente
Programe un juego pequeño: es divertido y aprende mucho.
Algunas ideas:
Y cuando está hecho, ¿por qué no implementar un sitio web de puntaje alto ...
fuente
Desarrolle una aplicación de libro de cocina .
fuente
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.
fuente