Я, который перечитал десятки статей и пару книг, что бы вкурить что такое ассинхронность и как устроены метод-заглушка и стэйт машина и не могу устроиться, а чел делает приватным конструктор и почти взяли на работу😢
К сожалению, чтение статей и книг не гарантирует трудоустройства, это правда. Ну и да, с приватным конструктором тут промашка небольшая вышла, но у кого их не бывает? ;-)
56:48 небольшое уточнение, строки хоть и ссылочный тип, но оператор "==" для строк переопределен: public static bool operator == (String a, String b) { return String.Equals(a, b); } т.е. сравнение будет через Equals и в случае когда ссылки не равны, результат сравнения будет определен по данным в строках. Чтобы сравнить строки только через ссылки, используется static метод Object.ReferenceEquals(string1, string2);
Насчёт сравнения строк не совсем верно. "==" не сравнивает ссылки объектов, это компилируется в метод string.op_Equality(str1, str2), который сравнивает по содержанию. А ссылки сравнивает ReferenceEquals(s1, s2) (это уже компилируется в (object) str1 == (object) str2).
Интересно, что в исходниках языка (referencesource.microsoft.com/#mscorlib/system/string.cs,705) указано, что == вызывает Equals напрямую и ни слова про string.op_Equality(str1, str2). Подскажите, пожалуйста, где вы это смотрели? А то, про что я говорил в видео можно выразить вот в этом примере: object a = 10; object b = 10; Console.WriteLine(a == b); // False Console.WriteLine(a.Equals(b)); // True
Да, действительно, я не совсем корректно написал. Перемешал разные уровни. На этапе компиляции так и остаётся ==. Это уже в IL получается string.op_Equality. Но суть всё равно остаётся, == для string сравнивает по значению. А для остальных объектов всё верно, по ссылке.
В итоге получается, что == в string внутри вызывает статический Equals, котороый сначала сравнивает по ссылке (это дает буст если сравниваются интернированные строки), а в конечном итоге (если до этого дойдет) вызывает EqualsHelper, который сравнивает по значению (посимвольно) Метод Equals, который наследуется от объекта работает почти также, как и статический Equals, который вызывается в ==.
4 года работаю разрабом. Успел поработать на с# 9 месяцев потом на котлине и джава бэк. 8 месяцев . И все остальное время на с# + ангуляр. До сих пор закрадыаются мысли что я не рыба не мясо, потому что пишу и бэк и фронт. Но посмотрев это интервю. Я прям повысил свою самооценку. :))) я давно оказывается не джун :)) если чесно хорошее видео. Скажу чесно 90 % своих знаний я получил просто анализируя чужой код еа, смотря кто как пишет на проекте так как прект большой многие задачи уже решались кем либо , и 10% гуглеж и видосики на ютубе. Так я изучил ангуряр.
Да, уже (почти) всё решено до нас. Что ещё интереснее, можно попросить нейронку, обученную на существующем коде, написать новый код и она напишет. Мгновенно и почти без косяков. Так что вполне себе хороший инструмент, чтобы пользоваться ;-)
Все встроенные структуры в C# неизменяемые. И так же в Рихтере напрямую написано, что желательно их всегда делать неизменяемыми и на примерах показано почему.(не из-за скорости как он несет точно)
Не уверен, что до конца понимаю про что вы. Если про встроенные структуры, то мы их итак не можем изменить. И в части ситуаций структуры вполне себе работают быстрее, чем классы из-за накладных расходов на указатель и боксинг/анбоксинг.
@@DotNetInterviewPreparation эм, вы прочитали мое сообщение в отрыве от контекста того, что говорилось в видео. Он говорил, что все структуры неизменяемые, я просто указал из-за чего он так подумал и перепутал. Так же он сказал, что они неизмяемые из-за скорости, я указал, что это не так и что в рихтере есть примеры почему их надо делать неизменяемыми. Я нигде тут не сравнивал скорость структур и классов
Люблю собесы по дотнету смотреть на Ютубе. Но тут как по мне задачи были очень простые. Я даже не знаю какие тогда требования к трейни. Создать класс?😅
В теории можно попробовать подставить ИИ бота. Если хотите попробовать, то подключайтесь в телеграмм канал (ссылка в описании канала) и напишите мне, поэкспериментируем 😉
Вот он написал интернет-магазин на АСП. Это веб-сайт или веб-приложение? Если веб-приложение, то он и реактивность какую-то реализовал на блейзере или реакте?
Учусь неспеша, пробовал на собесы. В итоге не тяну по требованиям, в итоге пилю соло проекты. Может просто соло разрабом имеет тоже место быть? А то все ролики про работу, работу 😁
Тоже, конечно, вариант. Однако, как показывает практика, в большинстве случаев работа в команде приносит больше денег и удовольствия. Хотя в команде можно и над опенсорс проектами работать, как у нас на курсах ;-)
Вам именно причина нужна? Или хотели бы увидеть как это могло бы быть реализовано? Если второе, то можете прислать как бы вы это реализовали и я дам вам обратную связь 😉
@@DotNetInterviewPreparation Я просто не знаю как это реалезовать, есть идеи, но программа раздуется в моём случае, мне интересно как было бы правильно )
@@DotNetInterviewPreparation он же вроде просто процедуру там сделал? А надо функцию ,чтобы передать название книги, автора, год и по сформированной строке уже понять какая книга была прочитана, чтобы пометить. Другой вариант ,как понимаю, использовать this, не уверен, просто прочитал про него только сегодня в книге, пока учу язык. Но по идее изнутри класса можно обратиться и тогда именно функция не нужна.
Серьезно? Как работает сборка мусора? Junior? ее и синьор не каждый расскажет, это такой тупой вопрос с учетом того что в 90% девелопер не будет реализовывать свой диспоуз и тем более форсить сборку
На один и тот же вопрос можно ответить по-разному. От джунов, естественно, никто глубоких познаний не ждёт, однако, хотя бы примерное представление о том, как работает память в C# должно быть.
@@DotNetInterviewPreparation Почему?Зачем? Для каких процессов это нужно джуну? Это просто "модный" и тупой вопрос, и все, а обосновать можно все что угодно
Вот представьте себе найм человека на позицию инструктора в тир. Кого бы взяли на работу: того, кто хотя бы базово понимает как устроено оружие или того, кто считает, что это "модный" и тупой вопрос? Стреляет же "как-то само". А то, что если не думать про память ("работает же как-то само") и программа потом отожрёт всю доступную память, зависнет сама и повесит вместе с собой весь сервер, это уже джуна волновать не должно, так получается?
@@yuryermolov13 False, объекты же разные получатся. Если бы строка b1 изначально была "ааа", то тогда было бы True, так как строка была бы интернирована и всего одна, хотя ссылки на неё было бы две. А к чему вопрос?
Верный путь к разработчику, это очень хорошая база, по шарпу обязательно прочитать рихтера, не обязательно всю книгу. И пилить много много кода на гитхаб, придумать свой проект он должен быть сложным и шаг за шагом спотыкаясь решая те или иные задачи его реализовывать, каждый день желательно писать и тогда где-то через год с готовым проектом, а может и не одним идити на собесы. И да английский очень важен про него нес тоит забывать.
@user-zk6uw1bj8v, да, похоже, что bit.ly не работает у части интернет провайдеров. Вот полная ссылка: docs.google.com/forms/d/e/1FAIpQLSeKBD-KaerXvzruUjQr2zZB--ogSjDtMRnx4K0QYapEoOXt5Q/viewform?usp=sf_link
@@ТатьянаЛаптева-е1д, рекомендую посмотреть интервью с Ахматом, который из руководителя стал джуниор разработчиком. Возможно, канал будет полезен не только сыну ;-)
Я, который перечитал десятки статей и пару книг, что бы вкурить что такое ассинхронность и как устроены метод-заглушка и стэйт машина и не могу устроиться, а чел делает приватным конструктор и почти взяли на работу😢
К сожалению, чтение статей и книг не гарантирует трудоустройства, это правда. Ну и да, с приватным конструктором тут промашка небольшая вышла, но у кого их не бывает? ;-)
PublicationTear - прямо опечатка по Фрейду😂
Ха ха) Какой вы замечательный человек - всё замечаете 😉
56:48 небольшое уточнение, строки хоть и ссылочный тип, но оператор "==" для строк переопределен:
public static bool operator == (String a, String b) {
return String.Equals(a, b);
}
т.е. сравнение будет через Equals и в случае когда ссылки не равны, результат сравнения будет определен по данным в строках.
Чтобы сравнить строки только через ссылки, используется static метод Object.ReferenceEquals(string1, string2);
Отличное дополнение, спасибо 👍
Насчёт сравнения строк не совсем верно. "==" не сравнивает ссылки объектов, это компилируется в метод string.op_Equality(str1, str2), который сравнивает по содержанию. А ссылки сравнивает ReferenceEquals(s1, s2) (это уже компилируется в (object) str1 == (object) str2).
Интересно, что в исходниках языка (referencesource.microsoft.com/#mscorlib/system/string.cs,705) указано, что == вызывает Equals напрямую и ни слова про string.op_Equality(str1, str2). Подскажите, пожалуйста, где вы это смотрели?
А то, про что я говорил в видео можно выразить вот в этом примере:
object a = 10;
object b = 10;
Console.WriteLine(a == b); // False
Console.WriteLine(a.Equals(b)); // True
Да, действительно, я не совсем корректно написал. Перемешал разные уровни. На этапе компиляции так и остаётся ==. Это уже в IL получается string.op_Equality. Но суть всё равно остаётся, == для string сравнивает по значению. А для остальных объектов всё верно, по ссылке.
В итоге получается, что == в string внутри вызывает статический Equals, котороый сначала сравнивает по ссылке (это дает буст если сравниваются интернированные строки), а в конечном итоге (если до этого дойдет) вызывает EqualsHelper, который сравнивает по значению (посимвольно)
Метод Equals, который наследуется от объекта работает почти также, как и статический Equals, который вызывается в ==.
Молодцы ребята, сделали свой канал и помогают советами , рассказывают и передают свой опыт в работе по программированию.
Спасибо большое за похвалу 🌷
Хорошее собеседование, но неплохо было бы еще спросить про бд и orm, ну и мб про какие-нибудь солидные принципы))
Спасибо большое, в одном из следующих видео как раз будет вопрос про DI ;-)
@@DotNetInterviewPreparation ждем! ждем! ждем!))
А оно уже появилось. Вот здесь на 13 минуте можете посмотреть 😉
ruclips.net/video/DjWqlyyP4pc/видео.html
4 года работаю разрабом. Успел поработать на с# 9 месяцев потом на котлине и джава бэк. 8 месяцев . И все остальное время на с# + ангуляр. До сих пор закрадыаются мысли что я не рыба не мясо, потому что пишу и бэк и фронт. Но посмотрев это интервю. Я прям повысил свою самооценку. :))) я давно оказывается не джун :)) если чесно хорошее видео. Скажу чесно 90 % своих знаний я получил просто анализируя чужой код еа, смотря кто как пишет на проекте так как прект большой многие задачи уже решались кем либо , и 10% гуглеж и видосики на ютубе. Так я изучил ангуряр.
Да, уже (почти) всё решено до нас. Что ещё интереснее, можно попросить нейронку, обученную на существующем коде, написать новый код и она напишет. Мгновенно и почти без косяков. Так что вполне себе хороший инструмент, чтобы пользоваться ;-)
Как-то долго возился с такой простенькой программкой.
У всех свой путь. Как говориться, "всегда есть азиат, который делает это лучше тебя". Давайте жить дружно :-)
Серьёзный мастер решил пособеседоваться. Брать не глядя!
Приходите тоже 😉
Все встроенные структуры в C# неизменяемые. И так же в Рихтере напрямую написано, что желательно их всегда делать неизменяемыми и на примерах показано почему.(не из-за скорости как он несет точно)
Не уверен, что до конца понимаю про что вы. Если про встроенные структуры, то мы их итак не можем изменить. И в части ситуаций структуры вполне себе работают быстрее, чем классы из-за накладных расходов на указатель и боксинг/анбоксинг.
@@DotNetInterviewPreparation эм, вы прочитали мое сообщение в отрыве от контекста того, что говорилось в видео. Он говорил, что все структуры неизменяемые, я просто указал из-за чего он так подумал и перепутал. Так же он сказал, что они неизмяемые из-за скорости, я указал, что это не так и что в рихтере есть примеры почему их надо делать неизменяемыми. Я нигде тут не сравнивал скорость структур и классов
@@whisper399 теперь понял, спасибо большое за уточнение 👍
Люблю собесы по дотнету смотреть на Ютубе. Но тут как по мне задачи были очень простые. Я даже не знаю какие тогда требования к трейни. Создать класс?😅
Простые и сложные - субъективные суждения. Но, в целом, соглашусь, что это не многочасовое собеседование, где из тебя всю душу вынимают))
Ссылка для участия в тренировочных собеседованиях: dotnet-interview-preparation.com/mock-interview-youtube
Спасибо за труды. Ссылка не работает
Попробуйте полный вариант ссылки: dotnet-interview-preparation.com/mock-interview-youtube
@@DotNetInterviewPreparation видео изображение обязательное условие интервью) Я бы тоже хотел пройти, только без камер)
В теории можно попробовать подставить ИИ бота. Если хотите попробовать, то подключайтесь в телеграмм канал (ссылка в описании канала) и напишите мне, поэкспериментируем 😉
Вот он написал интернет-магазин на АСП. Это веб-сайт или веб-приложение? Если веб-приложение, то он и реактивность какую-то реализовал на блейзере или реакте?
Это было веб-апи приложение, 1:15 . Думаю, что фронтовой части не было.
+
Зачем??? Зачем спрашивать про сборщик мусора?? Тем более на позицию джуна
Чтобы человек писал код, который не генерирует OutOfMemoryException при складывании 2+2.
@@DotNetInterviewPreparation часто сталкивались с OutOfMemoryException? Это ж надо постараться
Учусь неспеша, пробовал на собесы. В итоге не тяну по требованиям, в итоге пилю соло проекты. Может просто соло разрабом имеет тоже место быть? А то все ролики про работу, работу 😁
Тоже, конечно, вариант. Однако, как показывает практика, в большинстве случаев работа в команде приносит больше денег и удовольствия. Хотя в команде можно и над опенсорс проектами работать, как у нас на курсах ;-)
Алексей, обратная связь на высоте!
Спасибо большое за похвалу 👍
А "прочитано" почему пропустили, не поработали с "MarkAsRead"
Вам именно причина нужна? Или хотели бы увидеть как это могло бы быть реализовано? Если второе, то можете прислать как бы вы это реализовали и я дам вам обратную связь 😉
@@DotNetInterviewPreparation Я просто не знаю как это реалезовать, есть идеи, но программа раздуется в моём случае, мне интересно как было бы правильно )
Боюсь, что без написания дополнительного кода (раздутия программы) здесь никак, да.
@@DotNetInterviewPreparation Понял, спасибо
@@DotNetInterviewPreparation он же вроде просто процедуру там сделал? А надо функцию ,чтобы передать название книги, автора, год и по сформированной строке уже понять какая книга была прочитана, чтобы пометить. Другой вариант ,как понимаю, использовать this, не уверен, просто прочитал про него только сегодня в книге, пока учу язык. Но по идее изнутри класса можно обратиться и тогда именно функция не нужна.
Серьезно? Как работает сборка мусора? Junior? ее и синьор не каждый расскажет, это такой тупой вопрос с учетом того что в 90% девелопер не будет реализовывать свой диспоуз и тем более форсить сборку
На один и тот же вопрос можно ответить по-разному. От джунов, естественно, никто глубоких познаний не ждёт, однако, хотя бы примерное представление о том, как работает память в C# должно быть.
@@DotNetInterviewPreparation Почему?Зачем? Для каких процессов это нужно джуну?
Это просто "модный" и тупой вопрос, и все, а обосновать можно все что угодно
Вот представьте себе найм человека на позицию инструктора в тир. Кого бы взяли на работу: того, кто хотя бы базово понимает как устроено оружие или того, кто считает, что это "модный" и тупой вопрос? Стреляет же "как-то само". А то, что если не думать про память ("работает же как-то само") и программа потом отожрёт всю доступную память, зависнет сама и повесит вместе с собой весь сервер, это уже джуна волновать не должно, так получается?
Разве внутри класса стринг метод сравнения уже не переопеределен, и он не сравнивает именно значения строк?
Вы абсолютно правы, переопределен: referencesource.microsoft.com/#mscorlib/system/string.cs,705
А вы это к чему?)
@@DotNetInterviewPreparation На 56:56 я видимо упустил суть, и решил, что строки сравниваются именно по ссылке.
@@TinzZz94 , да, вы правы, чего-то я погорячился там)) Спасибо, что заметили 👍
@@DotNetInterviewPreparation Что по вашему вернет вот такой код
string a1 = "aaa";
string b1 = "aa";
b1 += "a";
bool c1 = (object)a1 == (object)b1;
Console.WriteLine(c1);
@@yuryermolov13 False, объекты же разные получатся. Если бы строка b1 изначально была "ааа", то тогда было бы True, так как строка была бы интернирована и всего одна, хотя ссылки на неё было бы две. А к чему вопрос?
Верный путь к разработчику, это очень хорошая база, по шарпу обязательно прочитать рихтера, не обязательно всю книгу. И пилить много много кода на гитхаб, придумать свой проект он должен быть сложным и шаг за шагом спотыкаясь решая те или иные задачи его реализовывать, каждый день желательно писать и тогда где-то через год с готовым проектом, а может и не одним идити на собесы. И да английский очень важен про него нес тоит забывать.
Спасибо за комментарий 👍
Где найти ментора?
Здравствуйте, что вы понимаете под ментором?
@@DotNetInterviewPreparation человека который может помочь в подготовке к интервью) раскроет слабые стороны, даст советы)
Организовал форму для поиска Ментора bit.ly/find-csharp-mentor ;-)
и тут не работает ссылка)
@@DotNetInterviewPreparation
@user-zk6uw1bj8v, да, похоже, что bit.ly не работает у части интернет провайдеров. Вот полная ссылка: docs.google.com/forms/d/e/1FAIpQLSeKBD-KaerXvzruUjQr2zZB--ogSjDtMRnx4K0QYapEoOXt5Q/viewform?usp=sf_link
Спасибо за интервью. Очень понравилась ваше позитивное отношение и общая подача материала. Скажите можно ли тоже записаться на интервью?
Здравствуйте, да, можно по ссылке dotnet-interview-preparation.com/mock-interview-youtube. Ближайшее будет 22.11.2023 в 20:00 по Москве
Хочу сказать сыну, что есть такой канал.
@@ТатьянаЛаптева-е1д, рекомендую посмотреть интервью с Ахматом, который из руководителя стал джуниор разработчиком. Возможно, канал будет полезен не только сыну ;-)