he estado programando por un tiempo, pero nunca he tenido una educación formal en ciencias de la computación. Me gustaría saber si hay un recurso que revise los conceptos clave de programación como constructo, polimorfismo, etc., que sería aplicable a diferentes idiomas. también sería muy útil si el recurso dara ejemplos.conceptos de programación de teclas y terminología en una variedad de idiomas
Respuesta
Concepts, Techniques, and Models of Computer Programming (by Peter Van Roy and Seif Haridi): el título lo dice todo. (Del mismo autor y basada en el libro viene this cool poster with ~30 of the most important programming paradigms.) [Nota: este libro que coloquialmente se conoce como marca comunitaria, es posible toparse con esa sigla de vez en cuando.]
Structure and Intepretation of Computer Programs (by Harold Abelson and Gerald Jay Sussman). El SICP, como se lo conoce coloquialmente, probablemente sea el libro sobre programación. Período. No se olvide de the 1986 video lectures by the authors themselves o one del othercourses según el libro. La principal diferencia entre SICP y CTM es el enfoque: CTM enseña conceptos de programación dando ejemplos en un lenguaje de programación muy poderoso (Distributed Oz) que ya los implementa, mientras que SICP enseña conceptos de programación implementándolos en un lenguaje (Scheme , o mejor dicho, un pequeño subconjunto de ella) que aún no los tiene. IOW: CTM enseñaría OO a mostrar programas escritos en un lenguaje OO, SICP implementando un sistema OO en Scheme.
Design Concepts in Programming Languages (by Franklyn A. Turbak and David K. Gifford with Mark A. Sheldon) es más acerca de la programación de la teoría del lenguaje que la programación. Todavía es bastante interesante, a pesar de que no aborda directamente su pregunta sobre los conceptos de programación. Pero después de todo: ¿cómo programarías sin un lenguaje de programación?
Concepts of Programming Languages (by Robert W. Sebesta) explica, así, los conceptos de lenguajes de programación, comenzando con Plankalkül de Konrad Zuse, continuando con los primeros verdadera lenguajes de programación como Fortran, Lisp, Cobol, Algol, BASIC y luego a C, C++, Java y Ada. [Nuevamente, más de un libro de Lenguaje de Programación que Programación.]
Programming Language Pragmatics es una visión general bastante accesible pero en profundidad de los conceptos del lenguaje de programación. Hace un buen trabajo al explicar los fundamentos del lenguaje de programación sin ser excesivamente académico o teórico.
Realmente disfruté leyendo Concepts in Programming Languages por John C. Mitchell.
El libro cubre un poco de todo. Incluye una introducción a los fundamentos matemáticos, como la teoría de la computabilidad y el cálculo lambda, pero me pareció bastante legible (en el momento en que lo estaba leyendo, que fue temprano durante mis estudios de pregrado). También incluye un poco sobre la semántica de los lenguajes de programación (es decir, cómo describir el significado formalmente).
Luego habla sobre muchos lenguajes de programación y conceptos que provienen de ellos y son interesantes, incluyendo LISP (que es una base para Clojure), ML (una base para F # de Microsoft) pero también Simula y Smalltalk (dos lenguajes fundamentales de OO) y C++ con Java (lenguajes OO prácticos con un enfoque bastante diferente). También hay algunas notas sobre diferentes enfoques de concurrencia (¡bastante importante hoy en día!)
No entra en muchos detalles y cubre una amplia gama de temas, lo que considero un beneficio si quiere leerlo para obtener una visión general amplia de la teoría del lenguaje de programación. El libro realmente motivó mi interés actual en los lenguajes de programación :-).
Noté que el libro tiene algunas críticas negativas en Amazon, pero parece que la mayoría son de personas que tuvieron que tomar el curso de Mitchell basado en el libro y no les gustó el curso.
Me encanta que el título del libro sea literalmente la pregunta :-) –
- 1. Terminología de programación
- 2. ¿Guías sobre conceptos de programación en 3D?
- 3. Comenzar conceptos básicos de programación de juegos
- 4. ¿Cuáles son los diferentes conceptos de lenguaje de programación y qué idiomas los muestran de forma pura?
- 5. Terminología: "registros" en programación en lenguaje ensamblador
- 6. Aprendiendo conceptos del lenguaje de programación
- 7. Meta programación en varios idiomas de salida
- 8. Programación Matemática Idiomas
- 9. Ayúdame a poner la terminología de Oracle en la terminología de SQL Server
- 10. Conceptos básicos de socket
- 11. Terminología del montón de Java: ¿generaciones jóvenes, viejas y permanentes?
- 12. ¿Inicializar HashMap con una variedad de elementos?
- 13. ¿Cómo hacer una variedad de hashmaps?
- 14. ¿Podemos tener una variedad de módulos personalizados?
- 15. Explicación de la terminología BASE
- 16. Guardar imagen en una variedad de formatos de archivo
- 17. Estoy interesado en la programación de idiomas. ¿Qué áreas de programación son buenas para mí?
- 18. Conceptos básicos de claves externas en MySQL?
- 19. ¿Cuáles son los conceptos básicos en la programación funcional?
- 20. Construir en variedad Colección
- 21. Idiomas fuertemente tipados para programación web
- 22. Lista de conceptos de OOP disponibles
- 23. Conceptos básicos de Android, libgdx y box2d
- 24. Idiomas no C++ para programación generativa?
- 25. OOP Terminología: "Contenedor" y "Colección"
- 26. diferencia entre los conceptos de encapsulación y abstracción
- 27. Mangosta - Llenar el uso en una gran variedad de OBJECTID
- 28. ¿Cambio de bits eficiente una variedad de int?
- 29. Nuevos conceptos de arquitectura
- 30. C# y teclas de flecha
Reemplacé las etiquetas "java" y "C#" con "lenguajes de programación" y "oop", ya que la pregunta se relaciona con los lenguajes de programación en general. – markusk