diff --git a/README.md b/README.md
index 244bdd5..12ecd4f 100644
--- a/README.md
+++ b/README.md
@@ -8,22 +8,23 @@
## Содержание
-1. [Общие вопросы](docs/COMMON.md)
- - [В чем отличие протоколов TCP и UDP? В каком случае UDP предпочтительнее?](docs/COMMON.md#1)
- - [Что такое NAT?](docs/COMMON.md#2)
- - [Что такое HTTP и HTTPS, в чем их отличия?](docs/COMMON.md#3)
- - [Что такое SSL и TLS, есть ли между ними отличия?](docs/COMMON.md#4)
+0. [Разогрев](docs/what_is_going_on)
+1. [Общие вопросы](docs/common)
+ - [В чем отличие протоколов TCP и UDP? В каком случае UDP предпочтительнее?](docs/common#1-в-чем-отличие-протоколов-tcp-и-udp-в-каком-случае-udp-предпочтительнее)
+ - [Что такое NAT?](docs/common#2-что-такое-nat)
+ - [Что такое HTTP и HTTPS, в чем их отличия?](docs/common#3-что-такое-http-и-https-в-чем-их-отличия)
+ - [Что такое SSL и TLS, есть ли между ними отличия?](docs/common#4-что-такое-ssl-и-tls-есть-ли-между-ними-отличия)
- coming soon
-2. [Вопросы по шаблонам проектирования](docs/DESIGN_PATTERNS.md)
+2. [Вопросы по шаблонам проектирования](docs/design_patterns)
- TODO
-3. [Вопросы про микросервисы](docs/MICROSERVICES.md)
+3. [Вопросы про микросервисы](docs/microservices)
- TODO
-4. [Вопросы про инфраструктуру и деплой](docs/INFRASTRUCTURE_AND_DEPLOY.md)
+4. [Вопросы про инфраструктуру и деплой](docs/infrastructure_and_deploy)
- Что такое сине-зеленый деплой(blue-green deployment)?
- Что такое Canary (канареечные развертывания)?
- Что такое Dark (скрытые) или А/В-развертывания?
- coming soon
-5. [Вопросы про кеширование и базам данных](docs/CACHE_AND_DB.md)
+5. [Вопросы про кеширование и базам данных](docs/cache_and_db)
- Что такое индексы в MySQL, как и для чего их использовать и создавать?
- Что такое составной индекс, как и для чего их использовать и создавать?
- Как использовать индексы в JOIN запросах Mysql?
@@ -49,32 +50,32 @@
- Когда и зачем может пригодиться денормализация данных?
- Что такое шардинг и репликация?
- coming soon
-6. [Вопросы по языку Golang](docs/GOLANG.md)
- - [Что из себя представляет тип данных string в языке Golang? Можно ли изменить определенный символ в строке? Что происходит при склеивании строк?](docs/GOLANG.md#1)
- - [Вытекающий вопрос — как эффективно склеивать множество строк?](docs/GOLANG.md#2)
+6. [Вопросы по языку Golang](docs/golang)
+ - [Что из себя представляет тип данных string в языке Golang? Можно ли изменить определенный символ в строке? Что происходит при склеивании строк?](docs/golang#1)
+ - [Вытекающий вопрос — как эффективно склеивать множество строк?](docs/golang#2)
- Что будет происходить при конкурентной записи в map? Как можно решить эту проблему?
- Расскажите о ООП в Golang.
- В чем различия goroutine от потока системы?
- Как огранить число потоков на системы при запуске Golang программы и возможно ли огранить их до 1 потока?
- - [Как задать направление канала?](docs/GOLANG.md#8)
- - [Напишите собственную функцию Sleep, используя time.After](docs/GOLANG.md#9)
- - [Что такое буферизированный канал? Как создать такой канал с ёмкостью в 20 сообщений?](docs/GOLANG.md#10)
- - [Напишите программу, которая меняет местами два числа (x := 1; y := 2; swap(&x, &y) должно дать x=2 и y=1)](docs/GOLANG.md#11)
- - [Какое будет значение у переменной x после выполнения программы?](docs/GOLANG.md#12)
- - [Какое значение примет выражение (true && false) || (false && true) || !(false && false)?](docs/GOLANG.md#13)
- - [Мы знаем, что в десятичной системе самое большое число из одной цифры - это 9, а из двух - 99. В бинарной системе самое большое число из двух цифр это 11 (3), самое большое число из трех цифр это 111 (7) и самое большое число из 4 цифр это 1111 (15). Вопрос: каково самое большое число из 8 цифр? (Подсказка: 101-1=9 и 102-1=99)](docs/GOLANG.md#14)
- - [Что выведет следующая программа?](docs/GOLANG.md#15)
- - [Что выведет следующая программа?](docs/GOLANG.md#16)
- - [Как работает Garbage Collection в Go?](docs/GOLANG.md#17)
+ - [Как задать направление канала?](docs/golang#8)
+ - [Напишите собственную функцию Sleep, используя time.After](docs/golang#9)
+ - [Что такое буферизированный канал? Как создать такой канал с ёмкостью в 20 сообщений?](docs/golang#10)
+ - [Напишите программу, которая меняет местами два числа (x := 1; y := 2; swap(&x, &y) должно дать x=2 и y=1)](docs/golang#11)
+ - [Какое будет значение у переменной x после выполнения программы?](docs/golang#12)
+ - [Какое значение примет выражение (true && false) || (false && true) || !(false && false)?](docs/golang#13)
+ - [Мы знаем, что в десятичной системе самое большое число из одной цифры - это 9, а из двух - 99. В бинарной системе самое большое число из двух цифр это 11 (3), самое большое число из трех цифр это 111 (7) и самое большое число из 4 цифр это 1111 (15). Вопрос: каково самое большое число из 8 цифр? (Подсказка: 101-1=9 и 102-1=99)](docs/golang#14)
+ - [Что выведет следующая программа?](docs/golang#15)
+ - [Что выведет следующая программа?](docs/golang#16)
+ - [Как работает Garbage Collection в Go?](docs/golang#17)
- Что такое interface, как они работают в Go?
- Что такое slice, как устроены и чем отличаются от массивов?
- Что такое len и capacity в slice Go?
- Возможно ли предугадать, что GC отработает за константное время N?
- Что будет, если создать канал и отправить туда запись, но у него нет читателей?
-7. [Вопросы о распределённых системах](docs/DISTRIBUTED_SYSTEMS.md)
+7. [Вопросы о распределённых системах](docs/distributed_systems)
- Как тестировать распределённую систему?
- coming soon
-8. [Вопросы по организации кода](docs/CODE_DESIGN.md)
+8. [Вопросы по организации кода](docs/code_design)
- Как тесты и TDD влияют на организацию кода?
- В чём разница между сцеплением и связанностью?
- Почему в TDD тесты пишутся прежде кода?
@@ -108,13 +109,13 @@
- [Какие средства обобщенного программирования есть в Go?](docs/podolsky/)
- [Какие технологические преимущества языка Go вы можете назвать?](docs/podolsky/)
- [Какие технологические недостатки языка Go вы можете назвать?](docs/podolsky/)
-10. [Популярные задачи на собеседованиях](docs/POPULAR_TASKS.md)
- - [На вход подаются два неупорядоченных слайса любой длины. Надо написать функцию, которая возвращает их пересечение](docs/POPULAR_TASKS.md#1)
- - [Написать генератор случайных чисел](docs/POPULAR_TASKS.md#2)
- - [Слить N каналов в один](docs/POPULAR_TASKS.md#3)
- - [Сделать конвейер чисел](docs/POPULAR_TASKS.md#4)
- - [Написать WorkerPool с заданной функцией](docs/POPULAR_TASKS.md#5)
- - [Сделать кастомную waitGroup на семафоре](docs/POPULAR_TASKS.md#6)
+10. [Популярные задачи на собеседованиях](docs/popular_tasks)
+ - [На вход подаются два неупорядоченных слайса любой длины. Надо написать функцию, которая возвращает их пересечение](docs/popular_tasks#1)
+ - [Написать генератор случайных чисел](docs/popular_tasks#2)
+ - [Слить N каналов в один](docs/popular_tasks#3)
+ - [Сделать конвейер чисел](docs/popular_tasks#4)
+ - [Написать WorkerPool с заданной функцией](docs/popular_tasks#5)
+ - [Сделать кастомную waitGroup на семафоре](docs/popular_tasks#6)
## Как мне добавить свой вопрос-ответ?
diff --git a/docs/CACHE_AND_DB.md b/docs/CACHE_AND_DB.md
deleted file mode 100644
index 859c49c..0000000
--- a/docs/CACHE_AND_DB.md
+++ /dev/null
@@ -1,27 +0,0 @@
-### Вопросы про кеширование и базам данных
-
-#### Что такое индексы в MySQL, как и для чего их использовать и создавать?
-
-#### Что такое составной индекс, как и для чего их использовать и создавать?
-
-#### Как использовать индексы в JOIN запросах Mysql?
-
-#### Что такое частичные индексы, как и для чего их использовать и создавать?
-
-#### В чем отличия InnoDB и MyISAM?
-
-#### Возможен ли JOIN со вложенными запросами, как?
-
-#### Что такое дедлоки (deadlock), почему возникают, как можно недопускать?
-
-#### Что такое HAVING, что он делает как и зачем его использовать?
-
-#### Разница между WHERE и HAVING и можно ли использовать HAVING без группировки данных?
-
-#### Что такое EXPLAIN?
-
-#### Как узнать версию Mysql?
-
-#### Как можно оптимизировать ORDER BY RAND()?
-
-#### Как удалить индекс MySQL?
diff --git a/docs/CODE_DESIGN.md b/docs/CODE_DESIGN.md
deleted file mode 100644
index 689f764..0000000
--- a/docs/CODE_DESIGN.md
+++ /dev/null
@@ -1 +0,0 @@
-### Вопросы по организации кода
\ No newline at end of file
diff --git a/docs/DESIGN_PATTERNS.md b/docs/DESIGN_PATTERNS.md
deleted file mode 100644
index 24a3f08..0000000
--- a/docs/DESIGN_PATTERNS.md
+++ /dev/null
@@ -1,2 +0,0 @@
-### Вопросы по шаблонам проектирования
-
diff --git a/docs/DISTRIBUTED_SYSTEMS.md b/docs/DISTRIBUTED_SYSTEMS.md
deleted file mode 100644
index 5f51286..0000000
--- a/docs/DISTRIBUTED_SYSTEMS.md
+++ /dev/null
@@ -1 +0,0 @@
-### Вопросы о распределённых системах
\ No newline at end of file
diff --git a/docs/cache_and_db/README.md b/docs/cache_and_db/README.md
new file mode 100644
index 0000000..3fc2341
--- /dev/null
+++ b/docs/cache_and_db/README.md
@@ -0,0 +1,27 @@
+# Вопросы про кеширование и базам данных
+
+### Что такое индексы в MySQL, как и для чего их использовать и создавать?
+
+### Что такое составной индекс, как и для чего их использовать и создавать?
+
+### Как использовать индексы в JOIN запросах Mysql?
+
+### Что такое частичные индексы, как и для чего их использовать и создавать?
+
+### В чем отличия InnoDB и MyISAM?
+
+### Возможен ли JOIN со вложенными запросами, как?
+
+### Что такое дедлоки (deadlock), почему возникают, как можно недопускать?
+
+### Что такое HAVING, что он делает как и зачем его использовать?
+
+### Разница между WHERE и HAVING и можно ли использовать HAVING без группировки данных?
+
+### Что такое EXPLAIN?
+
+### Как узнать версию Mysql?
+
+### Как можно оптимизировать ORDER BY RAND()?
+
+### Как удалить индекс MySQL?
diff --git a/docs/code_design/README.md b/docs/code_design/README.md
new file mode 100644
index 0000000..1fa945d
--- /dev/null
+++ b/docs/code_design/README.md
@@ -0,0 +1 @@
+## Вопросы по организации кода
\ No newline at end of file
diff --git a/docs/COMMON.md b/docs/common/README.md
similarity index 95%
rename from docs/COMMON.md
rename to docs/common/README.md
index 3ca9d72..df3442d 100644
--- a/docs/COMMON.md
+++ b/docs/common/README.md
@@ -1,6 +1,6 @@
-### Общие вопросы
+## Общие вопросы
- **1. В чем отличие протоколов TCP и UDP? В каком случае UDP предпочтительнее?**
+### 1. В чем отличие протоколов TCP и UDP? В каком случае UDP предпочтительнее?
__TCP__ – транспортный протокол передачи данных в сетях TCP/IP, предварительно устанавливающий соединение с сетью.
@@ -18,7 +18,7 @@ TCP контролирует загруженность соединения, UD
К таковым относятся сетевые и браузерные игры, а также программы просмотра потокового видео и приложения для видеосвязи (или голосовой): от потери пакета, полной или частичной, ничего не меняется, повторять запрос не обязательно, зато загрузка происходит намного быстрее.
Протокол TCP, как более надежный, с успехом применяется даже в почтовых программах, позволяя контролировать не только трафик, но и длину сообщения и скорость обмена трафиком.
- **2. Что такое NAT?**
+### 2. Что такое NAT?
Сети обычно проектируются с использованием частных IP адресов.
Это адреса __10.0.0.0/8__, __172.16.0.0/12__ и __192.168.0.0/16__.
@@ -30,7 +30,7 @@ TCP контролирует загруженность соединения, UD
Один общедоступный IPv4-адрес может быть использован сотнями, даже тысячами устройств, каждый из которых имеет частный IPv4-адрес.
NAT имеет дополнительное преимущество, заключающееся в добавлении степени конфиденциальности и безопасности в сеть, поскольку он скрывает внутренние IPv4-адреса из внешних сетей.
- **3. Что такое HTTP и HTTPS, в чем их отличия?**
+### 3. Что такое HTTP и HTTPS, в чем их отличия?
__HTTP__ _(от англ. HyperText Transfer Protocol — протокол передачи гипертекста)_ — это прикладной протокол передачи данных в сети.
На текущий момент используется для получения информации с веб-сайтов.
@@ -43,7 +43,7 @@ __HTTPS__ _(от англ. HyperText Transfer Protocol Secure — безопас
- передаваемые по протоколу HTTP данные не защищены, HTTPS обеспечивает конфиденциальность информации путем ее шифрования;
- HTTP использует порт 80, HTTPS — порт 443.
- **4. Что такое SSL и TLS, есть ли между ними отличия?**
+### 4. Что такое SSL и TLS, есть ли между ними отличия?
__SSL__ или слой защищенных сокетов было оригинальным названием протокола, который разработала компания Netscape в середине 90-х.
SSL 1.0 никогда не был публично доступным, а в версии 2.0 были серьезные недостатки.
diff --git a/docs/design_patterns/README.md b/docs/design_patterns/README.md
new file mode 100644
index 0000000..c716475
--- /dev/null
+++ b/docs/design_patterns/README.md
@@ -0,0 +1,2 @@
+## Вопросы по шаблонам проектирования
+
diff --git a/docs/distributed_systems/README.md b/docs/distributed_systems/README.md
new file mode 100644
index 0000000..71982d7
--- /dev/null
+++ b/docs/distributed_systems/README.md
@@ -0,0 +1 @@
+## Вопросы о распределённых системах
\ No newline at end of file
diff --git a/docs/GOLANG.md b/docs/golang/README.md
similarity index 100%
rename from docs/GOLANG.md
rename to docs/golang/README.md
diff --git a/docs/INFRASTRUCTURE_AND_DEPLOY.md b/docs/infrastructure_and_deploy/README.md
similarity index 100%
rename from docs/INFRASTRUCTURE_AND_DEPLOY.md
rename to docs/infrastructure_and_deploy/README.md
diff --git a/docs/MICROSERVICES.md b/docs/microservices/README.md
similarity index 100%
rename from docs/MICROSERVICES.md
rename to docs/microservices/README.md
diff --git a/docs/POPULAR_TASKS.md b/docs/popular_tasks/README.md
similarity index 100%
rename from docs/POPULAR_TASKS.md
rename to docs/popular_tasks/README.md
diff --git a/docs/what_is_going_on/README.md b/docs/what_is_going_on/README.md
new file mode 100644
index 0000000..311b1e1
--- /dev/null
+++ b/docs/what_is_going_on/README.md
@@ -0,0 +1,4 @@
+### Разогрев
+
+
+