Изображение было сгенерировано с помощью бота https://t.me/kandinsky21_botМоя мини история.Недавно у меня возникла ситуация, когда мне потребовалось сменить своего текущего работодателя.Многие любят путешествовать, вот и я решил, что хочу некоторое время провести работая удаленно из любой точки мира, но компания, в которой я работал, к сожалению могла позволить работать удаленно только внутри РФ.На самом деле увольняться из текущего места мне совсем не хотелось, компания была огонь, коллектив — просто космос.Технологии, которые использовались, меня очень радовали, конечно, не всё было на максималках, но огонь в глазах и рвение идти вперед очень чувствовались.Плюс к этому всему, занимал позицию Team Lead в команде (имеется в виду Tech Lead).Подготовка к собеседованию.Обратившись в известные поисковые источники, обнаружил очень много статей, во всех статьях была своя история вопросов на собеседовании.Просуммировав разные статьи, появился большой толмут вопросов, которые можно исследовать месяцами.Конечно, на часть из этих вопросов мне уже был известен ответ, но время на изучение было ограничено двумя неделями.Решением было поменять способ наполнения этих вопросов и уделить больше внимания дубликатам вопросов с разных статей.Плюс к этому добавить более важный приоритет на свежие статьи.Собрав итоговый список и уделив внимание «подвисшим» вопросам, начал отправлять свое резюме в интересные мне компании.Отклик был на различные вакансии уровня Middle, Senior на позиции C# Developer Backend/Full Stack, а также Tech Lead/Team Lead.После прохождения первого этапа HR меня начали звать на техническое интервью.Результаты моих исследований практически совпали с уже имеющимися данными, однако некоторые отличия всё же были.По прошествии около двадцати собеседований я подготовил список вопросов, которые были заданы.Список вопросов на техническом собеседовании C# разработчика.Самые распространенные вопросы отсортированы в верхней части в порядке убывания.Разделен список на категории по языку и связанной библиотеке.С#:Что такое стек и куча?Что такое Dependency Injection и для чего нужен?Сможешь рассказать про жизненный цикл зависимостей Dependency Injection?Сможешь рассказать про принцип SOLID?Что такое многопоточность?Что такое асинхронность?Чем отличается многопоточность от асинхронности?Что такое пул потоков и где он используется?Что такое поток?Какие виды блокировок знаешь?Какая конструкция может служить альтернативой оператора lock?Какая конструкция может служить альтернативой оператора using?Что такое boxing и unboxing и для чего нужен?Как решать проблемы с Deadlock?Что такое ссылочный и значимый тип?Где хранится ссылочный и значимый тип?Что такое сборщик мусора и как он работает?Чем отличается Array от List?Чем отличается Dictionary от HashSet?Что такое LinkedList и зачем он нужен?Что такое переопределение и перекрытие, где используются?Что обозначает модификатор in, out, ref в параметрах метода?Чем отличается string от stringBuilder?Сможешь рассказать про паттерн CQRS?Сможешь ли реализовать паттерн Singleton?Сможешь ли привести парочку потокобезопасных типов?Был ли опыт в написании автотестов, какие знаешь?Какие ORM использовал?Что означает подход Code First?В некоторых компаниях используют SQL-запросы для работы с базой данных напрямую в виде SQL-скриптов через Entity Framework, Dapper либо другие ORM.У этого подхода есть преимущества и недостатки, но сейчас о них не будем говорить и перейдем к вопросам.SQL:Какие виды блокировок знаешь?Каким способом можно решить проблемы с блокировками?Что такое транзакция?Какие уровни изоляции знаешь?Что такое индексы?Какие индексы знаешь?Какие типы индексов знаешь?Чем отличаются кластеризованные и некластеризованные индексы?Как найти неоптимизированный запрос?Если добавить на каждое поле индекс, будет ли запрос работать быстрее?Что такое планировщик выполнения запроса?На что в планировщике запроса нужно обращать внимание для оптимизации запроса?Какое основное отличие между процедурой и функцией?На позицию Full Stack Developer в зависимости от задач, требуют разный уровень знаний.В основном отправлял свое резюме, в которых требуется небольшой опыт.React/JS:Чем отличаются var и let и что лучше использовать?Чем отличается компонент от класса в React и что предпочтительней?Что такое крючки/hooks в React?Что такое useState?Что такое useEffect?Что такое useReducer?Что такое useContext?В чем разница между jsx и js?Объясните жизненный цикл компонента React?Как создать реактивный компонент с использованием Hooks?Как реализовать паттерн «Компонент по состоянию» (Stateful Component) в React?Как реализовать паттерн «Компонент по состоянию» (Stateless Component) в React?Как управлять дочерними компонентами в React?Безусловно, компаниям не обойтись без хранилища кодовой базы Git или ее аналогов.GIT/Gitlab:Сможешь рассказать вкратце какой-нибудь git flow?Как откатить изменения после переноса?Чем отличается Rebase от Merge при актуализации ветки?Что такое Cherry-Pick и где можно использовать?Что такое Commit изменений?Чем отличается команды git pull от git fetch?Что такое Merge Request?Что такое Squash Commits в Merge Request?Проводил ли ты Code Review?По позиции Tech Lead/Team Lead:Сможешь вкратце рассказать про Agile, Scrum, Kanban методологии?Как считаешь, Code Review нужно ли проводить?Считаешь ли ты обязательным добавлять автоматическое тестирование кода?Был ли опыт в проектировании архитектуры, сможешь привести примерСчитаешь ли ты грумминг задач частью обязанностей Tech Lead?Как решаешь проблемы, возникшие у программистов в ходе решения задач?Как распределяешь задачи между программистами?Как понимаешь, что именно этот пул задач должен быть решен на ближайший спринт?Когда ты понимаешь, что требуется рефакторинг кода?Когда решаются задачи по техническому долгу и нужно ли их решать?Как вы обучаете и поддерживаете команду разработчиков в освоении новых технологий и подходов?Остальные вопросы по технологиям:С какими контейнерами работал и был ли опыт с Docker, Kubernetes?Был ли опыт с REST либо gRPC?Был ли опыт с системами RabbitMQ либо Kafka?Был ли опыт с Graylog?На этом, пожалуй, всё, если статья была интересной, буду рад любой поддержке.USDT TRC20: TMMHMYQt5ve8vQ45SKvyXcdTk269sRrpcKUSDT BEP20: 0x5be98d43571a936f509106b13e78e55a28c9bda8TON: UQBZR_fCLHUidygH4osRzD4GVXZqUbOlV2-1JevNjs3U5LgvЕсли наберем от 100 лайков и более, буду рад ответить на вопросы, перечисленные в этом списке, отдельной публикацией.
Количество вопросов всегда разное. В среднем 10-25. Иногда работодатели понимают, что с теорией не очень и могут попросить сделать тестовое задание) у некоторых компаний есть стажировка перед устройством.
Столько вопросов, а если человек не опытный, но амбициозный и быстро учится, взяли бы на работу ?
Ты этого за одно собеседование не поймешь, тут игра в рулетку)