Libro de Peter Seibel de 2009
Coders at Work: Reflections on the Craft of Programming ( ISBN 1-430-21948-3 ) es un libro de 2009 de Peter Seibel que incluye entrevistas con 15 programadores muy destacados. Los temas principales de estas entrevistas incluyen cómo los entrevistados aprendieron a programar, cómo depuran el código, sus lenguajes y herramientas favoritos, sus opiniones sobre la programación alfabetizada, las pruebas, la lectura de código, etc.
Entrevistados
- Jamie Zawinski
- Brad Fitzpatrick
- Douglas Crockford
- Brendan Eich
- Josué Bloch
- Joe Armstrong
- Simón Peyton Jones
- Menciona el artículo de David Turner sobre los combinadores SK (cf. Cálculo del combinador SKI ). Los combinadores SK son una forma de traducir y luego ejecutar el cálculo lambda. Turner mostró en su artículo cómo traducir el cálculo lambda en los tres combinadores S, K e I, que son simplemente términos lambda cerrados e I = SKK. Por lo tanto, en efecto, se toma un término lambda y se compila a solo Ss y Ks.
- Recuerda su primera experiencia de aprendizaje de programación funcional cuando tomó un curso de Arthur Norman, quien mostraba cómo construir listas doblemente enlazadas sin ningún efecto secundario.
- Menciona el artículo "¿Puede la programación liberarse del estilo von Neumann?" de John Backus.
- Quiere que John Hughes escriba un artículo para el Journal of Functional Programming sobre por qué la tipificación estática es mala. Hughes ha escrito un artículo popular titulado "Why Functional Programming Matters" (Por qué es importante la programación funcional).
- Menciona una estructura de datos llamada "cremallera", que es una estructura de datos funcional muy útil. Peyton Jones también menciona el programa de 4 o 5 líneas que Hughes escribió para calcular una cantidad arbitraria de dígitos de e de manera diferida.
- Menciona que la implementación secuencial de una cola de doble extremo es un problema de programación de primer año de licenciatura. Para una implementación concurrente con un bloqueo por nodo, es un problema de trabajo de investigación. Con la memoria transaccional, es nuevamente un problema de licenciatura.
- Libros/autores favoritos: Programming Pearls de Jon Bentley, un capítulo titulado "Writing Programs for 'The Book'" de Brian Hayes del libro Beautiful Code donde explora el problema de determinar de qué lado de la línea está un punto dado, Art of Computer Programming de Don Knuth , Purely Functional Data Structures de Chris Okasaki que explora cómo construir estructuras de datos como colas y montones sin efectos secundarios y límites de complejidad razonables, Structure and Interpretation of Computer Programs de Abelson y Sussman, Compiling with Continuations de Andrew Appel, A Discipline of Programming de Dijkstra, el libro de Per Brinch Hansen sobre la escritura de sistemas operativos concurrentes.
- Peyton Jones menciona el artículo de Fred Brooks que releyó y le gustó "El científico informático como herrero".
- Pedro Norvig
- En 1972/73, cuando Norvig todavía estaba en la escuela secundaria, descubrió el algoritmo Knuth para barajar cartas.
- El primer programa interesante que escribió Norvig fue Game of Life.
- Escribió un ensayo llamado "Aprenda a programar en diez años".
- En cuanto a las aplicaciones prácticas de los conceptos académicos, menciona que parte del problema es que los académicos no ven el problema en su totalidad y otra parte es la educación. Si tienes un grupo de programadores que no entienden qué es una mónada y no han tomado cursos de teoría de categorías, hay una brecha.
- Los libros y autores que recomienda incluyen a Knuth ; Cormen, Leiserson y Rivest ; Sally Goldman ; Abelson y Sussman ; McConnell .
- Knuth ha escrito un ensayo sobre el desarrollo de TeX en el que habla de pasar a su personalidad de control de calidad pura y destructiva y de hacer todo lo posible para romper su propio código.
- Habla sobre el proceso de entrevistas de trabajo en Google y dice que la mejor señal es si alguien ha trabajado con uno de sus empleados y puede dar fe del candidato. También habla de un "predictor de currículum" que toma atributos del currículum como experiencia, haber ganado un concurso de programación, haber trabajado en un proyecto de código abierto, etc. y predice si es adecuado. También menciona la asignación de puntuaciones del 1 al 4 por parte de los entrevistadores y, en general, rechaza a los candidatos que obtienen un 1 por parte de cualquiera de los entrevistadores, a menos que alguien en Google luche por contratarlos.
- Chico Steele
- Colaboró con Gerald Sussman en una serie de artículos ahora conocidos como "The Lambda Papers", que incluían la definición original del lenguaje de programación Scheme.
- Al obtener su título en Ciencias de la Computación, Guy menciona que se había propuesto especializarse en matemáticas puras, pero se dio cuenta de que no tenía ninguna intuición para los espacios de Banach de dimensión infinita y eso fue lo que lo llevó a cambiarse a la especialización en matemáticas aplicadas.
- Autores y libros favoritos: Knuth; Aho, Hopcroft y Ullman (Guy dice que este libro es donde aprendió a ordenar de manera "real"), Gerald Weinberg sobre la psicología de la programación informática , Mythical Man-Month de Fred Brook
- Sugiere que usted desea diseñar la especificación de lo que está en el medio de tal manera que naturalmente también sea correcto en los límites en lugar de tratar los límites como casos especiales.
- Un algoritmo de recolección de basura paralelo desarrollado por Dijkstra que ocupaba media página. David Gries escribió un artículo para CACM utilizando técnicas desarrolladas por su estudiante Susan Owicki para demostrar la exactitud de este algoritmo.
- Dan Ingalls
- L. Peter Alemán
- Ken Thompson
- Fran Allen
- Bernie Cosell
- Donald Knuth
Véase también
Enlaces externos