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

  Переглядів 87,678

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 Рік тому
Регистрация на C#/.NET менторинг тут - go.foxminded.ua/41qgnZy
@user-wr6tk5up1m
@user-wr6tk5up1m Рік тому
Как зарегистироваться если я из Беларуси?
@Serhii-TV
@Serhii-TV Рік тому
Здравствуйте Сергей, сделайте пожалуйста видео с Иваном Головачом. Интересно где он сейчас.
@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 9 місяців тому
Основные принципы ООП (объектно-ориентированного программирования) включают: Инкапсуляция: скрытие внутренних данных и методов объекта от прямого доступа, обеспечение доступа к ним через публичные интерфейсы. Наследование: возможность создания новых классов на основе существующих, наследование их свойств и методов. Полиморфизм: использование одного интерфейса для представления различных типов объектов, позволяет использовать объекты разных классов через общий интерфейс. Абстракция: выделение общих характеристик объектов и создание абстрактных классов или интерфейсов для их представления. В .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 9 місяців тому
Отличия между абстрактным классом и интерфейсом: Абстрактный класс может содержать как реализацию методов, так и абстрактные методы, в то время как интерфейс может содержать только сигнатуры методов и свойств без их реализации. Класс может наследовать только один абстрактный класс, но реализовывать несколько интерфейсов. Абстрактный класс может иметь поля и конструкторы, а интерфейс может содержать только сигнатуры методов и свойств. Абстрактный класс может предоставлять базовую реализацию методов, которую наследующие классы могут переопределить, в то время как интерфейс не предоставляет реализацию методов. Интерфейсы используются для определения контрактов, которые классы должны реализовывать. Они определяют сигнатуры методов, свойств и событий, но не предоставляют реализацию. Задачи, которые выполняют интерфейсы: Определение общих методов и свойств, которые должны быть реализованы классами, чтобы обеспечить единый интерфейс взаимодействия. Разделение поведения между несвязанными классами. Реализация множественного наследования через интерфейсы, поскольку класс может реализовывать несколько интерфейсов одновременно. Разница между структурой и классом: Структуры являются типами значений (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 9 місяців тому
Преимущества использования 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)
@sahibrzayev8968
@sahibrzayev8968 11 місяців тому
Благодарю Сергей !!! Надеюсь сделаете в будущем вторую часть 🔥
@slippers__
@slippers__ Рік тому
Спасибо за видео, очень интересно было бы узнать про PHP
@VladislavGnatiuk
@VladislavGnatiuk Рік тому
Привет, спасибо за видео. Сделай пожалуйста так-же по С++
@user-lg9qv5bz8b
@user-lg9qv5bz8b Рік тому
Спасибо, Сергей, огромное! Вырос как разработчик на ваших видео, 3 года - полет нормальный, перехожу на C# Backend, очень в тему для кругозора :)
@sergioramos9052
@sergioramos9052 Рік тому
Сергей, спасибо огромное за видео. Давно его ждал
@user-nb6ln5jm1g
@user-nb6ln5jm1g Рік тому
Полезная информация, спасибо большое!)
@jongaur8097
@jongaur8097 Рік тому
спасибо за видео! давай такое же по фронтенду :)
@evgenyjagushinsky6695
@evgenyjagushinsky6695 10 місяців тому
Как всегда всё понятно и достОйно рассказано, Сергей! Дай Бог здоровья тебе и твоим близким
@ShomLZ
@ShomLZ Рік тому
Отличное видео, спасибо.
@DoctorKrolic
@DoctorKrolic Рік тому
Не знаю, как там в Java, но в C# начинающие разработчики почти не пишут sql руками. "Стандартная" ORM для C# - Entity Framework Core, очень хорошо абстрагирует от sql и его диалекта для конкретной бд. Можно заджоинить 5 таблиц, особо не осознавая этого) Писать sql самому приходится только в специфических случаях, с которыми новички вряд ли сталкиваются. Это и хорошо и плохо одновременно. Поэтому, наверное, вопрос про то, что такое джоины и какие они бывают лучше, чем попросить написать sql самому, ибо человек просто растеряться может. С другой стороны, думаю, и то и другое встречается на реальных собесах
@donlinoleum831
@donlinoleum831 Рік тому
Во-во). Как я понимаю, в современном мире ведь чистым 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, а не на написание. А на собесе как раз будут долбать, мол "а напиши мне ..."
@unfeastbeats986
@unfeastbeats986 Рік тому
Спасибо за видос!
@macmyem9527
@macmyem9527 Рік тому
От 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 місяців тому
Интерфейс - это контракт, который класс должен исполнять, например опредленный набор методов с заданной сигнатурой. Абстрактный класс - базовый класс, экземпляр которого нельзя создать; может не имееть реализации части методов/свойств. Какого-то прямого отношения к реализации это в общем то не имеет
@Kriptio
@Kriptio Рік тому
Теперь мы просим точно такое же видео для nodejs и фронтэнда ,не ну а че,мы же джаваскриптизеры тоже видлсика отдельного заслуживаем (двух) :)
@sergeykolesnikov6333
@sergeykolesnikov6333 4 місяці тому
Благодарю Вас, Сергей, за Ваши видео! Очень полезно, содержательно и мотивирующе.
@user-ml6qt1kg4g
@user-ml6qt1kg4g Рік тому
Добрый день, понравилось это видео, можете сделать видео что должен знать junior QA и UX UI designer
@Infinity-ua
@Infinity-ua Рік тому
Спасибо за видео !
@user-zn8jl7go2s
@user-zn8jl7go2s 11 місяців тому
Сергей, скорее всего вам придётся выпустить ряди таких видео, по всем языкам программирования :)
@user-ik4rw9uf3l
@user-ik4rw9uf3l Рік тому
Очень ждем для Python, очень благодарен вам за ваш труд.
@user-fj4wn4ur6j
@user-fj4wn4ur6j 7 місяців тому
Спасибо за Ваш труд! Сделайте пожалуйста такое же видео по ios-разработке)
@NickOlifirovych
@NickOlifirovych 11 місяців тому
Привет, спасибо за видео. Сделайте пожалуйста так-же по Python
@ei2292
@ei2292 8 місяців тому
Посоветуйте книгу по sql для чайника под c#
@neonsun6162
@neonsun6162 Рік тому
давно не был на собеседование, но что-то вопросы странные. Это скорей вопросы на экзамен, чем на собеседование. Достаточно знание общих принципов, всё остальное можно подтянуть по мере надобности. Разработка сегодня стала слишком объемной и всё в голове не удержишь, хотя конечно если писать только в одном языке и больше ничем не заниматься, то наверное стоит знать как можно больше об этом языке. А в C# еще много всего интересного. Сколько лет в нем пишу и все равно иногда открываю что-то новое
@mitsuro3815
@mitsuro3815 Рік тому
а вы уже Senior С# dev? Backend?
@neonsun6162
@neonsun6162 Рік тому
@@mitsuro3815 скорей Full Stack Web Developer, делаю всё что придется. Просто C# это то, с чем я работал больше всего, ну и в принципе этой мой любимый язык) Но обычно это только часть проекта и делать приходиться много чего другого, поэтому изучать полностью что-то одно, нет смысла и времени. Достаточно разобраться в том, что требуется для выполнения задачи.
@rexdraconis1703
@rexdraconis1703 11 місяців тому
Дадада, я вроде не так уж мало пишу, но каково же было удивление, когда я узнал что можно функцию в методе создавать... А вроде штука базовая должна быть.
@titanovsky
@titanovsky 4 місяці тому
Большое спасибо.
@arsen_kh_8445
@arsen_kh_8445 Рік тому
Очень интересное видео Можете, пожалуйста, сделать такое же видео, но об iOS разработке
@mishka_zlovred2224
@mishka_zlovred2224 11 місяців тому
Почти всё это есть в книге шилдта под C#, можете прочитать, она даже на русском языке есть, большая часть правда из этого может вам особо никогда и не понадобится, но ради интереса почитать можно. (:
@qrthack3233
@qrthack3233 4 місяці тому
Привет, у меня такой вопрос, коммерческого опыта нет, знаю C, Python, люблю Computer Science. Хочу в backend, выбираю между Java, C#, Golang что посоветуешь, и почему? интересно твое мнение.
@mvttofficial
@mvttofficial Рік тому
Ждем по JavaScript
@_curtman
@_curtman Рік тому
Ну хз. У меня ничего из этого на последнем собеседование не спрашивали. Вопросы больше были по технологиям типо Entity framework или Dependecy injection. Сейчас ведь недостаточно знать только язык, нужны фрэймворки.
@user-wv8xz3vi3l
@user-wv8xz3vi3l Рік тому
по поводу join. по моему опыту не надо писать сложные запросы в коде, нужно создавать или stored procedure или views и работать уже с ними со стороны бэка. и да, я как сениор сходу не смог ответить на все вопросы))
@user-dv1nc2xo2w
@user-dv1nc2xo2w Рік тому
Весело. И как тогда нам любителям вкатывать в IT. :)
@cliobro3890
@cliobro3890 Рік тому
@@user-dv1nc2xo2w А вот это уже, не их проблема...
@user-dv1nc2xo2w
@user-dv1nc2xo2w Рік тому
@@cliobro3890 это понятно. :)
@user-wv8xz3vi3l
@user-wv8xz3vi3l Рік тому
@@user-dv1nc2xo2w да не не парься. это как зуюрежка экзамена сдал и забыл.
@nerewan
@nerewan 11 місяців тому
я бы предложил тогда не разбивать логику на содержащуюся непосредственно в основной приложухе и на хранимки в субд, а перенести код хранимых процедур и вьюх в ресурсы приложения это упростит контроль версий + код будет в одном месте на текущем проекте частенько возникают сложности из-за того, что бизнес-логика вот так вот разбита на две части, намучился разбираться в хитросплетениях)
@denisbragin4264
@denisbragin4264 Рік тому
Сергей, респект😊
@fada9238
@fada9238 11 місяців тому
Единственное, чего я не знаю - это REST и вопросы по тестированию. Слегка неуверен в работе с базами данных. То есть, на словах - я осознаю в чём разница между разными видами JION'ов, но на практике - я какие запросы не писал, разницу видел лишь между INNER и OUTER. Между LEFT и RIGHT - какую тестовую базу данных не строил(вероятно это я просто не умею их проектировать), а запросы всегда были одинаковыми по возвращаемому содержанию! Разве что имели разный порядок строк, тогда как я ожидал увидеть нечто иного содержания.
@user-ey8ff2gd9p
@user-ey8ff2gd9p Рік тому
Для будущих Питонистов такое видео снимете?
@nurken2345
@nurken2345 Рік тому
Здравствуйте Сергей, можете сделать такое видео про Php. Салам из Казахстана
@johnsilver3804
@johnsilver3804 Рік тому
А wpf, asp, blazor, angular, entity можна пропустить, і одразу роботу шукати?
@tor19v
@tor19v Рік тому
Интересно было бы глянуть такой же видос для анрдоида, видео получилось информативное
@vasa7572
@vasa7572 Рік тому
Давно подписан на этот канал. Интересно. Серёж, а не мог бы ты сделать обзор от программиста принципов тестирования. Их семь. Они описывают ошибки в разработке, но как-то не очень по-разработчески. Какие-то идеи мне ясны, какие-то рассказчики не могут толком объяснить "а чё так?" В общем, рассказывают как QA2QA, а хочется лучше понять, что происходит. С уважением, QAE
@johnsilver3804
@johnsilver3804 Рік тому
Entity framework, вот как мы с базами работаем)))
@dianashakirova2614
@dianashakirova2614 Рік тому
Жду базу для Джава-Скриптизера!!!
@sergei1412
@sergei1412 Рік тому
Ребята, может кто-то посоветовать с чего лучше начать основы безопасности??
@nomugop8017
@nomugop8017 11 місяців тому
а чистой архитектуры к них нет ? или solid для всех един ?
@aokijikuzan2131
@aokijikuzan2131 Рік тому
Если джун учил сразу EF Core, то рабоать с базой он в полне сможет, и не только join, а даже select не напишет
@notdeadyet6512
@notdeadyet6512 11 місяців тому
Действительно если знать это все можно искать работу? Мне кажется этого мало
@Inclydi
@Inclydi 11 місяців тому
Супер відео ) дякую за інфу хоч і я не junior фле було декілька що не зразу відповів би )
@user-oz6xm9zp9d
@user-oz6xm9zp9d 3 місяці тому
блин, меня по фронтовым вопросам как джуна помню так е..ли на собесах. ts js react вопросов по 15-20 плюс задача и практика. на бэке чё реально такие вопросики?
@avusar2702
@avusar2702 10 місяців тому
Не понимаю, зачем C# разработчику знать типы джоинов, если Entity Framework уже за него делает эти самые джоины. Если знаете, скажите, с какой целью вообще писать голый SQL запрос в коде, а не использовать уже придуманные инструменты?
@user-tv4ju7ps2u
@user-tv4ju7ps2u Рік тому
Здравствуйте, Сергей я попробовал пройти по вашей ссылке на обучение C# у меня отобразилось окно о запрете владельцем . Подскажите вы не обучаете пользователь с РФ или это ютб запрет выдаёт? Заранее спасибо за ответ .
@Infinity-ua
@Infinity-ua Рік тому
Нет, конечно не обучают.
@travoltik
@travoltik 2 місяці тому
Каким образом они будут обучать студентов из РФ, если они не смогут за обучение заплатить? Банки РФ изолированы от всего мира, ты никому не сможешь перевести денег, кроме как Беларуси через МИР и то не везде.
@user-st8yq5rw8x
@user-st8yq5rw8x Рік тому
Что по python ?
@user-fu5ff6zq7m
@user-fu5ff6zq7m Рік тому
гарне відео хоч і вчусь не на С# розробника)) було б круто пройтись по всім ТОП 10 мовам програмування)) дякую за відео))
@user-ff3lk3ft1f
@user-ff3lk3ft1f Рік тому
Можно на c++
@alexandertattoo_spb1958
@alexandertattoo_spb1958 Рік тому
супер! сейчас, благодаря видео начал путь в изучение Java, но в универе писали на c++, но видосик по c# я сохраню! так как хочу в будущем понимать хотя бы базово java, с#, и с++
@MERKYRIY-fn5rw
@MERKYRIY-fn5rw Рік тому
Не розпиляйся, вибери щось одне і гати)))😂
@alexandertattoo_spb1958
@alexandertattoo_spb1958 Рік тому
@@MERKYRIY-fn5rw тоже верно)
@user-lf6bl7jf3p
@user-lf6bl7jf3p Рік тому
На каком языке можно писать и сайты и моб приложения и дескотные приложения?
@user-kd9fl9yj9v
@user-kd9fl9yj9v 11 місяців тому
Как раз таки c# себя и позиционирует, насколько я знаю, как язык-универсал. Хоть игры в unity на нём пишутся
@user-ls6tj4nz5c
@user-ls6tj4nz5c Рік тому
Сергей, давайте про пхп
@user-qc7ds5pg5x
@user-qc7ds5pg5x Рік тому
А какие обязательные требования знания фреймворка, чтобы искать работу?
@user-wv8xz3vi3l
@user-wv8xz3vi3l Рік тому
учи angular
@WorldAwesomeShorts
@WorldAwesomeShorts Рік тому
​​@@user-wv8xz3vi3l фронт и js не интересны
@Anna-td4cq
@Anna-td4cq Рік тому
а можно для питона?
@user-hw1zc7vi2w
@user-hw1zc7vi2w 8 місяців тому
Ти ж моє сонечко❤❤❤. Більше б таких людей
@yari_la
@yari_la 23 дні тому
А чё делать, если меня даже до собеса не берут, постоянно тестовые задания какие-то
@yehortverytinov5478
@yehortverytinov5478 Рік тому
Ждем по Golang
@rexdraconis1703
@rexdraconis1703 11 місяців тому
Как то легко... Я что зря асп нет и ангуляр учил, со всякими библиотеками по типу SignalR... Короче надо будет реально работу начать искать, обнадеживающие видео.
@austinpowers8850
@austinpowers8850 11 місяців тому
А можно такое же для Python?... Очень просим ) (я и жена )))))
@goldgold594
@goldgold594 Рік тому
Знаю все из перечисленного в видео на хорошем уровне, работу не могу найти даже Trainee уже пол года. Привет из россиюшки
@mitsuro3815
@mitsuro3815 Рік тому
А какие вопросы ещё задавали на собесах? Или имеется ввиду, что вакансий нет?
@errantwanderer
@errantwanderer 8 місяців тому
Вопрос про sql странный, аля: "Вы точно разработчик C#, если не знаете JOIN", ну как бэ, я могу быть разработчиком мобильных приложений на Unity, там используется C#, но не используется sql, wtf dude
@user-bk5nn6sc8y
@user-bk5nn6sc8y Рік тому
Інформативне відео, дякую за вашу працю! Зробіть, будь ласка, такий же формат по С++ 🙂
@stark1902
@stark1902 Рік тому
Досмотрел до 1.50. не смог удержаться чтобы не написать - бегите как от огня от тех всех кто абстракцию называет мало того что именно принципом ООП, а одним из основных принципов ООП! Особенно бегите оттуда когда интервьювер на техническом собеседовании утверждает, что основных принципов ООП 4, и четвертый это абстракция. Запомните. Как было три основных принципа ООП, так и будет всегда. И по меньше читайте индусов)
@yabarm
@yabarm Рік тому
Давай по питону такое же видео))
@fficktiff
@fficktiff Рік тому
Куда-то стримы пропали(
@m_maksym
@m_maksym Рік тому
з того що не прозвучало, були питання: SOLID, різниця stack-heap, паттерни, ну і ще всяке так з наскоку не згадаю. Але багато народу просто беруть і задають питання з ваших відосів типу "що знати джуну" і кривляться коли називаю паттерн сінглтон і повторюють Ваші слова майже дослівно)) тож піду погуглю трохи бо вже позабував дещо.
@Moonrider7777
@Moonrider7777 Рік тому
SOLID, різниця stack-heap, паттерни, -це ,мабуть, стосуєтся будь якої мови строгої типизації, не тільки С#
@muratfaizmf
@muratfaizmf Рік тому
gracias
@folium5725
@folium5725 Рік тому
Здравствуйте Сергей! Спасибо за видео) Ждём такое же видео, но уже по языку HTML🤡, уже очень долго учу этот язык программирования🤡🤡
@artemmm095
@artemmm095 Рік тому
К чему этот подкол? К тому что разработчик определяется не по языку, а по специализации?
@olegkovalenko2797
@olegkovalenko2797 Рік тому
HTML не мова програмування
@motivator3d
@motivator3d Рік тому
Приятного просмотра😊
@user-wr2mp9gm1w
@user-wr2mp9gm1w 11 місяців тому
А по Scala сделайте)
@newm_2002
@newm_2002 Рік тому
Давай про Go junior
@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. Тут лёгко, даже перечисливать не буду
@EarthCitizen124
@EarthCitizen124 Рік тому
Про JOIN-ы и работу с базой в C# ... знать надо 100% Но Вы, Сергей, в Java вообще ORM используете?)) Некоторые фигачат простые CRUD сервисы даже не зная как Entity Framework запрос транслирует и во что)) И прекрасно живут... и получают свои ЗПшки на галлерах))
@user-fb6of7uy4w
@user-fb6of7uy4w Рік тому
Здравствуйте)
@deprussian
@deprussian Рік тому
Теперь давайте о Golang'е
@Dima-fr8cw
@Dima-fr8cw Рік тому
Можно такое же видео но о Rust?)
@user-skrivosein
@user-skrivosein Рік тому
Null reference называется. Но можно и null pointer
@tututu6425
@tututu6425 3 місяці тому
А как же умение пользоваться GitHub
@vatican8153
@vatican8153 11 місяців тому
А можно под Rust?))
@user-yx9fo3er9r
@user-yx9fo3er9r Рік тому
Вопрос немного не по теме, но думаю здесь есть люди, которые разбираются: почему в игровых движках в основном используют С++, а на Юнити С#? Это из-за открытого исходного кода или есть ещё какие-то причины?
@riyazvagapov1449
@riyazvagapov1449 Рік тому
По-моему юнити это часть дотнет, поэтому само собой на ней МС сделала упор на Шарп. Имхо
@RodshotOfficial
@RodshotOfficial Рік тому
C++ быстрее C#
@Moonrider7777
@Moonrider7777 Рік тому
Потому что у производителей движков есть свобода выбора) Если бы я был разработчиком игр, я бы вообще выбрал CryEngine. Там скрипты на Lua и искусственный интеллект , а не только С++, P.S. Последняя версия CryEngine V поддерживает скрипты на С# )
@exactly4234
@exactly4234 5 місяців тому
В C++ можно напрямую глубже работать с памятью, а также делать вставки из С и Ассемблера, шарп рядом не стоял по возможностям и требованиям к знаниям.
@yuryermolov13
@yuryermolov13 2 місяці тому
По поводу JOIN не согласен. Oracle Database пишут SQL без JOIN используют плюсики (+)
@hairyrope3890
@hairyrope3890 11 місяців тому
Сделайте пожалуйста по Python!!
@USER_____Oo_____USER
@USER_____Oo_____USER Рік тому
Давай ещё по питону))
@Nik-gfg
@Nik-gfg Рік тому
Цікаво що потрібно для golang та c lang, бо достатньо дивні мови, за відео дякую
@siberiancoder9327
@siberiancoder9327 11 місяців тому
С ооп скользкая тема. Можно ударится в софистику вспомнить про посылку сообщений и подвести к тому, что все популярные языки (C++ java) не ооп, так как они вызывают методы и используют переменные другого класса напрямую.
@pixeji220
@pixeji220 11 місяців тому
По С++ пожалуйста
@mykola_kanyuk
@mykola_kanyuk Рік тому
chatGPT видав ще 5-й принцип ООП - composition
@alexandrapersukova
@alexandrapersukova Рік тому
от вже чатик)
@Moonrider7777
@Moonrider7777 Рік тому
Це генератор маячні по суті
@sergeymatpoc
@sergeymatpoc Рік тому
во валит-то Немчинский... =) По теме - я не отвечу ни на один, хотя я и не программист. Буду думать что с этим делать дальше =).
@garkin4339
@garkin4339 Рік тому
Дякую. А чому нема посила на відео "Що треба знати Java розробнику-початківцю"? Про всяк випадок - ось воно ukposts.info/have/v-deo/mnyrqYqAfo6HrZs.html .
@alexandrapersukova
@alexandrapersukova Рік тому
додала в опис)
@vova9962
@vova9962 Рік тому
Давайте таке ж про react, php, node...
@ImyaNety
@ImyaNety 2 місяці тому
А куда он смотрит?
@marcotaliente4785
@marcotaliente4785 Рік тому
Go: Что должен знать C# Middle разработчик
@maxhumenn
@maxhumenn 11 місяців тому
А python было🤔
@user-tm7dm8to7e
@user-tm7dm8to7e Рік тому
Вопросы про sql join? Мы же Orm юзаем
@user-dc2qk9hh3x
@user-dc2qk9hh3x 11 місяців тому
я думал что требования для junior разработчика будет куда больше и сложнее
@pintokawai2278
@pintokawai2278 11 місяців тому
Зависит от вакансии скорее .
@nikolaifedorov685
@nikolaifedorov685 11 місяців тому
rest вообще на знаю что такое. 10 лет работы!
@kirillkhlopkoff252
@kirillkhlopkoff252 10 місяців тому
Всем привет, ищу фронта, возможно с razor, для совместного пет-проекта высокого уровня.
@neymor4766
@neymor4766 4 місяці тому
Js норм?
@maxyablochkin4313
@maxyablochkin4313 Рік тому
Круто, а теперь про мобильную разработку
Что выбрать в 2022 году: C# или Python?
28:27
Sergey Nemchinskiy
Переглядів 224 тис.
Пескоструйный АППАРАТ! #shorts
01:00
Гараж 54
Переглядів 3,2 млн
Godzilla Attacks Brawl Stars!!!
00:39
Brawl Stars
Переглядів 9 млн
didn't want to let me in #tiktok
00:20
Анастасия Тарасова
Переглядів 3 млн
Что должен знать и уметь Junior Java Developer?
13:51
Sergey Nemchinskiy
Переглядів 80 тис.
Вопросы собеседования на C# программиста
21:04
Програмысли Влог
Переглядів 60 тис.
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
Клуб дедов-программистов
Переглядів 986 тис.
Какой язык программирования выбрать в 2024?
50:06