Actualmente no soy desarrollador o programador, hace ya algunos años fuí, de hecho esos fueron mis primeros trabajos, como 'Programador', 'Software Engineer' y 'Project Leader', actualmente ya no es mi principal actividad, pero sí es algo que me ha gustado, creo que es porque todos mi proyectos fueron terminados exitosamente. Y me ha gustado al grado que he estado trabajando en un proyecto en mis tiempos libres,y próximamente estaré anunciando el lanzamiento de ese programa.
Bueno, quiero listar esos puntos en este espacio con un poco de mas detalle,como una forma de compartir el conocimiento y espero sirvan a más de uno -osease aparte de mi-.
Los puntos que me han ayudado a programar mas rápido son:
- Tener un bosquejo de lo que vas a hacer primero en papel. Ya sea una función, una pantalla, un procedimiento, una clase, etc.
No me ha funcionado el ir rápidamente y sentarme a programar, cuando hacía eso, muchas veces tenia que rediseñar lo que habia hecho; El tenerlo en papel, y literalmente en papel, es porque me permite llevarme el diseño de lo que estoy haciendo a todos lados, y hacer modificaciones segun sea necesario o hacer comentarios al momento.
- Definir bien lo que hará tu programa, de preferencia hacer un listado de las funciones o requerimientos que debe de hacer tu programa, y ponle fechas de implementación o cuándo ya deben de estar implementadas/programadas.
Tener un objetivo, claro y simple de lo que hace tu programa, aunque muchas veces puede pensarse que es obvio, por ejemplo, diseñar/hacer un "Sistema de Inventarios", aunque sea eso, trato de definir un objetivo de ese sistema, por ejemplo, el sistema de inventarios, cual sería su principal objetivo?... facil se piensa en "tener control de las existencias de las mercancias", pero muchas veces las empresas piden un sistema porque tiene un problema identificado... si la empresa dice "necesito un sistema porque se me pierde la mercancia", entonces ese seria un primer objetivo, o bien otro seria "necesito un sistema porque me quedo sin mercancias y nos damos cuenta muy tarde", entonces el diseño del sistema se enfocaría en esos aspectos... cuando ya el sistema esta desarrollado, muchas de estas cosas estarían incluidas, pero cuando tienes que decidir entre qué prestanciones debe de tener el sistema, tu objetivo principal te dirá cuales deben de implementarse, y cuales debe de posponerse. Las funciones o requerimientos deben de apoyar a ese objetivo principal, y junto a esas funciones deben de tener una fecha de implementación o de cuándo estarían listas.
- Tener una maquina rapida y multicore (tengo una quad core), ya que te permite el verdadero multitasking.
Suena obvio, pero es preferible tener el equipo mas rápido posible, el multicore o la máquina que actualmente tengo, ha sido una maravilla, puedo tener ejecutando una máquina virtual donde este 'testeando' una aplicación, instalando varias aplicaciones y evitar basura en mi maquina principal, etc. Y evitar esos saltos que hace como que se congela la maquina por algunos instantes. A veces esas lentitudes, hacen que se pierdan segundos, o perder el hilo al ritmo que llevas.
- Aprenderte de memoria atajos de teclado, tanto de Windows como de editores o de cualquier programa común que uses.
No esta de mas decir que cuando estas haciendo algo con el teclado, resulta en perdida de algunos segundos el tener que ir a agarrar el mouse, solo para, por ejemplo, compilar, o ver las propiedades del proyecto, o cambiar a otra ventana, o etc... El teclear y aprenderse atajos o comandos, -debo reconocer- es algo que he aprendido de los 'linuxeros'.
- No pierdas tiempo programar-surfear-programar-surfear, mejor dedícate un tiempo solamente para programar, y despues surfeas en la red.
Para algunos les funciona, para otros son vicios, pero en lo personal, hay momentos en los que puedo estar programando y surfeando, pero en la mayoría de los casos, he sido más productivo cuando solo me concentro en programar.
- No programes cansado.
Como casi en toda actividad, el trabajar estando cansado, simplemente no funciona, no avanzas y estas propenso a cometer errores. En mi experiencia, no tan solo afectas el trabajo que haces, sino tambien al equipo en el que estas trabajando, tu humor ya no es el mismo.
- Lleva una bitácora de lo que haces, de lo que harás, y de lo que has hecho. Te sorprenderás la cantidad de tiempo que te ahorras en acordarte y memorizarte cosas cuando inicies a programar.
Creo que esta sugerencia, deberia de ser la primera, el llevar listas de pendientes, o cosas por hacer o de ideas, ayuda mucho. Te ahorras tiempo en recordar, y memorizar, cuando desarrollas; entre mas pequeño sea el equipo de desarrollo, más cosas tienes que tener en la mente, tienes que trabajar con más cosas al mismo tiempo. Una agenda o un simple cuaderno de notas, evita la pérdida de tiempo.. incluso sugeriria que esa agenda fuera siempre de una o maximo dos hojas que liste los puntos por hacer, o que recientemente hiciste, o ideas a revisar. Si tienes más hojas que esas, trata de reducirlas.No debe de caerse en ahora tener que perder tiempo en administrar la 'agenda' o perder tiempo en pasar hoja tras hoja tras hoja buscando cosas.
Con tan solo ver una página o dos, debes de tener toda la información necesaria de tu proyecto y programa.
- Ten a la mano lápiz y papel cerca (como no uso dos monitores, el papel y lápiz me ayuda bastante).
Todavia no tengo dos monitores, espero el próximo año tenerlos, pero mientras tanto, el tener papel y lápiz a la mano me ayuda bastante, el hacer diagramas rápidos, el hacer anotaciones que me pueden servir más adelante, me ha ahorrado mucho tiempo en estar haciendo clicks en ventanas o abrir y cerrrar aplicaciones.
He pensado y probado los desktops virtuales, pero me quitan recursos, y no me han funcionado ya que dejo de ver la pantalla principal. Si tienes dos monitores, tal vez esto no te ayude mucho, pero en mi caso, me ha servido.
- Lee libros, te ayudará a no reinventar la rueda y aprenderás cómo hacer las cosas más rápido.
No tan solo te ayuda a ver soluciones de algo que pudieras necesitar más adelante, sino tambien te da ideas de cómo hacer las cosas, y otra forma de hacerlas, y es más te ayuda a verificar si tus métodos son buenos o necesitan mejorar.
- Si te tardas en implementar algo, déjalo y comienza otra cosa, despues regresa y verás que lo puedes solucionar más rápido.
Es como despejar la mente, es como salir de un "loop", si en algo te atoras, simplemente déjalo para mas tarde, date un 'break', inicia otra cosa, avanza en esas cosas fáciles y rápidas que se pueden hacer y terminar pronto; después regresa a eso que esta llevando tiempo y dedícaselo, cumpliendo con el punto 6 anteriormente listado.
- Tener un buen ambiente que te permita concentrarte sin interrupciones.
A algunos nos gusta programar con musica, unos con musica clásica, otros con musica estridente,cada quien puede definir su "buen ambiente", el punto es que permita tu concentración y que no te interrumpan, muchas veces tienes la idea, solo es cuestion de trabajarla, o incluso ya encontraste la solucion y estas implementando, en mi caso, cuando me interrumpen, siento una sensacion de aquellas, que cuando esta a punto de romper el record o llegar a la final del videojuego, se va la luz. Es algo frustrante. Muchos preferimos trabajar en la madrugada, otros ya muy noche, otros encerrarnos en la oficina, esto con el propósito de concentrarse y avanzar sin interrupciones.
- Tener equipo que te haga sentirte cómodo, pantalla grande, buen teclado, silla comoda.
En la medida de las posibilidades, tener todo que te haga sentirte cómodo; por ejemplo: pantalla grande, buen teclado, buen mouse, etc. En mi caso, quisiera tener una silla Aeron, pero a veces no se puede, y para cumplir con este punto, de sentirse cómodo, mejor adquirí uno de estos (para la silla que uso), que a juzgar de lo que he probado, no tiene nada que pedirle a una Aeron. En fin, trata de tener o hacer todo para que tengas un entorno agradable, y que te haga sentirte cómodo.
- Y aunque suene obvio, aprende a teclear sin ver el teclado.
Suena obvio y lógico, entre más rápido escribas más rápido programas.
Excelente articulo
ResponderBorrarmuchas cosas a dura experiencia las comprendi.. tengo 14 Años programando...y sin embargo el articulo tiene tips que tomare en cuenta.
!!!Muchas Gracias!!! por tan excelente coloboracion e idea de verdad. Este articulo me ayudado a ver cuales son los puntos que debo de mejorar para programar con mayor eficiencia.
ResponderBorrarGenial!!! me encanto este articulo, Gracias por los tips, acabo de ver varios de mis mas grandes errores a la hora de comenzar a programar (es que soy una persona que se distrae con facilidad), bueno gracias de nuevo.
ResponderBorrarGracias por comentar, podrias decir cual es o cuales son tus errores? seguramente sera un buen aporte tambien.
ResponderBorrarGracias maestro, me van a servir todos los consejos.
ResponderBorrarmuy interesante ya mismo los pongo en practica
ResponderBorrar!!!Excelente!!!!!! Muchas Gracias, por estas grandes sugerencia.
ResponderBorrar