2010-06-09 9 views
41

en el lugar de trabajo, el trabajo que hago casi no es desafiante y al hacerlo creo que podría estar perdiendo las habilidades para ver un problema completamente nuevo y pensar en diferentes ideas para resolverlo.cómo comenzar con TopCoder para actualizar/desarrollar habilidades de algoritmo?

Un amigo me recomendó TopCoder.com, pero al ver la abrumadora cantidad de problemas no puedo decidir cómo comenzar.

lo que quiero es afinar mis técnicas (no un lenguaje particular o marco).

Respuesta

17

La única manera de empezar sería para recoger problemas. La División I es la división más difícil, por lo que probablemente descubras que la división I será difícil y desafiante (a menos que seas bastante inteligente).

Si revisas el calendario de eventos, puedes ver qué Las rondas de competencia de algoritmo están apareciendo en su zona horaria. Las competiciones tienen la virtud adicional de obligarte a leer y analizar el código de otras personas en la fase de desafío, por lo que incluso si tan pronto practicas sin un reloj, puede que te resulten interesantes.

+6

cómo debería tratar con la frustración cuando comienzo a culpar a mí mismo por no ser lo suficientemente inteligente como para ver la solución de problemas difíciles? (¿Es la práctica la clave para la comprensión y la inteligencia? o su habilidad que algunas personas tienen y otras no "lo que estoy preguntando es, ¿puede desarrollarse ?, me considero promedio en habilidades matemáticas (tal vez menos)") –

+12

Es totalmente práctica y puede ser completamente desarrollado. Existen estrategias generales (formas de atacar y aclarar problemas donde no está claro cómo comenzar) y específicas (ideas algorítmicas fundamentales como programación dinámica, BFS y DFS, flujo en gráficos) que aprenderá que cambian estos problemas de intratable a comprensible. TC tiene una gran sección de tutoriales, escrita por los principales codificadores de arena, que casi definitivamente ayudará: http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index Si es una habilidad importante para ti, solo sigue trabajando en y tu progresarás – mquander

+2

Muchas gracias por su tiempo y maravilloso consejo :). En verdad lo aprecio. –

3

Probar con http://projecteuler.net La dificultad de los problemas puede ser asumida por el número de solucionadores.

prefiero esta página, ya que es invariante lenguaje y los problemas son realmente un reto

12

Concursos de algoritmos TopCoder son una forma de desarrollar su velocidad de codificación. Resolver cualquiera de los problemas en el campo de práctica es difícil a menos que ya tenga conocimiento de varios algoritmos.

Los problemas en Project Euler adolecen del mismo defecto. Ya debe conocer los algoritmos para resolver los problemas en un marco de tiempo razonable.

Lo que yo sugeriría es elegir un proyecto que le interese y continuarlo mientras tenga tiempo. Como ejemplo, actualmente estoy aprendiendo cómo trabajar con los mosaicos open street map en una plataforma de cliente enriquecido Eclipse.

+2

Claramente, las estrategias para resolver problemas varían y "mucho" es subjetivo, pero me gustaría ofrecer una opinión opuesta aquí: he realizado bastantes problemas del Proyecto Euler, y rara vez requieren mucho conocimiento algorítmico preexistente . La mitad más fácil de los problemas en TopCoder también asume bastante poco conocimiento previo. – mquander

Cuestiones relacionadas