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.
Aunque practicidad late pureza.
Los errores nunca debe pasar en silencio.
A menos que explícitamente silenciadas.
Frente a la ambigüedad, rechaza la tentación de adivinar.
Debería haber una-y preferiblemente sólo una obvia manera de hacerlo.
Aunque de esa manera 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 * 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 idea genial tocando 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 sitio de los vinculados
Traducido por Geoffrey James
Transcrito por el duque Hillard
Transmitido por Anupam Trivedi, Tampi Sajitha y Jagannath Meghshyam
Re-html-izada y editado por Kragen Sittler
-
Libro 1 - El Vacío Silencioso
Así habló el maestro programador:
"Cuando haya aprendido a arrebatarle el código de error del marco de la trampa, se
será el momento de que te vayas. "1.1
Algo misterioso se forma, nace en el vacío silencioso. Espera solo y
inmóvil, que es a la vez quieto y en movimiento constante. 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 grande. Si la operación
el sistema es grande, entonces el compilador es grandioso. Si el compilador es grande,
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 con 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 el 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 habló de Tao y lo busca. El programador insensato
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 manera de retirarse.
El gran talento se manifiesta 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 pierde todo sentido."
2.1
Los programadores de antes eran misteriosos y profundos. No podemos imaginar
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 un anfitrión saludando a sus invitados. Simple, como
bloques de madera sin tallar. Opaco, como piscinas negros en cuevas oscuras.¿Quién puede contar los secretos de sus corazones y mentes?
La respuesta solo existe en el Tao.
2.2
El Gran Maestro Turing una vez soñó que era una máquina. Cuando él 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 muy grande de computadoras fue a un software
conferencia y luego regresó a reportarse con su jefe, diciendo: "¿Qué clase
de los programadores trabajar para otras empresas? No se comportan y se
sin preocuparse por las apariencias. Su cabello era largo y descuidado, y su
ropas estaban arrugadas y viejas. Se estrelló nuestra suite de hospitalidad y
hace ruidos groseros durante mi presentación. "El gerente dijo: "Yo nunca debería haber enviado a la conferencia. Aquellos
Los programadores viven más allá del mundo físico. Consideran que la vida absurda, una
coincidencia accidental. Vienen y se van sin conocer sus limitaciones.
Sin cuidado, ellos viven sólo para sus programas. ¿Por qué se molestan
con las convenciones sociales?"Ellos están vivos dentro del Tao."
2.4
Un novicio le preguntó al Maestro: "Aquí es un programador que nunca diseña,
documentos o pruebas de 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 llegado a dominar 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. Se ha ido más allá de la
la necesidad de documentación, sino que 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 se está probando, es demasiado tarde para hacer el diseño
los 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 tiendas. Ser
prevenido, por esta feria no escapará unplundered ".Estas palabras incomodaron mucho al guardia, porque había millones de
de dólares en el interior de los equipos informáticos, por lo que observó al hombre cuidadosamente. Pero
el hombre solamente vagaba de stand en stand, murmurando para sí.Cuando el hombre salió, el guardia lo llevó aparte y buscó entre sus ropas, 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 vio cada vez más cerca, pero fue en vano.En el último día de la feria, el guardia pudo contener su curiosidad
ya no. "Ladrón Señor," dijo, "Estoy tan confundido que no puede vivir en
la paz. Por favor me ilumine. ¿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
principiante. Usted debe entender el Tao antes de trascender la estructura. "3.3
Había una vez un programador que estaba asignado a la corte del señor de la guerra
de Wu. El señor le preguntó al programador: "¿Qué es más fácil de diseñar: una
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 comparado con 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 opera como un mediador entre personas que tienen diferentes
Ideas: cómo debe operar, cómo debe entregar sus reportes, y cómo se debe
conforme a las leyes tributarias. Por el contrario, un sistema operativo no se limita
por las apariencias externas. Cuando se diseña 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 tarda en 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 se
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á
completado ", 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 todo. No debe ser ni demasiado poco o demasiado, ni
bucles innecesarios ni variables sin usar, ni falta de estructura ni
excesiva rigidez.Un programa debe seguir la Ley del Menor Asombro '. ¿Cuál es esta ley?
Es simplemente 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 no cumple estos requisitos, será en un estado de
desorden y confusión. La única forma de corregir esto es reescribir el
programa.4.2
Un novicio le preguntó al maestro: "Tengo un programa que a veces corre y
A veces aborta. He seguido las reglas de programación, pero soy yo
totalmente desconcertado. ¿Cuál es la razón de esto? "El maestro respondió: "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 de una máquina que los humanos han construido? Computadoras 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
principiante."Tu programa correrá entonces correctamente", contestó el maestro.
4.3
Un maestro estaba explicando la naturaleza del Tao a uno de sus novicios. "El
Tao está encarnado en todo software - sin importar cuán insignificante ", dijo
el maestro."Es el Tao en una calculadora de mano?", Preguntó el novicio.
"Es", fue la respuesta.
"Es 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 para un ordenador personal?"
El maestro tosió y cambió ligeramente su posición. "La lección ha terminado
por hoy ", dijo.4.4
El 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."¡Excelente!", Exclamó el Príncipe, "Su técnica es impecable!"
"La técnica?", Dijo el programador girando desde su terminal, "Lo que
sigo es el Tao - más allá de todas las técnicas! Cuando empecé a programar yo
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 cambio, usé 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. Los veo
que viene, me detengo, miro en silencio. Entonces cambio una sola línea de código
y las dificultades se desvanecen como nubes de humo. Entonces compilo el
programa. Me quedo quieta y dejar que la alegría del trabajo llene mi ser. Cierro mi
los ojos por un momento y luego cierre la sesión. "Príncipe Wang dijo, "¡Ojalá todos mis programadores fueran 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 usada no necesita aceite en sus bisagras.
Una corriente 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 grandes misterios.
5.2
Un gerente le preguntó a un programador cuánto tiempo le llevaría a terminar la
programa en el que estaba trabajando. "Va a estar terminado mañana," el
Programador respondió rápidamente."Creo que estás 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 lo deseen
agregar. 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 se ha completado. "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. El había sido
la programación de toda la noche.5.3
Un programador novato se le asignó una vez para codificar un paquete financiero sencillo.
El novicio trabajó furiosamente por muchos días, pero revisado cuando su amo
su programa, descubrió que contenía un editor de pantalla, un conjunto de
generalizada de gráficos rutinas, una interfaz de la 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 seas
tan impaciente ", dijo," voy a poner en la materia financiera con el tiempo. "5.4
¿Tiene un buen agricultor descuidar el cultivo se ha plantado?
¿Tiene un buen maestro por alto, incluso los estudiantes más humildes?
¿Tiene un buen padre permitir que un solo niño que muera 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 ser muchas y muy pocos los gerentes - entonces todo será
productiva ".6.1
Cuando los administradores tienen un sinfín de reuniones, los programadores escriben juegos. Cuando
contadores hablan de ganancias trimestrales, el presupuesto de desarrollo está a punto de
cortar. Cuando los científicos hablan de alto nivel del 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
los contadores hacen planes a largo plazo, la armonía y el orden están a punto de ser
restaurado. Cuando los científicos de alto nivel frente a los problemas que nos ocupa, el
los problemas se resolverán pronto.En verdad, este es el Tao de la Programación.
6.2
¿Por qué los programadores no productiva?
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 renuncia de uno en uno?
Debido a que se quemó.Después de haber trabajado para la gestión de los pobres, ya no el valor de sus puestos de 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 puesto de trabajo.El gerente intentó darle al programador un bono, pero el programador
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 se mantiene
una posición de poca estima, entiende bien la tarea propia de un
de los empleados. Vamos a promoverlo a la posición exaltada de la gestión
asesor! "Pero cuando dijo esto, el programador, una vez más se negó, diciendo: "Yo existo para
que puedo programar. Si yo fuera promovido, no haría nada, pero los residuos
tiempo para todos. ¿Puedo ir ahora? Tengo un programa que estoy trabajando. "6.4
Un gerente se dirigió a sus programadores y les dijo: "En lo que respecta a su trabajo
hora: vas a tener que venir a las nueve de la mañana y salir
a las cinco de la tarde. "Al oír esto, todos ellos se enojaron y varios
renunció en el acto.Entonces el gerente dijo: "Muy bien, en ese caso usted puede configurar su propia
las horas de trabajo, siempre y cuando haya terminado sus proyectos a tiempo. "El
los programadores, ahora satisfechos, comenzaron a llegar al mediodía y trabajar para la wee
horas de la mañana.-------------------------
Libro 7 - Sabiduría empresarial
Así habló el maestro programador:
"Se puede demostrar un programa para un ejecutivo de una empresa, pero no se puede
hacerle conocimientos de informática. "7.1
Un novicio le preguntó al maestro: "En el este hay una gran estructura de árbol
que los hombres llaman `la sede de las empresas". Se hinchado fuera de forma con
vicepresidentes y contadores. Se emite una gran cantidad de notas, cada uno
diciendo: Ve, ahí! " o `Ve, acá!" y nadie sabe lo que quiere decir. Cada
año nuevos nombres se colocan en las ramas, pero todo fue en vano. ¿Cómo puede
como una entidad natural ser? "El maestro respondió: "Uno percibe esta inmensa estructura y son
preocupa que no tiene ningún propósito racional. No se puede tomar a partir de diversiones
sus giros sin fin? No te gusta la facilidad de la programación sin problemas
bajo sus ramas refugio? ¿Por qué te 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 que llenan el cielo. Cuando esta
pájaro se mueve por todo el país, que trae un mensaje del Corporativo
Sede. Este mensaje se cae en medio de los programadores,
como una gaviota haciendo su marca en la playa. Entonces el ave 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 pájaro, porque é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, por
é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 de ruedas un cuadro negro de gran tamaño en
el maestro de la oficina, mientras que el maestro esperó en silencio."Este es un sistema integrado, distribuido, de uso general de estación de trabajo", comenzó
el mago ", de diseño ergonómico con un operativo propio
sistema, idiomas sexta generación, y el estado del usuario de múltiples arte
interfaces. Tomó a mis asistentes varios cientos de años el hombre para construir.
¿No es increíble? "El maestro levantó las cejas ligeramente. "Es realmente increíble",
, dijo."La sede corporativa se ha mandado," 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", contestó el maestro: "Yo he transportado a la
del centro de datos inmediatamente! "Y el mago regresó a su torre, así
satisfecho.Varios días después, un novato metido en la oficina del maestro
y el programador dijo: "No puedo encontrar el listado de mi nuevo programa. Hacer
Sabes dónde podría ser? ""Sí", respondió el maestro, "los listados están apilados en la plataforma en
el centro de datos. "7.4
El maestro programador se mueve de un programa a otro sin miedo. No
cambio en la dirección puede hacerle daño. No se disparará, 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: "Percibo 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
Las enanas. Cualquiera de sus divisiones podría abarcar un negocio completo. ¿Por qué es
esto es así? "El señor le respondió: "¿Por qué preguntas tan tontas? Esa compañía
es grande porque es grande. Si sólo hace el hardware, nadie compraría
él. Si sólo hace el 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 tratar de
se esfuerzan, conquista sin esfuerzo ".8.2
Un maestro programador pasó un programador novato en un día. El maestro señaló
el novato de la preocupación por un juego de ordenador de mano. "Excuse me",
, dijo, "¿puedo estudiar?"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
jugar, 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
Marco misterioso? "El maestro dejó caer el dispositivo en el suelo y lo aplastó bajo sus pies. Y
De repente, el novato se iluminó.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. Yo no tengo que
compartir mis recursos con nadie. El software es autosuficiente y
fácil de usar. ¿Por qué no dejas tu trabajo actual y se unan a mí aquí? "El programador de mainframes entonces comenzó a describir su sistema a su amigo,
diciendo: "El mainframe está sentado como un sabio de la antigüedad 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 multifacético 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 que fluye rápido. 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 y Yang Yo soy. Si viajamos juntos, llegará a ser famoso y ganar
grandes sumas de dinero. "Y por lo que el consignadas en conjunto, pensando en conquistar
el mundo.En la actualidad se reunieron firmware, que estaba vestido con harapos y cojeó
a lo largo apoyado en un palo espinoso. Firmware les dijo: "El Tao se encuentra
más allá del Yin y el Yang. Es silencioso y quieto como un charco 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. 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 ha gustado esto, es posible que también le gusta leer cuanto peor, mejor
Comentarios
- H_tere2000



































