Grandes programadores encontrar soluciones simples a problemas complejos
Después de mucho tiempo pude encontrar la fuente de la siguiente cita-
Programadores junior crean soluciones simples a problemas simples. Programadores senior crear soluciones complejas a problemas complejos. Grandes programadores encontrar soluciones simples a problemas complejos.
Es a partir de un ensayo llamado Software Hermosa por Charles Connell.
Otra de mis favoritas es El Zen de Python -
Hermoso es mejor que feo.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Plano es mejor que anidado.
Disperso es mejor que denso.
La legibilidad cuenta.
Los casos especiales no son lo suficientemente especial como para romper las reglas.
A pesar de lo práctico gana pureza.
Los errores nunca debe pasar en silencio.
A menos que explícitamente silenciados.
Frente a la ambigüedad, rechaza la tentación de adivinar.
Debe haber una manera, y preferiblemente sólo una-obvia de hacerlo.
A pesar de que forma puede no ser obvia en un primer momento a menos que seas holandés.
Ahora es mejor que nunca.
Aunque nunca es a menudo mejor que el * derecho * ahora.
Si la implementación es difícil de explicar, es una mala idea.
Si la aplicación es fácil de explicar, puede ser una buena idea.
Los espacios de nombres son una gran idea de tocar la bocina - vamos a hacer más de esos!
-------------------------
y entonces no es el clásico Tao de la Programación
-
créditos como en el vinculado del sitio
Traducido por Geoffrey James
Transcrito por el duque Hillard
Transmitida por Anupam Trivedi, Tampi Sajitha y Jagannath Meghshyam
Re-html-das y editado por Kragen Sittler
-
Libro 1 - El Vacío Silencioso
Así habló el maestro programador:
"Cuando hayas aprendido a arrebatarle el código de error desde el marco de trampa,
será el momento de que te vayas. "1.1
Algo misterioso se forma, nace en el vacío silencioso. Esperando solo y
inmóvil, que es a la vez y, sin embargo todavía en constante movimiento. Es la fuente
de todos los programas. No sé su nombre, así que lo llamaré el Tao de la
Programación.Si el Tao es grande, entonces el sistema operativo es muy grande. Si la operación
el sistema es grande, entonces el compilador es grandioso. Si el compilador es grandioso,
entonces la aplicación es grande. El usuario está complacido y no existe
armonía en el mundo.El Tao de la Programación fluye lejos y regresa en el viento de la mañana.
1.2
El Tao dio a luz a lenguaje de máquina. El lenguaje de máquina dio a luz a la
ensamblador.El ensamblador dio a luz al compilador. Ahora hay diez mil
idiomas.Cada lenguaje tiene su propósito, aunque sea humilde. Cada lengua expresa la
Yin y el Yang del software. Cada lenguaje tiene su lugar dentro del Tao.Pero no programes en COBOL si puedes evitarlo.
1.3
En el principio era el Tao. El Tao dio a luz a espacio y el tiempo.
Por lo tanto, espacio y tiempo son el Yin y el Yang de la programación.Los programadores que no comprenden el Tao siempre se acaba el tiempo
y el espacio para sus programas. Los programadores que comprenden el Tao siempre
tienen suficiente tiempo y espacio para lograr sus objetivos.Como no podía ser de otra manera?
1.4
El programador sabio le hablan Tao y lo sigue. El promedio
programador se le dice sobre el Tao y lo busca. El programador tonto
se habló de Tao y se ríe de él.Si no fuera por la risa, no habría Tao.
Los sonidos más altos son los más difíciles de escuchar.
De cara al futuro es una forma de retiro.
El gran talento se muestra al final de la vida.
Incluso un programa perfecto todavía tiene errores.-------------------------
Libro 2 - Los Antiguos Maestros
Así habló el maestro programador:
"Después de tres días sin necesidad de programación, la vida carece de sentido."
2.1
Los programadores de antaño eran misteriosos y profundos. No podemos comprender
sus pensamientos, así que todo lo que hacemos es describir su apariencia.Consciente, como un zorro cruzando el agua. Alerta, como un general en la
campo de batalla. Amable, como una anfitriona saludando a sus invitados. Simples, como
bloques de madera sin tallar. Opacos, como las piscinas negro en cuevas oscuras.¿Quién puede contar los secretos de sus corazones y mentes?
La respuesta sólo existe en el Tao.
2.2
El Gran Maestro Turing una vez soñó que era una máquina. Cuando se despertó,
exclamó:"No sé si soy Turing soñando que soy una máquina, o un
máquina soñando que soy Turing! "2.3
Un programador de una compañía de computadoras de gran tamaño fue a un software
conferencia y luego volvió para informar a su jefe, diciendo: "¿Qué clase
de programadores trabajan para otras compañías? Se portó mal y se
sin preocuparse por las apariencias. Su cabello era largo y descuidado y sus
ropas arrugadas y viejas. Se estrelló nuestra suite de hospitalidad y
hace ruidos groseros durante mi presentación. "El gerente dijo: "Yo nunca te he enviado a la conferencia. Aquellos
Los programadores viven más allá del mundo físico. Consideran que la vida absurda, una
coincidencia accidental. Ellos van y vienen sin saber las limitaciones.
Sin cuidado, ellos viven sólo para sus programas. ¿Por qué deberían molestarse
las convenciones sociales?"Ellos están vivos dentro del Tao."
2.4
Un novicio le preguntó al Maestro: "Aquí hay un programador que nunca diseña,
documentos ni prueba sus programas. Sin embargo, todos los que lo conocen lo consideran uno de los
los mejores programadores del mundo. ¿Por qué es esto? "El Maestro responde: "Ese programador se ha dominado el Tao. Se ha ido
más allá de la necesidad de un diseño, no se enoja cuando el sistema
accidentes, sino que acepta al universo sin preocupación. Ha ido más allá de la
necesidad de la documentación, él ya no le importa si alguien más ve su código.
Ha ido más allá de la necesidad de pruebas, cada uno de sus programas son perfectos
dentro de sí mismos, serenos y elegantes, su proposito es auto-evidente. En verdad,
que ha entrado en el misterio del Tao. "-------------------------
Libro 3 - Diseño
Así habló el maestro programador:
"Cuando el programa está siendo probado, de que sea demasiado tarde para hacer el diseño
cambios. "3.1
Había una vez un hombre que fue a una feria de informática. Cada día, cuando
entró, el hombre le dijo al guardia en la puerta:"Soy un gran ladrón, renombrado por mis hazañas de robar en tiendas. Ser
prevenido, por esta feria no escapará unplundered ".Este discurso perturbado mucho al guardia, porque había millones de
dólares de los equipos informáticos en el interior, por lo que observó al hombre cuidadosamente. Pero
simplemente el hombre vagaba de stand en stand, murmurando en voz baja a sí mismo.Cuando el hombre salió, el guardia se lo llevó aparte y buscó su ropa, pero
no había nada que encontrar.Al día siguiente de la feria, el hombre regresó y regañó al guardia
diciendo: "me escapé con un gran botín de ayer, pero hoy será aún
mejor ". Así que el guardia lo observó más de cerca, pero fue en vano.En el último día de la feria, el guardia pudo contener su curiosidad
ya no. "Ladrón de Sir", dijo, "Estoy tan perplejo, que no pueden vivir en
la paz. Por favor me aclare. ¿Qué es lo que te están robando? "El hombre sonrió. "Estoy robando ideas", dijo.
3.2
Había una vez un maestro programador que escribía programas no estructurados. A
programador novato, tratando de imitarlo, también comenzó a escribir
programas no estructurados. Cuando el novicio le preguntó al maestro para evaluar su
el progreso, el maestro lo criticó por escribir programas no estructurados,
diciendo: "Lo que es apropiado para el maestro no es apropiado para el
novato. Usted debe entender el Tao antes de trascender la estructura. "3.3
Había una vez un programador que se adjuntó a la corte del señor de la guerra
de Wu. El señor de la guerra preguntó al programador: "¿Qué es más fácil de diseñar: un
paquete de contabilidad o un sistema operativo? ""Un sistema operativo", dijo el programador.
El señor de la guerra lanzó una exclamación de incredulidad. "Sin duda, una rendición de cuentas
paquete es trivial al lado de la complejidad de un sistema operativo ", que
, dijo."No es así", dijo el programador, "la hora de diseñar un paquete de contabilidad,
el programador funciona como un mediador entre personas que tienen diferentes
ideas: cómo debe operar, cómo deben aparecer sus informes, y cómo se debe
conforme a las leyes tributarias. Por el contrario, un sistema operativo no se limita
por las apariencias externas. Al diseñar un sistema operativo, el programador
busca la armonía más simple entre máquina e ideas. Por ello, una
sistema operativo es más fácil de diseñar. "El señor de Wu asintió y sonrió. "Eso es todo lo bueno y bien, pero
que es más fácil de depurar? "El programador no respondió.
3.4
Un gerente fue al maestro programador y le mostró los requisitos
documento para una nueva aplicación. El gerente le preguntó al maestro: "¿Cuánto tiempo
se necesita para diseñar este sistema si le asigno cinco programadores? ""Tomará un año", dijo el maestro rápidamente.
"Pero tenemos este sistema inmediatamente, o incluso antes! El tiempo que
tomar si le asigno diez programadores? "El maestro programador frunció el ceño. "En ese caso, tomará dos años".
"¿Y si le asigno cien programadores?"
El maestro programador se encogió de hombros. "Entonces el diseño nunca será
terminado ", dijo.-------------------------
Libro 4 - Codificación
Así habló el maestro programador:
"Un programa bien escrito es su propio cielo, un programa mal escrito es
su propio infierno. "4.1
Un programa debe ser ligero y ágil, sus subrutinas conectadas como un
collar de perlas. El espíritu y la intención del programa debe mantenerse
en todas partes. No debe ser ni demasiado poco o demasiado, ni
bucles innecesarios ni variables inútiles, ni la falta de estructura ni
rigidez aplastante.Un programa debe seguir la Ley del Menor Asombro '. ¿Cuál es esta ley?
Se trata simplemente de que el programa siempre debe responder al usuario en la forma
que asombra por lo menos él.Un programa, sin importar su complejidad, debe actuar como una sola unidad. El programa
debe ser dirigido por la lógica interna y no por las apariencias externas.Si el programa falla en estos requisitos, será en un estado de
desorden y confusión. La única manera de corregir esto es reescribir la
del programa.4.2
Un novicio le preguntó al maestro: "Tengo un programa que en algún momento se ejecuta y
a veces aborta. He seguido las reglas de programación, pero estoy
totalmente desconcertado. ¿Cuál es la razón de esto? "El maestro replicó: "Estás confundido porque no entiendes el Tao.
Sólo un tonto espera comportamiento racional de sus compañeros humanos. ¿Por qué lo hace
esperamos que a partir de una máquina que los humanos han construido? Ordenadores simular
el determinismo, y sólo el Tao es perfecto."Las reglas de la programación son transitorias y sólo el Tao es eterno. Por lo tanto
debes contemplar el Tao antes de recibir la iluminación. ""Pero, ¿cómo sabré cuando he recibido la iluminación?", Preguntó el
novato."El programa se ejecutará correctamente", contestó el maestro.
4.3
Un maestro estaba explicando la naturaleza del Tao de que uno de sus novicios. "El
Tao está encarnado en todo software - sin importar cuán insignificante ", dijo
el maestro."¿Está el Tao en una calculadora de mano?", Preguntó el novicio.
"Es", fue la respuesta.
"¿Está el Tao en un videojuego?", Continuó el novato.
"Es incluso en un juego de video", dijo el maestro.
"Y es el Tao en el DOS de una computadora personal?"
El maestro tosió y cambió ligeramente de posición. "La lección ha terminado
de hoy ", dijo.4.4
Programador del Príncipe Wang fue la codificación del software. Sus dedos bailaban sobre el
teclado. El programa compiló sin un mensaje de error, y el programa
corrió como un viento suave."Excellent!" El príncipe exclamó: "Su técnica es impecable!"
"La técnica?", Dijo el programador girando desde su terminal, "Lo que
seguir es el Tao - más allá de todas las técnicas! Cuando comencé a que el programa
a ver delante de mí todo el problema en una sola masa. Después de tres años que no
ya vi esta masa. En su lugar, utilizan subrutinas. Pero ahora no veo nada.
Todo mi ser existe en un vacío sin forma. Mis sentidos están ociosos. Mi espíritu,
la libertad de trabajar sin un plan, sigue su propio instinto. En mi programa corto,
escribe en sí. Es cierto que a veces hay problemas difíciles. Yo los veo
venir, reducir la velocidad, que observan en silencio. Entonces cambio una sola línea de código
y las dificultades se desvanecen como volutas de humo. Entonces compilo el
del programa. Me quedo quieta y dejar que la alegría del trabajo llene mi ser. Cierro
los ojos por un momento y luego cerrar la sesión. "Príncipe Wang dijo: "¡Ojalá todos mis programadores eran tan sabios!"
-------------------------
Libro 5 - Mantenimiento
Así habló el maestro programador:
"A pesar de ser un programa, sino tres líneas de largo, algún día tendrá que ser
mantenido. "5.1
Una puerta bien utilizada no necesita aceite en sus bisagras.
Un río que fluye rápido no crece estancada.
Ni el sonido ni los pensamientos pueden viajar a través del vacío.
Software se pudre si no se utiliza.Estos son los grandes misterios.
5.2
Un gerente le preguntó a un programador cuánto tiempo le tomaría para terminar la
programa en el que estaba trabajando. "Va a estar terminado mañana", la
programador respondió rápidamente."Creo que usted está siendo poco realista", dijo el gerente, "A decir verdad, ¿cómo
Cuánto tiempo tomará? "El programador pensó por un momento. "Tengo algunas características que me gustaría
añadir. Esto tomará al menos dos semanas ", dijo finalmente."A pesar de que es demasiado esperar", insistió el gerente, "Voy a ser
satisfecho si simplemente me dicen que el programa está completo. "El programador de acuerdo con esta.
Varios años más tarde, el gerente se retiró. En el camino a su retiro
almuerzo, él descubrió que el programador dormido en su terminal. Había sido
programación durante toda la noche.5.3
Un programador novicio fue asignado una vez que el código de un paquete financiero sencillo.
El novicio trabajó furiosamente por muchos días, pero cuando se analiza su amo
su programa, descubrió que contenía un editor de pantalla, un conjunto de
generalizada gráficos rutinas, una interfaz de inteligencia artificial, pero
ni la más mínima mención de nada financiero.Cuando el maestro le preguntó acerca de esto, el novicio se indignó. "No se
tan impaciente ", dijo," voy a poner en la materia financiera con el tiempo. "5.4
¿Un descuido de los agricultores buena cosecha que ha sembrado?
¿Tiene un buen maestro por alto, incluso los estudiantes más humildes?
Hace un buen padre de familia permita que su hijo único a morir de hambre?
¿Un buen programador se niegan a mantener su código?-------------------------
Libro 6 - Gestión
Así habló el maestro programador:
"Dejad que los programadores de ser muchos y pocos los gerentes - entonces todos serán
productiva ".6.1
Cuando los gerentes de celebrar reuniones sin fin, los programadores escriben juegos. Cuando
contadores hablan de ganancias trimestrales, el presupuesto de desarrollo está a punto de
cortar. Cuando los científicos hablan alto cielo azul, las nubes están a punto de rodar
inEn verdad, este no es el Tao de la Programación.
Cuando los directivos a tomar compromisos, programas de juegos son ignorados. Cuando
contadores hacen planes a largo plazo, la armonía y el orden están a punto de ser
restaurado. Cuando científicos de alto nivel frente a los problemas que nos ocupa, la
los problemas se resolverán pronto.En verdad, este es el Tao de la Programación.
6.2
¿Por qué los programadores no productivos?
Debido a que su tiempo se desperdicia en las reuniones.¿Por qué los programadores de rebelde?
Debido a que la gestión interfiere demasiado.¿Por qué los programadores de renunciar uno por uno?
Debido a que son quemados.Después de haber trabajado por su mala gestión, ya no valoran su trabajo.
6.3
Un gerente estaba a punto de ser despedido, pero un programador que trabajaba para él
inventó un nuevo programa que se hizo popular y se vendió bien. Como resultado, el
gerente retuvo su empleo.El gerente intentó darle al programador un bono, pero el programador
que se negó, diciendo: "Escribí el programa porque pensé que era una
concepto interesante, y por lo tanto no espero ninguna recompensa. "El gerente al oír esto comentó, "Este programador, aunque él sostiene
una posición de poca estima, entiende bien la función propia de un
de los empleados. Vamos a promoverlo a la posición exaltada de la gestión
asesor! "Pero cuando se le dijo esto, el programador, una vez más se negó, diciendo: "Yo existo para
que se puede programar. Si yo fuera promovido, no haría nada, pero los residuos
todos el tiempo. ¿Puedo ir ahora? Tengo un programa que estoy trabajando. "6.4
Un gerente se fue a sus programadores y les dijo: "En lo que respecta a su trabajo
hora: va a tener que venir a las nueve de la mañana y salir
a las cinco de la tarde. "En ese momento, todos ellos se enojaron y varios
renunció en el acto.Por lo que el gerente dijo: "Bueno, en ese caso usted puede configurar su propia
las horas de trabajo, siempre y cuando haya terminado sus proyectos a tiempo. "El
programadores, ahora satisfechos, comenzaron a llegar al mediodía y el trabajo a la madrugada
horas de la mañana.-------------------------
Libro 7 - Sabiduría Corporativa
Así habló el maestro programador:
"Se puede demostrar un programa para un ejecutivo de una empresa, pero no se puede
lo hacen las computadoras. "7.1
Un novicio le preguntó al maestro: "En el este hay una gran estructura de árbol
que los hombres llaman `la sede corporativa. Es hinchado fuera de forma, con
vicepresidentes y contadores. Que emite una gran cantidad de notas, cada una
diciendo: Ve, ahí! " o `Vaya, aquí!" y nadie sabe lo que quiere decir. Cada
año nuevos nombres se colocan en las ramas, pero todo fue en vano. ¿Cómo se puede
como una entidad natural ser? "El maestro replicó: "Uno percibe esta inmensa estructura y se
preocupa que no tiene ningún propósito racional. No te puede llevar diversión a partir de
sus giros sin fin? No te gusta la facilidad de la programación sin problemas
bajo sus ramas refugio? ¿Por qué le molesta su
inutilidad? "7.2
En el este hay un tiburón que es más grande que todos los demás peces. Lo
se transforma en un pájaro cuyas alas son como nubes llenando el cielo. Cuando esta
movimientos de aves de todo el país, que trae un mensaje del Corporativo
Sede. Este mensaje se cae en medio de los programadores,
como una gaviota con su impronta en la playa. Entonces el pájaro se monta en el
el viento y, con el cielo azul a sus espaldas, vuelve a casa.Las miradas de asombro programador novato en el ave, para él lo entiende
no. El programador promedio teme la llegada de las aves, pues teme
su mensaje. El maestro programador continúa trabajando en su terminal, para
él no sabe que el pájaro ha ido y venido.7.3
El mago de la Torre de Marfil llevó su último invento para la
maestro programador para examinar. El mago ruedas un cuadro negro de gran tamaño en
el maestro de la oficina, mientras que el maestro esperaba en silencio."Este es un sistema integrado, distribuido, de propósito general de estación de trabajo", comenzó
el mago ", de diseño ergonómico con un operativo propio
sistema, los idiomas de sexta generación, y el estado de los usuarios múltiples de arte
interfaces. Tomó mis asistentes varios cientos de años el hombre para construir.
¿No es increíble? "El maestro levantó las cejas levemente. "Es realmente increíble",
, dijo."Oficina central ha ordenado", continuó el mago ", que
todo el mundo utilizan esta estación de trabajo como una plataforma para nuevos programas. ¿Está de acuerdo
a esto? ""Por supuesto", respondió el maestro, "voy a tener que transportar a los
del centro de datos inmediatamente! "Y el mago regresó a su torre, así
satisfechos.Varios días después, un novicio vagaba en la oficina del maestro
programador y le dijo: "No puedo encontrar el listado de mi nuevo programa. Hacer
usted sabe dónde podría estar? ""Sí", respondió el maestro, "los listados están apilados en la plataforma de
el centro de datos. "7.4
El maestro programador se mueve de un programa a otro sin miedo. No
cambio en la gestión puede hacerle daño. No va a ser despedido, incluso si el
proyecto se cancela. ¿Por qué es esto? Él está lleno de Tao.-------------------------
Libro 8 - Hardware y Software
Así habló el maestro programador:
"Sin el viento, la hierba no se mueve. Sin el software, el hardware es
inútil ".8.1
Un novicio le preguntó al maestro: "me parece que una empresa de informática es mucho más
más grande que todos los demás. Se eleva por encima de su competencia, como un gigante entre los
enanos. Cualquiera de sus divisiones podría abarcar todo el negocio. ¿Por qué es
esto es así? "El señor le respondió: "¿Por qué preguntas tan tonto? Que la empresa
es grande porque es grande. Si sólo hecho de hardware, nadie compraría
que. Si sólo hecho de software, nadie lo usaría. Si sólo se mantiene
sistemas, la gente lo trata como un sirviente. Pero, ya que combina todas las
de estas cosas, la gente piensa que uno de los dioses! Al no buscar a
se esfuerzan, conquista sin esfuerzo. "8.2
Un maestro programador pasó un programador novato un día. El maestro señaló
el novato preocupación por un juego de ordenador de mano. "Disculpe",
, dijo, "¿puedo examinarlo?"El novato atornillado a la atención y le entregó el dispositivo para el maestro. "Yo
ver que el dispositivo afirma tener tres niveles de juego: fácil, medio, y
Duro ", dijo el maestro. "Sin embargo, cada dispositivo de este tipo tiene otro nivel de
juego, donde el dispositivo no busca conquistar el ser humano, ni a ser conquistado
por el ser humano. ""Maestro Oren, muy bien", imploró el novicio, "¿cómo se encuentra este
establecimiento misterioso? "El maestro dejó caer el aparato al suelo y lo aplastó bajo sus pies. Y
de repente el novicio estaba iluminado.8.3
Había una vez un programador que trabajaba en microprocesadores. "Mira cómo
así fuera yo estoy aquí ", dijo a un programador de mainframes que vino a visitar,
"Tengo mi propio sistema operativo y dispositivo de almacenamiento de archivos. No es necesario que
compartir mis recursos con nadie. El software es auto-consistente y
fácil de usar. ¿Por qué no dejas tu trabajo actual y unirse a mí aquí? "El programador de mainframes entonces comenzó a describir su sistema a su amigo,
diciendo "El mainframe está sentado como un antiguo sabio meditar en medio
del centro de datos. Sus discos se encuentran de extremo a extremo como un gran océano de la
maquinaria. El software es tan multifacética como un diamante, y complicado como
como una selva virgen. Los programas, cada uno es único, se mueven a través del sistema
como un río de corriente rápida. Es por eso que estoy feliz donde estoy. "El programador de microcomputadoras, al oír esto, se quedó en silencio. Pero los dos
programadores siguieron siendo amigos hasta el final de sus días.8.4
Hardware Software se reunió en el camino a Changtse. Software dijo: "Tú eres
Yin Yang y Yo soy. Si viajamos juntos, llegará a ser famoso y ganar
grandes sumas de dinero. "Y por lo que el establecido en conjunto, pensando en conquistar
el mundo.En la actualidad se reunieron firmware, que estaba vestido con harapos y cojeando
a lo largo apoyado en un palo espinoso. Firmware les dijo: "El Tao se encuentra
más allá de Yin y Yang. Es silencioso y quieto como un estanque de agua. Lo hace
No buscan la fama, por lo tanto, nadie sabe de su presencia. No busca
fortuna, ya que es completo en sí mismo. Que existe más allá del espacio y
tiempo. "Software y Hardware, avergonzados, regresaron a sus hogares.
-------------------------
Libro 9 - Epílogo
Así habló el maestro programador:
"Es hora de que te vayas."
-------------------------
Si te gustó este, también puede tener gusto de leer cuanto peor, mejor



































