2009-03-18 7 views
5

Estoy buscando un proyecto personal. Uno de los que "todo programador" * hace. El razonamiento es que la mayoría de los desarrolladores tienen una tendencia a trabajar en proyectos personales que tienen rasgos particulares interesantes para todos los demás desarrolladores. Software como:Software que cada programador hace

  • de control de errores (uno) hechas
  • CMS (hechos uno)
  • Motores de blog (no he hecho uno; no quieren)
  • 'bibliotecas de interfaz de usuario y gráficos 'motores' (a menudo por la multitud de desarrollo de juegos)
  • programas de gestión de
  • contraseña

que estoy buscando para hacer algo

  • diversión
  • interesante
  • no es particularmente difícil (mi trabajo es difícil - o lo suficientemente oscura)
  • no tiene que ser original por cualquier medio
  • preferentemente una aplicación (es decir. No es un sitio web)
  • no
  • una experiencia de aprendizaje duro, esto es totalmente para la diversión fuera del trabajo

Dicho esto, me parece que los términos 'interesante' y 'difícil' no necesariamente llevar a la misma significado para los desarrolladores como lo hacen para otras personas (y muchas veces son intercambiables, no estoy buscando algo fácil o trivial). Ídem con la parte de "aprendizaje", me gusta y quiero resolver problemas, pero no voy a entrar en metodologías de diseño o aprender nuevas API y lenguajes para hacer esto.

Lo pido porque creo que ciertos proyectos o tipos de proyectos atraen a los desarrolladores por motivos particulares. No pretendo saber cuáles son esas razones, ni me importa, pero sí entiendo que existen y que, como desarrollador, es muy probable que los proyectos que se sugieren me atraigan.

Si ayuda, mi fondo o medio preferido, sin recitar mi currículum, es el desarrollo de C# para Windows/Tablet PC; xna; diseño/programación db;

* por "cada", quiero decir, "mucho".

+0

De los seis criterios enumerados, solo 2 no son subjetivos. –

+1

¿Quieres una lista de ideas? Este NO es un foro de discusión. Por favor haga su pregunta específica, objetiva, responsable. VOTAR PARA CERRAR como "no es una pregunta real" –

+0

@Ken - cierto, pero sigo con la premisa de que los requisitos subjetivos son bastante consistentes entre el tipo de personalidad que se usa para el desarrollo de software. –

Respuesta

16

Tiene experiencia en XNA y experiencia en DB.

Desarrolle una herramienta de visualización para bases de datos que sea visualmente atractiva y que facilite los datos de minería.

Esto puede comenzar como una simple herramienta de exploración y, finalmente, convertirse en una aplicación de gestión de bases de datos en toda regla.

+0

Esto suena sexy en realidad. –

+0

Hice uno de estos en OpenGL para una base de datos específica. Impresionan a la gente. (A las personas les gustan las UI que han visto en TV y películas) – geofftnz

1

Todos y cada uno de los desarrolladores son diferentes. Hace aproximadamente tres años, hice exactamente su pregunta en otro sitio. No trajo nada porque todos tenemos intereses diferentes.

Tal vez para hacer un sitio web con foco en lo que te gusta? ¿Como una pequeña comunidad dentro de una universidad o tus otros compañeros?

1

Para aprender Ruby, recientemente hice un mini generador DSL/XML para un lenguaje personalizado basado en XML que uso en un programa mío.Simplemente convierto un texto real en su representación XML. Fue solo un pequeño proyecto secundario divertido que no proporcionó muchos beneficios a la larga pero me ayudó a aprender el idioma.

Entonces ... Sugiero tratar de crear una DSL. La experiencia en realidad podría ser invaluable ya que los DSL son bastante útiles.

7

Los gráficos son siempre divertidos para jugar, intente escribir un programa para dibujar un triángulo de Sierpiński. Es un fractal bastante simple de generar. Una vez hice un protector de pantalla que los dibujó en lugares y colores aleatorios en la pantalla.

Si está buscando algo más práctico, intente escribir un correo electrónico o un cliente RSS. Aprender a interactuar con SMTP/POP3 a bajo nivel es bastante interesante. Lo mismo con RSS, lo expondrá a redes, GUI y diseño XML como mínimo.

+0

+1. Ambas son buenas ideas; desafortunadamente he hecho ambas :) y lo pasé muy bien haciéndolo. –

+1

Sierpinski no es realmente interesante: para (x = 0; x <512; x ++) para (y = 0; y <512; y ++) si (xyy) pone (x, y, blanco); else poner (x, y, negro); –

1

Escriba un entorno 3D poblado por seres virtuales artificialmente inteligentes, implementados en un servidor público, al que todos podamos acceder utilizando un cliente basado en WPF.

1

lo personal 'interesante' se superpone fuertemente 'difíciles', por lo que estoy un poco en una pérdida ...

... pero tal vez debería tener una participación no de programación que pueda tener y tratar de resuelve un problema simple en ese espacio.

Un amigo mío una vez construyó una base de datos de un ferrocarril modelo para que la gente pudiera rastrear los trenes que tenían. Estaba tratando de venderlo, eso no fue tan bien, pero fue simple y divertido.

3

Un juego de Sudoku (o Connect Four, Clue, etc.). Algo que se basa principalmente en la lógica y no en la inteligencia artificial (como el ajedrez).

+0

Sudoku, Connect Four y Clue podrían resolverse con una simple IA. La IA y la lógica no son disjuntas. –

0

¿Algún tipo de rastreador de GPS? Nunca hice uno pero creo que muchos desarrolladores lo hacen.

4

Escriba un generador de caracteres para el rpg de papel y lápiz de su elección.

Debe ser capaz de ser utilizado en 2 modos: Build-A-Character (que le permitirá construir un personaje desde cero) y Generate-An-NPC (que, dadas algunas pautas, generará un NPC decente) .

Esto es realmente un proyecto en el que he estado trabajando durante un tiempo, y lo he encontrado divertido. YMMV, especialmente si no juegas regularmente.

Editar - figurado Me gustaría dar algunas razones que me parece divertido.

  1. Es algo que yo y mis amigos realmente utilizará
  2. Me ayuda a entender mejor el juego, saber qué decisiones hacen un buen carácter
  3. Hay algunos (limitado) de IA en la generación de caracteres aleatorios (principalmente una árbol de decisión simple con algunos saltos al azar)
  4. En general es bastante simple, un proyecto razonable para un equipo de desarrollo de un solo hombre.
8

Si no ha escrito uno, juntar una implementación de Conway's Game of Life es siempre un desafío interesante. También es el tipo de proyecto que una vez que lo haces te lleva a un juego aparentemente interminable ("Solo agregaré una característica más ...")

+0

ir por hashlife :) – Tetha

1

Por qué no rodar su propio marco MVC

  1. web o
  2. sistema de plantillas web o
  3. marco Persistencia (1 si presenta una O-Mapper) o
  4. Interceptor- basado en el marco orientado a aspectos

Pero oh, esos fueron los pecados de principios de 2000.

¿Algo nuboso entonces? :)

+0

¡OMG PODRÍA HACER UNA NUBE PARA ALMACENAR TODO MI FILZ! –

3

¿Qué tal un ray tracer? Puede ser muy simple si haces todo por la fuerza bruta. Son muy divertidos de escribir y pueden provocar muchos problemas interesantes. Escribir un ray tracer cumple con todos sus criterios =)

0

Escriba un juego de pantalla táctil para un dispositivo móvil con Windows que compita con el iPhone. Tal vez como, 'Squash the Bug' o algo así. Los polluelos cavan ese tipo de cosas.

0

Buscar un juego de puzzle flash bueno e implementar un programa de solución para ello :)

0

lo personal, basadas en sus propias preferencias. Para mí, fue un programa de libro de calificaciones. Como siempre tuve amigos docentes, siempre quisieron que lo actualizara. Así que primero lo escribí en Pascal, luego quise aprender C, así que escribí una versión C, luego una versión C++ y así sucesivamente.

Mi hija estaba jugando baloncesto, así que quería mantener la puntuación y tenía un PocketPC en ese momento, así que escribí una pequeña aplicación para él.

Mi $ .02

1

tuve divertida programación un reproductor de audio (como Winamp/WMP) para aprender .NET antes de comenzar mi trabajo actual. Hay bibliotecas gratuitas para leer archivos MP3 (y otros formatos de audio), de modo que se saca la complicada parte;)

Un reproductor de audio no es demasiado complicado y es bueno para aprender hilos, interfaz de usuario y trabajar con el sistema de archivos.

+0

Me gusta esta idea. Siempre he hecho mis propios relojes de alarma, pero siempre han invocado a los reproductores de medios o winamp en el pasado y siempre he pensado que sería bueno tenerlos para reproducir la música. Las librerías mp3 también serían un buen punto de referencia para codificar la parte de reproducción yo mismo. –

7

¿Tal vez escribir un compilador? Creo que cada artista/artesano debería, en algún momento, aprender a construir las herramientas de su arte o artesanía.

+0

+1, aunque creo que es una idea ridículamente complicada. (Aunque admito, estoy trabajando en un intérprete pseudo-Scheme yo mismo) – cwallenpoole

1

Siempre me he divertido intentando jugar con compiladores/intérpretes. Comencé a hacer intentos patéticos en mi propio caparazón interactivo de Javascript (no tenía experiencia previa ni conocimiento de compiladores/intérpretes y simplemente intenté adaptarlo). Y ahora estoy a punto de comenzar a escribir mi propio analizador/analizador desde cero.

Personalmente, encuentro compiladores e intérpretes interesantes. Puede utilizarlos, o sus componentes como un inicio de otras ideas de proyecto si así lo desea. Además, puedes jugar con ellos en cualquier idioma de tu elección, por lo que puede que no sea un mal proyecto si quieres aprender o usar un nuevo idioma y no estás seguro de en qué enfocarte para hacerlo.

1

Siempre me ha gustado escribir un pequeño simulador de la física o el grupo electrógeno mandlebrot/Julia canónica (extensiones paralelas a nadie :)

4

Busco un proyecto personal. Uno de los que "todo programador" * hace.

¿Qué le parece escribir su propio intérprete de lenguaje de scripting? Eso es algo muy común de hacer, que generalmente no solo es una experiencia altamente educativa, sino también divertida e interesante.

Una vez que haya terminado con algo que funciona, comenzará a pensar de manera completamente diferente sobre la programación, ¡esto cambiará su forma de pensar!

Cuestiones relacionadas