Mejor respuesta
Petr es mi antiguo alumno del mismo año en el Departamento de Matemáticas de la Universidad Estatal de Moscú. Fue algo así como un entrenador personal para mí después de sus dos finales de ACM ICPC cuando su carrera en ACM terminó formalmente. También trabajamos juntos durante 2 años en la oficina de Google en Moscú, y alquilamos un piso juntos durante esos 2 años, así que lo conozco relativamente bien.
Definitivamente apoyaría el punto de Aditya «s respuesta sobre su humildad. Petr es muy modesto, y en realidad no le gusta toda esta superpopularidad con la página de Facebook creada sobre él, etc. Es muy educado y nunca presume de ninguna manera. Nadie en el la programación competitiva puede pasar sin estas conversaciones basura como «(codificador amarillo) – Oh, soy un tonto: tuve que volver a enviar mis 250 puntos. (codificador rojo) – Oh, soy un tonto: he arreglado mi en 30 segundos después del final de la fase de codificación. (Petr) – Oh, soy un tonto: «me perdí 2 desafíos válidos en el problema fácil en mi habitación», dicho esto después de que él resolvió los tres y ganó un SRM o quizás ocupar el segundo lugar. Esto podría parecer una burla desde un lado, pero en realidad es solo un análisis sincero de los errores de uno mismo durante la ronda. Es solo que los errores están actualmente en niveles muy diferentes para esas personas.
Definitivamente puedo oponer a Petr como ganador de todos los concursos de programación imaginables a muchos ganadores respectivos de todos los concursos matemáticos imaginables en el sentido de que puede ser una persona mucho más sociable, es fácil comunicarse con él y definitivamente no es una persona súper nerd que esperarías después de conocer «matemáticos extraños», viendo algunas películas de Hollywood o simplemente recordando a tu compañero nerd. Todavía no es un portavoz o algo así, pero es un tipo completamente normal para un extraño.
Petr es muy bueno en juegos de mesa estratégicos. Nos gustaba jugar a Settlers of Catan y probablemente jugamos varios cientos de veces, y él fue el ganador alrededor de 2/3 de las veces, lo cual es impresionante dado un juego de 3-4 jugadores y oponentes bastante sofisticados. También jugamos «ajedrez sueco» (en realidad «bughouse» en inglés, pero el bughouse tiene reglas ligeramente diferentes), «Carcasson», «Ticket to Ride» y otros. Es mucho más factible vencer a Petr en uno de estos que vencerlo en un concurso de programación, pero es difícil.
Petr es uno de los programadores competitivos con un pensamiento matemático realmente sólido. Hay diferentes paradigmas en el mundo de ACM, incluido «Se aceptó ==> el algoritmo es correcto», pero parece que Petr casi nunca presenta una solución sin tener una prueba rigurosa, incluso cuando una buena intuición matemática es suficiente y la prueba es difícil. discutir es un rasgo necesario para un competidor importante, ya que lo peor que puedes hacer en el concurso es implementar una solución incorrecta.
Petr es (obviamente) muy bueno en la resolución algorítmica de problemas. Mientras yo puedo ( o al menos podría) vencerlo en los problemas específicos de las olimpíadas matemáticas, solo hay ciertas clases de problemas algorítmicos que a veces podría resolver teóricamente más rápido que él, y en el caso general es mucho más rápido. Tiene un superdesarrollado intuición en el área: lo mismo que distingue Él es el ganador de las olimpíadas matemáticas, pero se aplica a problemas algorítmicos en lugar de a los problemas matemáticos habituales. Así que incluso si eres muy bueno codificando, escribiendo código libre de errores y depurando, tan pronto como los problemas sean lo suficientemente difíciles, aún te ganará debido a la velocidad en la resolución de problemas teóricos. Debido a su sólida formación matemática, no es intimidado por problemas no estándar, que son raros en las competiciones en mi humilde opinión, pero los más complejos son siempre no estándar. A Petr le gustan los problemas que se pueden expresar en 1-2 oraciones simples pero que son muy difíciles de resolver.
Lo único que distingue a Petr de otros competidores, además de la resolución muy rápida de problemas a nivel matemático, es la profundidad de comprensión de su algoritmo y sus programas. Es difícil de explicar, pero es la razón principal o no comete un error o lo encuentra en un orden de magnitud más rápido que otros competidores importantes. Realmente no tiene que hacer una depuración paso a paso en absoluto: es obvio para él con solo leer el código dónde está el error, o puede hacer un código de depuración «Ejecutar en esta línea», mire los valores de varias variables predefinidas en ese punto, incluidas matrices, conjuntos y matrices, y encontrar el error en ese momento sin dar un paso más. Cualquier depuración más que eso parece muy, muy raro, y la clave es que él entiende qué invariantes deben contener en cualquier momento del programa y detecta las perturbaciones, y luego de alguna manera sabe muy rápidamente en qué parte del código se podrían violar estas invariantes.
Petr siempre escribe un código muy limpio y comprensible. Nunca tendió a escribir código más corto, pero siempre legible.Por cierto, ayuda mucho para escribir código libre de errores inicialmente y depurar ultrarrápidamente en la programación competitiva, que no es una estrategia tan obvia como para la programación industrial.
Obviamente, es muy bueno a la concentración, muy atento y muy bueno en enumerar rigurosamente todos los casos posibles en los problemas donde es necesario.
Una cosa que podría sorprenderte es que nunca dedicó demasiado tiempo a entrenar en programación competitiva. Quiero decir, obviamente un niño que comenzó a asistir a la olimpiada de toda Rusia en informática y los campos de entrenamiento a partir del sexto grado en lugar del noveno grado habitual recibió mucho entrenamiento. Pero siempre dice que prefería tener siempre y dedicar tiempo a jugar fútbol con sus amigos, etc. No sé sobre los años escolares, pero en realidad no entrenó más que participar en los concursos reales durante sus años de ACM en la universidad. . Egor y yo (@ http://www.quora.com/TopCoder/Who-is-Egor-Kulikov/) siempre estábamos en el laboratorio tratando de encontrar un nuevo concurso en Internet y participar, mientras él solo entraba a veces y se burlaba de nosotros un poco por eso: ) Entonces «apareció» TopCoder, y después de cierta renuencia a unirse («¿Por qué lo haría? Tomek me ganará de todos modos :)») encontró la fuente habitual de concursos que rara vez se pierde hasta ahora. Ya ni siquiera me sorprende cuando Petr gana un SRM u otra ronda personal mientras espera el embarque en el aeropuerto y tiene como 40 minutos en lugar de 75 para completar la codificación. Pero aparte de esos concursos oficiales que son muchos hoy en día pero que eran bastante escasos hace 8-10 años, no lo vi entrenar.
Una de las otras peculiaridades es la honestidad particular llevada al límite. Básicamente, percibe a Petr como un programa de computadora en lugar de un simple mortal en términos de sus palabras y hechos 🙂 Si dice algo, cumplirá su palabra, y siempre obedece las reglas existentes, desde las leyes y las reglas de competencia hasta el cruce. las luces de tráfico. Se podría decir que esto es lo que todo el mundo debería hacer, pero rara vez se puede encontrar a una persona que realmente lo haga. Y este es a menudo un modelo a seguir que utilizo para mí en contraposición a la mentalidad generalizada de «leyes blandas» que me rodean. Aunque no siempre 🙂 También puedes esperar algo de influencia sobre ti mismo por eso: él siempre te hablará en inglés si hay personas que no entienden ruso por ahí, y siempre tendrás que abrocharte el cinturón de seguridad. el auto 🙂 Incluso si estás en el asiento trasero 🙂 (que es una regla que todos deberían seguir, pero desafortunadamente no es el caso en el mundo real).
Petr también asistió a la mayoría de los cursos universitarios, lo que no es un lugar común en MSU. Ambos nos graduamos con un GPA completo de 5.0, lo cual es una rara ocasión. No sé su razón para eso, la mía fue como «por qué no sacar un 5 (una A) si es fácil». Probablemente no le sorprendería que fuera fácil estudiar para Petr, pero también incluye algunas humanidades y deportes y aún dice algo importante sobre la persona.
Petr a menudo tiene una opinión controvertida sobre algún tema. Lo que me llama la atención no es solo este hecho, es que a menudo tiene esta opinión contraria sobre un tema que consideraste tan obvio y resuelto para siempre para todos, y no es solo una opinión, sino una argumentación muy fuerte a su favor 🙂 te hace al menos reconsiderar tu actitud hacia algunas cosas comunes en las que nunca pensarías.
También parece que compartimos algo en nuestra actitud hacia la ciencia. Ambos no obtuvimos un doctorado todavía, en su mayoría porque resultó que el trabajo sobre problemas prácticos complejos en Google y Yandex (para mí) nos atrajo mucho más que los problemas matemáticos sin resolver que hemos probado, y los estudios científicos recibieron poca prioridad. Los amigos están «dando vueltas» preguntando por qué no «No hacemos nuestros doctorados, pero para mí y supongo que para Petr el certificado en sí no vale nada si no resuelvo algo realmente importante». Todavía estoy buscando «mi» tema, no estoy seguro acerca de Petr, pero creo que probablemente ambos encontraremos algunos temas publicables interesantes accidentalmente en el futuro.
Respuesta h2 >
Una noche, mientras practicaba billar en Google, un chico me preguntó si podía unirse a mí. Jugamos 3-4 juegos y él jugó impecablemente, venciéndome cada vez por un gran margen. Yo había empezado a jugar solo recientemente, por lo que no me sentí muy mal por estas aplastantes derrotas. Todo el tiempo, no habló mucho y cuando se le preguntó, se presentó como Petr y mencionó que estaba de visita desde la oficina de Moscú.
Después de eso, nos reunimos algunas veces para los juegos y una vez durante la cena. Nunca mencionó nada sobre programación o algoritmos. Era como cualquier otro Googler que había conocido, excepto que rara vez hablaba y cuando lo hacía, no se trataba de los problemas difíciles que estaba resolviendo en el trabajo.
Pocos días después, encontré este artículo http://www.technologyreview.com/news/428610/in-the-olympics-of-algorithms-a-russian-keeps/ y me quedé impresionado al saber quién era este «Petr». Estaba totalmente abrumado por su humildad.Y de repente, no me sentí tan mal perdiendo en el billar, sabiendo que hay otras cosas en las que él puede vencerme por un margen aún mayor :).