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 @@ +### Разогрев + + +