Hoy les traigo un hilo de programación que quería hacer algún tiempo, más que temas técnicos quiero compartir 1️⃣0️⃣ Tips basados en mi experiencia personal y espero que les sirva a los que están comenzando en este mundo. 🧵
1️⃣ Has las cosas bien y no tan rápido:

Esta es una de mis premisas, antes cuando me encargaban algún trabajo intentaba hacerlo lo mas rápido posible para quedar bien y poder hacer más cosas 🤑, como resultado
utilizaba el camino corto sin complicarme mucho la vida.
Me importaba más el funcionamiento que el código, como resultado cuando me pedían que añadiera una nueva funcionalidad terminaba creando un código prácticamente imposible de entender.
Los programas que yo hice hace unos 10 años ni yo mismo entiendo qué hice, los veo y digo, pq yo hice esta mierda? porque hice esto así? 🤦‍♂️

Se complica aun más cuando es otra persona la que escribió el código original haciendo tremendo reguero, se vuelve mision imposible😬
2️⃣ Evita el código espaguetis:

Precisamente por lo mencionado antes de querer trabajar rápido y a veces por no tener los conocimientos necesarios (Interfaces, Herencia etc.) creamos código que es prácticamente imposible de desenredar.
Tomate tu tiempo para entender lo que necesitas antes de escribir una sola linea código. Si es necesario busca una pizarra o maqueta en cualquier otro lugar lo que sería la estructura de lo que necesitas.
Si estas comenzando, mi consejo es: Lee y estudia mucho antes de comenzar a escribir código, principalmente si eres autodidacta, como es mi caso, al principio pensamos que los temas teóricos no son importantes y te aseguro que SI lo son y MUCHO.
Para aprender a escribir buen código es importante conocer los principios SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation y Dependency inversion) así como otros temas teóricos que sirven para cualquier lenguaje.
3️⃣ No le des muchas vueltas a las cosas:

Si tomarse el tiempo necesario para hacer las cosas bien es importante darle demasiadas vueltas a algo para intentar hacerlo “perfecto” es también nuestro enemigo.
Intenta buscar la mejor solución para hacer eso que deseas hacer, pero luego no la cambies tres veces a mitad de camino porque encontraste una “mejor” pq nunca terminaras. Recuerda que todos los programas tienen versiones, nada es perfecto en la versión 1.0 😉
4️⃣ Comenta tu código:

Para algo están los comentarios, no seas vago y ÚSALOS! un tiempo después cuando quieras retomar un trabajo te volverás loco intentando entender para que es cada cosa sino le pones una explicación, NUNCA confies en tu memoria.
Tampoco te pases con los comentarios:

// sumando uno + uno
1+1=2

Este tipo de comentarios son absurdos, hay partes del código que cualquiera que sepa leerlo sabe exactamente qué estas haciendo, no hace falta que lo expliques todo tampoco.
5️⃣ Vista larga:

Cuando te encarguen un trabajo piensa que siempre el cliente te pedirá añadirle alguna funcionalidad luego, entonces desde un principio prepara tu trabajo para que sea posible. Pocas veces el cliente te dice todas las ideas de una vez, otras surgen en el camino.
Antiguamente me pasaba mucho que hacia las cosas exactamente para lo que me encargaron, luego tenia que añadir una nueva funcionalidad y tenia que reestructurar casi todo el codigo.
Ya hoy en dia cuando me piden algo, ya pienso todo lo que se les puede ocurrir con esa aplicación e incluso lo que no se les puede ocurrir e intento dejar algunas cosas abiertas para poder añadir mas funciones en cualquier momento.
Por ejemplo, Imagina que te piden una aplicación para entregar pizzas, seguramente creas un objeto llamado Pizza. Pero NO, ve mas allá y crea un objeto genérico llamado “Paquete” y otro “Pizza” que lo hereda y si el cliente luego quiere entregar frutas la aplicación esta lista 😉
6️⃣ Dale valor a tu trabajo:

Basado en el punto 1, recuerda que es mejor calidad sobre cantidad, si un cliente no sabe valorarlo déjalo pasar, te aseguro que al final volverá cuando vea que el trabajo que le hicieron más “barato” y “rápido” es una porqueria.
Cuando te pidan hacer algo "NUNCA" digas, eso es muy fácil yo lo hago en "5 minutos". Estas devaluando tu trabajo poniendo tu ego por encima. Recuerda que un buen profesional no cobra solo por lo que hace, sino por el tiempo invertido en aprender a hacerlo. 😉
7️⃣ Calcula el tiempo y planificate:

NUNCA, pero nunca des un tiempo exacto de lo que crees que tomara hacer algo. Si crees que hacer una funcionalidad te tomará 2 días le dices al cliente 4, y así tienes margen para si sucede algún imprevisto, si terminas antes quedaras muy bien
Me ha pasado que he dicho eso lo termino en 2 días y una semana después estoy enredado pq era mas complicado de lo que pensaba o simplemente me metí 2 días con un solo bug. Por eso investiga bien y analiza lo que tienes que hacer antes de dar un tiempo o precio.
Si lo que tienes que hacer es demasiado grande, divídelo en partes y ve dando los tiempos de cada funcionalidad, es COMPLETAMENTE imposible decir, la aplicación estará lista en 6 meses, eso es imposible!
Tampoco te vuelvas loco con el timing, incluso las grandes compañías quedan mal en los tiempos de lanzamiento por imprevistos o funciones que toman mas del tiempo debido. Pero al menos intenta que quedar mal no sea parte de tu rutina.
8️⃣ Transparencia

No le mientas al cliente diciendo que ya casi estas terminando cuando sabes que te quedan aún muchas cosas por hacer esperando que magicamente se resuelvan en las próximas 24 horas para entregar a tiempo, eso NO sucederá y quedarás mal.
No hace falta que le cuentes al cliente exactamente todo pq al final las cosas técnicas no las entenderá, pero si que exista una comunicación directa dónde le digas en que estas trabado o que esta pasando, el cliente siempre aprecia la transparencia.
NUNCA le digas a un cliente que sabes hacer algo que no sabes, es preferible decirle que no tienes mucha experiencia pero te atreves a hacerlo. Apreciará la transparencia y sobre todo tus deseos de superación.
Pero no intentes quedar como un experto para después de pasado un tiempo digas que no diste pie con bola.
9️⃣ Descansa

No por trabajar mas terminarás más rápido, si algo no te sale no lo intentes más, descansa hasta e próximo día y verás que con la mente fresca fluye solito.
Recuerda que tienes una vida más allá de un teclado y un monitor, busca un hobby, reúnete con tus amigos etc. Después de un buen merecido descanso y despejar nuestra mente rendimos el doble que sí trabajáramos 24 horas seguidas sin parar.
1️⃣0️⃣ Disfruta tu trabajo

Para mi el punto más importante y que le da sentido a los otros 9 es disfrutar lo que hago cada día, sino disfrutas lo que haces no lo harás bien, tu trabajo será demasiado pesado y ninguno de los puntos anteriores tendrá sentido.
Como dice el dicho...

“Elige un trabajo que te apasione y no tendrás que TRABAJAR ningún día de tu vida”

Gracias si llegaste hasta aqui y espero que les guste y sobre todo que les sirva, yo personalmente tuve que aprender muchas de estas cosas a golpes 😆
You can follow @rafrsr.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: