Grandes programadores encontrar soluciones simples a problemas complejos
Después de mucho tiempo pude encontrar la fuente para el siguiente cita -
Junior programadores crear soluciones simples a problemas simples. Senior programadores crear soluciones complejas a problemas complejos. Grandes programadores encontrar soluciones simples a problemas complejos.
Es a partir de un ensayo titulado Beautiful Software por Charles Connell.
Otro de mis favoritos es El Zen de Python --
Hermoso es mejor que la fea.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Piso es mejor que anidado.
Escaso es mejor que denso.
Readability counts.
Los casos especiales no son lo suficientemente especial para romper las reglas.
Aunque la practicidad latidos pureza.
Los errores no deben pasar en silencio.
Salvo que expresamente se silenció.
A la vista de la ambigüedad, rechazar la tentación de adivinar.
Debe haber una-y preferiblemente sólo una manera obvia de hacerlo.
Aunque de esa manera puede no ser obvia en un primer momento a menos que esté neerlandés.
Ahora es mejor que nunca.
Aunque nunca es a menudo mejor que el * derecho * ahora.
Si la aplicación es difícil de explicar, es una mala idea.
Si la aplicación es fácil de explicar, puede ser una buena idea.
Espacios de nombres son una gran idea bocinazos - vamos a hacer más de esos!
-------------------------
Y luego está el Tao clásico de la programación
--
créditos como en el sitio ligado -
Traducido por Geoffrey James
Transcritas por Duke Hillard
Transmitidas por Anupam Trivedi, Sajitha Tampi, y Meghshyam Jagannath
Re-html-izado y editado por Kragen Sittler
--
Libro 1 - El Vacío Silencioso
Así habló el maestro programador:
"Cuando uno ha aprendido a coger el código de error desde el marco de captura, se
será el momento de que te vayas. "1,1
Algo misterioso se forma, nacido en el vacío, en silencio. Esperando solo y
inmóvil, es a la vez y sin embargo sigue 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 grande. Si la operación
el sistema es grande, entonces el compilador es grande. Si el compilador es grande,
entonces la aplicación es grande. El usuario está satisfecho y que no existe
la armonía en el mundo.El Tao de la Programación fluye lejos y vuelve 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 el
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 al 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 espacio para sus programas. Los programadores que comprenden el Tao siempre
tiene suficiente tiempo y espacio para alcanzar sus metas.¿Cómo podría ser de otra manera?
1,4
El programador sabio le hablan Tao y lo sigue. El promedio
programador se le dice sobre Tao y lo busca. El programador estúpido
se dice acerca 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 retirarse.
Gran talento se muestra al final de la vida.
Incluso un programa perfecto todavía tiene errores.-------------------------
Libro 2 - Los Maestros Antiguos
Así habló el maestro programador:
"Después de tres días sin programar, la vida pierde sentido".
2,1
Los programadores de antes eran misteriosos y profundos. No podemos comprender
sus pensamientos, de modo que todo lo que hacemos es describir su apariencia.Consciente, como un zorro cruzando el agua. Alerta, como un general en el
campo de batalla. Amable, como una anfitriona saludando a sus invitados. Simple, como
bloques de madera sin tallar. Opaco, como pozos negro en cuevas oscuras.¿Quién puede decir los secretos de sus corazones y sus mentes?
La respuesta solo existe en el Tao.
2,2
El Gran Maestro Turing una vez soñó que era una máquina. Cuando despertó,
exclamó:"Yo no sé si soy Turing soñando que soy una máquina, o una
máquina soñando que soy Turing "2,3
Un programador de una empresa muy grande de computadoras fue a un programa de
conferencia y luego regresó a reportarse con su jefe, diciendo: "¿Qué clase
de programadores trabajan para otras compañías? No se comportan y se
interesan las apariencias. Su cabello era largo y descuidado y sus
ropas arrugadas y viejas. Se estrelló nuestra suite de hospitalidad y
ruidos groseros durante mi presentación ".El gerente dijo: "Yo nunca debería haber enviado a la conferencia. Esos
programadores viven más allá del mundo físico. Consideran que la vida un absurdo, un
coincidencia accidental. Vienen y van sin conocer límites.
Sin cuidado, ellos viven sólo para sus programas. ¿Por qué deben preocuparse
con 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,
los 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 ha dominado el Tao. Se ha ido
más allá de la necesidad de diseñar; él no se enoja cuando el sistema de
los accidentes, sino que acepta al universo sin preocupación. Se ha ido más allá de la
necesidad de documentación, ya no le importa si alguien ve su código.
Se 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
cambios ".3,1
Había una vez un hombre que fue a una feria de computadoras. Cada día, cuando
entró, el hombre le dijo a la guardia en la puerta:"Soy un gran ladrón, famoso por mis hazañas de robos en tiendas. Ser
de antemano, porque esta feria no escapará sin ser saqueada. "Estas palabras incomodaron mucho al guardia, porque había millones de
de dólares de los equipos informáticos dentro, de modo que observó al hombre cuidadosamente. Pero
el hombre solamente vagaba de stand en stand, murmurando para sí mismo.Cuando el hombre se fue, el guardia se lo llevó aparte y buscó entre sus ropas, pero
nada se encontró.Al día siguiente de la feria, el hombre regresó y regañó al guardia de
diciendo: "Yo 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 sin éxito.En el último día de la feria, el guardia pudo reprimir su curiosidad,
ya no. "Señor Ladrón," dijo, "Estoy tan confundido que no puede vivir en
paz. Si me ilumine. ¿Qué es lo que vas a robar? "El hombre sonrió. "Estoy robando ideas", dijo.
3,2
Había una vez un maestro programador que escribía programas no estructurados. Un
programador novato, tratando de imitarlo, también empezó 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
novicio. Debes comprender el Tao antes de trascender la estructura. "3,3
Había una vez un programador que estaba asignado a la corte de los señores de la guerra
de Wu. El señor le preguntó al programador: "¿Qué es más fácil de diseñar: un
paquete de contabilidad o un sistema operativo? ""Un sistema operativo", respondió el programador.
El señor lanzó una exclamación de incredulidad. "Sin duda, una rendición de cuentas
paquete es trivial comparado con la complejidad de un sistema operativo ",
dicho."No es así", dijo el programador, "al diseñar un paquete de contabilidad,
el programador opera como un mediador entre las personas que tienen diferentes
ideas: cómo debe operar, cómo debe entregar sus reportes, y cómo debe
conforme a las leyes fiscales. Por el contrario, un sistema operativo no está limitado
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 con el maestro programador y le mostró los requisitos
documento para una nueva solicitud. El gerente le preguntó al maestro: "¿Cuánto tiempo
tomará 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! ¿Cuánto tiempo
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á
concluido ", dijo.-------------------------
Libro 4 - Codificación
Así habló el maestro programador:
Programa "Un 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
totalmente. No debe ser ni demasiado poco o demasiado, ni
bucles innecesarios ni variables inútiles, ni la falta de estructura, ni
rigidez abrumadora.Un programa debería seguir la `Ley de asombro menos '. ¿Qué es esta ley?
Se trata simplemente de que el programa siempre debería responder al usuario en la forma en
que asombra lo menos.Un programa, sin importar su complejidad, debe actuar como una sola unidad. El programa
debe ser dirigido por la lógica en lugar de por las apariencias.Si el programa falla en estos requisitos, será en un estado de
desorden y confusión. La única manera de corregir esto es reescribir el
programa.4,2
Un novicio le preguntó al maestro: "Tengo un programa que se ejecuta en algún momento y
a veces aborta. He seguido las reglas de la programación, sin embargo, estoy
totalmente desconcertado. ¿Cuál es la razón de esto? "El maestro respondió: "Ustedes están confundidos porque no entiendes el Tao.
Sólo un tonto espera comportamiento racional de sus congéneres. ¿Por qué
esperas 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 tanto
debes contemplar el Tao antes de recibir la iluminación "."Pero, ¿cómo sabré que he recibido la iluminación?", Preguntó el
novicio."El programa se ejecutará correctamente", replicó el maestro.
4,3
Un maestro estaba explicando la naturaleza del Tao a uno de sus novicios. "El
Tao está encarnado en todo el software - sin importar cuán insignificante ", dijo el
el maestro."¿Está el Tao en una calculadora de bolsillo?", Preguntó el aprendiz.
"Es," fue la respuesta.
"¿Está el Tao en un videojuego?", Continuó el novicio.
"Es incluso en un juego de video", dijo el maestro.
"Y es el Tao en el DOS de un ordenador personal?"
El maestro tosió y cambió su postura ligeramente. "La lección es más
para hoy ", dijo.4,4
Programador Príncipe Wang estaba codificando. Sus dedos bailaban sobre el
teclado. El programa compiló sin un mensaje de error, y el programa de
corrió como un viento suave."Excelente!" Exclamó el príncipe, "Su técnica es impecable!"
"¿Técnica?", Dijo el programador girando desde su terminal, "Lo que yo
seguir es el Tao - más allá de todas las técnicas! Cuando empecé a programar I
a ver ante mí todo el problema en una sola masa. Después de tres años que no
ya no veía esa 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 plan, sigue su propio instinto. En resumen, mi programa
escribe a sí mismo. Es cierto que a veces hay problemas difíciles. Veo
venir, más lento, miro en silencio. Entonces cambio una sola línea de código de
y las dificultades desaparecen como bocanadas de humo. Entonces compilo el
programa. Me siento tranquilo y dejar que la alegría del trabajo llene mi ser. Cierro
los ojos por un momento y luego cerrar la sesión. "El 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
gestionada ".5,1
Un bien utilizados puerta no necesita aceite en sus bisagras.
Una rápida corriente que fluye no crece estancada.
Ni el sonido ni los pensamientos pueden viajar a través de un vacío.
Pudre de software si no se utiliza.Estos son los grandes misterios.
5,2
Un gerente de un programador preguntó cuánto tiempo le tomaría para terminar la
programa en el que estaba trabajando. "Se terminará mañana," el
programador respondió de inmediato."Creo que estás siendo poco realista", dijo el gerente, "A decir verdad, ¿cómo
tiempo tomará?El programador pensó por un momento. "Tengo algunas características que quiero
agregar. Esto le llevará al menos dos semanas ", dijo finalmente."Aún es demasiado para esperar", insistió el gerente, "Yo 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
el almuerzo, él descubrió que el programador dormido en su terminal. Había sido
programación de toda la noche.5,3
Un programador novato fue una vez asignado para codificar un paquete financiero sencillo.
El novicio trabajó furiosamente por muchos días, pero cuando su maestro revisó
de su programa, él descubrió que contenía un editor de pantalla, un conjunto de
generalizada rutinas gráficas, una interfaz de inteligencia artificial, pero
sin la menor 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 buen agricultor de un cultivo que ha plantado?
¿Tiene un buen maestro por alto hasta el más humilde de los estudiantes?
¿Tiene un buen padre de permitir que un solo niño que muera de hambre?
¿Tiene un buen programador se niegan a mantener su código?-------------------------
Libro 6 - Administración
Así habló el maestro programador:
"Dejad que los programadores de ser muchos y los pocos directivos - entonces todos serán
productivo ".6,1
Cuando los gerentes de celebrar reuniones sin fin, los programadores escribir juegos. Cuándo
los contadores hablar de los beneficios 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 asuman compromisos, se tienen en cuenta los programas de juego. Cuándo
contadores hacen planes a largo plazo, la armonía y el orden están a punto de ser
restaurada. Cuando científicos de alto nivel frente a los problemas en la mano, la
problemas pronto serán resueltos.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 para la gestión de pobres, que el valor ya no es 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, la
gerente retuvo su puesto de trabajo.El gerente trató de dar al programador un bono, pero el programador
se negó, diciendo: "Yo escribí el programa porque pensé que era un
concepto interesante, y por lo tanto no espero una recompensa ".El administrador de Al oír esto comentó: "Este programador, aunque se mantiene
una posición de poca estima, entiende bien la tarea propia de una
de los empleados. Vamos a promoverlo a la posición elevada de la gestión de
consultor! "Pero cuando le dijo a este, el programador, una vez más se negó, diciendo, "yo existo para
que puedo programa. Si se promovieron yo, yo no haría nada, pero los residuos
tiempo para todos. ¿Me puedo ir ahora? Tengo un programa que estoy trabajando ".6,4
Un gerente fue con sus programadores y les dijo: "En lo que respecta a su trabajo
hora: usted va a tener que venir a las nueve de la mañana y salir de
a las cinco de la tarde. "En este, todos ellos se enojó y varios
renunció en el acto.Así que el jefe dijo: "Bueno, en ese caso usted puede establecer su propio
las horas de trabajo, siempre y cuando haya terminado sus proyectos a tiempo. "El
a los programadores, ahora satisfechos, comenzaron a llegar al mediodía y trabajo a la madrugada
horas de la mañana.-------------------------
Libro 7 - Corporate Sabiduría
Así habló el maestro programador:
"Se puede demostrar un programa para un ejecutivo corporativo, pero no se puede
lo hacen computadoras. "7,1
Un novicio le preguntó al maestro: "En el este hay un árbol de gran estructura de
que los hombres llaman `la Sede corporativa». Es hinchada fuera de forma con
los vicepresidentes y los contables. Emite una multitud de notas, cada uno de
diciendo, «Ve, ahí!" o «Vaya, aquí!" y nadie sabe lo que significa. Cada
los nombres de año nuevo se colocan en las ramas, pero todo fue en vano. ¿Cómo se puede
como una entidad artificial ser? "El maestro respondió: "Ustedes perciben esta inmensa estructura y se
inquieta que no tiene ningún propósito racional. No se puede tomar de atracciones de
sus giros sin fin? ¿No disfrutan de la facilidad de la programación sin problemas
bajo sus ramas refugio? ¿Por qué estás preocupado por su
inutilidad? "7,2
En el este hay un tiburón que es más grande que todos los demás peces. Ello
se transforma en un ave cuyas alas son como nubes llenando el cielo. Cuando esto
movimientos de aves en toda la tierra, trae un mensaje del Corporativo
Sede. Este mensaje cae en medio de los programadores,
como una gaviota haciendo su marca en la playa. Entonces el pájaro se monta en el
el viento y, con el cielo azul a sus espaldas, vuelve a casa.El programador novato mira con asombro al pájaro, para él la entiende
no. El programador promedio teme la llegada de las aves, pues teme
su mensaje. El maestro programador sigue trabajando en su terminal, para
que él no sabe que el pájaro se ha ido y venido.7,3
El Mago de la Torre de Marfil llevó su último invento de la
maestro programador a examinar. El mago de ruedas un cuadro negro de gran tamaño en
la oficina del maestro mientras el maestro esperó en silencio."Este es un integrado, distribuido, estación de trabajo de propósito general", comenzó
el mago ", de diseño ergonómico con un operativo propietario
sistema, lenguajes de sexta generación, y el estado de varios de los usuarios de arte
interfaces. Tomó mis asistentes varios cientos de años para construir el hombre.
¿No es increíble? "El capitán alzó las cejas ligeramente. "Es realmente sorprendente",
dicho."Corporate Headquarters ha mandado", continuó el mago-, que
todo el mundo utilizan esta estación de trabajo como plataforma para nuevos programas. ¿Está de acuerdo
a esto? ""Ciertamente", respondió el maestro, "voy a tener que transportar a la
centro de datos de inmediato! "Y el mago regresó a su torre, así
satisfecho.Varios días después, un novicio entró en la oficina del maestro
programador y dijo: "No puedo encontrar el listado de mi nuevo programa. Hacer
Sabes dónde podría estar? ""Sí", respondió el maestro, "los listados están apilados en la plataforma en la
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? 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 computación es mucho más
más grande que todos los demás. Se torres 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 así? "El maestro respondió: "¿Por qué preguntas tan tonto? Esa empresa
es grande porque es grande. Si sólo hecho de hardware, nadie compraría
ello. Si sólo hace el software, nadie iba a utilizar. Si sólo se mantiene
los sistemas, las personas que lo tratan como un criado. Pero debido a que combina todas las
de estas cosas, la gente piensa que uno de los dioses! Al no tratar de
se esfuerzan, que conquista sin esfuerzo. "8,2
Un maestro programador aprobado un programador novato un día. El capitán señaló
la preocupación de los novatos con una mano juego de ordenador. "Disculpe,"
, dijo, "¿puedo examinarlo?"El novicio atornillada a la atención y le entregó el dispositivo con el maestro. "Yo
ver que el dispositivo afirma haber tres niveles de juego: fácil, medio, y
Duro ", dijo el maestro. "Sin embargo, cada dispositivo, tiene otro nivel de
el juego, donde el dispositivo no busca conquistar el ser humano, ni a ser conquistado
por los humanos. ""Rezad, gran maestro," imploró el novicio, "¿cómo se puede encontrar este
establecer misteriosa? "El capitán dejó caer el aparato al suelo y lo aplastó bajo los pies. Y
De pronto, el novicio estaba iluminado.8,3
Había una vez un programador que trabajó en microprocesadores. "Mira cómo
así fuera yo estoy aquí ", le dijo a un programador de computadora central que vino a visitar,
"Tengo mi propio sistema operativo y el archivo de dispositivo de almacenamiento. Yo no tengo a
compartir recursos de mi con nadie. El software es coherente y auto -
fácil de usar. ¿Por qué no dejar su empleo 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 antiguo sabio meditando en el medio
del centro de datos. Sus unidades de disco se encuentran de extremo a extremo como un gran océano de la
maquinaria. El software es tan multifacética como un diamante, y tan complicado
como una selva primitiva. Los programas, cada uno es único, se mueven a través del sistema
como un río que fluye rápido. Por eso estoy feliz donde estoy ".El programador de microcomputadoras, al oír esto, 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 vamos juntos vamos a ser famoso y ganar
grandes sumas de dinero. "Y así, el enunciado juntos, pensando en conquistar
el mundo.En la actualidad se reunieron firmware, que estaba vestido con harapos y cojeando
a lo largo apoyado en un bastón espinoso. Firmware les dijo: "El Tao está
más allá del Yin y el Yang. Es silenciosa y quieta como un estanque de agua. Hace
no buscan la fama, por lo tanto nadie sabe de su presencia. No se trata
fortuna, porque 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 ha gustado de estos, también se puede leer Peor es mejor



































