Uploaded by данька р

Копия Вопросы для учеников C# (1)

advertisement
Вопросы для учеников C#
Терминальные команды Linux/Mac OS
1. Как перейти в домашний каталог из любого другого?
2. Как создать новый текстовый файл 123.txt в текущем каталоге?
3. Как создать новую папку 1234 в текущем каталоге?
4. Как создать в каталоге /abc (для MacOS /Library/User
Pictures/Animals/abc) ссылку на файл 123.txt из домашнего
каталога?
5. Как создать в каталоге /abc (для MacOS /Library/User
Pictures/Animals/abc) символьную ссылку на папку 1234 из
домашнего каталога?
6. Как скопировать файл 123.txt из домашнего каталога в корневой?
7. Как переместить файл 123.txt из домашнего каталога в каталог на 2
уровня выше?
8. Как переименовать файл 123.txt в файл txt.123?
9. Как удалить файл 123.txt?
10. Как удалить все файлы и папки из каталога /abc (для MacOS
/Library/User Pictures/Animals/abc) , не удаляя сам каталог ?
11. Как удалить все файлы и папки из какого-нибудь каталога без
всплывающих вопросов ?
12. Как переместиться в другую папку(abc) родительского каталога
(соседнюю по отношению к текущей)?
13. Как посмотреть в каком каталоге мы сейчас находимся?
14. Как посмотреть содержимое текущего каталога?
15. Как посмотреть все файлы (включая скрытые) в текущем каталоге?
16. Как посмотреть права доступа к файлу? Что такое пользователь и группа
в данном контексте?
17. Как записываются права и как они расшифровываются?
18. Как поменять права файлу, разрешив всем только читать данный файл?
19. Как устанавливать новое программное обеспечение на платформе с
которой ты работал?
20. Как посмотреть список процессов, если известна часть имени процесса ?
21. Как остановить эти процессы по PID?
22. Как скопировать все содержимое из папки /abc (для MacOS
/Library/User Pictures/Animals/abc) в папку /bcd (для MacOS
/Library/User Pictures/Animals/bcd) (нужно скопировать все
содержимое, а не папку целиком)?
Работа с GIT в терминале
1. Что такое Git? Для чего он нужен?
2. Как проиндексировать изменения ?
3. Как посмотреть какие файлы будут добавлены в новый коммит?
4. Какие изменения попадают в коммит? Как создать коммит? Как добавить
коммиту сообщение?
5. Как изменить последний коммит (например сообщение)?
6. Опишите два способа создания репозитория.
7. Где в этом проекте хранятся все данные для работы git ?
8. Что такое файл .gitignore? Какие файлы и папки нужно в него добавлять
и зачем?
9. Что делать, если файл с конфигурацией (например ключами от
облачных сервисов) попал в индекс? попал в удаленный репозиторий?
10. Как удалить файлы из проекта (репозитория)? В чем отличия от
стандартного удаления файлов в системе?
11. Как сделать так, чтобы в текущем проекте коммиты создавались с
именем “Test Tester” и email test@tester.com? Как сделать так чтобы это
происходило во всех новых проектах, где это не задано локально?
12. Как залить наши новые коммиты в удаленный репозиторий? Когда
использовать флаг --force?
13. Как подтянуть свежие изменения с удаленного репозитория?
14. Как создать новую ветку и сразу перейти на нее? Как перейти обратно в
master?
15. Как посмотреть список веток и в какой мы сейчас находимся?
16. Как соединять ветки? Почему возникают конфликты и как их решать?
17. Что такое origin? Как это посмотреть? Как поменять адрес на другой?
18. Как сбрасывать изменения? Как откатываться до какого-нибудь коммита?
19. Как посмотреть историю коммитов?
20. Как удалить ветку локально? Как удалить ветку в удаленном (от слова
дальний, а не удалять) репозитории.
Базовый C#
1. Основные понятия: .NET Core, .NET, ASP.NET Core.
2. Что такое CIL и CLR?
3. Как объявлять переменные в C#? Зачем нужны var, ref, dynamic?
4. Как создавать иммутабельные переменные (константы)? Почему
рекомендуется создавать иммутабельные переменные?
5. Какие типы данных представлены в C#?
6. Какие примитивные типы данных представлены в С#?
7. Какие типы данных называются ссылочными? Какие ссылочные типы
данных представлены в C#? Какими преимуществами обладают
ссылочные типы данных?
8. Какие ограничения у каждого типа данных (по размеру и значению)? Что
произойдет если превысить ограничения (например в цикле)?
9. Что такое checked и unchecked? Для чего их можно применять?
10. Что такое преобразование типов? Явное и неявное преобразование,
boxing и unboxing (примеры, зачем оно нужно).
11. Для чего используются конструкции if, if..else?
12. Что такое тернарный оператор и как он используется?
13. Что такое switch case и switch pattern matching? Зачем это нужно и для
чего можно использовать?
14. Как использовать оператор goto? Можно ли его использовать в switch?
15. Что такое циклы, какие они бывают, зачем они нужны и для чего
используется операторы continue, break, return.
—---------------------------------------------------------------------------------------------------------------------------------------
16. Что такое классы и методы?
17. Что такое конструктор класса?
18. Что такое геттеры и сеттеры? Для чего используются геттеры и сеттеры?
19. Что такое модификаторы доступа? Для чего они используются?
20. Какие методы и поля называются статическими? Зачем нужны
статические методы?
21. Что такое наследование? Зачем используется наследование? От
скольких классов можно наследоваться в C#?
22. Что такое полиморфизм? Привести устный пример наследования и
полиморфизма.
23. Что такое интерфейс? Можно ли добавить в интерфейс статичные
методы?
24. Что такое абстрактный класс? Чем абстрактный класс отличается от
интерфейса?
25. Что такое SOLID? Привести примеры каждого принципа SOLID.
26. Что такое инкапсуляция?
27. Для чего нужен Enum?
28. Как подключать модули в C#? Для чего нужен Nuget?
29. Что такое обобщения типов (Generics)? Для чего их можно
использовать?
30. Что такое иммутабельные коллекции и зачем они нужны, в чем
преимущество использования? Как их создавать?
31. Коллекции в C#: List<T>, LinkedList<T>.
32. Коллекции в C#: Queue<T>, Stack<T>, Dictionary<T, V>.
33. Коллекции в C#: ArrayList<T>, HashSet<T>.
34. Что такое строковая интерполяция и как ее можно применять? Как
сложить несколько строк вместе?
35. Как в C# взять подстроку строки? Как обрезать лишние пробелы в
начале и в конце строки? Как поменять регистр строки? Как разделить
строку по символу?
36. Как в C# работать со значением null? Для чего оно нужно?
37. Как обрабатывать ошибки? Как обработать определенную ошибку?
38. Что такое класс Exception? Как можно использовать throw?
Продвинутый C#
1. Рефлексия в C#: что это, как можно применять?
2. Dependency Injection (DI): что это такое? Как можно использовать?
3. Inversion of Control (IoC): в чем заключается идея? Как это можно
использовать?
4. Что такое анонимный тип? Что такое анонимный метод?
5. Что такое делегаты? Как они работают и для чего они нужны?
6. Для чего используются Lambda-функции и Lambda-методы? В чем их
отличия от обычной реализации методов и функций?
7. Garbage Collection (GC): как работает? Сколько разделов (поколений)
памяти используется?
8. Жизненный цикл объектов в C#.
9. Что такое деструкторы класса? Зачем они нужны?
10. Интерфейс IDisposable: как использовать?
11. Сколько значений возвращает функция или метод в C#? Как можно
вернуть несколько значений?
12. Что такое перегрузка (overloading)? Как перегрузка используется в
классах?
13. Что такое DRY, KISS, YAGNI?
14. Работа с датами:
a. Как получить текущую дату?
b. Как получить UNIX TIMESTAMP текущего времени?
c. Как осуществлять форматирование даты и времени?
15. В чем разница между значением const и readonly?
16. Интерфейсы IComparer и IComparable. Зачем нужны и как использовать?
17. Зачем нужно логирование?
18. Какие существуют базовые уровни логирования?
19. Какие инструменты для логирования используется в C#?
20. Какие каналы записи логов существуют?
21. Что такое stdout?
22. Что такое LINQ? Как использовать LINQ для реализации методов Map,
Filter, Reduce?
23. Что такое Deferred execution in LINQ?
24. Преобразование типов через LINQ (LINQ to objects).
25. Какие операции называют атомарными? Какие проблемы решают
атомарные операции?
26. Что такое многопоточность и зачем она нужна? Как создавать новые
потоки? Что такое lock? Что такое Mutex?
27. Чем различаются Task и Thread?
28. Async / await: как работает? Как использовать?
29. Что такое состояние гонок? Как можно его избегать? В каких случаях
может возникать состояние гонок?
Базовый сервер на C# и ASP.NET
1. Что такое клиент-серверная архитектура? Какие у нее преимущества и
2.
3.
4.
5.
6.
7.
недостатки?
Что такое HTTP? Назовите основные методы HTTP методы и для чего
они используются? Назовите все классы кодов состояния. За что
отвечают следующие статусы: 200, 201, 307, 308, 400, 401, 403, 404, 500,
501, 502, 503?
Что такое HTTPS? В чем заключается основное отличие HTTP от
HTTPS?
Что такое WebSockets? Для чего они применяются? Можно ли
использовать WebSockets с SSL / TLS? Как в C# можно создавать
серверы с использованием WebSockets?
Что такое REST? Какие требования предъявляются к REST-архитектуре?
Какие преимущества у REST-архитектуры? Напишите как бы в RESTархитектуре могли бы выглядеть основные CRUD-операции (чтение
пользователя, чтение всех пользователей, изменение пользователя,
удаление пользователя).
Какие аналоги REST-архитектур существуют? Что такое SOAP? Что
такое GraphQL? Что такое gRPC (RPC)? Что можно использовать в C#
для того, чтобы работать с GraphQL? Что можно использовать для
работы с gRPC?
Какие плюсы и минусы у реляционных и NoSQL баз данных? Какие
существуют группы NoSQL баз данных по типу хранилища? Назовите их
плюсы и минусы. Поисковые БД: основные принципы.
—---------------------------------------------------------------------------------------------------------------------------------------
8. Что такое SQL?
9. Для чего нужны и как работают данные операторы SQL:
a. SELECT
b. UPDATE
c. DELETE
d. INSERT
e. LEFT JOIN
f. INNER JOIN
g. RIGHT JOIN
h. WHERE
i. ORDER BY
j. LIMIT
k. OFFSET
10. Как создать пользователя в СУБД?
11. Как создать новую базу данных в СУБД?
12. Как дать права на созданную базу данных какому либо пользователю?
13. Как можно подключиться к базе данных (терминал / PSQL, ПО для
работы с базами)? Рекомендуемое ПО - Valentina Studio либо аналоги.
14. Как создать таблицу в базе данных? Как внести в таблицу данные?
15. Что такое первичные (Primary) и внешние (Foreign) ключи?
16. Какие типы связей бывают и зачем они нужны?
17. Написать все запросы в базу данных для серверного приложения TODO
на SQL.
—---------------------------------------------------------------------------------------------------------------------------------------
18. Как сгенерировать новый WEB-проект (серверное приложение) в .NET?
Как запустить серверное приложение?
19. Что такое переменные окружения (Environment Variables)? Как их
использовать в проекте на ASP.NET? Какие библиотеки можно
использовать для работы с переменными окружения? Что такое .envфайл? Стоит ли использовать .env-файл либо же использовать другие
решения?
20. Как подключать обработчики запросов? Как подключить все обработчики
сразу?
21. Как указать методы запросов для обработчиков запросов?
22. Что такое HttpContext? Как его получить? Что в нем находится?
23. Как обработать тело запроса? Как получить Params из пути запроса
(например /api/users/5)? Как получить значения Query Params (например
/api/users?page=10&limit=20)?
24. Как можно отправить ответ от сервера? Как передавать данные в
ответе?
25. Что такое Entity Framework Core?
26. Как создать подключение к базе данных с использованием .NET,
ASP.NET и EF Core?
27. Что такое DTO? Как можно использовать DTO при работе с серверными
приложениями на C#? Как можно привести данные к виду DTO?
28. Работа с JSON: сериализация и десериализация данных. Как создать из
объекта JSON строку? Как создать из строки объект заданного типа?
Использование стандартных средств .NET. Использование
Newtonsoft.Json.
Продвинутый сервер на C# и ASP.NET
1. Как работают и зачем нужны следующие операторы SQL:
a. GROUP BY
a. MIN, MAX
b. COUNT, AVG, SUM
c. TRUNCATE
d. LIKE, ILIKE
e. IN, BETWEEN
f. AS (aliases)
g. HAVING
h. DISTINCT
i. EXISTS, ANY, ALL
j. UNION
2. Написать все запросы в базу данных для приложения news-feed на SQL.
3. Что такое индексы в базе данных? Для чего они нужны?
4. Что такое дамп базы данных? Как можно сделать дамп базы PostgreSQL
и как можно его развернуть?
5. Что такое транзакции? Что такое уровни изоляции транзакций и зачем
они нужны?
6. Что такое нормализация? Рассказать как привести базу к 3 нормальной
форме.
7. Что такое CAP-теория? В чем заключаются ее принципы?
8. Как создать транзакцию используя EF Core?
9. Что такое миграции базы данных, зачем они нужны? Как их добавить в
серверное приложение на ASP.NET?
10. В каких файлах и форматах хранятся конфигурации приложения?
11. Как использовать разные окружения (TEST, DEVELOPMENT,
PRODUCTION)?
12. Что такое промежуточные обработчики (Middleware)? Как можно
подключить собственный промежуточный обработчик в проект?
13. Что такое JWT? Как использовать JWT?
14. Что такое ExceptionFilters? Как можно создать ExceptionFilter, и как его
можно использовать?
15. Что такое Interceptors? В каком случае Interceptors могут применяться?
16. Как можно подключить SSL в проект? Что это дает?
17. Как можно загрузить файлы на сервер? Как можно работать с Multipart /
FormData в ASP.NET? Как сохранить файлы на диск?
18. Как можно раздать статичные файлы при помощи ASP.NET?
19. Что такое микросервисы? В чем их минусы и плюсы? Отличия от
монолитной архитектуры.
20. Что такое unit-тестирование? Что такое integration-тестирование? Какие
инструменты можно использовать в C# для написания тестов?
Download