¿Son suficientes los tutoriales del codificador superior de la estructura de datos y los algoritmos para obtener una base sólida en la programación?

Depende Encuentro que el tutorial del codificador superior es excelente y me he referido a muchos tutoriales para aprender lo básico. Sin embargo, a menudo encuentro personas (especialmente principiantes) que luchan con los tutoriales de TopCoder.

TopCoder es una plataforma de programación competitiva y la mayoría de los tutoriales tienen incentivos de rendimiento, es decir, los tutoriales tienden a analizar las mejores prácticas que conducen a la solución más rápida. Tomaré un ejemplo simple aquí. Considere este tutorial sobre Recurrencias lineales – Artículos destacados de TopCoder. Este es realmente un gran artículo. Sin embargo, es demasiado para un principiante. El tutorial discute un método para calcular el enésimo término de una secuencia recursiva linealmente usando la multiplicación de matrices. El punto importante aquí es comprender cómo funciona la relación de recurrencia, pero el tutorial analiza trucos basados ​​en gcc y métodos de exponenciación rápida que dificultan que un principiante comprenda la esencia del concepto.

Los tutoriales de TopCoder generalmente no tienen un código de muestra y una explicación función por función (y flujo) del programa adjunto. Esto es ideal para las personas que solo necesitan obtener una visión general, pero cuando aprenden conceptos básicos, este no es un método recomendado. La mayoría de estos artículos también asumen que el lector conoce las matemáticas requeridas, lo que no siempre es cierto.

Los tutoriales de TopCoder están optimizados para programadores competitivos. Si no eres un programador competitivo, entonces no es para ti. Hay muy pocos artículos destinados a programadores competitivos de nivel principiante o programadores no competitivos.

Para construir una base sólida, lea libros como CLRS.

More Interesting

¿Cómo obtenemos el número total de formas de la disposición de n cosas distintas en n lugares correspondientes donde ningún elemento está colocado correctamente?

¿Cuál es la forma más rápida de encontrar divisores de enteros grandes?

¿Cómo Thomas Cormen y sus coautores generaron el índice para su libro clásico de algoritmos?

¿Cómo funcionan los algoritmos y la estructura de datos cuando procesamos cualquier solicitud en un sitio web?

¿Dejarías que los algoritmos se intercambiaran por ti cuando estés en el trabajo?

¿Puede un programa escribir un programa (es decir, el programa x puede identificar un algoritmo para escribir el programa y, a pesar del algoritmo z)?

¿Cómo podemos implementar el algoritmo de Prim rápidamente en los concursos de programación?

¿Cuál es la relación entre la complejidad del algoritmo y la complejidad del software?

Visión por computadora: ¿cuáles son los documentos de lectura obligatoria para el algoritmo de seguimiento de objetos?

¿Existe alguna noción del algoritmo más eficiente posible para alguna tarea?

¿Por qué no se acepta mi solución para SPOJ.com - JUEGOS de problemas?

¿Qué significa la subestructura óptima en términos simples?

¿Cuáles son los actos que se consideran hacer trampa durante un desafío de contratación en Interviewstreet?

¿Por qué la mayoría de las entrevistas de empresas basadas en productos están obsesionadas con los algoritmos en lugar de las habilidades reales de resolución de problemas?

¿Qué es la recurrencia en análisis de diseño y algoritmos?