viernes, 12 de agosto de 2011

Ya soy programador ¿y ahora? ¿que sigue?

Divierte programando y disfrutarlo.

No creas que sabes todo, esto apenas comienza. Seguramente habrá más tecnologías por aprender allá afuera. Y no presumas de tus años de experiencia. Deja que otros colegas se den cuenta de lo bueno que eres por los que haces con tus lineas de código tu forma de trabajar y dar resultados.

No quieras reinventar la Rueda. Reutiliza el código tuyo o de otros. Lee código de otros y modifícalo. Aprende de tus errores y de los demás, practica mucho. No quieras correr antes caminar, empieza por la básico pero no te quedes ahí, avanza en aprendizaje de cosas nuevas y no olvides practicar las anteriores para no olvidarlas.

Aprende buenas practicas de programación del código de otros y trata de refactorizar código que esta mal hecho, esa es una excelente forma de aprender y no olvidar lo que se debe hacer y lo que es mejor evitar.

Entiende lo que estas haciendo. No hagas cosas a ciegas no digas "así funciona y no le muevan..." trata de comprender en la medida de lo posible que esta pasando.
No dejes sin corregir bugs... al menos deja etiquetas TODO en los comentarios del código, señalando cual es el error y porqué.

Si modificas el código asegurare de que los comentarios del código que al cual le estas dando mantenimiento sean consistentes con la funcionalidad de la pieza de código que acabas de modificar.

Cuando diseñes un software no se te olvide documentar las decisiones que tomas, las opciones que evaluaste y el criterio que seguiste para elegir esa opción. Haz diagramas preferentemente en una herramienta que mantenga sincronizado la representación gráfica y el código, si no pon la fecha a los diagramas y/o las versiones de código que se representaron en el diagrama. Si es necesario usa diagramas de formas libres para explicar el funcionamiento global del sistema.

Date tiempo para configurar tu ambiente de desarrollo evalúa cual es la herramienta que mas te gusta y te ofrece la funcionalidad que necesitas de acuerdo al lenguaje de tu proyecto o tecnología que debas manejar. Adelántate a las necesidades, estudia por anticipadamente lo que te puede servir.

Programar, esta 100% relacionado con escribir lineas de texto aprende a usar herramientas de procesamiento de texto por medio de linea de comandos. Si estas en un ambiente UNIX como alguna distribución GNU/Linux puedes investigar como se usa sed, awk, cat, grep, xargs, el uso pipes y redirecionamiento de flujos. Si estas en plataforma windows seguro podrás encontrar algunos de estas buenas herramientas con Cigwin.

Aprende acerca del ciclo de vida del software u otros tópicos relacionados, como pruebas manuales y automáticas de software, levantamiento de requerimientos, empaquetado de software, builts, deployments, modelado de software, auditoría de código, licenciamiento de código y cuestiones legales, aprende que herramientas se usan en cada una de estas actividades.

Las maquinas virtuales te pueden servir para simular ambientes distribuidos y probar nuevas herramientas de desarrollo.

Las pruebas de unidad automáticas (automated unit test) son una buena herramienta y una inversión a futuro, a la mejor requiere de una mayor inversión de tiempo pero es redituable cuando se requiere dar mantenimiento al código del programa.

Usa un repositorio de código y no tengas miedo a hacer commits. Si te equivocaste e introdujiste un bug has rollback, aprende a usar herramientas de comparación de código. Crea tags de código, y branches.

El dominio de la linea de comandos para invocar las herramientas que utilizas programando te dan mucha poder, la interfaces gráficas pueden ahorrarte mucho tiempo, elige cual usar según tus necesidades pero no tengas miedo de aprender a usar las dos.

Ten un cuaderno de notas, Puede ser un cuaderno y una pluma o bien un cuaderno de electrónico de notas como http://www.tiddlywiki.com/. El objetivo es que puedas expresar fácilmente tus ideas y plasmarlas para comunicarte y para no olvidar lo que has aprendido. Necesitaras saber hacer diagramas de muy diverso tipo UML, ER, Topología de red CISCO, o simplemente dibujos para comunicar ideas de manera sencilla.

Administra tu tiempo, puede ser una hoja de excel, con una lista de tareas por hacer en un blog de notas, en un software como planner (http://live.gnome.org/Planner/Downloads) o http://mgsd-docs.tiddlyspace.com/. El que te sea mas útil de acuerdo a lo que necesites ya tu nivel.

¿Se te ocurren más cosas? seguro que si, pues después de todo ya eres programador. Te invito a postear en los comentarios otras cosas que se te ocurran.

Por lo pronto te recomiendo un libro, eso si te advierto esta en Ingles, vale la pena es muy bueno, los datos son:
Titulo: The Pragmatic Programmer: From Journeyman to Master
Autor: Andrew Hunt; David Thomas
Editorial: Addison-Wesley Professional
Fecha de publicación: October 20, 1999

y lo puedes encontrar en: http://acmsel.safaribooksonline.com/book/software-engineering-and-development/020161622x/firstchapter



No hay comentarios: