Llegar a ser un programador “ninja” o “rockstar” (que no sé muy bien que es, pero te lo ponen en todos los anuncios de trabajo) es muy difícil, basta con leer las confesiones de los propios programadores. Pero convertirte en un programador pésimo, el peor programador que jamás ha existido, es mucho más fácil. Basta con seguir estos consejos (a añadir a la lista de cosas a aprender en tu primer día de trabajo):
- Cuanto más complicado sea el código que escribas mejor. Así demuestras tus capacidades y encima consigues que no te echen porque nadie más será capaz de entender tu código. De hecho, ni tu mismo, cuando pasen dos semanas
- Mientras programes bien no hace falta que seas bueno comunicando lo que haces. Si quieren saberlo, que miren tu código.
- No hace falta aprender SQL. Eso es para viejos, hoy en día hay muchos otros lenguajes (y tipos de bases de datos) más chulos
- Tampoco hace falta aprender HTML, esto lo dejamos para los diseñadores
- El jefe siempre tiene razón. Nunca le cuestiones. Aunque su opinión técnica te parezca completamente errónea, seguro que tiene razón que para algo es el jefe. No intentes mejorar su opinión.
- StackOverflow es Dios. Puedo pegar cualquier trozo de código de ahí en mi programa y estar seguro que funcionará. No hace falta ni que entienda lo que hace. Si tiene muchos votos es la buena.
- Siempre hay que utilizar el último framework JavaScript que salga. Está clarísimo que un nuevo framework deja inmediatamente obsoletos todos los anteriores (dice la leyenda que el código escrito con ellos podría incluso dejar de funcionar). Es imprescindible reescribir todo el código antiguo sin falta.
- No hay que escribir comentarios ni documentar nada. El buen código se entiende sólo.
- Si hay algo que no sabes hacer con el lenguaje de programación que te toca, es un problema del lenguaje. Invéntate tu propio lenguaje. Sin ninguna duda, la humanidad necesita más lenguajes de programación. Punto positivo si tu lenguaje es esotérico.
- Optimiza al máximo tu código, teniendo en cuenta todo lo que puede llegar a pasar en los próximos siglos. Tu código tiene que estar preparado para todo. No pasa nada si acabas con un código nada mantenible o todo el proyecto se retrasa por tu culpa.
- Los tests son para los débiles. Tu código es perfecto, no hace falta testearlo.
Los consejos están inspirados, con adaptaciones y añadidos propios, en este post donde el autor pregunto en twitter cuáles eran los peores consejos que le podían sugerir.
Evidentemente, estoy abierto a oír vuestros consejos. Cualquier comentario que me ayude a ser un peor programador será bienvenido.
La imagen de cabecera corresponde a la famosa restauración, me atrevo a decir que fallida, del Ecce Homo de Elías García Martínez. Composición fotográfica de Ricardo Ostal/AP
La lista (basada en situaciones reales) es muuuy larga:
* Ponte a picar código lo antes posible, sin perder tiempo en leer, comprender y pensar los requerimientos y como implementar la solución. Si luego el requerimiento 4 hecha por el suelo la implementación del requerimiento 2 y hay que rehacerla, mala suerte…Si, se podían haber leído todos los requerimientos antes de implementar nada, pero eso es tiempo…
* Hacer INSERTS/UPDATES y dar por hecho que no se producen errores…Evaluar el sqlErrorCode es para perdedores.
* Identar el código hace que ocupe más por el RC+LF…Mejor escribir el código en una línia y desplazarse en el editor dándole a la flecha derecha…Qué editor de código no aguanta las 1024 columnas o más…
* Si algo falla. no hay que perder tiempo leyendo el código…Mejor debugar SIEMPRE ejecutando el código linea a linea.
* No atiendas a consejos de otros, que aunque sea la primera vez, de entrada lo vas a hacer mejor que nadie.
* La valoración del coste de implementación siempre será “estará cuando esté”…Tira alto si te fuerzan …Tocar una línea dos días…Ah, ésta?…En 5 minutos, que pensaba que era más difícil..
* Copia de seguridad del código? Para qué, qué puede pasar?
* Los campos de importe en BBDD mejor con FLOAT, o VARCHAR…
* Centra los esfuerzos en demostrar que el error ya estaba en el código y que el culpable es otro que hace años lo hizo mal, más que en identificar y solucionar el problema
El control de versiones, qué es eso? O tenerlo pero subir todo el proyecto en ZIPs cada vez o ponerlo todo en ‘main’, sin hacer ramas, o mantener múltiple ramas separadas todo el tiempo y nunca dedicar tiempo a hacer ‘merge’ a ‘main’ y desde ‘main’. En algunos controles de versiones se llama ‘master’ al ‘main’, pero ya no, se considera lenguaje no inclusivo.