¿Cómo convertirse en un experto en programación competitiva en un año después de la universidad?

Usted mencionó que puede resolver 4 problemas en un desafío largo de Codechef y este número no ha cambiado desde su segundo año. Esta es una clara indicación del hecho de que está “atascado”. Este es un problema común entre los programadores competitivos principiantes. Probablemente, la razón principal de esto es que siempre practica problemas con los que se siente cómodo.

Para remediar esta situación, necesita practicar problemas más difíciles. Suponga que resuelve 5 problemas al día para practicar. Asegúrese de que 4 de estos 5 problemas sean desafiantes y lo obligue a aprender algún nuevo algoritmo o estructura de datos. Si sigues haciendo problemas te sientes cómodo nunca crecerás.

Por lo tanto, si desea convertirse en un experto en un año, debe dedicar mucho trabajo y, sobre todo, debe apuntar más alto . La próxima vez que practique un viejo desafío largo en Codechef, no comience con el problema más fácil. Comience con el cuarto problema y no mire hacia atrás. Si no puede encontrar una solución, lea el editorial. Si no puede entender el editorial Google, los conceptos involucrados, apréndalos e intente el problema nuevamente. Simplemente haga lo que sea necesario para obtener la marca verde .

Siga haciendo esto durante un par de meses y se encontrará mejorando rápidamente. Si haces esto durante un año sin rendirte, probablemente estarás en el top 10 de cada desafío largo.

Sí, comenzaste bien pero luego no seguiste aprendiendo más algoritmos e implementándolos. Esto es lo que debe seguir durante un año:

1. Matemáticas .
Debes ser muy bueno en matemáticas discretas, contando (combinatoria) y probabilidad. Obtenga algunos libros (por ejemplo, Knuth’s Concrete Mathematics) y revise sus conceptos. Resuelva problemas en papel, lo que le obligará a pensar y generalizar muchas situaciones que luego encontrará en problemas algorítmicos. Dedique la parte inicial del año en esto, y luego puede retomar la geometría tantas veces como haya preguntas que tengan una parte de geometría junto con algunos algoritmos estándar. No querrá perderse eso si conoce el algoritmo, pero no es tan fluido con los conceptos geométricos. Ejemplos: Cilindro, Dividir o morir, Consultas con puntos, Chef y el pastel II, Agujas y alfileres: algunos de estos problemas requieren la comprensión de algunos conceptos difíciles que puede omitir por el momento.

2. Algoritmos.
El hecho de que pueda resolver solo 3-4 problemas es que no tiene su caja de herramientas fundamental lista con algoritmos estándar. Uno puede resolver 3-4 problemas en un concurso largo de Codechef con observaciones básicas y su capacidad para transformar el pensamiento en código. Estudie algoritmos básicos de un libro de texto, o mire conferencias en video, pero estudíelos cuidadosamente, y resuelva problemas basados ​​en ellos, lea la prueba de corrección, analícelos usted mismo. Hágase preguntas como cuál es la necesidad de este algoritmo, por qué no algún otro método, etc. Una buena manera de hacerlo será estudiar CLRS, que se considera un libro muy bueno (o algún otro buen libro, por ejemplo, El manual de diseño de algoritmos) para una comprensión general de los algoritmos o ver un curso completo en línea. Recuerde que solo leer o mirar un video no ayudará a menos que realmente resuelva problemas, lo implemente por su cuenta y profundice en eso haciéndose preguntas.

3. Practica
Ser bueno en la programación competitiva significa práctica constante y siempre tratar de resolver problemas más difíciles que su nivel actual. En cada campo de la vida, si quieres mejorar, debes mantenerte fuera de la zona de confort cada vez que practiques. Sigue aumentando el nivel gradualmente. Resolver el mismo tipo de problemas demasiadas veces no ayudará. Muchas personas siguen resolviendo problemas ad hoc porque piensan que están mejorando, pero en realidad solo están mejorando, tal vez, su velocidad de escritura.

Dependiendo de cuán en serio se tome esto y cuán dedicado sea, puede ser amarillo en el período de tiempo o incluso tocar rojo si está practicando de manera inteligente. (equivalentemente, puede presumir resolver> = 8 problemas regularmente en Concursos largos de Codechef)

Pocas buenas respuestas de programadores competitivos más experimentados:

a. ¿Cómo debo practicar para estar en un nivel en el que pueda abordar los problemas Div1-500 de TopCoder con confianza? Soy un novato con cero experiencia en programación competitiva.
si. La respuesta de Pradeep George Mathias a ¿Qué se necesita para convertirse en un buen algoritmo como los mejores rankeadores en Topcoder / Spoj / GCJ?

Consulte los algoritmos básicos y comience a codificar en varios sitios web como codechef y rango de hacker que creará sus algoritmos para comprender las habilidades y luego comenzar a resolver problemas de ciertos desafíos largos. Las estructuras de datos son básicas para convertirse en un buen programador. Aprendelos perfectamente y entiéndelos. Intente hacer varias preguntas sobre esas estructuras de datos.
Haciendo
Mientras (1)
{
práctica;
}
U se convertirá en un buen programador.
Para adquirir experiencia en ello, necesita al menos 1.5-2 años.
Codechef y el rango de hacker juegan un papel importante en convertirlo en un experto en programación competitiva.

More Interesting

Soy estudiante de inglés, pero no puedo encontrar un trabajo relacionado. ¿Qué tengo que hacer?

¿Qué tipo de trabajos ofrece la maestría en economía en BITS Hyd?

¿Qué debo hacer para convertirme en un competidor de programación?

Si alguien deja TCS antes de que finalice su período de fianza para estudios superiores, ¿se cobrará el monto total de la fianza? ¿La cantidad es negociable o existe la posibilidad de obtener esta exención?

¿El ingeniero de software tiene más alcance que el ingeniero mecánico en India?

¿Cuál es la mejor manera de obtener un excelente trabajo de Netaji Subhash Engineering College?

Estoy más fresco persiguiendo mi último año de B.Tech con CSE y quiero unirme a Infosys. ¿Qué tengo que hacer?

¿Qué debo hacer si odio mi trabajo como desarrollador de software? No sé si hacer un cambio de trabajo ayudaría. ¿Qué tengo que hacer?

¿Necesito ser un IITian para ser un ingeniero exitoso?

¿Qué debo elegir si tengo una oferta de Google como ingeniero de la academia de informática y una de Amazon como ingeniero de software?

¿Alguien ha limpiado CAT mientras trabajaba en CTS TCS, etc.?

Estoy interesado en aportar innovación en el campo de la informática, por eso creo que un trabajo no me daría satisfacción. ¿Qué puedo hacer más?

Cómo elegir el mejor instituto de entrenamiento para EEI y servicios civiles en India

Si quieres convertirte en astronauta, ¿es absolutamente obligatorio tener experiencia de vuelo?

¿Qué curso tengo que elegir si quiero ser banquero?