# 1. Начинающий программист

* Личные навыки
  * [Научитесь отлаживать](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/01-learn-to-debug)
  * [Как отлаживать, разделяя пространство проблемы](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space)
  * [Как устранять баги](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/03-how-to-remove-an-error)
  * [Как отлаживать, используя логи](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/04-how-to-debug-using-a-log)
  * [Как определять проблемы производительности](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/05-how-to-understand-performance-problems)
  * [Как устранять проблемы производительности](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/06-how-to-fix-performance-problems)
  * [Как оптимизировать циклы](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/07-how-to-optimize-loops)
  * [Как справиться с расходами на операции чтения и записи](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/08-how-to-deal-with-io-expense)
  * [Как управлять памятью](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/09-how-to-manage-memory)
  * [Как устранять плавающие баги](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs)
  * [Как научиться проектировать программы](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/11-how-to-learn-design-skills)
  * [Как экспериментировать](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/personal-skills/12-how-to-conduct-experiments)
* Командные навыки
  * [Почему важно оценивать задачи](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/01-why-estimation-is-important)
  * [Как оценивать время на разработку](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/02-how-to-estimate-programming-time)
  * [Как искать информацию](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/03-how-to-find-out-information)
  * [Как спрашивать людей](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources)
  * [Как документировать правильно](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/05-how-to-document-wisely)
  * [Как работать с плохим кодом](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/06-how-to-work-with-poor-code)
  * [Как использовать системы контроля версий](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/07-how-to-use-source-code-control)
  * [Как писать юнит-тесты](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/08-how-to-unit-test)
  * [Делайте перерывы, когда вы в тупике](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/09-take-breaks-when-stumped)
  * [Как понять, когда идти домой](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/10-how-to-recognize-when-to-go-home)
  * [Как вести себя с трудными людьми](https://braydie.gitbook.io/how-to-be-a-programmer/ru/1-beginner/team-skills/11-how-to-deal-with-difficult-people)
