2009-12-29 13 views
9

Me gustaría probar mi nivel de habilidad de programación en C++ compitiendo con otros. ¿Qué concursos de programación hay para C++?C++ Concursos de programación

+10

Si quieres poner a prueba su nivel de habilidad C++, intente impulso fuente-salto :). –

Respuesta

13

Los concursos no lo ayudarán a aprender las esquinas oscuras de un idioma. La mayoría de ellos son acerca de la velocidad y solo puede alcanzar la velocidad si reduce el uso de un idioma a un mínimo estable absoluto. No quiere pasar horas tratando de descubrir por qué sus plantillas inteligentes no pudieron compilarse, no desea escribir código legible y comprensible, ya que lo hace más lento, no desea probarlo, solo desea para hacerlo con la mayor rapidez posible.

Si su objetivo es aprender un idioma, los concursos son una manera completamente equivocada de hacerlo.

Lea las fuentes de boost y STL, intente copiar y modificar parte del código de ellas, eso es una buena manera.

+4

Problema leve: las implementaciones boost y STL (pero realmente quieres decir stdlib, ¿verdad?) Tienen restricciones especiales que no están presentes cuando * tú * escribes un programa o aplicación. La biblioteca estándar solo debe usar ciertos identificadores, y al menos un proveedor que he visto envió una stdlib deliberadamente ofuscada. Boost debe cumplir con una amplia variedad de compiladores, muchos de los cuales un desarrollador nunca verá. Lo mismo se aplica a los marcos que mantienen la compatibilidad con versiones anteriores; no es necesario en los proyectos nuevos. (OTGH, si está escribiendo una biblioteca que debe funcionar con * 40 compiladores diferentes *, copie Boost). –

+0

Es bueno saber que los trucos que Boost usa de todos modos, podrían ser útiles algún día. Comprenderlos es un buen ejercicio. Y rara vez puedes entender el truco sin desmontarlo, lo que significa copiarlo y modificarlo hasta que se rompa :) – vava

+3

"Los concursos no te ayudarán a aprender los rincones oscuros de un idioma". Gracias en gran parte al IOCCC, sé más sobre los rincones oscuros del lenguaje C de lo que cualquier persona en su sano juicio podría saber. Se pone oscuro allí. Oh tan oscuro. –

6

No tiene mucho sentido probar el nivel de habilidad de C++, ya que en última instancia no se trata de pensar, sino ser muy simple, o conocer los pequeños inconvenientes en las diferencias entre las implementaciones del compilador o las fallas en el estándar.

Para probar el conocimiento sobre C++, la forma más fácil es involucrarse en algún proyecto hardcore de C++ como boost o C++0x standard development.

Para poner a prueba tus habilidades y conocimiento algorítmico en general, como programador inteligente, debes probar concursos como el ACM programming contest o el TopCoder.

+0

+1 para concursos como TopCoder que prueba tu conocimiento algorítmico (en lugar de simplemente probar "habilidad en C++"). –

+0

Gracias, mi inglés no es lo suficientemente bueno, y no pude encontrar una palabra adecuada para "pensar en programación", así que si me disculpan, lo editaré desvergonzadamente en:> –

8

hay algunas:

  1. Topcoder probablemente es mejor para usted. Tiene concursos de programación algorítmica muy a menudo, los competidores allí son de clase mundial. También tiene una programación de componentes de propósito general, p. diseñando/implementando una biblioteca de procesamiento XML, etc. Topcoder otorga dinero a los mejores concursantes. ¡Lo mejor de lo mejor, puedes ver el código fuente de otros!

  2. Sphere Online Judge. y muchos otros: acm.timurs.ru, acm.uva.es, etc. acm.pku.edu.cn Estos son sólo para entrenamiento de habilidades algorítmicas. Usted puede tener un montón de diversión allí :)

1

UVa Online Judge tiene un montón de concursos en funcionamiento durante todo el año y tienen una gran base de usuarios para la buena competencia. Los concursos de "World Finals Warmup" se realizarán en enero. El sitio también tiene casi 3 000 problemas que resolver, muy divertidos y muy desafiantes.

3

Puede pasar la prueba C++ en brainbench.com, por ejemplo. Algún tipo de concurso también ...

2

Me pregunto, que nadie mencionó Codechef. Como ya se dijo, una competencia de codificación podría no ser la mejor manera de probar tu nivel de habilidad, pero Codechef es un caso ligeramente diferente.

Ofrecen competencias de programación mensual con múltiples asignaciones. Puede ingresar en casi cualquier idioma y tiene 1 semana de tiempo. Así que no hay prisa, pero aun así, las competiciones más bien pondrán a prueba tus habilidades de pensamiento lógico y resolución de problemas, que tu conocimiento del lenguaje C++. (Sin embargo, uno puede aprender mucho leyendo el código fuente de otras entradas.)

Sin embargo, solo puedo alentar a a todos para ingresar al menos una vez - ¡la programación es divertida! = D

2

Si sólo está en la programación C, siempre existe la sección de IOCCC