search instagram arrow-down

12 señales de que eres un mal programador

Traducido del mensaje origianal en Digg.

1. Java es todo lo que necesitas.
No ves la necesidad de usar ningún otro lenguaje, ¿por qué no se puede hacer todo con Java? No te importa ver código en Velneo, Python, o Ruby que logra en 10 lineas lo que llevaría varias hojas de código Java. Además, seguramente las nuevas características de la próxima versión del lenguaje lo arreglaran de todas formas. (Esto es aplicable a casi cualquier lenguaje, pero ocurre que entre la comunidad Java parece estar más extendida esta forma de pensar)

2. El término “enterprisey” (NT: se trata de un término sarcástico utilizado para designar productos complejos más allá de lo necesario) no te suena a broma.
“Enterprise” no es sólo una palabra, es una filosofía, una forma de vida, un camino a la iluminación. Cualquier cosa que pueda ser escrita, desplegada o actualizada con un trabajo mínimo es descartada como un juguete que no “escalará” para futuros usos. Mientras tanto la mayor parte del trabajo real en tu oficina se hace enviando hojas de cálculo en Excel mientras esperan a que termines de construir tu nueva visión corporativa.

3.Te opones férreamente a las funciones/métodos de más de 20 líneas de código.
(o 30 o 10 o cualquier otro número) Lo siento, algunas veces una función larga es justamente lo que necesitas. Normalmente las funciones cortas son más sencillas de entender, pero algunas veces se pueden expresar más fácilmente en una sola función más larga. El código no debería hacerse más complejo sólo para adecuarse a criterios arbitrarios.

4. “¡OH DIOS MÍO! ¡PATRONES!”
Los desarrolladores que buscan constantemente la forma de aplicar patrones a cualquier problema de código con el que se encuentran están añadiendo una complejidad innecesaria. Lejos de ser algo que busques, deberías sentirte mal cada vez que tienes que utilizar un patrón de diseño, significa que estás escribiendo código que hace las cosas más complicadas y que puede ser de dudosa utilidad. Pero, ¡ey!, tu código tiene patrones, bien por ti.

5. Los ciclos de CPU son un recurso precioso y tu estilo de programación y lenguaje reflejan esas creencias.
Hay montones de problemas en los que tienes que tener muy en cuenta el consumo de CPU (modelado/simulación, procesado de señales, kernels de sistemas operativos, etc), pero no es tu caso. Para la mayor parte de los desarrolladores de software sus principales problemas de rendimiento están relacionados con las bases de datos y la entrada/salida. El único efecto de optimizar tu código para mejorar el uso de CPU será disminuir en 2 milisegundos el tiempo necesario para la próxima consulta a la base de datos. Mientras tanto el desarrollo de la aplicación se hace más lento, no puedes hacer frente a los nuevos requerimientos y te encuentras con problemas serios de calidad. Pero al menos estás ahorrándote montones de ciclos de CPU… eventualmente.

6. Piensas que ninguna función/método debería tener más de un return.
Esta la he oído alguna que otra vez, y normalmente la razón que me dan es que el código es más sencillo de analizar. ¿Según quién? Yo encuentro más fácil de leer un código más simple, y normalmente el tener más de un return simplifica el código.

7. Tus usuarios son estúpidos. Realmente estúpidos.
Simplemente no puedes creer lo estúpidos que son, olvidándose constantemente de hacer las cosas más sencillas del mundo y cometiendo errores tontos al usar tu aplicación. Nunca has considerado que quizás es tu aplicación la que es estúpida porque eres incapaz de escribir software decente.

8. Te enorgulleces enormemente del gran volumen de código que escribes.
Ser productivo es bueno, desafortunadamente escribir montones de líneas de código no es lo mismo que ser productivo. Los usuarios nunca comentan “Guau, este programa puede ser difícil de usar y estar lleno de errores, pero al menos sé que hay un montón de código por debajo.” En lugar de ser productivo, generar toneladas de mal código retrasa a los demás desarrolladores y en el futuro su mantenimiento constituirá una pesada carga.

9. Copiar y pegar es genial, te ayuda a escribir código desacoplado.
Defiendes tu uso del copy paste con extraños argumentos sobre desacoplar código y eliminar dependencias, mientras ignoras el aumento del tiempo de mantenimiento y los problemas de duplicación de errores. A esto se le llama “racionalizar tus acciones”.

10. Piensas que la gestión de errores consiste en capturar todas las excepciones, registrarlas, y continuar como si nada.
Eso no es gestionar errores, eso es ignorar errores y es el equivalente semántico al “on error next” de VB. Sólo porque hayas registrado el error en algún sitio no significa que lo estés tratando. Tratar errores es algo duro. Si no sabes qué hacer exactamente cuando te encuentras con un cierto error, simplemente deja que la excepción se propague y que un nivel más alto del código lo trate.

11. Modelas todo tu código en UML antes de escribirlo.
El modelado entusiasta de UML se lleva a cabo normalmente por aquellos que no escriben demasiado código, sino que se consideran arquitectos de software. Las herramientas de modelado atraen más a aquellos que piensan que el código se puede escribir en una sala de conferencias manipulando pequeños gráficos. Los gráficos no son el diseño, y nunca serán el diseño, para eso está el código.

12. Tu código borra datos importantes.
Escribiste un cierto código que se supone que debe sobrescribir los archivos de la aplicación con otros nuevos, pero se vuelve loco y borra todos los datos del usuario.

k

 

7 comments on “12 señales de que eres un mal programador

  1. alores dice:

    Congrats! Esta info es muy interesante para el dia a dia de un programador.

    1. Roberto Blasco dice:

      Mmmmm…..

      No estoy de acuerdo con Java, pero viva la diversidad de opiniones.

      Utilizo Java para programar, con muy pocas líneas de código …. Quizá estés confundiendo la programación en Java J2EE, sprint, Structs ……

      Java es mucho más que una programación MVC

      Y eso sí, hago lo que quiero como quiero y contra lo que quiero ….. Y lo que es mejor … Los demás se comunican conmigo.

      Código optimizado y aprovecho recursos y librerías. Resultado pocas líneas, eficiencia, múltiplataforma ….. Y ahorro de tiempo comparado con los quebraderos de cabeza de otros lenguajes limitados.

      Pero eso sí … Es sólo mi opinión.

      Un saludo 🙂

      1. Amigo Roberto 100% agree

        Recuerda que este es un artículo traducido del DiGG de 2007.

        No dudo ni dudaré nunca de la potencia de JAVA siempre que esté programado por gente realmente buena programando como es tu caso ;). Para el programador normal, JAVA es un rollo, pero es una opinión…..

        Si quiero hacer cosas sencillas, rentables y en poco tiempo tengo claro que usar. (http://www.velneo.com) 😉

        Saludos

  2. Emilio dice:

    El articulo es de 2007 y lo acabo de ver ahora :-(.

    No entiendo porque el 1, 4, 6 y el 11 (con matices) son señales de un mal programador.

    1) “logra en 10 lineas lo que llevaría varias hojas de código Java”, para llegar a esas 10 lineas tienes que tener un dominio del lenguaje que lleva horas conseguir. Es bueno aprender otros lenguajes, pero si dominas un solo lenguaje no te hace un mal programador

    4) Utilizar un patrón no tiene porque hacer el código mas complicado (y lo contrario puede que si), lo importante es saber cuando merece al pena utilizar un patrón y cuando no.

    6) Esto se podría discutir largo y tendido, pero no creo que seguir una u otra te haga mejor o peor programador. Un return rompe el flujo de ejecución y romper el flujo de ejecución puede dificultar la lectura de código, pero como digo no hace a uno mejor o peor programador.

    11) Hombre no es necesario modelar todo tu código en UML, pero hacer un esbozo del modelo de datos ayuda (o en relacional), merece la pena si tienes un modelo de datos importante.

    Con el resto de puntos coincido plenamente.

    PD: el 1 y el 3 pueden entrar en contradicción ;-D.

  3. Hola Emilio, como siempre gracias por tu aportación, son simplemente puntos de vista 😉 Gracias por tu aportación

  4. Adelo dice:

    Creo que falta una. “Necesitar un Debugger” 🙂

    1. 😉 100% agree Adelo, aunque el debugger es una herramienta que ahora tiempo a cualquier tipo de programador, sobre todo a los que somos malos.

Responder
Your email address will not be published. Required fields are marked *

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: