¿Por qué los finalistas de Topcoder no comparten su experiencia en los tutoriales de YouTube para principiantes? Cualquier principiante agradecería la ayuda para desarrollar sus habilidades para resolver problemas.

El truco es: lo que describiste en los detalles de las preguntas en realidad no tiene mucho sentido.

Correcto, tener video tutoriales suena genial. Como otras personas señalaron en sus respuestas, requiere mucho tiempo y esfuerzo preparar este video. Lo que es más importante: en realidad deberías descubrir qué contar en este video. Soy rojo en TopCoder / Codeforces, tengo experiencia en el proceso de transmisión de resolución de problemas de programación competitiva / grabación de screencasts durante concursos, así como conferencias / enseñanza, pero si me pides que empiece a preparar tutoriales de YouTube, encontraré es muy desafiante debido a esta razón en primer lugar: no tengo idea de qué hacer para que sea útil.

El screencasting es natural y puede ser útil enseñarle algunas cosas sobre estrategia, etc .; la transmisión también está más o menos bien y puede brindarle información útil sobre el proceso general de resolución de problemas. Tutoriales de YouTube? .. Veo un punto en él, pero es muy diferente de lo que mencionaste en los detalles de la pregunta. Sí, hay matemáticas, estructuras de datos, algoritmos … ¿Y qué? Tienes Google hoy en día. Tiene todos estos algoritmos disponibles, con una explicación formal, muy probablemente con varias explicaciones diferentes de diferentes personas, con todas las implementaciones disponibles y todo lo demás. Realmente no necesita que otra persona haga un video que lo explique, a menos que no sepa cómo usar Google. No veo ningún punto en mí tratando de escribir un video con otra explicación del algoritmo de Dijkstra. Para algunas ideas raramente utilizadas / inventadas recientemente, es cierto que no puede encontrarlas fácilmente, pero normalmente no las necesita a menos que sea un competidor rojo estable.

Creo que solo hay un número muy pequeño de personas que tienen tiempo para preparar tales videos y tienen qué decir / saber cómo decirlo (es decir, tienen un enfoque estructurado para compartir conocimientos) , por lo que no sorprende que no encontremos un Muchas de esas cosas.

Tengo experiencia en conferencias en vivo: la preparación para una sola conferencia generalmente toma mucho más tiempo que la conferencia en sí misma, en caso de que desee que tenga una alta calidad; También tengo experiencia en la enseñanza de lecciones en vivo / por Skype. Suena mucho más útil que simplemente escribir un video porque tiene comentarios y ve cómo proceder. Si el estudiante no puede comprender la idea tan rápido, debe reducir la velocidad. abajo; Si alguna parte no está clara, puede centrarse en este detalle / paso en particular, y así sucesivamente.

En resumen:

  1. No es que los codificadores rojos no te den una oportunidad, es tu pereza / buscar atajos en primer lugar.
  2. En caso de que algún codificador rojo aleatorio prepare tales videos y los comparta con usted, lo más probable es que no tenga un efecto tremendo en su preparación.

Primero, crear cualquier tipo de tutorial requiere mucho trabajo: lo he intentado 🙂 Crear un tutorial de YouTube requiere aún más trabajo, no solo tienes que preparar el material y explicarlo, ¡sino que también debes hacerlo en video! Y hay muy pocos beneficios al explicar los algoritmos de nivel principiante en video en lugar de un buen tutorial escrito. Y ya hay un montón de buen material escrito sobre temas para principiantes.

En segundo lugar, las personas tienden a ser voluntarias para hacer cosas que les interesa hacer. Los finalistas de la competencia tienen muy poco interés en explicar cosas básicas, mientras que podrían estar interesados ​​en discutir problemas más avanzados (como suelen hacer después de una competencia).

Finalmente, nadie te debe una oportunidad. ¿Quieres ser como los finalistas? ¡No esperes a que te den una oportunidad, crea una tú mismo! Si alguien te preguntara por qué nunca has estado en ninguna final, ¿realmente responderías “Oh, ya sabes, lo tuve de la manera difícil, no pude hacer que Petr me explicara las cosas”?

Hacer un tutorial de Youtube es muy difícil, mucho más difícil que enseñarle a alguien directamente o hacer un tutorial de texto. También es menos útil para el espectador que un tutorial de texto.

Un experto no podrá pensar como un principiante la mayor parte del tiempo. Hay muchas cosas pequeñas pero importantes que los dejaron perplejos cuando estaban aprendiendo, pero una vez que hayan resuelto ese problema y otros cien pequeños, incluso el recuerdo del obstáculo los habría dejado. Al hacer una solución a un problema, encontrarían la forma más fluida y clara para ellos mismos, pero ni siquiera recordarían los pequeños pasos que serían extremadamente difíciles para los alumnos a menos que enseñen lo mismo a las personas.

Había escrito una respuesta de Quora sobre un algoritmo, y alguien comentó preguntando por qué hice algo específico: por qué hacer algo de esta manera en lugar de esa (obvia). Resulta que esto era algo que solía hacerme perder mucho tiempo y me daba pesadillas y me obligaba a usar trucos sucios. Más tarde, cuando aprendí la forma correcta, lo internalicé después de usarlo muchas veces, y comenzó a ser obvio para mí. Cuando escribí la respuesta, ni siquiera recordaba que era algo complicado. Estas cosas hacen que las personas que siguen sus tutoriales se atasquen, y es difícil superar esta etapa sin comentarios.

Cuando estoy enseñando a alguien, pueden detenerme de inmediato cuando algo no está claro. Puedo responder a su consulta específica y seguir con la explicación. Si escribo algo y alguien señala que una sección no está clara, puedo editar esa parte para que los futuros estudiantes no se queden atrapados allí. Ambos mecanismos de retroalimentación no existen para los videos tutoriales. Una vez que hago un video, no se puede editar. Esto les hace demasiado trabajo por muy poca recompensa. Leería un tutorial de texto sobre un video tutorial cualquier día.

Otro punto es que desea aprender de los mejores maestros, no de los mejores programadores. Las habilidades requeridas para los dos son bastante ortogonales. Incluso en el deporte, ¿cuántas veces hemos visto a jugadores increíbles convertirse en fracasos absolutos como entrenadores y “nobodies” llevando a los equipos a las alturas deportivas? Hay muchos programadores competitivos en la parte superior de su juego que enseñan a las personas de la manera que les gusta; incluso en Quora, tenemos usuarios como Brian Bi, Michal Danilák, Michal Forišek, Mariya Mykhailova, Miguel Oliveira y muchos otros que dan muy buenos consejos competitivos y comparten su experiencia, que debería darte más que una oportunidad de desarrollar tus habilidades.

Tomé este camino y compartí y sigo compartiendo gran parte de mi experiencia. Sin embargo, tomé la decisión temprana de hacer que mi canal fuera árabe (texto en inglés – habla árabe), debido a los pocos materiales árabes: programación competitiva en árabe. Como pdf / ppt están en inglés, muchos no árabes aún pueden obtener un beneficio parcial del canal. Puede ser en el futuro puedo proporcionar subtítulos.


Entonces, ¿por qué la gente no comparte su experiencia?

– Razón principal en mi opinión, falta de deseo de hacer eso. Además, esto tomará demasiado tiempo de usted. Una vez para determinar qué decir. Escribelo. Grabar video para ello. Esto lleva demasiado tiempo del que imaginas 🙂

– Puede que no recuerdes mucho de esta experiencia y notas, aunque puedes recordarlas durante la resolución. Para mí, solía tomar muchas notas durante mi entrenamiento. Entonces puedo organizarlos en videos completos.

– Ya compartiste durante varios años en competiciones, y puede ser el momento adecuado para comenzar a hacer cosas nuevas e interesantes. Así que simplemente deja de compartir en la programación competitiva (o hace poco apoyo)

– Muchos hacen otros tipos de apoyo, como la fijación de problemas o la evaluación. Entonces sienten que estamos haciendo un favor a la comunidad.


De todos modos, hay suficientes materiales en la web (problemas, sus editoriales, …) para que pueda construir esta experiencia usted mismo. Solo te tomará mucho tiempo construir una experiencia similar a la de ellos.

Hay muchas razones diferentes por las que este no ha sido el caso.

Permítame comenzar con una analogía: lo que está preguntando es similar a pedirle a Donald Knuth que enseñe a los estudiantes de primaria cómo sumar A + B.

Knuth es uno de los científicos informáticos más destacados, seguramente dominó la aritmética básica. Sin embargo, ¿sería capaz de recordar cuáles fueron las dificultades que enfrentó cuando comenzó a aprender estos temas y encontrar una forma clara de explicar esto a los niños? Probablemente no, al menos sin mucha preparación.

No me malinterpreten, creo que a muchos programadores competitivos les gusta compartir ideas y discutir con frecuencia diferentes enfoques para problemas desafiantes en Codeforces (hace algunos años estaba en TopCoder).

Estas personas tienen mucha experiencia. Saben que las preguntas más frecuentes para principiantes ya se hicieron y respondieron cientos de veces. Hay docenas de páginas con buenos consejos para principiantes. Naturalmente, hay poca motivación para responder la misma pregunta una vez más.

Escribir un buen tutorial / grabar un video requiere mucho tiempo. No hay mucho valor en pasar este tiempo haciendo algo que ya se hizo en múltiples ocasiones.

A menudo, los principiantes solo necesitan estudiar mejor sus materiales / libros de clase. No debes apuntar tan alto al principio. Por lo general, las preguntas de los concursantes grises / verdes son bien respondidas por las azules. De azul por amarillo. De amarillo por rojo.

Mira pasos más enfocados y subirás toda la escalera.

Entiendo completamente de dónde vienes. Después de pasar horas en contenido teórico a través de Harvard CS50 y MIT 600.1x, mi mayor brecha fue que no sabía cómo resolver varios desafíos de microprogramación; en otras palabras, necesitaba una práctica más deliberada y menos teoría por ahora.

Descubrí que hacer tutoriales en My Code School fue muy útil, luego resolví los problemas en el sitio de My Code School antes de pasar a Hacker Rank para abordar desafíos más diversos de programación fácil / media. La ‘práctica deliberada’ en esta forma fue mucho más efectiva que escuchar a un profesor decirme cómo funcionan las estructuras de datos, antes de verse abrumado por un oscuro conjunto de problemas.

Cuando llegue el momento de volver a Comp Sci (no es el oficio de la programación), visitaré nuevamente a mis increíbles profesores en la web.

Si mi suposición sobre su pregunta es que necesita resolver un problema de novato, en lugar de tener curiosidad sobre los hábitos de los programadores más competitivos, creo que podría ser útil volver a enmarcar su pregunta a: ‘¿Cómo pueden usar los novatos? programación competitiva para mejorar en la resolución de microproblemas (no comp Sci), a través de la práctica deliberada y ¿dónde puedo obtener tutoriales relacionados?

En este momento, los expertos le dicen por qué no es productivo para ellos en YouTube y relajarse para usted, en lugar de resolver su problema:)

Primero, perdón por mi inglés no tan bueno. He leído esta pregunta hace unos minutos y quería darte una respuesta, aunque nunca he sido finalista y soy un principiante como tú. En parte estoy de acuerdo con todo lo que los demás han escrito. Sé que tal vez sea solo una frase, pero es cierto: “No puedes esperar a que alguien te ayude, tienes que ayudarte a ti mismo”. Los finalistas son personas que hicieron realidad sus sueños, ¿por qué deberían pensar en ti, en mí, en millones de personas que están programando? ¿Alguna vez piensas en otros que no lograron hacer las cosas que tú hiciste? Excepto que quieres ser profesor, como yo. Lea las respuestas en Quora y encontrará muchas cosas útiles. Pero es cierto que la mayoría de la gente no conoce los sitios de práctica de programación y los libros útiles y toda ayuda o consejo es bienvenido, incluso es solo “Ver ese algoritmo” o “Resolver ese problema”. Llamo a las personas que leen esto para ayudar, incluso si está por debajo de su nivel. Si imaginamos un mundo en el que nadie quiere ayudar a nadie o compartir su conocimiento o experiencia, (no creo que deba hacer todo el trabajo por alguien, solo dar algunas instrucciones) ¿qué tipo de mundo sería ese?