Sugerencias de proyectos de bricolaje para mejorar las habilidades de programación o aprender un nuevo idioma [cerrado]

10

Dado que la mejor manera de aprender es trabajar en proyectos, ¿cuáles son algunos buenos programas para intentar hacerse con el propósito de mejorar ciertas habilidades de programación o aprender un nuevo idioma?

zhenka
fuente
3
Clonar este sitio.

Respuestas:

11

Encontré que los siguientes programas dan un buen comienzo con nuevos idiomas:

El juego de la vida de Conway

Fácil de implementar. Le da un buen comienzo con el uso simple de clases de contenedor. No necesariamente necesita gráficos para la salida de resultados.

Además, podría escribir una versión en 3D y usar un motor de juego para la salida (por ejemplo, algo simple como Panda3D)

Solucionador de Sudoku

Ligeramente más complejo. La complejidad se puede ajustar a sus necesidades. O simplemente cancele los números y pare cuando ya no sea posible, o continúe e implemente un árbol de búsqueda para resolver problemas más complejos. Los problemas y soluciones para Sudokus en todos los niveles de dificultad para probar su programa están disponibles en la web en abundancia. Lo mismo para el material sobre posibles estrategias.

Proyecto euler

Problemas en todos los niveles de dificultad que pueda desear. Y compare sus soluciones con las de programadores experimentados en todos los lenguajes de programación principales.

Thorsten Müller
fuente
Puedes intentar implementar el Juego de la Vida en varias plataformas. Lo hice en lienzo HTML5 / Javascript. Fue increíble!
mauris
5

No estoy seguro de lo que quieres decir con "¿cuáles son algunos buenos programas para probar ...", pero puedo recomendar el libro "siete idiomas en siete semanas"

Te da un buen punto de partida para probar nuevos idiomas.

Michiel Overeem
fuente
Acabo de recibir este libro, y la resolución de mi año nuevo es seguirlo.
Tangurena
5

Simplemente inicie sesión en cualquiera de los siguientes sitios y vea si está a la altura de los desafíos de codificación que presentan: SPOJ , TOPCODER , etc.

La mayoría de estos sitios le proporcionaron la opción de codificar en múltiples lenguajes de programación para que pueda usar el que está más familiarizado.

Y si eres un maestro en tu juego, siempre hay ICPC .

Fanático23
fuente
3

Diría que cualquier proyecto que cumpla con los siguientes tres requisitos:

  • Algo que te parezca interesante
  • Algo donde puedes tener una sensación de progreso muy rápido (por ejemplo, intenta evitar algo como crear un juego en 3D)
  • Algo que se ajusta al paradigma de programación de ese lenguaje. Por ejemplo, si es un lenguaje funcional, entonces un proyecto en el que haría alguna manipulación de datos, matemáticas o algo así.
Pete
fuente
2
Tu primer punto es la clave. Si no está interesado en el proyecto, será más difícil mantener el progreso y el entusiasmo que necesita para poder aprender.
ChrisF
2
  • Vaya a Sourceforge.net o GitHub, busque proyectos en ese idioma y vea cuáles le intrigan.
  • Piense en las bibliotecas con las que trabaja con más frecuencia en la "vida real". ¿Escribes muchos servicios web? Intente escribir un marco de servicios web para el nuevo lenguaje. ¿Mucha programación gráfica? Intenta escribir un motor de renderizado simple. ¿Análisis de datos? Implemente un paquete de estadísticas básicas. Etc., etc. Esto tiene el beneficio de que ya verá la utilidad (porque usa algo similar en el día a día) y ya tendrá algunos conocimientos de dominio. Este tipo de proyectos también tienden a ser aquellos en los que puede pasar una cantidad infinita de tiempo retocando (es decir, aprendiendo más cosas), de los que quizás desee abrir código fuente eventualmente, y que lo mantendrán involucrado en el lenguaje si se convierten en un hobby en curso; La desventaja de esto es que nunca puede sentirse realmente "terminado", y eso '
  • Dependiendo del dominio de desarrollo, puede haber libros diseñados específicamente para guiarlo a través de proyectos. Esto tiende a ser especialmente cierto para las plataformas de desarrollo de juegos (iOS, XNA).
Arkaaito
fuente
1

Para principiantes

Manipulación de cuerdas:

  • Juego del ahorcado.

Base de datos:

  • lista de quehaceres
  • algún tipo de entrenamiento o diario personal

Manipulación de números aleatorios:

  • Gira la rueda

Matriz y Gráficos Básicos

  • Tetris
zhenka
fuente
1

Cualquier cosa que te guste lo suficiente como para seguir haciendo. La mayor parte del aprendizaje se realiza en ese último 1% que generalmente se ignora en un proyecto paralelo, pero es una parte muy importante de un producto de trabajo.

Como resultado, es una elección muy personal lo que podría ser el proyecto. Es por eso que hay tantos grandes proyectos de SO por ahí, y por qué todos dicen que importan tanto cuando están en su currículum vitae: esa persona trabajó duro en eso y aprendió mucho trabajando en ese último 1% para hacer Puede ser utilizado por otros y disfruta de lo que hacen.

Steven Evers
fuente