Cuando escribimos código en un lenguaje de programación, y ejecutamos el código escrito, es probable que el proceso de compilación nos muestre información acerca de los errore (o bugs en inglés) que se dan en vuestro código, y también información al respecto de en qué instrucciones puntuales de código ocurrieron. Los tipos de yerros cometen los programadores al implementar un software son fundamentalmente de los próximos tipos: Yerros sintácticos : Estos yerros se presentan en la etapa de compilación del código fuente, y ocurren debido a que el programador no ha escrito correctamente las instrucciones de un código fuente, con fundamento en la sintaxis especifica de un lenguaje de programación (Por ejemplo, en el caso de PHP, escribir una instrucción sin colocar el símbolo de punto y coma al final de la instrucción). Yerros en tiempo de ejecución Estos yerros no pueden ser descubiertos hasta que el proyecto sea ejecutado y testeado en un entorno en ?vivo?( lo que se conoce en el proceso software como ámbito de producción ) con datos reales, por más sofisticadas sean las pruebas que se le realicen previamente, e independientemente de la calidad de su diseño (Por ejemplo, exceder el rango de un vector). Yerros lógicos : Ocurren cuando un conjunto de instrucciones, al ejecutarse, retornan un o unos valores completamente inesperados. Por lo general, la motivo de este tipo de yerros se deben a: Un pésimo o inexistente diseño de la solución software Una pésima o inexistente etapa de captura y análisis de requerimientos. (Por ejemplo, un ciclo que se ejecuta mas veces de las que debiera, o peor aun, un ciclo infinito). Yerros de entorno(o de enlazado) : Ocurren cuando tienen lugar en el código instrucciones que hacen llamados a componentes externos de software, y en la etapa de compilación, el compilador detecta que es imposible contar con estos componentes, debido a su intienen lugarcia, o mala configuración o instalación(Por ejemplo, una llamada a una librería de software intienen lugarte). Esto impide la conversión final a código ejecutable del código fuente. En esta categoría también caen los yerros debidos a llamadas a funciones o métodos no definidos, o las construcciones de objetos a dividir de clases no encontradas o mal referenciadas. Localización de yerros en código fuente: Uno de los apariencias más complicados de la programación es la depuración de yerros : y es que los yerros o defectos de programación son muy comunes inclusive en los artículos comerciales que se ?supone? se ven sometidos a controles de calidad exhaustivos. Por ello, no es de extrañar que cuando se comience a programar por primera vez o se aprenda un nuevo lenguaje de programación se cometan muchos yerros, lo que suele ser inicio de muchas frustraciones. Sin embargo, aunque se trata de un apariencia tan significativo en programación, no se le presta mucha vigilancia tanto en las referencias bibliográficas de desarrollo de software (existen poquísimos libros cuyo asunto central sea la depuración de yerros, y en la mayoría de libros de programación, no importando el lenguaje a plataforma a la cual vaya dirigido, las paginas dedicadas a la depuración de yerros son mínimas ) como en docencia. Debilidades que los ?novatos? debieran atacar Los yerros antes mencionados deben ser encontrados para satisfacer un requerimiento de software a cabalidad, más aún cuando se trata de un artículo software, no importando la complejidad de éste (Nada mas lean el próximo articulo para conocer la magnitud de este asunto). Pero, hasta que no se muestre por pantalla el fruto de un grupo de instrucciones, el programador no podría darse cuenta del yerro, siempre que ya supiese de antemano el fruto de aquella. En este caso, el programador podría percatarse del yerro fácilmente; pero, cuando las operaciones son más complejas, los yerros de lógica pueden ser muy complicados de detectar. En general, los programadores ?newbies? presentan una serie de carencias o falta de habilidades, a saber: No comprende realmente qué funciones realizan las dispositivos de desarrollo (compilador, enlazador, etc.) No entienden(o no los tienen en cuenta) los mensajes de yerro que generan las dispositivos de desarrollo. No tienen muy claras las diferencias entre los tipos de yerros que tienen lugar (lógicos, sintácticos, en tiempo de ejecución, de enlazado). No saben como contratar un componente depurador ( debugger ) para corregir los yerros de sus programas. No son sistemáticos ni tienen paciencia a la hora de corregir los errores. Estas carencias asimismo se agravan por el comportamiento y actitud que suelen mostrar los novatos respecto a los yerros en el código: No le dan relevancia a los yerros : ?no es importante, si solo me falta declarar la variable y colocar un punto y coma?- dice uno de ellos. No leen los mensajes de yerro : simplemente se fijan en que línea se ha producido el error. Piensan que la tarea del profesor es actuar como depurador : en cuanto se muestra un problema, solicitan ayuda del profesor para que resuelva el error. En ocasiones el novato no puede localizar el inicio del yerro y llega a la conclusión de que el código fuente no contiene yerroes. En esas ocasiones, muchos novatos piensan que el asunto se descubre en el hardware o en el software (y en especial en el compilador). En consecuencia, un novato debe invertir fracción de su tiempo en conocer, desde el primer momento, todas las alternativas que tiene a su alcance(para un lenguaje particular), para encontrar los yerros o defectos de su código fuente, su naturaleza, orígenes y causales, y como descartar los mismos o, reducirlos a unos márgenes minusculos tolerables. Este proceso se conoce como DEPURACION DE CODIGO FUENTE. Acerca de la depuración de código fuente La depuración de yerros o defectos de programación ( debugging en inglés) es el proceso metodológico para descubrir y reducir bugs (errores) o defectos en un  proyecto informático  o en una pieza de  hardware El proceso de depuración se puede ejecutar de dos modos principales, los cuales son muy conocidos por veredas comunidades o ?gremios? del desarrollo de software: La técnica del muestreo de frutos intermedios(en este articulo se hace una descripción del uso de esta técnica en PHP). La técnica de la depuración paso a paso utilizando un depurador(en este articulo se aprende a configurar eclipse para utilizar esta técnica). Esto es todo por el momento. Recuerden que el proceso de depuración es significativo en un proceso de software, y que merece toda vigilancia que podamos dirigir, mediante el uso de técnicas cada vez mas sofisticadas.