¿Cuáles son los mejores recursos para aprender la teoría de la codificación?

Puedo apuntarte en una dirección. No será un viaje fácil o un viaje divertido y te rendirás en frustración, confusión y aburrimiento muchas veces. Los fundamentos de la programación no son fáciles ni divertidos y la razón detrás de tu motivación es lo único que te mantendrá en marcha.

Lenguaje de programación pragmática por Michael L. Scott

Este libro es muy famoso y el autor es realmente genial:

Programming Language Pragmatics por Michael L. Scott [1] y un enlace de Amazon [2]

Si solo recibe un libro, por favor obtenga este. Cubre C ++, C #, Java y más: una vez que haya terminado, puede aprender cualquier lenguaje de programación con facilidad, si ese es su objetivo final.

Fundamentos prácticos para lenguajes de programación por el profesor Harper

Yo diría que esta es una lectura obligada también, Fundamentos prácticos para lenguajes de programación por el profesor Harper [3]

Consejos y consejos

Bien, hablemos un poco más de tu motivación. Sea lo que sea, tu juego final, la razón por la que quieres hacer esto, imprímelo en una hoja grande y bonita y cuélgalo en la pared de tu habitación o en la puerta de tu garaje. Sin un tutor, se quedará estancado, frustrado y enfrentará desafíos que harán que su progreso se arrastre. Cuando esto suceda, necesitas un recordatorio de tu objetivo final, enfócate en él y tendrás energía para seguir adelante.

Metas. Colócalos y consíguelos. Realice un seguimiento de su progreso y observe cuánto ha avanzado hacia el logro de un objetivo realista que se haya fijado. No aprendas solo por saber. Pero no se preocupe si no puede terminar un proyecto que comenzó. La mayoría de los proyectos que tomas durante tu etapa de aprendizaje no se completarán debido a la falta de experiencia y te desviarás mucho.

El siguiente consejo es aprender haciendo. Implemente su propia lista de enlaces. La teoría en sí misma no vale nada, es simplemente cómo se hace algo. Sheldon y su compañero (The Big Bang Theory) tienen una avería en el automóvil y cada uno de ellos conoce a fondo cómo funciona un motor de combustión. El problema es que ninguno de ellos puede aplicar sus conocimientos teóricos a una situación del mundo real. a menos que, por supuesto, quieras ser un Sheldon y un compañero.

Por favor, no empieces con Python o PHP y ellos, porque te harán más daño que bien. Usted querrá ir a bajo nivel y aprender acerca de la administración de memoria y más en C, C ++ y similares.

Videos

No soy un afiliado de Lynda y no recibo ni un centavo por recomendarlos, pero sus cursos y videos tutoriales son increíbles.

Puede comenzar aquí Fundaciones de programación: cursos en línea, clases, capacitación, tutoriales sobre Lynda y le prometo que valdrá la pena. Al principio tendrá que navegar, marcar lo que necesitará y volver más tarde una vez que haya configurado un mapa de ruta.

Dudo en recomendar los videos de Youtube porque a veces tienden a no valer la pena, obtienes la mitad de los programadores que piensan que conocen CS y te dan BS que te harán más daño que bien. Además, encontrar una serie completa de videos es bastante difícil.

Luego tengo que mencionar StackExchange y necesitarás la comunidad. encuentre preguntas sobre los problemas que enfrenta allí y lea las respuestas relevantes, así como los comentarios. Si no puede encontrar uno, haga su propia pregunta.

Notas al pie

[1] Lenguaje de programación pragmática – Búsqueda de Google

[2] Programming Language Pragmatics, Tercera Edición: Michael L. Scott: 9780123745149: Amazon.com: Libros

[3] Fundamentos prácticos para lenguajes de programación: 9781107029576: Computer Science Books @ Amazon.com

Estoy estudiando matemáticas en la universidad, pero la teoría de la codificación no es mi especialidad y es por eso que no soy la mejor para responder. Sin embargo, le daré mis cinco centavos hasta que alguien con más conocimientos parezca dar sus recomendaciones. Mi consejo es desde EL PUNTO DE VISTA DEL ESTUDIANTE DE MATEMÁTICAS, no desde el punto de vista del estudiante de ciencias de la computación, pero puede encontrar mi respuesta útil porque estas dos están estrechamente relacionadas y especialmente si desea comprender la Teoría de la codificación detrás de las aplicaciones prácticas.

En primer lugar, es difícil encontrar recursos que no requieran ningún tipo de prerrequisitos y, por lo general, se supone que usted sabe algo sobre cálculo, álgebra lineal, álgebra abstracta (como grupos, campos, clases de residuos, etc.), teoría de los números elementales. , teoría de la probabilidad y combinatoria. Las matemáticas de la escuela secundaria son básicamente siempre necesarias.

A continuación, he tratado de hacer una lista aproximada de los libros, desde el más fácil hasta el más exigente, pero esto, por supuesto, depende de su conocimiento previo. Todos los libros le presentan las problemáticas básicas y los conceptos de la teoría de codificación, como información, entropía, codificación ruidosa, canales ruidosos, capacidad de canales, códigos lineales (códigos de Hamming, Golay y Reed-Muller), códigos cíclicos, etc.

Algunos libros de teoría de codificaciones:

Paul Garrett: Las matemáticas de la codificación

El cálculo y el álgebra lineal se asumen como requisitos previos. El libro es principalmente una introducción a las matemáticas detrás de la teoría de la codificación porque algunos aspectos del álgebra abstracta, la teoría de los números, la probabilidad y el álgebra lineal se presentan en el libro. El libro contiene también 2 capítulos sobre códigos lineales. También se presentan varios conceptos de teoría de codificación (información, codificación silenciosa y ruidosa, canales ruidosos, capacidad de canales, etc.).

Raymond Hill: Un primer curso en teoría de la codificación

Solo se requiere matemática de secundaria y aritmética matricial. Dos temas centrales en el libro son el problema de encontrar los mejores códigos y el problema de descodificar dichos códigos de manera eficiente. El enfoque principal está en los códigos de bloque para corregir errores aleatorios y los códigos de Hamming también se tratan en su propio capítulo.

Steven Roman: Introducción a la codificación y la teoría de la información

Se requieren las matemáticas de la escuela secundaria, mientras que todo el álgebra lineal necesaria y la teoría de la probabilidad se explican en el libro.

FJ MacWilliams y NJA Sloane: la teoría de los códigos de corrección de errores

Tratamiento muy extenso de la teoría de la codificación y contiene 1500 referencias. Leer todo el libro es exigente, pero según los autores, los principiantes con suficiente conocimiento matemático también pueden usar el libro si leen solo los capítulos más elementales.

RJ McEliece: La teoría de la información y la codificación: Edición para estudiantes

Probabilidad y álgebra lineal requerida.

Henk CA van Tilborg: Un primer curso en teoría de la codificación

Álgebra lineal y teoría de probabilidad elemental requerida. Además de estos, se requiere la teoría de los campos finitos y la teoría de los números elementales, pero hay un apéndice que contiene los requisitos previos necesarios sobre la teoría de los campos finitos y la teoría de los números elementales.

Steven Roman: Codificación y teoría de la información

Una introducción más completa que el libro anterior de Roman, pero requiere más requisitos matemáticos (teoría de la probabilidad, álgebra lineal y álgebra abstracta).

JH van Lint: Introducción a la teoría de la codificación

Se requieren álgebra abstracta, álgebra lineal, teoría elemental de números, teoría de probabilidades y combinatoria.

TM Cover y JA Thomas: Elementos de la teoría de la información

Un tipo diferente de libro con una mezcla de teoría de la información, matemáticas, física y estadística. El libro es exigente y requiere muchos requisitos previos y por eso creo que no es adecuado como libro introductorio. Sin embargo, parece contener varios pasajes que pueden aclarar algunos conceptos de la teoría de la codificación.

No tengo el conocimiento suficiente para decir qué libros son los mejores, pero los libros anteriores son ampliamente utilizados y conocidos.

Es posible que deba consultar varios libros de referencia estándar sobre los campos matemáticos respectivos para leer uno o más de estos libros.

Le recomiendo que eche un vistazo a los libros en las bibliotecas (algunos de los libros están disponibles en formato PDF al hacer una búsqueda rápida en Google) antes de comprar cualquier cosa para evaluar qué libros se adaptan mejor a su estilo de aprendizaje y sus antecedentes matemáticos. . Además, varios sitios, como Amazon, contienen reseñas y puedes echar un vistazo al interior. Si mis recomendaciones no fueron las que esperaba, hágamelo saber.

CONSEJOS GENERALES:

Creo que la teoría de la codificación, así como todos los demás campos de las matemáticas, son muy desafiantes, frustrantes, interesantes y al mismo tiempo divertidos. No sé cuál podría ser la manera fácil de aprender la teoría de la codificación, pero sin embargo puede ser divertido. Por lo que he escuchado de mis compañeros y aprendido de mi propia experiencia, creo que aprender la teoría de la codificación puede ser divertido y gratificante a pesar de las frustraciones y los desafíos difíciles que debes enfrentar en tu viaje para aprender la teoría de la codificación.

También tengo un consejo final para ti. Puede que ya lo sepas, pero incluso en ese caso aún quiero recordarte: leer cualquier libro matemático (incluidos los libros de teoría de la codificación) es muy diferente a leer cualquier otro libro más o menos no matemático. Leer libros de matemática es un proceso interactivo: ¡debes participar activamente en el contenido! Esto significa que debe leer cada oración lenta y cuidadosamente, pero también debe identificar qué es realmente importante y qué no lo es. Básicamente, su objetivo es comprender cada una de las oraciones antes de continuar. Por supuesto, se recomienda hojear el libro y su contenido primero. Además, si encuentras que algo es tan complicado que simplemente no puedes envolverlo alrededor de la cabeza, sigue adelante y vuelve a leer el pasaje difícil mucho más tarde cuando hayas aprendido el resto del material. Piense en lo que ha leído (pensar puede llevar mucho más tiempo que leer), haga preguntas y familiarícese con definiciones abstractas (las matemáticas se basan en comprender y probar teoremas, no en recordar, pero es posible que desee memorizar definiciones y ciertas claves). teoremas porque entonces tu mente subconsciente puede trabajar con ellos). Además, trata de encontrar ejemplos concretos por tu cuenta. Haga los ejercicios que encuentre en los libros porque hacer matemáticas es aún más importante que leer matemáticas. Tan importante como hacer los ejercicios reales es revisar el texto: ¡El escritor siempre ha dejado algunos huecos y su tarea es llenar los huecos! Por ejemplo, a menudo hay frases como “Los detalles se dejan al lector” (¡Produzca los detalles!), “Por un cálculo directo …” (¡Haga ese cálculo!) Etc. Cuando el autor dice algo como “Está claro eso … “o cuando presenta una nueva fórmula, no solo tome la palabra del autor, sino que complete los detalles y verifique que esta o esa fórmula sea realmente correcta. Recuerda que mi consejo sobre el aprendizaje de las matemáticas se aplica también al aprendizaje de la teoría de la codificación.

Si todo esto parece tedioso, demasiado lento o innecesario, no se desanime: esta comprobación le ayuda a entender la teoría mucho mejor y paso a paso, comienza a ver el panorama general y la belleza de las matemáticas detrás de todas las definiciones. y teoremas. Aquí es donde encuentras la verdadera diversión!

La respuesta de Juhapekka Salmela es buena y muy extensa. Solo quiero agregar que encontré este libro http://www.math.niu.edu/~beachy/… por SS Adams, muy útil cuando me familiarizo con los conceptos básicos de la teoría de la codificación durante mis estudios universitarios.

La teoría de la codificación se basa en gran medida en el álgebra lineal y el álgebra abstracta. Por lo tanto, le sugiero que se familiarice con los conceptos básicos en esos campos antes de comenzar a estudiar la teoría de la codificación. Debe estar familiarizado con conceptos como clases de residuos, ideales, espacios duales, etc. para poder entender la teoría de la codificación.

No es fácil pero puede ser divertido. ¡Buena suerte con sus estudios!

Te recomendaría que vayas a por los códigos de bloque lineales: codificación y síndrome de decodificación por MIT. Esta es la mejor fuente de este curso que he encontrado.

Otra fuente que puede usar es el sitio web oficial de IIT – NPTEL. Esta es una buena fuente para aprender la codificación de bloques lineales también.

También puede utilizar los mismos sitios web para el código Hamming.

La mejor de las suertes.

Echa un vistazo a este libro: Informática destilada. Es USD $ 19.99 para la edición de libro electrónico, y viene con una garantía de devolución de dinero de 30 días. El enlace está abajo.

Código de Energía

Fácilmente CodeAcademy o uno de los otros sitios web grandes que enseñan codificación. Este sitio web le enseña absolutamente todo lo que necesita saber en un lenguaje particular de codificación y también es interactivo y paso a paso. Al final de cada curso, tendrá un proyecto terminado y, con suerte, ¡será un maestro de ese idioma!