# How to be a Programmer

## How to be a Programmer

- [README](https://braydie.gitbook.io/how-to-be-a-programmer/readme.md)
- [LANGS](https://braydie.gitbook.io/how-to-be-a-programmer/langs.md)
- [How to be a Programmer: Community Version](https://braydie.gitbook.io/how-to-be-a-programmer/en.md)
- [Appendix A - Bibliography/Websiteography](https://braydie.gitbook.io/how-to-be-a-programmer/en/5-bibliography.md)
- [Appendix B - History](https://braydie.gitbook.io/how-to-be-a-programmer/en/6-history.md)
- [Contributions](https://braydie.gitbook.io/how-to-be-a-programmer/en/7-contributions.md)
- [Glossary](https://braydie.gitbook.io/how-to-be-a-programmer/en/glossary.md)
- [Creative Commons Attribution Share-Alike](https://braydie.gitbook.io/how-to-be-a-programmer/en/license.md)
- [Summary](https://braydie.gitbook.io/how-to-be-a-programmer/en/summary.md)
- [1. Beginner](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills.md)
- [Learn to Debug](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/01-learn-to-debug.md)
- [How to Debug by Splitting the Problem Space](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space.md)
- [How to Remove an Error](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/03-how-to-remove-an-error.md)
- [How to Debug Using a Log](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/04-how-to-debug-using-a-log.md)
- [How to Understand Performance Problems](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/05-how-to-understand-performance-problems.md)
- [How to Fix Performance Problems](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/06-how-to-fix-performance-problems.md)
- [How to Optimize Loops](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/07-how-to-optimize-loops.md)
- [How to Deal with I/O Expense](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/08-how-to-deal-with-io-expense.md)
- [How to Manage Memory](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/09-how-to-manage-memory.md)
- [How to Deal with Intermittent Bugs](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs.md)
- [How to Learn Design Skills](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/11-how-to-learn-design-skills.md)
- [How to Conduct Experiments](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/personal-skills/12-how-to-conduct-experiments.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills.md)
- [Why Estimation is Important](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/01-why-estimation-is-important.md)
- [How to Estimate Programming Time](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/02-how-to-estimate-programming-time.md)
- [How to Find Out Information](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/03-how-to-find-out-information.md)
- [How to Utilize People as Information Sources](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources.md)
- [How to Document Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/05-how-to-document-wisely.md)
- [How to Work with Poor Code](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/06-how-to-work-with-poor-code.md)
- [How to Use Source Code Control](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/07-how-to-use-source-code-control.md)
- [How to Unit Test](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/08-how-to-unit-test.md)
- [Take Breaks when Stumped](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/09-take-breaks-when-stumped.md)
- [How to Recognize When to Go Home](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/10-how-to-recognize-when-to-go-home.md)
- [How to Deal with Difficult People](https://braydie.gitbook.io/how-to-be-a-programmer/en/1-beginner/team-skills/11-how-to-deal-with-difficult-people.md)
- [2. Intermediate](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate.md)
- [Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment.md)
- [How to Tradeoff Quality Against Development Time](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/01-how-to-tradeoff-quality-against-development-time.md)
- [How to Manage Software System Dependence](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/02-how-to-manage-software-system-dependence.md)
- [How to Decide if Software is Too Immature](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature.md)
- [How to Make a Buy vs. Build Decision](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision.md)
- [How to Grow Professionally](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/05-how-to-grow-professionally.md)
- [How to Evaluate Interviewees](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/06-how-to-evaluate-interviewees.md)
- [How to Know When to Apply Fancy Computer Science](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/07-how-to-know-when-to-apply-fancy-computer-science.md)
- [How to Talk to Non-Engineers](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/08-how-to-talk-to-non-engineers.md)
- [Mentoring](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/mentoring.md)
- [How to Be Mentored](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/mentoring/how-to-be-mentored.md)
- [How to Mentor Others](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/mentoring/how-to-mentor-others.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills.md)
- [How to Stay Motivated](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/01-how-to-stay-motivated.md)
- [How to be Widely Trusted](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/02-how-to-be-widely-trusted.md)
- [How to Tradeoff Time vs. Space](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/03-how-to-tradeoff-time-vs-space.md)
- [How to Stress Test](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/04-how-to-stress-test.md)
- [How to Balance Brevity and Abstraction](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/05-how-to-balance-brevity-and-abstraction.md)
- [How to Learn New Skills](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/06-how-to-learn-new-skills.md)
- [Learn to Type](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/07-learn-to-type.md)
- [How to Do Integration Testing](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/08-how-to-do-integration-testing.md)
- [Communication Languages](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/09-communication-languages.md)
- [Heavy Tools](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/10-heavy-tools.md)
- [How to analyze data](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/personal-skills/11-how-to-analyze-data.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/team-skills.md)
- [How to Manage Development Time](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/team-skills/01-how-to-manage-development-time.md)
- [How to Manage Third-Party Software Risks](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/team-skills/02-how-to-manage-third-party-software-risks.md)
- [How to Manage Consultants](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/team-skills/03-how-to-manage-consultants.md)
- [How to Communicate the Right Amount](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/team-skills/04-how-to-communicate-the-right-amount.md)
- [How to Disagree Honestly and Get Away with It](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/team-skills/05-how-to-disagree-honestly-and-get-away-with-it.md)
- [3. Advanced](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced.md)
- [Compromising-Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/compromising-wisely.md)
- [How to Fight Schedule Pressure](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/compromising-wisely/01-how-to-fight-schedule-pressure.md)
- [How to Understand the User](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/compromising-wisely/02-how-to-understand-the-user.md)
- [How to Get a Promotion](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/compromising-wisely/03-how-to-get-a-promotion.md)
- [Serving-Your-Team](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team.md)
- [How to Develop Talent](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/01-how-to-develop-talent.md)
- [How to Choose What to Work On](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/02-how-to-choose-what-to-work-on.md)
- [How to Get the Most From Your Team-mates](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/03-how-to-get-the-most-from-your-teammates.md)
- [How to Divide Problems Up](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/04-how-to-divide-problems-up.md)
- [How to Handle Boring Tasks](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/05-how-to-handle-boring-tasks.md)
- [How to Gather Support for a Project](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/06-how-to-gather-support-for-a-project.md)
- [How to Grow a System](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/07-how-to-grow-a-system.md)
- [How to Communicate Well](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/08-how-to-communicate-well.md)
- [How to Tell People Things They Don't Want to Hear](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear.md)
- [How to Deal with Managerial Myths](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/10-how-to-deal-with-managerial-myths.md)
- [How to Deal with Organizational Chaos](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/serving-your-team/11-how-to-deal-with-organizational-chaos.md)
- [Technical-Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/technical-judgment.md)
- [How to Tell the Hard From the Impossible](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/technical-judgment/01-how-to-tell-the-hard-from-the-impossible.md)
- [How to Utilize Embedded Languages](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/technical-judgment/02-how-to-utilize-embedded-languages.md)
- [Choosing Languages](https://braydie.gitbook.io/how-to-be-a-programmer/en/3-advanced/technical-judgment/03-choosing-languages.md)
- [Cómo ser un Programador: Versión Comunitaria](https://braydie.gitbook.io/how-to-be-a-programmer/es.md)
- [Apéndice A - Bibliografía/Sitografía](https://braydie.gitbook.io/how-to-be-a-programmer/es/5-bibliography.md)
- [Apéndice B - Historia](https://braydie.gitbook.io/how-to-be-a-programmer/es/6-history.md)
- [Contribuciones](https://braydie.gitbook.io/how-to-be-a-programmer/es/7-contributions.md)
- [Glossary](https://braydie.gitbook.io/how-to-be-a-programmer/es/glossary.md)
- [Licencia Creative Commons Atribución-CompartirIgual](https://braydie.gitbook.io/how-to-be-a-programmer/es/license.md)
- [Resumen](https://braydie.gitbook.io/how-to-be-a-programmer/es/summary.md)
- [1. Principiante](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills.md)
- [Aprende a depurar](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/01-learn-to-debug.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿Cómo optimizar bucles?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/07-how-to-optimize-loops.md)
- [¿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.md)
- [¿Cómo gestionar la memoria?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/09-how-to-manage-memory.md)
- [¿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.md)
- [¿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.md)
- [¿Cómo realizar experimentos?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/personal-skills/12-how-to-conduct-experiments.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿Cómo realizar pruebas unitarias?](https://braydie.gitbook.io/how-to-be-a-programmer/es/1-beginner/team-skills/08-how-to-unit-test.md)
- [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.md)
- [¿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.md)
- [¿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.md)
- [2. Intermedio](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate.md)
- [Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿Cómo crecer profesionalmente?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/judgment/05-how-to-grow-professionally.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills.md)
- [¿Cómo mantenerse motivado?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/01-how-to-stay-motivated.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [Aprender a escribir](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/07-learn-to-type.md)
- [¿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.md)
- [Idiomas de comunicación](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/09-communication-languages.md)
- [Herramientas pesadas](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/10-heavy-tools.md)
- [¿Cómo analizar datos?](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/personal-skills/11-how-to-analyze-data.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/es/2-intermediate/team-skills.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [3. Avanzado](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced.md)
- [Compromising-Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/compromising-wisely.md)
- [¿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.md)
- [¿Cómo Entender al Usuario?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/compromising-wisely/02-how-to-understand-the-user.md)
- [¿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.md)
- [Serving-Your-Team](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [¿Cómo Comunicarse Bien?](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/serving-your-team/08-how-to-communicate-well.md)
- [¿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.md)
- [¿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.md)
- [¿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.md)
- [Technical-Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/technical-judgment.md)
- [¿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.md)
- [¿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.md)
- [Elección de Lenguajes](https://braydie.gitbook.io/how-to-be-a-programmer/es/3-advanced/technical-judgment/03-choosing-languages.md)
- [How to be a Programmer: Community Version](https://braydie.gitbook.io/how-to-be-a-programmer/jp.md)
- [Appendix A - Bibliography/Websiteography](https://braydie.gitbook.io/how-to-be-a-programmer/jp/5-bibliography.md)
- [Appendix B - History](https://braydie.gitbook.io/how-to-be-a-programmer/jp/6-history.md)
- [Contributions](https://braydie.gitbook.io/how-to-be-a-programmer/jp/7-contributions.md)
- [Glossary](https://braydie.gitbook.io/how-to-be-a-programmer/jp/glossary.md)
- [Creative Commons Attribution Share-Alike](https://braydie.gitbook.io/how-to-be-a-programmer/jp/license.md)
- [Summary](https://braydie.gitbook.io/how-to-be-a-programmer/jp/summary.md)
- [1. Beginner](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills.md)
- [Learn to Debug](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/01-learn-to-debug.md)
- [How to Debug by Splitting the Problem Space](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space.md)
- [How to Remove an Error](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/03-how-to-remove-an-error.md)
- [How to Debug Using a Log](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/04-how-to-debug-using-a-log.md)
- [How to Understand Performance Problems](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/05-how-to-understand-performance-problems.md)
- [How to Fix Performance Problems](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/06-how-to-fix-performance-problems.md)
- [How to Optimize Loops](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/07-how-to-optimize-loops.md)
- [How to Deal with I/O Expense](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/08-how-to-deal-with-io-expense.md)
- [How to Manage Memory](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/09-how-to-manage-memory.md)
- [How to Deal with Intermittent Bugs](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs.md)
- [How to Learn Design Skills](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/11-how-to-learn-design-skills.md)
- [How to Conduct Experiments](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/personal-skills/12-how-to-conduct-experiments.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills.md)
- [Why Estimation is Important](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/01-why-estimation-is-important.md)
- [How to Estimate Programming Time](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/02-how-to-estimate-programming-time.md)
- [How to Find Out Information](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/03-how-to-find-out-information.md)
- [How to Utilize People as Information Sources](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources.md)
- [How to Document Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/05-how-to-document-wisely.md)
- [How to Work with Poor Code](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/06-how-to-work-with-poor-code.md)
- [How to Use Source Code Control](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/07-how-to-use-source-code-control.md)
- [How to Unit Test](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/08-how-to-unit-test.md)
- [Take Breaks when Stumped](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/09-take-breaks-when-stumped.md)
- [How to Recognize When to Go Home](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/10-how-to-recognize-when-to-go-home.md)
- [How to Deal with Difficult People](https://braydie.gitbook.io/how-to-be-a-programmer/jp/1-beginner/team-skills/11-how-to-deal-with-difficult-people.md)
- [2. Intermediate](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate.md)
- [Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment.md)
- [How to Tradeoff Quality Against Development Time](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/01-how-to-tradeoff-quality-against-development-time.md)
- [How to Manage Software System Dependence](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/02-how-to-manage-software-system-dependence.md)
- [How to Decide if Software is Too Immature](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature.md)
- [How to Make a Buy vs. Build Decision](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision.md)
- [How to Grow Professionally](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/05-how-to-grow-professionally.md)
- [How to Evaluate Interviewees](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/06-how-to-evaluate-interviewees.md)
- [How to Know When to Apply Fancy Computer Science](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/07-how-to-know-when-to-apply-fancy-computer-science.md)
- [How to Talk to Non-Engineers](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/judgment/08-how-to-talk-to-non-engineers.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills.md)
- [How to Stay Motivated](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/01-how-to-stay-motivated.md)
- [How to be Widely Trusted](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/02-how-to-be-widely-trusted.md)
- [How to Tradeoff Time vs. Space](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/03-how-to-tradeoff-time-vs-space.md)
- [How to Stress Test](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/04-how-to-stress-test.md)
- [How to Balance Brevity and Abstraction](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/05-how-to-balance-brevity-and-abstraction.md)
- [How to Learn New Skills](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/06-how-to-learn-new-skills.md)
- [Learn to Type](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/07-learn-to-type.md)
- [How to Do Integration Testing](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/08-how-to-do-integration-testing.md)
- [Communication Languages](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/09-communication-languages.md)
- [Heavy Tools](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/10-heavy-tools.md)
- [How to analyze data](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/personal-skills/11-how-to-analyze-data.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/team-skills.md)
- [How to Manage Development Time](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/team-skills/01-how-to-manage-development-time.md)
- [How to Manage Third-Party Software Risks](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/team-skills/02-how-to-manage-third-party-software-risks.md)
- [How to Manage Consultants](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/team-skills/03-how-to-manage-consultants.md)
- [How to Communicate the Right Amount](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/team-skills/04-how-to-communicate-the-right-amount.md)
- [How to Disagree Honestly and Get Away with It](https://braydie.gitbook.io/how-to-be-a-programmer/jp/2-intermediate/team-skills/05-how-to-disagree-honestly-and-get-away-with-it.md)
- [3. Advanced](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced.md)
- [Compromising-Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/compromising-wisely.md)
- [How to Fight Schedule Pressure](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/compromising-wisely/01-how-to-fight-schedule-pressure.md)
- [How to Understand the User](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/compromising-wisely/02-how-to-understand-the-user.md)
- [How to Get a Promotion](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/compromising-wisely/03-how-to-get-a-promotion.md)
- [Serving-Your-Team](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team.md)
- [How to Develop Talent](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/01-how-to-develop-talent.md)
- [How to Choose What to Work On](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/02-how-to-choose-what-to-work-on.md)
- [How to Get the Most From Your Team-mates](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/03-how-to-get-the-most-from-your-teammates.md)
- [How to Divide Problems Up](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/04-how-to-divide-problems-up.md)
- [How to Handle Boring Tasks](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/05-how-to-handle-boring-tasks.md)
- [How to Gather Support for a Project](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/06-how-to-gather-support-for-a-project.md)
- [How to Grow a System](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/07-how-to-grow-a-system.md)
- [How to Communicate Well](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/08-how-to-communicate-well.md)
- [How to Tell People Things They Don't Want to Hear](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear.md)
- [How to Tell People Things They Don't Want to Hear](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear-1.md)
- [How to Deal with Managerial Myths](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/10-how-to-deal-with-managerial-myths.md)
- [How to Deal with Organizational Chaos](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/serving-your-team/11-how-to-deal-with-organizational-chaos.md)
- [Technical-Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/technical-judgment.md)
- [How to Tell the Hard From the Impossible](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/technical-judgment/01-how-to-tell-the-hard-from-the-impossible.md)
- [How to Utilize Embedded Languages](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/technical-judgment/02-how-to-utilize-embedded-languages.md)
- [Choosing Languages](https://braydie.gitbook.io/how-to-be-a-programmer/jp/3-advanced/technical-judgment/03-choosing-languages.md)
- [Как быть программистом: Community Version](https://braydie.gitbook.io/how-to-be-a-programmer/ru.md)
- [Приложение A - Библиография/Список сайтов](https://braydie.gitbook.io/how-to-be-a-programmer/ru/5-bibliography.md)
- [Приложение B - История](https://braydie.gitbook.io/how-to-be-a-programmer/ru/6-history.md)
- [Участие в проекте](https://braydie.gitbook.io/how-to-be-a-programmer/ru/7-contributions.md)
- [Глоссарий](https://braydie.gitbook.io/how-to-be-a-programmer/ru/glossary.md)
- [Creative Commons Attribution Share-Alike](https://braydie.gitbook.io/how-to-be-a-programmer/ru/license.md)
- [Содержание](https://braydie.gitbook.io/how-to-be-a-programmer/ru/summary.md)
- [1. Начинающий программист](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills.md)
- [Научитесь отлаживать](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/01-learn-to-debug.md)
- [Как отлаживать, разделяя пространство проблемы](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space.md)
- [Как устранять баги](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/03-how-to-remove-an-error.md)
- [Как отлаживать, используя логи](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/04-how-to-debug-using-a-log.md)
- [Как определять проблемы производительности](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/05-how-to-understand-performance-problems.md)
- [Как устранять проблемы производительности](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/06-how-to-fix-performance-problems.md)
- [Как оптимизировать циклы](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/07-how-to-optimize-loops.md)
- [Как справиться с расходами на операции чтения и записи](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/08-how-to-deal-with-io-expense.md)
- [Как управлять памятью](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/09-how-to-manage-memory.md)
- [Как устранять плавающие баги](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs.md)
- [Как научиться проектировать программы](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/11-how-to-learn-design-skills.md)
- [Как экспериментировать](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/12-how-to-conduct-experiments.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills.md)
- [Почему важно оценивать задачи](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/01-why-estimation-is-important.md)
- [Как оценивать время на разработку](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/02-how-to-estimate-programming-time.md)
- [Как искать информацию](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/03-how-to-find-out-information.md)
- [Как спрашивать людей](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources.md)
- [Как документировать правильно](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/05-how-to-document-wisely.md)
- [Как работать с плохим кодом](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/06-how-to-work-with-poor-code.md)
- [Как использовать системы контроля версий](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/07-how-to-use-source-code-control.md)
- [Как писать юнит-тесты](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/08-how-to-unit-test.md)
- [Делайте перерывы, когда вы в тупике](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/09-take-breaks-when-stumped.md)
- [Как понять, когда идти домой](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/10-how-to-recognize-when-to-go-home.md)
- [Как вести себя с трудными людьми](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/11-how-to-deal-with-difficult-people.md)
- [2. Программист среднего уровня](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate.md)
- [Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment.md)
- [Как балансировать качество и время разработки](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/01-how-to-tradeoff-quality-against-development-time.md)
- [Как управлять зависимостями](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/02-how-to-manage-software-system-dependence.md)
- [Как оценивать стороннее программное обеспечение](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature.md)
- [Как решить: покупать программу или писать свою](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision.md)
- [Как расти профессионально](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/05-how-to-grow-professionally.md)
- [Как проводить собеседования](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/06-how-to-evaluate-interviewees.md)
- [Как понять, когда применять высокие технологии](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/07-how-to-know-when-to-apply-fancy-computer-science.md)
- [Как разговаривать с неинженерами](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/judgment/08-how-to-talk-to-non-engineers.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills.md)
- [Как сохранять мотивацию](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/01-how-to-stay-motivated.md)
- [Как заслужить доверие](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/02-how-to-be-widely-trusted.md)
- [Как балансировать процессорное время и память](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/03-how-to-tradeoff-time-vs-space.md)
- [Как проводить стресс-тестирование](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/04-how-to-stress-test.md)
- [Как балансировать краткость и абстракцию](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/05-how-to-balance-brevity-and-abstraction.md)
- [Как осваивать новые навыки](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/06-how-to-learn-new-skills.md)
- [Научитесь печатать вслепую](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/07-learn-to-type.md)
- [Как проводить интеграционное тестирование](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/08-how-to-do-integration-testing.md)
- [Языки взаимодействия систем](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/09-communication-languages.md)
- [Стандартные технологии](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/10-heavy-tools.md)
- [Как анализировать данные](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/personal-skills/11-how-to-analyze-data.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/team-skills.md)
- [Как управлять временем разработки](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/team-skills/01-how-to-manage-development-time.md)
- [Как управлять рисками, связанными со сторонним программным обеспечением](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/team-skills/02-how-to-manage-third-party-software-risks.md)
- [Как руководить консультантами](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/team-skills/03-how-to-manage-consultants.md)
- [Как соизмерять количество общения](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/team-skills/04-how-to-communicate-the-right-amount.md)
- [Как честно выражать несогласие](https://braydie.gitbook.io/how-to-be-a-programmer/ru/2-intermediate/team-skills/05-how-to-disagree-honestly-and-get-away-with-it.md)
- [3. Продвинутый программист](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced.md)
- [Compromising-Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/compromising-wisely.md)
- [Как справляться с давлением графика](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/compromising-wisely/01-how-to-fight-schedule-pressure.md)
- [Как понять пользователя](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/compromising-wisely/02-how-to-understand-the-user.md)
- [Как получить повышение](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/compromising-wisely/03-how-to-get-a-promotion.md)
- [Serving-Your-Team](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team.md)
- [Как развивать таланты](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/01-how-to-develop-talent.md)
- [Как выбрать, над чем работать](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/02-how-to-choose-what-to-work-on.md)
- [Как получить наибольшую отдачу от коллег](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/03-how-to-get-the-most-from-your-teammates.md)
- [Как разделять задачи](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/04-how-to-divide-problems-up.md)
- [Как распределять скучные задания](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/05-how-to-handle-boring-tasks.md)
- [Как получить поддержку для проекта](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/06-how-to-gather-support-for-a-project.md)
- [Как развивать систему](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/07-how-to-grow-a-system.md)
- [Как качественно взаимодействовать](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/08-how-to-communicate-well.md)
- [Как сообщать неприятное](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear.md)
- [Как справляться с менеджерскими мифами](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/10-how-to-deal-with-managerial-myths.md)
- [Как справляться с организационным хаосом](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/serving-your-team/11-how-to-deal-with-organizational-chaos.md)
- [Technical-Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/technical-judgment.md)
- [Как отличить сложное от невозможного](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/technical-judgment/01-how-to-tell-the-hard-from-the-impossible.md)
- [Как использовать встроенные языки](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/technical-judgment/02-how-to-utilize-embedded-languages.md)
- [Выбор языка программирования](https://braydie.gitbook.io/how-to-be-a-programmer/ru/3-advanced/technical-judgment/03-choosing-languages.md)
- [How to be a Programmer 中文版](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional.md)
- [词汇表](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/4-glossary.md)
- [附录 A - 书目/网站目录](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/5-bibliography.md)
- [附录 B - 历史](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/6-history.md)
- [Contributions](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/7-contributions.md)
- [Creative Commons Attribution Share-Alike](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/license.md)
- [How to be a Programmer 正體中文版](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/summary.md)
- [1. 入门](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills.md)
- [學習除錯](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/01-learn-to-debug.md)
- [如何通过分割问题 Debug](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space.md)
- [如何移除一个错误](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/03-how-to-remove-an-error.md)
- [如何使用日志调试](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/04-how-to-debug-using-a-log.md)
- [如何理解性能问题](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/05-how-to-understand-performance-problems.md)
- [如何修复性能问题](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/06-how-to-fix-performance-problems.md)
- [如何优化循环](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/07-how-to-optimize-loops.md)
- [如何处理I/O代价](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/08-how-to-deal-with-io-expense.md)
- [如何管理内存](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/09-how-to-manage-memory.md)
- [如何处理偶现的 Bugs](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs.md)
- [如何学习设计技能](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/11-how-to-learn-design-skills.md)
- [如何进行实验](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/12-how-to-conduct-experiments.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills.md)
- [为什么评估很重要](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/01-why-estimation-is-important.md)
- [如何评估编程时间](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/02-how-to-estimate-programming-time.md)
- [如何发现信息](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/03-how-to-find-out-information.md)
- [如何把人们作为信息源](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources.md)
- [如何睿智地写文档](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/05-how-to-document-wisely.md)
- [如何在糟糕的代码上工作](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/06-how-to-work-with-poor-code.md)
- [如何使用源代码控制](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/07-how-to-use-source-code-control.md)
- [如何进行单元测试](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/08-how-to-unit-test.md)
- [毫无头绪？，休息一下](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/09-take-breaks-when-stumped.md)
- [如何识别下班时间](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/10-how-to-recognize-when-to-go-home.md)
- [如何与不好相处的人相处](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/1-beginner/team-skills/11-how-to-deal-with-difficult-people.md)
- [2. 进阶](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate.md)
- [Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment.md)
- [如何在开发质量与开发时间权衡](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/01-how-to-tradeoff-quality-against-development-time.md)
- [如何管理软件系统依赖](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/02-how-to-manage-software-system-dependence.md)
- [如何判断软件是否太不成熟了](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature.md)
- [如何做购买还是构建的决定](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision.md)
- [如何专业地成长](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/05-how-to-grow-professionally.md)
- [如何评估面试者](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/06-how-to-evaluate-interviewees.md)
- [如何决定什么时候使用奇妙的计算机科学](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/07-how-to-know-when-to-apply-fancy-computer-science.md)
- [如何与非工程师交谈](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/judgment/08-how-to-talk-to-non-engineers.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills.md)
- [如何保持活力](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/01-how-to-stay-motivated.md)
- [如何被广泛信任](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/02-how-to-be-widely-trusted.md)
- [如何在时间与空间权衡](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/03-how-to-tradeoff-time-vs-space.md)
- [如何进行压力测试](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/04-how-to-stress-test.md)
- [如何在简洁与抽象间平衡](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/05-how-to-balance-brevity-and-abstraction.md)
- [如何学习新技能](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/06-how-to-learn-new-skills.md)
- [学会打字](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/07-learn-to-type.md)
- [如何做集成测试](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/08-how-to-do-integration-testing.md)
- [交流语言](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/09-communication-languages.md)
- [重型工具](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/10-heavy-tools.md)
- [如何分析数据](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/personal-skills/11-how-to-analyze-data.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/team-skills.md)
- [如何管理开发时间](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/team-skills/01-how-to-manage-development-time.md)
- [如何管理第三方软件危机](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/team-skills/02-how-to-manage-third-party-software-risks.md)
- [如何管理咨询师](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/team-skills/03-how-to-manage-consultants.md)
- [如何适量交流](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/team-skills/04-how-to-communicate-the-right-amount.md)
- [如何直言异议以及如何避免](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/2-intermediate/team-skills/05-how-to-disagree-honestly-and-get-away-with-it.md)
- [3. 高级](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced.md)
- [Compromising-Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/compromising-wisely.md)
- [如何与时间压力做斗争](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/compromising-wisely/01-how-to-fight-schedule-pressure.md)
- [如何理解用户](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/compromising-wisely/02-how-to-understand-the-user.md)
- [如何获得晋升](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/compromising-wisely/03-how-to-get-a-promotion.md)
- [Serving-Your-Team](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team.md)
- [如何发展才能](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/01-how-to-develop-talent.md)
- [如何选择工作的内容](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/02-how-to-choose-what-to-work-on.md)
- [如何让你队友的价值最大化](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/03-how-to-get-the-most-from-your-teammates.md)
- [如何划分问题](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/04-how-to-divide-problems-up.md)
- [如何处理无聊的任务](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/05-how-to-handle-boring-tasks.md)
- [如何为工程获取支持](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/06-how-to-gather-support-for-a-project.md)
- [如何发展一个系统](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/07-how-to-grow-a-system.md)
- [如何有效地沟通](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/08-how-to-communicate-well.md)
- [如何告诉人们他们不想听的东西](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear.md)
- [如何处理管理神话](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/10-how-to-deal-with-managerial-myths.md)
- [如何处理组织混乱](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/serving-your-team/11-how-to-deal-with-organizational-chaos.md)
- [Technical-Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/technical-judgment.md)
- [如何从不可能中找到困难的部分](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/technical-judgment/01-how-to-tell-the-hard-from-the-impossible.md)
- [如何使用嵌入型语言](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/technical-judgment/02-how-to-utilize-embedded-languages.md)
- [选择语言](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/3-advanced/technical-judgment/03-choosing-languages.md)
- [How to be a Programmer 中文版](https://braydie.gitbook.io/how-to-be-a-programmer/zh.md)
- [词汇表](https://braydie.gitbook.io/how-to-be-a-programmer/zh/4-glossary.md)
- [附录 A - 书目/网站目录](https://braydie.gitbook.io/how-to-be-a-programmer/zh/5-bibliography.md)
- [附录 B - 历史](https://braydie.gitbook.io/how-to-be-a-programmer/zh/6-history.md)
- [Contributions](https://braydie.gitbook.io/how-to-be-a-programmer/zh/7-contributions.md)
- [Creative Commons Attribution Share-Alike](https://braydie.gitbook.io/how-to-be-a-programmer/zh/license.md)
- [How to be a Programmer 中文版](https://braydie.gitbook.io/how-to-be-a-programmer/zh/summary.md)
- [1. 入门](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills.md)
- [学会 Debug](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/01-learn-to-debug.md)
- [如何通过分割问题 Debug](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space.md)
- [如何移除一个错误](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/03-how-to-remove-an-error.md)
- [如何使用日志调试](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/04-how-to-debug-using-a-log.md)
- [如何理解性能问题](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/05-how-to-understand-performance-problems.md)
- [如何修复性能问题](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/06-how-to-fix-performance-problems.md)
- [如何优化循环](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/07-how-to-optimize-loops.md)
- [如何处理I/O代价](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/08-how-to-deal-with-io-expense.md)
- [如何管理内存](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/09-how-to-manage-memory.md)
- [如何处理偶现的 Bugs](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs.md)
- [如何学习设计技能](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/11-how-to-learn-design-skills.md)
- [如何进行实验](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/personal-skills/12-how-to-conduct-experiments.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills.md)
- [为什么评估很重要](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/01-why-estimation-is-important.md)
- [如何评估编程时间](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/02-how-to-estimate-programming-time.md)
- [如何发现信息](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/03-how-to-find-out-information.md)
- [如何把人们作为信息源](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources.md)
- [如何睿智地写文档](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/05-how-to-document-wisely.md)
- [如何在糟糕的代码上工作](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/06-how-to-work-with-poor-code.md)
- [如何使用源代码控制](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/07-how-to-use-source-code-control.md)
- [如何进行单元测试](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/08-how-to-unit-test.md)
- [毫无头绪？，休息一下](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/09-take-breaks-when-stumped.md)
- [如何识别下班时间](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/10-how-to-recognize-when-to-go-home.md)
- [如何与不好相处的人相处](https://braydie.gitbook.io/how-to-be-a-programmer/zh/1-beginner/team-skills/11-how-to-deal-with-difficult-people.md)
- [2. 进阶](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate.md)
- [Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment.md)
- [如何在开发质量与开发时间权衡](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/01-how-to-tradeoff-quality-against-development-time.md)
- [如何管理软件系统依赖](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/02-how-to-manage-software-system-dependence.md)
- [如何判断软件是否太不成熟了](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature.md)
- [如何做购买还是构建的决定](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision.md)
- [如何专业地成长](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/05-how-to-grow-professionally.md)
- [如何评估面试者](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/06-how-to-evaluate-interviewees.md)
- [如何决定什么时候使用奇妙的计算机科学](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/07-how-to-know-when-to-apply-fancy-computer-science.md)
- [如何与非工程师交谈](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/judgment/08-how-to-talk-to-non-engineers.md)
- [Personal-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills.md)
- [如何保持活力](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/01-how-to-stay-motivated.md)
- [如何被广泛信任](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/02-how-to-be-widely-trusted.md)
- [如何在时间与空间权衡](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/03-how-to-tradeoff-time-vs-space.md)
- [如何进行压力测试](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/04-how-to-stress-test.md)
- [如何在简洁与抽象间平衡](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/05-how-to-balance-brevity-and-abstraction.md)
- [如何学习新技能](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/06-how-to-learn-new-skills.md)
- [学会打字](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/07-learn-to-type.md)
- [如何做集成测试](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/08-how-to-do-integration-testing.md)
- [交流语言](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/09-communication-languages.md)
- [重型工具](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/10-heavy-tools.md)
- [如何分析数据](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/personal-skills/11-how-to-analyze-data.md)
- [Team-Skills](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/team-skills.md)
- [如何管理开发时间](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/team-skills/01-how-to-manage-development-time.md)
- [如何管理第三方软件危机](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/team-skills/02-how-to-manage-third-party-software-risks.md)
- [如何管理咨询师](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/team-skills/03-how-to-manage-consultants.md)
- [如何适量交流](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/team-skills/04-how-to-communicate-the-right-amount.md)
- [如何直言异议以及如何避免](https://braydie.gitbook.io/how-to-be-a-programmer/zh/2-intermediate/team-skills/05-how-to-disagree-honestly-and-get-away-with-it.md)
- [3. 高级](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced.md)
- [Compromising-Wisely](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/compromising-wisely.md)
- [如何与时间压力做斗争](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/compromising-wisely/01-how-to-fight-schedule-pressure.md)
- [如何理解用户](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/compromising-wisely/02-how-to-understand-the-user.md)
- [如何获得晋升](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/compromising-wisely/03-how-to-get-a-promotion.md)
- [Serving-Your-Team](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team.md)
- [如何发展才能](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/01-how-to-develop-talent.md)
- [如何选择工作的内容](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/02-how-to-choose-what-to-work-on.md)
- [如何让你队友的价值最大化](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/03-how-to-get-the-most-from-your-teammates.md)
- [如何划分问题](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/04-how-to-divide-problems-up.md)
- [如何处理无聊的任务](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/05-how-to-handle-boring-tasks.md)
- [如何为工程获取支持](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/06-how-to-gather-support-for-a-project.md)
- [如何发展一个系统](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/07-how-to-grow-a-system.md)
- [如何有效地沟通](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/08-how-to-communicate-well.md)
- [如何告诉人们他们不想听的东西](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear.md)
- [如何处理管理神话](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/10-how-to-deal-with-managerial-myths.md)
- [如何处理组织混乱](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/serving-your-team/11-how-to-deal-with-organizational-chaos.md)
- [Technical-Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/technical-judgment.md)
- [如何从不可能中找到困难的部分](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/technical-judgment/01-how-to-tell-the-hard-from-the-impossible.md)
- [如何使用嵌入型语言](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/technical-judgment/02-how-to-utilize-embedded-languages.md)
- [选择语言](https://braydie.gitbook.io/how-to-be-a-programmer/zh/3-advanced/technical-judgment/03-choosing-languages.md)
- [2-Intermediate](https://braydie.gitbook.io/how-to-be-a-programmer/2-intermediate.md)
- [Judgment](https://braydie.gitbook.io/how-to-be-a-programmer/2-intermediate/judgment.md)
- [Design Patterns](https://braydie.gitbook.io/how-to-be-a-programmer/2-intermediate/judgment/09-design-patterns.md)
