Cómo Ser un Buen Codificador de Software

Por J. F. Díaz (jfdiaz98@hotmail.com)
Lic. en Ciencias de la Computación

La codificación es una fase muy importante dentro del ciclo de desarrollo de software. Conocida también como instrumentación, la codificación representa generalmente de 10 a 15% del tiempo total de programación.

Aunque podría parecer una tarea sencilla, la codificación requiere conocimientos y destrezas especiales. Los buenos codificadores (o coders, como se les conoce) gozan de mucho prestigio en los círculos de programadores y son más productivos en su trabajo que los que carecen de estas habilidades. De hecho, el ser un buen codificador constituye un excelente paso inicial para los novatos en programación, y algunos hasta son contratados para llevar a cabo esa tarea en las empresas que diseñan software.

A continuación se mencionan algunas de las más importantes habilidades y conocimientos que deben adquirir los principiantes en Programación para lograr ser buenos codificadores de software.

1. Aprende a mecanografiar bien
Aunque pudiera parecer obvia, esta es una habilidad básica que debes adquirir para ejercerla eficientemente. No estoy hablando de ser rápido con el teclado --en realidad una velocidad promedio de 25 palabras por minuto es suficiente-- si no saber usarlo bien. En especial, escribir correctamente las palabras reservadas de los lenguajes de programación (las keywords) y conocer cómo digitar los símbolos especiales utilizados en la sintaxis de estos lenguajes es lo que hace la diferencia entre un buen codificador de software y uno mediocre. Estos símbolos especiales varían de un lenguaje a otro e incluyen carácteres tales como las llaves ({}), los corchetes ([]), símbolos matemáticos (<, >, =, %, +, -) las plecas (\ y /), además de otros carácteres (|, !, #, $, &, ^, ~, etc.), por lo que es de vital importancia saber cómo ubicarlos o mediante cuál combinación de teclas podemos producirlos.

Si no sabes usar un teclado, toma un curso de mecanografía clásica o por computadora o aprende usando algún tutorial de software. No irás muy lejos en tu carrera como programador si no eres un buen mecanógrafo.

2. Domina tu editor de texto
Los editores son herramientas vitales en la codificación pues ellos nos permiten digitar y editar el código de nuestros programas para almacenarlos en el computador. Para ser un buen codificador debes dominar eficazmente esta herramienta a fin de que sea tu mejor aliada durante el proceso de codificación. Un dominio pobre de ella puede incrementar el tiempo de codificación y por lo tanto el de todo el proyecto de programación, así como sus costos.

El dominar tu editor de texto implica conocer sus características y limitaciones. Eso, aunado a la aplicación de técnicas y prácticas de sentido común, junto a normas de estilo de codificación te permitirá acelerar tu trabajo, y ser más eficiente en tu labor.

3. Domina la sintaxis y las herramientas de tu lenguaje de programación
Esta quizá sea la más importante habilidad que un codificador debe poseer por cuanto exige conocimiento y no mera destreza. La codificación requiere un alto grado de dominio de la sintaxis que ofrece el lenguaje de programación que utilizamos tanto para codificar como para depurar los errores sintácticos y semánticos que podamos cometer en el proceso. Además, es muy importante el dominio que se tenga de las facilidades y herramientas que ofrece el compilador y del IDE (Interface Development Environment, Interfaz del Ambiente de Desarrollo) que utilicemos, por ejemplo la biblioteca de funciones interconstruidas y el depurador.

El dominio y empleo eficiente de la sintaxis del lenguaje a utilizar es un aspecto vital. Reflejar una acción de pseudocódigo como instrucciones de algún lenguaje de programación es un arte en sí mismo que requiere inteligencia y sagacidad, puesto que cada acción del pseudocódigo puede requerir una o varias instrucciones. En otros casos ocurre lo contrario. Podemos hacer uso de una función de biblioteca interconstruida y ahorrarnos el tiempo y el esfuerzo que representa la creación y codificación de bloques enteros de instrucciones, incluyendo su prueba y depuración. Las funciones de biblioteca pueden realizar los cálculos o acciones que necesitemos y ahorrarnos así tiempo valioso que podemos invertir en otras actividades, como la prueba del programa. Si desconocemos las funciones de biblioteca de nuestro lenguaje o su utilización es seguro que tardaremos más en completar la fase de codificación, por cuanto podríamos estar continuamente inventando la rueda. Además, las funciones interconstruidas son a menudo más eficientes que cualquier implementación que hagamos puesto que ya han sido corregidas y están optimizadas.

Los conocimientos y la experiencia que el codificador tenga con la sintaxis del lenguaje y sus herramientas, así como las facilidades que ofrece su interfaz son elementos clave para el éxito de la codificación. Muchos programadores emplean versiones superiores del compilador de su lenguaje de trabajo para aprovechar su más amplio repertorio de funciones de biblioteca, nuevas instrucciones y capacidades de edición y compilación. Esto les ayuda a mejorar su productividad, depurar más eficazmente el código y finalizar en menos tiempo esta fase permitiéndoles avanzar rápidamente a la siguiente etapa del ciclo de desarollo: la prueba del programa.

4. Aprende a compilar código
Esta es otra de las habilidades imprescindibles de los codificadores. El proceso de la codificación no concluye al traducir los documentos de diseño de la lógica del programa a la sintaxis específica de algún lenguaje de programación, sino que va más allá: el código producido debe estar libre de errores semánticos y sintácticos para que pueda ser usado como materia prima en la Fase de Prueba y Depuración.

Aprender a compilar no significa ejecutar una opción de la interfaz del compilador usado. Aprender a compilar es una habilidad que requiere, además de un buen dominio de la sintaxis y la semántica del lenguaje de programación objetivo, mucha experiencia. Esta experiencia no se puede adquirir sino por medio de la práctica contínua y de la investigación. Muchos compiladores, empero, dificultan el proceso de aprendizaje por ser demasiado escuetos en sus mensajes de error o por expresar los errores que encuentran en un lenguaje demasiado técnico, difícil para los principiantes.

Es posible encontrar en los libros de texto, los manuales de usuario o la internet, las listas de errores que los compiladores generan junto con su codificación, lo cual facilita su comprensión y corrección. Si puedes encontrar la lista de errores de tu compilador, ella te ayudará bastante en la adquisición de experiencia y en el aprendizaje de la técnica de compilar código.

5. Aprende un buen estilo de programación
La codificación tiene mucho que ver con el estilo del programador. Un buen estilo de programación ayuda a producir código más claro, fácil de leer, comprender y verificar. Para adquirir un buen estilo de codificación debes en primer lugar leer el código de los programas que aparecen en los libros de programación. El código de estos programas es escrito y revisado cuidadosamente por programadores profesionales, y a menudo integra una gran cantidad de excelentes reglas y prácticas de codificación que puedes adoptar como propias y aplicarlas consistentemente en tu programación. Puesto que aprender a codificar es como aprender a escribir lenguaje natural, esta es la mejor manera de aprender estilo: leer lo escrito por los maestros e imitarlos cada vez más hasta que tus programas comiencen a mostrar la clase de fuerza y economía que aprecias en sus trabajos.

Entre algunas de las más importantes prácticas y reglas de codificación que debes aprender y emplear están las siguientes:
  1. Dotar a tus programas de características deseables como generalidad, flexibilidad y sencillez.
  2. Utilizar líneas en blanco, la indentación y delimitadores de bloques de código en líneas independientes (aunque sólo sea para una única instrucción) así como líneas cortas de instrucciones para darle claridad al código y favorecer su lectura.
  3. Utilizar identificadores autoexplicativos para todos los objetos empleados en el código (nombres de variables, de constantes, de estructuras de datos, de tipos de datos definidos por el usuario, de subrutinas, etc.)
  4. Documentar de manera clara, breve y sencilla el código importante como los algoritmos claves o las instrucciones que utilicen suposiciones o que no sean sencillas de comprender por contexto.
  5. No utilizar código sucio o truculento que dificulte la comprensión del programa, o aislarlo en subrutinas separadas y documentarlo adecuadamente.
  6. Utilizar las funciones interconstruidas de los lenguajes de programación.
El uso disciplinado y consistente de estas y otras buenas reglas y prácticas de programación, así como el imitar a los profesionales, te convertirá en un mejor codificador, y por ende en un mejor programador cuyo estilo será la marca individual por el que serás reconocido, admirado y hasta imitado por los demás.

6. Documenta tu código
La Documentación es una fase aparte del ciclo de desarrollo de programas. De hecho formalmente está después de la Fase de Prueba y Depuración. Pero aunque la Fase de Documentación es una de las últimas dentro del proceso de desarrollo de software, su desarrollo se va dando de manera silenciosa desde las primeras etapas con la creación de los documentos necesarios para el diseño de la solución (diagramas de flujo, elaboración de pseudocódigos, diseño de pantallas de captura de datos, etc.) La Fase de Codificación, etapa en donde por primera vez se materializa el programa mediante la sintaxis de un lenguaje de programación específico, no es la excepción.

Es en la Fase de Documentación donde se documentan los detalles del código del programa. A medida que se va desarrollando el código, se van incluyendo comentarios dentro del programa fuente que son de gran ayuda para quienes tengan que comprender el código para realizar las tareas relacionadas con las pruebas y el mantenimiento del mismo. Este tipo de documentación se realiza siguiendo lineamientos ampliamente aceptados en los círculos de programación y enunciados en muchos excelentes libros de texto. El artículo Cómo Documentar Código con Efectividad - Tips para la escritura de documentación interna resume muchos de estos lineamientos, por lo que te recomiendo encarecidamente su lectura.

El esfuerzo empleado en la documentación no solamente puede ayudar a los testers (probadores y depuradores) o a los mantenedores de nuestros programas. Será de gran utilidad al creador mismo del código cuando todo el trabajo de desarrollo recaiga sobre él, especialmente cuando retome el código después de un tiempo de haberlo finalizado, cuando haya olvidado los detalles importantes de la programación y perdido la familiaridad con el código.

7. Domina las herramientas de programación
En este caso no me refiero a algún tipo de software. Me refiero a las diversas técnicas de diseño que se utilizan en las etapas previas del proceso de la programación. Entre ellas podemos mencionar las técnicas de diseño de programas tales como la modularización y las técnicas que se derivan de ella (p. ej. top-down y down-top), la flujogramación y el uso del pseudocódigo.

Para ser un buen codificador debes conocer y dominar estas herramientas, por cuanto eres tú mismo el que las traduce a la sintaxis de un lenguaje de programación. Exceptuando los casos en los que una única persona lleva a cabo todo el proceso de la programación (donde ella conoce todos los detalles del diseño del programa), en los proyectos que involucran a varias personas los codificadores generalmente solo reciben una serie de documentos que reflejan la estructura y la lógica general de la solución a implementar. El codificador debe saber cómo leer estos documentos para poder traducirlos a código ejecutable, lo cual implica que conozca y domine todo lo relacionado con estas herramientas.

Pero el dominio que debe tener el codificador no solo se limita a la capacidad de interpretar documentos creados usando esas herramientas. Él debe ser capaz de detectar errores en tales documentos, pasando así de ser un simple "intérprete" a ser un elemento de control de calidad. Esta habilidad dependerá de la experiencia que poseea el codificador y de su compromiso con el proyecto de programación. Sin embargo, en caso de detectar anomalías o errores en los diagramas o algoritmos que recibe, el codificador debe estar seguro de su hallazgo antes de comunicarlo a su inmediato superior para su respectiva evaluación.

En los proyectos de desarrollo de software profesional el asunto es más complejo, puesto que deben dominarse más herramientas de diseño, como por ejemplo, diagramas Warnier-Orr, diagramas Jackson, lenguaje especiales como el OML y el UML, etc. que en sí son sencillos pero que requieren mayores conocimientos. Con todo, un buen codificador debe tener estas habilidades para convertirse en un mejor programador.

8. Aprende inglés
¿Qué tiene que ver el inglés con la codificación? Aparte de que debes aprender a escribir correctamente las palabras reservadas de la sintaxis de tu lenguaje y que debes interpretar apropiadamente la interfaz de usuario de tu IDE si no cuentas con una versión en tu idioma (opciones de menú, ayuda, cajas de diálogos, etc.) lo cual ya es bastante, debes estar en capacidad de comprender los mensajes que envía el compilador por los errores de sintaxis, semántica o de ejecución que puedan contener tus programas al momento de compilarlos o correrlos. Recuerda que la codificación no consiste tan solo en digitar código, sino que incluye la eliminación de estos errores. Esta depuración es estrictamente necesaria antes de proseguir con las restantes fases del diseño de programas.

Por todo lo anterior, debes conseguir un nivel suficiente de inglés como para comprender por qué el compilador se está quejando de tu código y puedas corregir el problema. Un buen dominio del vocabulario técnico informático y particular de tu lenguaje ayudará mucho también, aunque puedes auxiliarte de un buen programa traductor y/o un diccionario técnico electrónico como el Spanglish, o de papel para utilizarlo como herramienta de apoyo durante tu codificación.

9. Respalda tu trabajo
Aunque al último, no es una recomendación menos importante que las anteriores. Hacer copias de seguridad te será de suma utilidad cuando por alguna causa tu PC no responda, el medio de almacenamiento en que pusiste tu trabajo no funcione o un virus o una falla de hadware dañe tus archivos. Los respaldos también te serán de utilidad durante la Fase de Mantenimiento cuando una modificación incorrecta o involuntaria estropee el programa que estabas mejorando, cuando necesites recuperar algo de código de versiones anteriores de programas que habías eliminado o para mantener un historial de tu trabajo.


Estas son sólo algunas recomendaciones. Si he omitido una que valga la pena incluir aquí por favor comunícamela para hacerlo. Si tienes algún comentario, crítica o sugerencia sobre este documento, igual. Y feliz codificación. :)


Ir al inicio de este artículo | Versión imprimible
Ir a la Página Principal de NeoProgramadores

Lecturas Relacionadas

Reglas de Estilo para la Codificación

Tips para la Edición de Código

Cómo convertirse en un programador

Las Fases de la Programación


¡Mándame un mensaje!
alojamiento web gratis
Otros servicios ofrecidos por HispaVista:
Inmobiliaria y Dominios
Consigue una página web gratis o un
alojamiento web profesional con Galeón