Cómo probar mi habilidad de programación

Encuentre un problema que le interese resolver. Luego ve más allá de resolverlo. Para mí, fueron juegos de rompecabezas. ¿Hay algún juego de rompecabezas para el que te gustaría conocer la solución? Para resumir, una noche, apuesto a un amigo que se sienta a cenar en Cracker Barrel que podría escribir un programa para encontrar todas las soluciones al juego de rompecabezas de clavijas solitario que estábamos jugando. Entonces lo hice. Al principio lo hice horriblemente, usando un algoritmo recursivo que tomó horas [en un laboratorio de computación de Sun in UMich] para encontrar las 146,328 soluciones [para cualquier punto de partida]. Luego me senté y apliqué algunos conocimientos de estructura de datos y algunas observaciones sobre el juego a la solución, y descubrí que podía representar el conjunto completo de soluciones como un conjunto de contenedores, siendo el contenedor superior “14 piezas en el tablero”, y el contenedor inferior es “una pieza en el tablero”. Las piezas se pueden representar por 1 bit, ya que están allí o no. Los movimientos pueden ser representados por XOR de bits particulares. Luego, el problema se reduce a recorrer cada uno de los contenedores de arriba a abajo, aplicando todos los movimientos posibles a todas las configuraciones de tablero [el contenedor superior se siembra con las posibles posiciones iniciales del juego] e insertando nuevos tableros en el contenedor de abajo si Todavía no se han encontrado.

Me divertí mucho con eso. Luego fui más allá del solucionador e implementé el juego en sí. Con los años he usado el juego para aprender Java, luego MFC. Ahora estoy al punto de poder aprender un nuevo lenguaje o paradigma del kit de herramientas de interfaz de usuario sin la muleta del juego de rompecabezas, pero aún así sería un ejercicio divertido para mí implementarlo en otros idiomas para aprenderlos, o, como en mi pregunta, para encontrar nuevos juegos de rompecabezas con solucionadores para implementar en cualquier idioma.

Related Content

Yo uso Exercism.io: Mentoría de código de fuentes múltiples.

Además, HackerRank es un buen lugar tanto para principiantes como para mediors y seniors.

El último sería Fuente, Evaluar, Entrevistar y Contratar a los mejores Programadores con Codilidad. También es el más difícil, ya que está dirigido a desarrolladores profesionales.

Buena suerte.

Construye algo que puedas enviar.

Hay una gran diferencia entre simplemente hacer ejercicios de programación o aprender conceptos, y en realidad construir algo de principio a fin.

No tiene que ser una aplicación o un sitio web, podría ser una pequeña biblioteca que puede abrir código fuente. Pero constrúyalo de manera que otras personas puedan usarlo. Recomiendo hacer algo pequeño, solo para asegurarse de que realmente pueda terminarlo y no darse por vencido a la mitad.

¿La mejor manera?

Intenta hacer algo ambicioso con una variedad de características y requisitos, como un juego.

Lo que esto hará es forzarlo a pensar en el diseño antes de la implementación, que es la clave para convertirse en un mejor programador.

Puede intentar resolver problemas en algún sitio como Codewars: entrene sus habilidades de codificación y vea qué tan bien lo hace.

Para ponerte a prueba, únete a codechef

More Interesting