Что должен знать C# Junior разработчик?

  Рет қаралды 86,737

Sergey Nemchinskiy

Sergey Nemchinskiy

Күн бұрын

В этом видео обсудим техническую базу, которая нужна для того, чтобы успешно пройти собеседование на позицию C# Junior Developer. Приятного просмотра!
💻 Направление о котором говорит Сергей:
Курсы для будущих С#-разработчиков:
C# START - go.foxminded.ua/42LjnAJ
C#/.NET - go.foxminded.ua/41qgnZy
Обучение на проекте - go.foxminded.ua/3VSsf5o
Есть вопросы по обучению в FoxmindEd? Пишите нам в телеграм - t.me/foxminded
Видео о требованиях к Java Junior разработчикам - • Что должен знать и уме...
Вы можете стать спонсором канала и получать плюшки - / @sergeynemchinskiy
❤ FoxmindEd в Instagram: / foxminded.ua
Курсы для будущих JS-разработчиков:
JavaScript Start - go.foxminded.ua/3BfCLdd
FRONT-END (ANGULAR, REACT) - go.foxminded.ua/3VTO0S9
NODE.JS - go.foxminded.ua/44Th40c
Курсы для будущих Java-разработчиков:
JAVA Start - go.foxminded.ua/3O1CUJ1
Инструментарий JAVA - go.foxminded.ua/42KVEAz
JAVA - go.foxminded.ua/44OBzv3
Обучение на проекте - go.foxminded.ua/3VSsf5o
Курсы для будущих Python-разработчиков:
PYTHON Start - go.foxminded.ua/3MjHgdo
PYTHON - go.foxminded.ua/3Bf7Q0C
🎓 Другие направления:
ANDROID - go.foxminded.ua/41tX9Cn
SALESFORCE Developer - go.foxminded.ua/3ptYzPY
UI/UX дизайн - go.foxminded.ua/3I39YfM
Unreal Engine - go.foxminded.ua/41oJNHj
QA Automation - go.foxminded.ua/44LscfP
IOS разработка - go.foxminded.ua/3LXN5vq
PHP - go.foxminded.ua/3nZKpW6
Unity - go.foxminded.ua/42oG7GQ
GOLANG - go.foxminded.ua/44SKfkc
🎓Продвинутые курсы для состоявшихся девелоперов:
Enterprise patterns - go.foxminded.ua/44Rzoqz
Алгоритмы и структуры данных - go.foxminded.ua/3BfglsT
C# NEXT - go.foxminded.ua/44RmoB9
🔧 Пробное техническое собеседование со специалистом уровня Senior Developer/ Team Leader - go.foxminded.ua/3LYjodX
👔 Карьерная консультация с Сергеем Немчинским - go.foxminded.ua/3LSZsJb
Сайт FoxmindEd для новичков: go.foxminded.ua/3pz11o2
Сайт для разработчиков уровня мидл+: go.foxminded.ua/3BhS5Gw
FoxmindEd в ФБ: / foxmindedco
FoxmindEd в Instagram: / foxminded.ua
Мой Telegram: t.me/nemchinskiyOnBusiness
Для деловых запросов: youtube@foxminded.ua
Тайминг:
00:00 - Вступление
00:24 - Общие вопросы
04:41 - Платформа .NET
06:34 - Классы, структуры и интерфейсы
07:13 - Базы данных
08:18 - Тестирование

Пікірлер: 267
@SergeyNemchinskiy
@SergeyNemchinskiy 11 ай бұрын
Регистрация на C#/.NET менторинг тут - go.foxminded.ua/41qgnZy
@user-wr6tk5up1m
@user-wr6tk5up1m 11 ай бұрын
Как зарегистироваться если я из Беларуси?
@Serhii-TV
@Serhii-TV 11 ай бұрын
Здравствуйте Сергей, сделайте пожалуйста видео с Иваном Головачом. Интересно где он сейчас.
@spjlesher759
@spjlesher759 10 ай бұрын
1. Изучить основные принципы ООП ( с помощью метонита ) 2. От какого класса неявно наследуются все классы в .Net 3. Разрешено ли множественное наследование в c#? 4. Как вы понимаете REST? 5. Что такое exception? 6. Что такое garbage collector на базовом уровне? 7. Какие типы данных вы знаете ?/ коллекции / структуры данных 8. Что такое тип значения, а что такое тип ссылки 9. Что из этого class, а что struct 10. В каком участке памяти они хранятся? 11. Что такое boxing и unboxing? 12. какие знаете коллекции ? 13. Чем отличается абстрактный класс от интерфейса ? 14. Зачем нужны интерфейсы и какие задачи они выполняют ? 15. Разница между структурой и классом 16. Привести примеры структур 17. Изучить асинхронность 18. Что такое асинхронность и чем она отличается от многопоточности? 19. Какие типы join существуют в sql? 20. Недостатки, отличая joinов и в каких случаях что используется 21. Зачем нужны unit тесты? 22. Какие преимущества и недостатки использования unit тестов? 23. Из каких трех логических блоков состоит unit тест ?
@artemky3bmu45
@artemky3bmu45 8 ай бұрын
Основные принципы ООП (объектно-ориентированного программирования) включают: Инкапсуляция: скрытие внутренних данных и методов объекта от прямого доступа, обеспечение доступа к ним через публичные интерфейсы. Наследование: возможность создания новых классов на основе существующих, наследование их свойств и методов. Полиморфизм: использование одного интерфейса для представления различных типов объектов, позволяет использовать объекты разных классов через общий интерфейс. Абстракция: выделение общих характеристик объектов и создание абстрактных классов или интерфейсов для их представления. В .NET все классы неявно наследуются от базового класса System.Object. В C# не разрешено множественное наследование классов (то есть класс не может наследовать от нескольких классов), однако множественное наследование интерфейсов разрешено. REST (Representational State Transfer) - это архитектурный стиль разработки программного обеспечения, который определяет набор ограничений и принципов для построения распределенных систем. RESTful веб-API обеспечивает взаимодействие между клиентом и сервером с использованием стандартных HTTP-методов, URL-адресов и представлений ресурсов. Exception (исключение) - это объект, который представляет ошибку или исключительную ситуацию, возникшую во время выполнения программы. Когда возникает исключение, выполнение текущего потока прерывается, и поиск исключения начинается в стеке вызовов, пока не будет найден обработчик исключения или программа завершится. Сборщик мусора (garbage collector) - это механизм в среде выполнения .NET, который автоматически управляет памятью, выделенной для объектов. Он отслеживает объекты, которые больше не используются в программе, и освобождает выделенную ими память, чтобы она могла быть использована для других целей. В C# известны следующие типы данных: Примитивные типы: целочисленные типы (int, long, byte и т. д.), типы с плавающей точкой (float, double), символьный тип (char), логический тип (bool). Строковый тип (string): представляет последовательность символов. Массивы (arrays): упорядоченные наборы элементов одного типа. Списки (List), множества (Set), словари (Dictionary) и другие коллекции: предоставляют удобные структуры данных для хранения и обработки групп элементов. Структуры (struct): пользовательские типы данных, которые могут содержать поля и методы, похожие на классы, но передаются по значению. Пользовательские классы (class): определенные пользователем типы данных, которые могут содержать поля, свойства и методы. Тип значения (value type) - это тип данных, который хранит свое значение непосредственно в памяти, независимо от ссылки на него. Значения типа значения хранятся в стеке памяти и копируются при присваивании или передачепараметра в методы. Тип ссылки (reference type) - это тип данных, значения которого хранятся в куче памяти, а переменная содержит ссылку на это значение. Переменная типа ссылки не содержит само значение, а лишь ссылку на него. При присваивании или передаче параметра в метод копируется только ссылка на значение, а не само значение. class и struct являются ключевыми словами в C# для определения пользовательских типов данных. ```class` используется для создания ссылочных типов. Экземпляры классов создаются в куче памяти, а переменные содержат ссылку на эти объекты. Классы поддерживают наследование, множественное вхождение в интерфейсы и динамическое связывание. ```struct` используется для создания значимых типов. Экземпляры структур создаются в стеке памяти или встроенном в другой объект, а переменные содержат само значение структуры. Структуры обычно имеют небольшой размер и передаются по значени. Объекты классов хранятся в куче памяти, в то время как значения структур хранятся в стеке памяти. Куча - это область памяти, в которой выделяются и освобождаются блоки памяти динамически во время выполнения программы. Стек - это область памяти, в которой хранятся временные данные, такие как локальные переменные и вызовы методов. Boxing и unboxing - это процессы преобразования значимых типов (типов значения) в ссылочные типы (типы ссылок) и обратно. Boxing - это процесс упаковки значения типа значения в объект типа System.Object или его производного типа. Например, когда значение типа int упаковывается в объект, оно становится ссылкой на объект, содержащего это значение. Unboxing - это процесс извлечения значения из упакованного объекта и преобразования его обратно в значение типа значения. Например, при unboxing объекта типа System.Object в значение int значение извлекается из объекта и приводится к соответствующему типу. Некоторые известные коллекции в C#: List: упорядоченная коллекция элементов с динамическим размером. Dictionary: коллекция пар "ключ-значение" с быстрым доступом к элементам по ключу. HashSet: коллекция уникальных элементов без повторений. Queue: коллекция элементов с доступом в порядке "первый пришел - первый вышел" (FIFO). Stack: коллекция элементов с доступом в порядке "последний пришел - первый вышел" (LIFO). LinkedList: двусвязный список элементов с эффективной вставкой и удалением элементов. ObservableCollection: коллекция, которая предоставляет уведомления об изменениях в своих элементах.
@artemky3bmu45
@artemky3bmu45 8 ай бұрын
Отличия между абстрактным классом и интерфейсом: Абстрактный класс может содержать как реализацию методов, так и абстрактные методы, в то время как интерфейс может содержать только сигнатуры методов и свойств без их реализации. Класс может наследовать только один абстрактный класс, но реализовывать несколько интерфейсов. Абстрактный класс может иметь поля и конструкторы, а интерфейс может содержать только сигнатуры методов и свойств. Абстрактный класс может предоставлять базовую реализацию методов, которую наследующие классы могут переопределить, в то время как интерфейс не предоставляет реализацию методов. Интерфейсы используются для определения контрактов, которые классы должны реализовывать. Они определяют сигнатуры методов, свойств и событий, но не предоставляют реализацию. Задачи, которые выполняют интерфейсы: Определение общих методов и свойств, которые должны быть реализованы классами, чтобы обеспечить единый интерфейс взаимодействия. Разделение поведения между несвязанными классами. Реализация множественного наследования через интерфейсы, поскольку класс может реализовывать несколько интерфейсов одновременно. Разница между структурой и классом: Структуры являются типами значений (value types), в то время как классы являются ссылочными типами (reference types). Структуры передаются по значению, а классы передаются по ссылке. Структуры обычно используются для представления простых значений, а классы - для более сложных объектов и функциональности. Структуры не могут наследоваться и не поддерживают наследование, а классы могут наследоваться и быть наследниками других классов. Примеры структур: Point: структура, представляющая точку с координатами X и Y. Rectangle: структура, представляющая прямоугольник с координатами верхнего левого и нижнего правого углов. DateTime: структура, представляющая дату и время. TimeSpan: структура, представляющая промежуток времени. Асинхронность (асинхронное программирование) в программировании относится к возможности выполнять задачи независимо от основного потока выполнения программы. Асинхронные операции позволяют продолжать выполнение других задач во время ожидания завершения операции ввода-вывода, долгих вычислений или запросов к базе данных. Асинхронность отличается от многопоточности следующим образом: В асинхронном программировании нет необходимости создавать и управлять явными потоками, что делает его более легким в использовании. В асинхронном программировании операции могут быть выполнены на одном потоке без блокировки, что позволяет более эффективно использовать ресурсы. Асинхронностьпозволяет создавать отзывчивые приложения, которые не блокируются во время выполнения длительных операций, таких как сетевые запросы или обращения к базе данных. В многопоточности операции выполняются параллельно на разных потоках, в то время как в асинхронности операции могут выполняться последовательно, но без блокировки основного потока выполнения. В SQL существуют следующие типы объединений (join): INNER JOIN: Возвращает только те строки, которые имеют совпадающие значения в обоих таблицах, участвующих в объединении. LEFT JOIN (или LEFT OUTER JOIN): Возвращает все строки из левой (первой) таблицы и соответствующие строки из правой (второй) таблицы. Если в правой таблице нет совпадающих значений, то для них будут возвращены NULL значения. RIGHT JOIN (или RIGHT OUTER JOIN): Возвращает все строки из правой (второй) таблицы и соответствующие строки из левой (первой) таблицы. Если в левой таблице нет совпадающих значений, то для них будут возвращены NULL значения. FULL JOIN (или FULL OUTER JOIN): Возвращает все строки из обеих таблиц и заполняет NULL значениями для неподходящих строк. CROSS JOIN: Производит декартово произведение двух таблиц, возвращая все возможные комбинации строк. Недостатки и отличия различных типов объединений (join) зависят от конкретной задачи и структуры данных: INNER JOIN: Возвращает только строки с совпадающими значениями в обеих таблицах. Если в таблицах отсутствуют совпадающие значения, соответствующие строки не будут возвращены. LEFT JOIN: Возвращает все строки из левой (первой) таблицы, независимо от наличия совпадающих значений в правой (второй) таблице. Если в правой таблице нет совпадающих значений, будут возвращены NULL значения. RIGHT JOIN: Аналогично LEFT JOIN, но возвращает все строки из правой (второй) таблицы, независимо от наличия совпадающих значений в левой (первой) таблице. Если в левой таблице нет совпадающих значений, будут возвращены NULL значения. FULL JOIN: Возвращает все строки из обеих таблиц, заполняя NULL значениями для неподходящих строк. Может создавать большие результаты и быть менее эффективным в использовании ресурсов. CROSS JOIN: Производит декартово произведение таблиц, возвращая все возможные комбинации строк. Результат может быть очень большим, особенно для больших таблиц. Unit-тесты используются для автоматизированной проверки отдельных частей кода (обычно отдельных методов) на корректность и соответствие ожиданиям. Они помогают обнаруживать ошибки и проблемы в коде на ранних стадиях разработки и обеспечивают уверенность в работоспособности тестируемых компонентов.
@artemky3bmu45
@artemky3bmu45 8 ай бұрын
Преимущества использования unit-тестов: Обеспечивают автоматическую проверку корректности кода: Unit-тесты позволяют автоматически проверить, что отдельные части кода работают правильно и соответствуют ожиданиям разработчика. Обнаруживают ошибки и проблемы на ранней стадии разработки: Unit-тесты позволяют обнаружить ошибки и проблемы в коде на ранних этапах разработки, что помогает их быстро исправить и предотвращает их распространение в другие части системы. Улучшают качество кода и его структуру: При написании unit-тестов разработчику необходимо разбить код на более маленькие тестируемые части, что способствует улучшению архитектуры и структуры кода. Облегчают рефакторинг: Наличие хорошо написанных unit-тестов позволяет уверенно проводить рефакторинг кода, так как тесты помогают обнаружить возможные нарушения функциональности после внесения изменений. Повышают надежность и поддерживаемость кода: Unit-тесты служат документацией к коду и помогают быстро проверить, что изменения в коде не сломали уже существующую функциональность. Недостатки использования unit-тестов: Требуют времени и ресурсов: Написание и поддержка unit-тестов требует времени и усилий со стороны разработчика. Необходимо обеспечить покрытие тестами всех важных частей кода, что может быть трудоемкой задачей. Могут быть сложными для написания и поддержки: Некоторые части кода могут быть сложными для тестирования, особенно в случае с взаимодействием с внешними ресурсами или зависимостями. Иногда требуется использовать моки или заглушки, чтобы изолировать код от внешних зависимостей. Не гарантируют отсутствие ошибок: Наличие unit-тестов не гарантирует полное отсутствие ошибок в коде. Тесты могут не покрывать все возможные сценарии использования или не обнаружить некоторые сложные ошибки. Могут увеличить время разработки: Написание и поддержка unit-тестов требует дополнительного времени, что может увеличить время разработки проекта. Unit-тесты обычно состоят из трех логических блоков, известных как "AAA" (Arrange, Act, Assert): Arrange (Подготовка): В этом блоке происходит подготовка окружения для тестирования. Создаются необходимые объекты, настраиваются зависимости и устанавливаются начальные условия. Act (Действие): В этом блоке выполняется тестируемое действие или вызывается метод, который должен быть протестирован. Assert (Утверждение): В этом блоке проверяются результаты выполнения теста. Сравниваются ожидаемые значения с фактическими результатами, чтобы убедиться, что код работает правильно.
@user-rh7ww9wd9b
@user-rh7ww9wd9b 8 ай бұрын
Привет всё есть строка string str = "Hello"; Как мне вывести еë вот так H He Hel Hell Hello
@pody8205
@pody8205 8 ай бұрын
​@@user-rh7ww9wd9bСамое простое через for (int i до длины строки) writeline(str.substring(0,i)
@sergioramos9052
@sergioramos9052 11 ай бұрын
Сергей, спасибо огромное за видео. Давно его ждал
@sahibrzayev8968
@sahibrzayev8968 11 ай бұрын
Благодарю Сергей !!! Надеюсь сделаете в будущем вторую часть 🔥
@slippers__
@slippers__ 11 ай бұрын
Спасибо за видео, очень интересно было бы узнать про PHP
@user-lg9qv5bz8b
@user-lg9qv5bz8b 11 ай бұрын
Спасибо, Сергей, огромное! Вырос как разработчик на ваших видео, 3 года - полет нормальный, перехожу на C# Backend, очень в тему для кругозора :)
@evgenyjagushinsky6695
@evgenyjagushinsky6695 10 ай бұрын
Как всегда всё понятно и достОйно рассказано, Сергей! Дай Бог здоровья тебе и твоим близким
@user-nb6ln5jm1g
@user-nb6ln5jm1g 11 ай бұрын
Полезная информация, спасибо большое!)
@jongaur8097
@jongaur8097 11 ай бұрын
спасибо за видео! давай такое же по фронтенду :)
@VladislavGnatiuk
@VladislavGnatiuk 11 ай бұрын
Привет, спасибо за видео. Сделай пожалуйста так-же по С++
@ShomGLZ
@ShomGLZ 11 ай бұрын
Отличное видео, спасибо.
@unfeastbeats986
@unfeastbeats986 11 ай бұрын
Спасибо за видос!
@DoctorKrolic
@DoctorKrolic 11 ай бұрын
Не знаю, как там в Java, но в C# начинающие разработчики почти не пишут sql руками. "Стандартная" ORM для C# - Entity Framework Core, очень хорошо абстрагирует от sql и его диалекта для конкретной бд. Можно заджоинить 5 таблиц, особо не осознавая этого) Писать sql самому приходится только в специфических случаях, с которыми новички вряд ли сталкиваются. Это и хорошо и плохо одновременно. Поэтому, наверное, вопрос про то, что такое джоины и какие они бывают лучше, чем попросить написать sql самому, ибо человек просто растеряться может. С другой стороны, думаю, и то и другое встречается на реальных собесах
@donlinoleum831
@donlinoleum831 11 ай бұрын
Во-во). Как я понимаю, в современном мире ведь чистым sql редко орудуют. В основном ведь все через orm идет. Конечно, полезно знать что там идет внутри, но что бы прям обязательно. Ну хз))
@dest8488
@dest8488 11 ай бұрын
когда пишешь учебную прогу с 3 таблицами 10 записями и без order by без проблем, а потом приходишь на "галеру" где какой нибудь очет из БД генерируется из 10 таблиц с 100 000+ записей, с кучей order by. Удачи тебе с EF и производительностью. EF инструмент хороший, но нужно уметь в базовый SQL и понимать во что генерится твой Linq в EF.
@DoctorKrolic
@DoctorKrolic 11 ай бұрын
@@dest8488 Ну значит вы не умеете пользоваться EF. Он отлично вам построит запрос и с ORDER BY, и с джоинами. Другой вопрос, что если программист не понимает, что там под капотом происходит и инклюднет все таблицы, заставив их заджоиниться целиком, то да, это гг. Но это уже вопрос об умении пользоваться EF, а не sql
@dest8488
@dest8488 11 ай бұрын
​@@DoctorKrolic он то построит, но будет ли этот запрос эффективен по времени выполнения? Учить EF не зная SQL, это как считать на калькулятора не зная правил арифметики, рано или поздно наступит момент когда ты поделишь на 0 и будишь долго тупить, а если еще и на проде... Может легче все таки было бы выделить на базовый SQL неделю.
@DoctorKrolic
@DoctorKrolic 11 ай бұрын
@@dest8488 Ну, если составить нормальный EF-запрос, то он его нормально в Sql и перестроит. Парадокс ещё в том, что для того, чтобы понимать, что в запросе не так, нужно чуть больше уровень, чем базовый sql за неделю. В любом случае, это задача на чтение sql, а не на написание. А на собесе как раз будут долбать, мол "а напиши мне ..."
@macmyem9527
@macmyem9527 11 ай бұрын
От Object Нет, но разрешена множественная реализация интерфейсов Rest - стиль, позволяющий проще обмениваться данными между небольшими приложениями для удобства масштабирования всей структуры. Exception - предоставляет возможность отследить непредвиденные ошибки, другие наследуемые от него Исключения более конкретизирует назначение их самих в той или иной ситуации. Garbage Collector работает автоматически и выгружает из памяти уже не нужную информацию. В некоторых ситуациях необходимо ручное указание в коде для его использования или нет. shortint, int, long, float, double, emun, string (класс), DateTime и прочие Тип значение - непосредственно само значение из простых сипов данных, тип Ссылка это уже классы по типу String, где информация хранится в виде ссылки на другую ячейку памяти со значением или набором значений. NullPointer или null Коллекции List, Dictionary, разные хэш-таблицы - одна из главных особенностей имеют встроенные методы для работы с ней на максимально оптимизированном уровне. Интерфейс не имеет реализации ни одного из методов внутри, абстрактный класс может имеет хотя-бы частичную реализацию методов. Интерфейсы нужны в качестве обязательств, которые обязательно должны быть в реализующем этот интерфейс классе. Данные классов передаются по ссылке, а структуры копируются. многопоточность - одна задача выполняется как разделенная на части на процессоре, асинхронность подразумевается выполнение на нескольких процессорах разных машин. Inner Join (от же обычный Join), left join, right join, cross join - в разной степени нужны для включения результатов из дополнительной таблицы связанной по данным, которые будут или нет выводить сами данные и в зависимости от их наличия будут или нет выдавать NULL в качестве отсутствующих значений. Unit тесты нужны для больших проектов, проще говоря, где требуется быстро проверить, не отвалилось ли чего в процессе последних изменений в коде. Занимают много времени на их написание, но упрощают исправление и улучшения кода в целом. Состоит из настройки каждого конкретного теста и использования в комплекте или по одиночке, какой третий логический пункт понятия не имею либо не понял вопроса. Сергей, если прочитаете, напишите, есть ли мне смысл искать работу или все плохо?)
@west8663
@west8663 11 ай бұрын
в c# 8.0 может же быть реализация в интерфейсе?
@user-tq3zn1wm1k
@user-tq3zn1wm1k 11 ай бұрын
По поводу join есть небольшой недочёт. Дело в том, что его функция именно в объедение двух и более таблиц. А дополнительная информация left, right и тд указывает на способ объединения. Если еще проще представить это что то типо диаграммы объединения диаграмм эйлера, в зависимости от контекста может быть разное объединение.
@jonnesfal6024
@jonnesfal6024 11 ай бұрын
Ну как максимально короткие ответы на вопросы - ок, как ответы на интервью слишком мало, ну и есть ошибки В Шарпее разрешено множественное наследование интерфейсов и множественная реализация интерфейсов, а множественное наследование классов не разрешено В какой-то их последних версий дали возможность писать реализацию внутри интерфейсов, но с жуткими ограничениями Многопоточность - это одновременное выполнение нескольких задач на разных потоках(тредах) процессора(ов) (или одной задачи, разбитой на несколько разных) Thread, ThreadPool, BackgroundWorker, Parallel, PLINQ, Task. Aсинхронность - выполнение нескольких задач с быстрым переключением между ними Асинхронность может быть многопоточной(параллельной) Task, async/await . Пример, есть UI и какаянить CPU Bound задача - ну пусть будет подсчет факториала и еще IO Bound задача - запрос к БД. При многопоточной реализации, мы все три задачи вешаем на три разных потока и они выполняются параллельно на них. При асинхронной - мы запускаем все три задачи на одном потоке, и поток постоянно быстро переключается между задачами, так что и UI не тормозит и факториал наш считается и запрос к БД ожидается(если конечно вычислительных мощностей хватает), при асинхронной многопоточности, задачи прыгают между потоками, например UI может всегда висеть на одном потоке, потом мы сделали IO Bound задачу (запрос к БД) тогда из тредпула выделяется еще поток, который обращается к бд и ждет ответа, пусть ответ придет через 30 секунд. Тут мы еще запускаем подсчет нашего факториала(CPU Bound). Т.к. ожидание ответа IO Bound и не требует вычислительных мощностей, то поток переключается на задачу вычисления факториала и считает его 40 секунд, за это время БД прислало ответ на запрос, и тогда выделяется третий поток и он уже принимает ответ от БД. Тем самым у нас при обычное многопоточности было 3 разных потока, каждый занимался своим делом, какие-то полезным CPU Bound: UI и факториал, а другой простаивал в спинвеит 30 секунд в IO Bound задаче, ожидая ответа от БД, а при асинхронном многопоточном сценарии у нас поток не блокировался на IO Bound задаче, а пошел выполнять CPU Bound задачу, а при получении ответа от БД, эту задачу подхватил другой поток. Все это тоже достаточно упрощено, вообще многопоточность - это огромная тема и TAP (Task Async* Pattern) сильно упростило вкатывание в неё. По тестам - состоят из трех логических блоков паттерна AAA (не посню как он расшифровывается, помню вторая A - act): этап подготовки- объявление переменных, создания классов и т.п. Этап самого тестирования (Действие) - этап где мы запускаем тестируемый код. И, наконец, третий этап - Этап проверки (Asset) где мы проверяем получили ли мы тот результат, который ждали
@darkhekromant
@darkhekromant 9 ай бұрын
Про асинхронность дичь какую-то написал. Асинхронность, это когда ты отправил, например, запрос к сетевому апи, пошел дальше что-то делать, а потом вернулся и проверил ответ. В основе обычно лежит простой цикл перебора. Это гораздо дешевле, чем создавать поток и позволяет одновременно выполнять гораздо больше задач, если их большая часть времени выполнения - просто ожидание ответа.
@darkhekromant
@darkhekromant 9 ай бұрын
Интерфейс - это контракт, который класс должен исполнять, например опредленный набор методов с заданной сигнатурой. Абстрактный класс - базовый класс, экземпляр которого нельзя создать; может не имееть реализации части методов/свойств. Какого-то прямого отношения к реализации это в общем то не имеет
@sergeykolesnikov6333
@sergeykolesnikov6333 3 ай бұрын
Благодарю Вас, Сергей, за Ваши видео! Очень полезно, содержательно и мотивирующе.
@Infinity-ua
@Infinity-ua 11 ай бұрын
Спасибо за видео !
@Kriptio
@Kriptio 11 ай бұрын
Теперь мы просим точно такое же видео для nodejs и фронтэнда ,не ну а че,мы же джаваскриптизеры тоже видлсика отдельного заслуживаем (двух) :)
@user-fj4wn4ur6j
@user-fj4wn4ur6j 7 ай бұрын
Спасибо за Ваш труд! Сделайте пожалуйста такое же видео по ios-разработке)
@user-ik4rw9uf3l
@user-ik4rw9uf3l 11 ай бұрын
Очень ждем для Python, очень благодарен вам за ваш труд.
@user-zn8jl7go2s
@user-zn8jl7go2s 11 ай бұрын
Сергей, скорее всего вам придётся выпустить ряди таких видео, по всем языкам программирования :)
@ei2292
@ei2292 7 ай бұрын
Посоветуйте книгу по sql для чайника под c#
@qrthack3233
@qrthack3233 4 ай бұрын
Привет, у меня такой вопрос, коммерческого опыта нет, знаю C, Python, люблю Computer Science. Хочу в backend, выбираю между Java, C#, Golang что посоветуешь, и почему? интересно твое мнение.
@titanovsky
@titanovsky 4 ай бұрын
Большое спасибо.
@user-ml6qt1kg4g
@user-ml6qt1kg4g 11 ай бұрын
Добрый день, понравилось это видео, можете сделать видео что должен знать junior QA и UX UI designer
@denisbragin4264
@denisbragin4264 11 ай бұрын
Сергей, респект😊
@sergei1412
@sergei1412 11 ай бұрын
Ребята, может кто-то посоветовать с чего лучше начать основы безопасности??
@mvttofficial
@mvttofficial 11 ай бұрын
Ждем по JavaScript
@neonsun6162
@neonsun6162 11 ай бұрын
давно не был на собеседование, но что-то вопросы странные. Это скорей вопросы на экзамен, чем на собеседование. Достаточно знание общих принципов, всё остальное можно подтянуть по мере надобности. Разработка сегодня стала слишком объемной и всё в голове не удержишь, хотя конечно если писать только в одном языке и больше ничем не заниматься, то наверное стоит знать как можно больше об этом языке. А в C# еще много всего интересного. Сколько лет в нем пишу и все равно иногда открываю что-то новое
@mitsuro3815
@mitsuro3815 11 ай бұрын
а вы уже Senior С# dev? Backend?
@neonsun6162
@neonsun6162 11 ай бұрын
@@mitsuro3815 скорей Full Stack Web Developer, делаю всё что придется. Просто C# это то, с чем я работал больше всего, ну и в принципе этой мой любимый язык) Но обычно это только часть проекта и делать приходиться много чего другого, поэтому изучать полностью что-то одно, нет смысла и времени. Достаточно разобраться в том, что требуется для выполнения задачи.
@rexdraconis1703
@rexdraconis1703 11 ай бұрын
Дадада, я вроде не так уж мало пишу, но каково же было удивление, когда я узнал что можно функцию в методе создавать... А вроде штука базовая должна быть.
@johnsilver3804
@johnsilver3804 11 ай бұрын
А wpf, asp, blazor, angular, entity можна пропустить, і одразу роботу шукати?
@user-oz6xm9zp9d
@user-oz6xm9zp9d 2 ай бұрын
блин, меня по фронтовым вопросам как джуна помню так е..ли на собесах. ts js react вопросов по 15-20 плюс задача и практика. на бэке чё реально такие вопросики?
@mishka_zlovred2224
@mishka_zlovred2224 11 ай бұрын
Почти всё это есть в книге шилдта под C#, можете прочитать, она даже на русском языке есть, большая часть правда из этого может вам особо никогда и не понадобится, но ради интереса почитать можно. (:
@johnsilver3804
@johnsilver3804 11 ай бұрын
Entity framework, вот как мы с базами работаем)))
@nomugop8017
@nomugop8017 11 ай бұрын
а чистой архитектуры к них нет ? или solid для всех един ?
@NickOlifirovych
@NickOlifirovych 11 ай бұрын
Привет, спасибо за видео. Сделайте пожалуйста так-же по Python
@user-ey8ff2gd9p
@user-ey8ff2gd9p 11 ай бұрын
Для будущих Питонистов такое видео снимете?
@_curtman
@_curtman 11 ай бұрын
Ну хз. У меня ничего из этого на последнем собеседование не спрашивали. Вопросы больше были по технологиям типо Entity framework или Dependecy injection. Сейчас ведь недостаточно знать только язык, нужны фрэймворки.
@Inclydi
@Inclydi 11 ай бұрын
Супер відео ) дякую за інфу хоч і я не junior фле було декілька що не зразу відповів би )
@user-st8yq5rw8x
@user-st8yq5rw8x 11 ай бұрын
Что по python ?
@user-wv8xz3vi3l
@user-wv8xz3vi3l 11 ай бұрын
по поводу join. по моему опыту не надо писать сложные запросы в коде, нужно создавать или stored procedure или views и работать уже с ними со стороны бэка. и да, я как сениор сходу не смог ответить на все вопросы))
@user-dv1nc2xo2w
@user-dv1nc2xo2w 11 ай бұрын
Весело. И как тогда нам любителям вкатывать в IT. :)
@cliobro3890
@cliobro3890 11 ай бұрын
@@user-dv1nc2xo2w А вот это уже, не их проблема...
@user-dv1nc2xo2w
@user-dv1nc2xo2w 11 ай бұрын
@@cliobro3890 это понятно. :)
@user-wv8xz3vi3l
@user-wv8xz3vi3l 11 ай бұрын
@@user-dv1nc2xo2w да не не парься. это как зуюрежка экзамена сдал и забыл.
@nerewan
@nerewan 11 ай бұрын
я бы предложил тогда не разбивать логику на содержащуюся непосредственно в основной приложухе и на хранимки в субд, а перенести код хранимых процедур и вьюх в ресурсы приложения это упростит контроль версий + код будет в одном месте на текущем проекте частенько возникают сложности из-за того, что бизнес-логика вот так вот разбита на две части, намучился разбираться в хитросплетениях)
@user-hw1zc7vi2w
@user-hw1zc7vi2w 7 ай бұрын
Ти ж моє сонечко❤❤❤. Більше б таких людей
@arsen_kh_8445
@arsen_kh_8445 11 ай бұрын
Очень интересное видео Можете, пожалуйста, сделать такое же видео, но об iOS разработке
@avusar2702
@avusar2702 10 ай бұрын
Не понимаю, зачем C# разработчику знать типы джоинов, если Entity Framework уже за него делает эти самые джоины. Если знаете, скажите, с какой целью вообще писать голый SQL запрос в коде, а не использовать уже придуманные инструменты?
@nurken2345
@nurken2345 11 ай бұрын
Здравствуйте Сергей, можете сделать такое видео про Php. Салам из Казахстана
@errantwanderer
@errantwanderer 8 ай бұрын
Вопрос про sql странный, аля: "Вы точно разработчик C#, если не знаете JOIN", ну как бэ, я могу быть разработчиком мобильных приложений на Unity, там используется C#, но не используется sql, wtf dude
@yari_la
@yari_la 15 күн бұрын
А чё делать, если меня даже до собеса не берут, постоянно тестовые задания какие-то
@tor19v
@tor19v 11 ай бұрын
Интересно было бы глянуть такой же видос для анрдоида, видео получилось информативное
@fada9238
@fada9238 11 ай бұрын
Единственное, чего я не знаю - это REST и вопросы по тестированию. Слегка неуверен в работе с базами данных. То есть, на словах - я осознаю в чём разница между разными видами JION'ов, но на практике - я какие запросы не писал, разницу видел лишь между INNER и OUTER. Между LEFT и RIGHT - какую тестовую базу данных не строил(вероятно это я просто не умею их проектировать), а запросы всегда были одинаковыми по возвращаемому содержанию! Разве что имели разный порядок строк, тогда как я ожидал увидеть нечто иного содержания.
@motivator3d
@motivator3d 11 ай бұрын
Приятного просмотра😊
@dianashakirova2614
@dianashakirova2614 11 ай бұрын
Жду базу для Джава-Скриптизера!!!
@aokijikuzan2131
@aokijikuzan2131 11 ай бұрын
Если джун учил сразу EF Core, то рабоать с базой он в полне сможет, и не только join, а даже select не напишет
@user-tv4ju7ps2u
@user-tv4ju7ps2u 11 ай бұрын
Здравствуйте, Сергей я попробовал пройти по вашей ссылке на обучение C# у меня отобразилось окно о запрете владельцем . Подскажите вы не обучаете пользователь с РФ или это ютб запрет выдаёт? Заранее спасибо за ответ .
@Infinity-ua
@Infinity-ua 11 ай бұрын
Нет, конечно не обучают.
@travoltik
@travoltik 2 ай бұрын
Каким образом они будут обучать студентов из РФ, если они не смогут за обучение заплатить? Банки РФ изолированы от всего мира, ты никому не сможешь перевести денег, кроме как Беларуси через МИР и то не везде.
@user-fu5ff6zq7m
@user-fu5ff6zq7m 11 ай бұрын
гарне відео хоч і вчусь не на С# розробника)) було б круто пройтись по всім ТОП 10 мовам програмування)) дякую за відео))
@muratfaizmf
@muratfaizmf 11 ай бұрын
gracias
@user-lf6bl7jf3p
@user-lf6bl7jf3p 11 ай бұрын
На каком языке можно писать и сайты и моб приложения и дескотные приложения?
@user-kd9fl9yj9v
@user-kd9fl9yj9v 11 ай бұрын
Как раз таки c# себя и позиционирует, насколько я знаю, как язык-универсал. Хоть игры в unity на нём пишутся
@user-ff3lk3ft1f
@user-ff3lk3ft1f 11 ай бұрын
Можно на c++
@Anna-td4cq
@Anna-td4cq 11 ай бұрын
а можно для питона?
@notdeadyet6512
@notdeadyet6512 11 ай бұрын
Действительно если знать это все можно искать работу? Мне кажется этого мало
@user-bk5nn6sc8y
@user-bk5nn6sc8y 11 ай бұрын
Інформативне відео, дякую за вашу працю! Зробіть, будь ласка, такий же формат по С++ 🙂
@vasa7572
@vasa7572 11 ай бұрын
Давно подписан на этот канал. Интересно. Серёж, а не мог бы ты сделать обзор от программиста принципов тестирования. Их семь. Они описывают ошибки в разработке, но как-то не очень по-разработчески. Какие-то идеи мне ясны, какие-то рассказчики не могут толком объяснить "а чё так?" В общем, рассказывают как QA2QA, а хочется лучше понять, что происходит. С уважением, QAE
@tututu6425
@tututu6425 3 ай бұрын
А как же умение пользоваться GitHub
@user-qc7ds5pg5x
@user-qc7ds5pg5x 11 ай бұрын
А какие обязательные требования знания фреймворка, чтобы искать работу?
@user-wv8xz3vi3l
@user-wv8xz3vi3l 11 ай бұрын
учи angular
@WorldAwesomeShorts
@WorldAwesomeShorts 11 ай бұрын
​​@@user-wv8xz3vi3l фронт и js не интересны
@stark1902
@stark1902 11 ай бұрын
Досмотрел до 1.50. не смог удержаться чтобы не написать - бегите как от огня от тех всех кто абстракцию называет мало того что именно принципом ООП, а одним из основных принципов ООП! Особенно бегите оттуда когда интервьювер на техническом собеседовании утверждает, что основных принципов ООП 4, и четвертый это абстракция. Запомните. Как было три основных принципа ООП, так и будет всегда. И по меньше читайте индусов)
@fficktiff
@fficktiff 11 ай бұрын
Куда-то стримы пропали(
@rexdraconis1703
@rexdraconis1703 11 ай бұрын
Как то легко... Я что зря асп нет и ангуляр учил, со всякими библиотеками по типу SignalR... Короче надо будет реально работу начать искать, обнадеживающие видео.
@siberiancoder9327
@siberiancoder9327 11 ай бұрын
С ооп скользкая тема. Можно ударится в софистику вспомнить про посылку сообщений и подвести к тому, что все популярные языки (C++ java) не ооп, так как они вызывают методы и используют переменные другого класса напрямую.
@yehortverytinov5478
@yehortverytinov5478 11 ай бұрын
Ждем по Golang
@yuryermolov13
@yuryermolov13 Ай бұрын
По поводу JOIN не согласен. Oracle Database пишут SQL без JOIN используют плюсики (+)
@user-fb6of7uy4w
@user-fb6of7uy4w 11 ай бұрын
Здравствуйте)
@goldgold594
@goldgold594 11 ай бұрын
Знаю все из перечисленного в видео на хорошем уровне, работу не могу найти даже Trainee уже пол года. Привет из россиюшки
@mitsuro3815
@mitsuro3815 11 ай бұрын
А какие вопросы ещё задавали на собесах? Или имеется ввиду, что вакансий нет?
@user-ls6tj4nz5c
@user-ls6tj4nz5c 11 ай бұрын
Сергей, давайте про пхп
@yabarm
@yabarm 11 ай бұрын
Давай по питону такое же видео))
@user-skrivosein
@user-skrivosein 11 ай бұрын
Null reference называется. Но можно и null pointer
@austinpowers8850
@austinpowers8850 11 ай бұрын
А можно такое же для Python?... Очень просим ) (я и жена )))))
@deprussian
@deprussian 11 ай бұрын
Теперь давайте о Golang'е
@newm_2002
@newm_2002 11 ай бұрын
Давай про Go junior
@Dima-fr8cw
@Dima-fr8cw 11 ай бұрын
Можно такое же видео но о Rust?)
@vatican8153
@vatican8153 11 ай бұрын
А можно под Rust?))
@hairyrope3890
@hairyrope3890 11 ай бұрын
Сделайте пожалуйста по Python!!
@user-wr2mp9gm1w
@user-wr2mp9gm1w 11 ай бұрын
А по Scala сделайте)
@EarthCitizen124
@EarthCitizen124 11 ай бұрын
Про JOIN-ы и работу с базой в C# ... знать надо 100% Но Вы, Сергей, в Java вообще ORM используете?)) Некоторые фигачат простые CRUD сервисы даже не зная как Entity Framework запрос транслирует и во что)) И прекрасно живут... и получают свои ЗПшки на галлерах))
@user-yx9fo3er9r
@user-yx9fo3er9r 11 ай бұрын
Вопрос немного не по теме, но думаю здесь есть люди, которые разбираются: почему в игровых движках в основном используют С++, а на Юнити С#? Это из-за открытого исходного кода или есть ещё какие-то причины?
@riyazvagapov1449
@riyazvagapov1449 11 ай бұрын
По-моему юнити это часть дотнет, поэтому само собой на ней МС сделала упор на Шарп. Имхо
@RodshotOfficial
@RodshotOfficial 11 ай бұрын
C++ быстрее C#
@Moonrider7777
@Moonrider7777 11 ай бұрын
Потому что у производителей движков есть свобода выбора) Если бы я был разработчиком игр, я бы вообще выбрал CryEngine. Там скрипты на Lua и искусственный интеллект , а не только С++, P.S. Последняя версия CryEngine V поддерживает скрипты на С# )
@exactly4234
@exactly4234 5 ай бұрын
В C++ можно напрямую глубже работать с памятью, а также делать вставки из С и Ассемблера, шарп рядом не стоял по возможностям и требованиям к знаниям.
@Nik-gfg
@Nik-gfg 11 ай бұрын
Цікаво що потрібно для golang та c lang, бо достатньо дивні мови, за відео дякую
@USER_____Oo_____USER
@USER_____Oo_____USER 11 ай бұрын
Давай ещё по питону))
@alexandertattoo_spb1958
@alexandertattoo_spb1958 11 ай бұрын
супер! сейчас, благодаря видео начал путь в изучение Java, но в универе писали на c++, но видосик по c# я сохраню! так как хочу в будущем понимать хотя бы базово java, с#, и с++
@MERKYRIY-fn5rw
@MERKYRIY-fn5rw 11 ай бұрын
Не розпиляйся, вибери щось одне і гати)))😂
@alexandertattoo_spb1958
@alexandertattoo_spb1958 11 ай бұрын
@@MERKYRIY-fn5rw тоже верно)
@dolbolesya
@dolbolesya 11 ай бұрын
1. Принципы ООП Наследование - у нас есть базовый класс (например юзер) и от него наследуются ещё два класс,, например админ и модератор. Они имеют такие же свойства как юзер, но в отличии от него, могут иметь свои поля/методы Инкапсуляция - инструмент защиты класса от маслят Полиморфизм - создание одноименных методов см разным функционалом Абстракция - почти тот же класс, но уже не с полным функционалом. 2. Object 3. Нет 4. Rest
@dolbolesya
@dolbolesya 11 ай бұрын
Rest - это взаимодействие с апи через юзер интерфейс
@dolbolesya
@dolbolesya 11 ай бұрын
5. Понимаю для чего нужен эксепшен, но нормально объяснить не могу. Видимо плохо это понимаю😅
@dolbolesya
@dolbolesya 11 ай бұрын
Сборщик имеет 3 поколения, у третьего есть ещё loh и poh Используется он сам и удаляет из памяти то, уже не будет использоваться. Запускается он раз в тик или когда уже нет памяти
@dolbolesya
@dolbolesya 11 ай бұрын
7. Тут лёгко, даже перечисливать не буду
@pixeji220
@pixeji220 11 ай бұрын
По С++ пожалуйста
@ImyaNety
@ImyaNety 2 ай бұрын
А куда он смотрит?
@m_maksym
@m_maksym 11 ай бұрын
з того що не прозвучало, були питання: SOLID, різниця stack-heap, паттерни, ну і ще всяке так з наскоку не згадаю. Але багато народу просто беруть і задають питання з ваших відосів типу "що знати джуну" і кривляться коли називаю паттерн сінглтон і повторюють Ваші слова майже дослівно)) тож піду погуглю трохи бо вже позабував дещо.
@Moonrider7777
@Moonrider7777 11 ай бұрын
SOLID, різниця stack-heap, паттерни, -це ,мабуть, стосуєтся будь якої мови строгої типизації, не тільки С#
@ktotakoi6037
@ktotakoi6037 11 ай бұрын
До диез не поддерживает множественное наследование - кричат с каждого утюга. А как же интерфейсы?
@marcotaliente4785
@marcotaliente4785 11 ай бұрын
Go: Что должен знать C# Middle разработчик
@maxhumenn
@maxhumenn 11 ай бұрын
А python было🤔
@folium5725
@folium5725 11 ай бұрын
Здравствуйте Сергей! Спасибо за видео) Ждём такое же видео, но уже по языку HTML🤡, уже очень долго учу этот язык программирования🤡🤡
@artemmm095
@artemmm095 11 ай бұрын
К чему этот подкол? К тому что разработчик определяется не по языку, а по специализации?
@olegkovalenko2797
@olegkovalenko2797 11 ай бұрын
HTML не мова програмування
@mykola_kanyuk
@mykola_kanyuk 11 ай бұрын
chatGPT видав ще 5-й принцип ООП - composition
@alexandrapersukova
@alexandrapersukova 11 ай бұрын
от вже чатик)
@Moonrider7777
@Moonrider7777 11 ай бұрын
Це генератор маячні по суті
@user-hg5sw1tj4u
@user-hg5sw1tj4u 11 ай бұрын
что-то очень просто звучит, по сравнению с объявлениеми о работе (с требованиями какие там написаны)
@garkin4339
@garkin4339 11 ай бұрын
Дякую. А чому нема посила на відео "Що треба знати Java розробнику-початківцю"? Про всяк випадок - ось воно kzbin.info/www/bejne/mH3dpod_fL2Jgsk .
@alexandrapersukova
@alexandrapersukova 11 ай бұрын
додала в опис)
@kirillkhlopkoff252
@kirillkhlopkoff252 10 ай бұрын
Всем привет, ищу фронта, возможно с razor, для совместного пет-проекта высокого уровня.
@neymor4766
@neymor4766 4 ай бұрын
Js норм?
@sergeymatpoc
@sergeymatpoc 11 ай бұрын
во валит-то Немчинский... =) По теме - я не отвечу ни на один, хотя я и не программист. Буду думать что с этим делать дальше =).
@azalothe3150
@azalothe3150 11 ай бұрын
Я, думал это что-то типо урока, что идти учить, а тут, пускай и схожий посыл, но иной:/
@maxyablochkin4313
@maxyablochkin4313 11 ай бұрын
Круто, а теперь про мобильную разработку
@vova9962
@vova9962 11 ай бұрын
Давайте таке ж про react, php, node...
Что должен знать и уметь Junior Java Developer?
13:51
Sergey Nemchinskiy
Рет қаралды 80 М.
Что выбрать в 2022 году: C# или Python?
28:27
Sergey Nemchinskiy
Рет қаралды 224 М.
Парковка Пошла Не По Плану 😨
00:12
Глеб Рандалайнен
Рет қаралды 13 МЛН
ТОМАТНЫЙ ДОЖДЬ #shorts
00:28
Паша Осадчий
Рет қаралды 11 МЛН
Как бы я учил программирование сейчас?
7:17
Саша Лукин
Рет қаралды 345 М.
что делает junior frontend разработчик?
12:52
Вопросы собеседования на C# программиста
21:04
Програмысли Влог
Рет қаралды 60 М.
Как учиться программированию эффективно?
21:35
Какой язык программирования выбрать в 2024?
50:06