# Resumen

* [Principiante](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner)
  * Habilidades Personales
    * [Aprender a Depurar](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/01-learn-to-debug)
    * [¿Cómo depurar dividiendo el espacio del problema?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space)
    * [¿Cómo eliminar un error?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/03-how-to-remove-an-error)
    * [¿Cómo depurar utilizando un registro (Log)?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/04-how-to-debug-using-a-log)
    * [¿Cómo entender problemas de rendimiento?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/05-how-to-understand-performance-problems)
    * [¿Cómo solucionar problemas de rendimiento?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/06-how-to-fix-performance-problems)
    * [¿Cómo optimizar bucles?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/07-how-to-optimize-loops)
    * [¿Cómo manejar el costo de la entrada/salida (E/S)?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/08-how-to-deal-with-io-expense)
    * [¿Cómo gestionar la memoria?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/09-how-to-manage-memory)
    * [¿Cómo manejar errores intermitentes?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs)
    * [¿Cómo aprender habilidades de diseño?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/11-how-to-learn-design-skills)
    * [¿Cómo realizar experimentos?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/12-how-to-conduct-experiments)
  * Habilidades de Equipo
    * [¿Por qué es importante la estimación?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/01-why-estimation-is-important)
    * [¿Cómo estimar el tiempo de programación?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/02-how-to-estimate-programming-time)
    * [¿Cómo encontrar información?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/03-how-to-find-out-information)
    * [¿Cómo utilizar a las personas como fuentes de información?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources)
    * [¿Cómo documentar de manera inteligente?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/05-how-to-document-wisely)
    * [¿Cómo trabajar con un código deficiente?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/06-how-to-work-with-poor-code)
    * [¿Cómo Utilizar el Control de Código Fuente?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/07-how-to-use-source-code-control)
    * [¿Cómo realizar pruebas unitarias?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/08-how-to-unit-test)
    * [Tomarse descansos cuando te sientes bloqueado](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/09-take-breaks-when-stumped)
    * [¿Cómo reconocer cuándo es hora de ir a casa?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/10-how-to-recognize-when-to-go-home)
    * [¿Cómo lidiar con personas difíciles?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/11-how-to-deal-with-difficult-people)
* [Intermedio](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate)
  * Habilidades Personales
    * [¿Cómo mantenerse motivado?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/01-how-to-stay-motivated)
      * [¿Cómo ser ampliamente confiado?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/02-how-to-be-widely-trusted)
      * [¿Cómo hacer equilibrio entre tiempo y espacio?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/03-how-to-tradeoff-time-vs-space)
      * [¿Cómo realizar pruebas de resistencia?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/04-how-to-stress-test)
      * [¿Cómo equilibrar brevedad y abstracción?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/05-how-to-balance-brevity-and-abstraction)
      * [¿Cómo aprender nuevas habilidades?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/06-how-to-learn-new-skills)
      * [Aprender a escribir](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/07-learn-to-type)
      * [¿Cómo Hacer pruebas de integración?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/08-how-to-do-integration-testing)
      * [Idiomas de comunicación](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/09-communication-languages)
      * [Herramientas pesadas](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/10-heavy-tools)
      * [¿Cómo analizar datos?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/11-how-to-analyze-data)
  * Habilidades de Equipo
    * [¿Cómo gestionar el tiempo de desarrollo?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/team-skills/01-how-to-manage-development-time)
    * [¿Cómo gestionar los riesgos del software de terceros?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/team-skills/02-how-to-manage-third-party-software-risks)
    * [¿Cómo gestionar a los consultores?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/team-skills/03-how-to-manage-consultants)
    * [¿Cómo comunicar la cantidad adecuada?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/team-skills/04-how-to-communicate-the-right-amount)
    * [¿Cómo disentir honradamente y salir airosos?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/team-skills/05-how-to-disagree-honestly-and-get-away-with-it)
  * Juicio
    * [¿Cómo equilibrar la calidad contra el tiempo de desarrollo?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/01-how-to-tradeoff-quality-against-development-time)
    * [¿Cómo gestionar la dependencia del sistema de software?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/02-how-to-manage-software-system-dependence)
    * [¿Cómo decidir si el software es demasiado inmaduro?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature)
    * [¿Cómo tomar una decisión de compra frente a desarrollo interno?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision)
    * [¿Cómo crecer profesionalmente?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/05-how-to-grow-professionally)
    * [¿Cómo evaluar a los candidatos en una entrevista?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/06-how-to-evaluate-interviewees)
    * [¿Cómo saber cuándo aplicar conceptos avanzados de ciencias de la computación?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/07-how-to-know-when-to-apply-fancy-computer-science)
    * [¿Cómo hablar con personas no ingenieras?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/08-how-to-talk-to-non-engineers)
* [Avanzado](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced)
  * Juicio Tecnológico
    * [¿Cómo distinguir lo difícil de lo imposible?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/technical-judgment/01-how-to-tell-the-hard-from-the-impossible)
    * [¿Cómo utilizar lenguajes incorporados?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/technical-judgment/02-how-to-utilize-embedded-languages)
    * [Elección de lenguajes](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/technical-judgment/03-choosing-languages)
  * Comprometerse Sabiamente
    * [¿Cómo combatir la presión del cronograma?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/compromising-wisely/01-how-to-fight-schedule-pressure)
    * [¿Cómo eentender al usuario?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/compromising-wisely/02-how-to-understand-the-user)
    * [¿Cómo obtener un ascenso?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/compromising-wisely/03-how-to-get-a-promotion)
  * Sirviendo a tu Equipo
    * [¿Cómo desarrollar el talento?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/01-how-to-develop-talent)
    * [¿Cómo elegir en qué trabajar?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/02-how-to-choose-what-to-work-on)
    * [¿Cómo obtener lo mejor de tus compañeros de equipo?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/03-how-to-get-the-most-from-your-teammates)
    * [¿Cómo dividir problemas?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/04-how-to-divide-problems-up)
    * [¿Cómo manejar tareas aburridas?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/05-how-to-handle-boring-tasks)
    * [¿Cómo obtener apoyo para un proyecto?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/06-how-to-gather-support-for-a-project)
    * [¿Cómo hacer crecer un sistema?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/07-how-to-grow-a-system)
    * [¿Cómo comunicarse bien?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/08-how-to-communicate-well)
    * [¿Cómo decir cosas que la gente no quiere escuchar?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear)
    * [¿Cómo lidiar con mitos gerenciales?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/10-how-to-deal-with-managerial-myths)
    * [¿Cómo lidiar con el caos organizacional?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/11-how-to-deal-with-organizational-chaos)
* [Apéndice A - Bibliografía/Sitios web](https://braydie.gitbook.io/how-to-be-a-programmer/es/5-bibliography)
* [Apéndice B - Historia (Hasta enero de 2016)](https://braydie.gitbook.io/how-to-be-a-programmer/es/6-history)
* [Apéndice C - Contribuciones (Hasta enero de 2016)](https://braydie.gitbook.io/how-to-be-a-programmer/es/7-contributions)
