Как пройти СОБЕСЕДОВАНИЕ на C# & .Net РАЗРАБОТЧИКА? (2)

Поделиться
HTML-код
  • Опубликовано: 31 окт 2024

Комментарии • 240

  • @benjaminBTN
    @benjaminBTN Год назад +267

    Ну парень неплохо на вопросы отвечает, остался главный вопрос, чтобы взять его на джуна - есть ли у него 15 лет коммерческого опыта?

    • @JinOptimist
      @JinOptimist Год назад +10

      А можно в коммерческий опыт сложить опыт работы программиста и преподавателя? Если да, то с большим запасом хватит :D

    • @Tera-h7e
      @Tera-h7e 8 месяцев назад

      ​@@JinOptimistОчень понравилось видео, большой лайк! Но хотелось бы услышать немного больше об override методах. Дело в том, что помимо виртуальных методов есть и абстрактные, хотелось бы узнать, каковы их различия и в каких случаях использовать тот, или иной тип метода. Так же интересно узнать, зачем использовать модификатор sealed для класса? (да, я знаю, что в видео не было о них сказано, мне интересно услышать ваше мнение)

    • @CHRNBRY
      @CHRNBRY 7 месяцев назад

      @@Tera-h7e по сути всё просто. Если метод абстракнтый, то он не содержит в себе никакой реализации и ты обязан реализовать его в классе-наследнике через override (как и в случае с интерфейсом), а если виртуальный, то ты просто наследуешь его реализацию, но, если потребуется, можешь его переопределить внутри класса-наследника и этот метод внутри наследника будет считаться приоритетным, в случае, описаном в этом видео на 14:00
      Модификатор sealed же запрещает переопределение метода. Пример: Есть класс Person с виртуальным методом SayHello, от него наследуется класс User, который переопределяет этот метод через override, и следующим указываем модификатор sealed, что будет значить следующее - если какой-либо класс наследуется от класса User, он не сможет переопределить метод SayHello, но, так как этот метод был виртуальном в классе Person, то предпочитаемым, в таком случае, будет именно метод класса User. Как-то так, а в целом, более толково и подробно можно почитать здесь:
      metanit.com/sharp/tutorial/3.19.php

    • @forthegod
      @forthegod 2 месяца назад +1

      эх да.... еще когда на джуна устраиваешься ща любят поспрашивать про бизнес процессы....чисто чтоб удостовериться что уже есть опыт работы в компании =)

  • @Бот5329-и5г
    @Бот5329-и5г Год назад +94

    У Паши без сомнений преподавательский талант. Так хорошо и просто получается обьяснить сложные темы.

    • @teachmeskills
      @teachmeskills  Год назад +1

      вне всякого сомнения. полностью согласны)

    • @JinOptimist
      @JinOptimist Год назад +6

      Настоящее испытание "рассказать просто о сложном" ещё впереди, но я безусловно буду стараться )))

    • @Бот5329-и5г
      @Бот5329-и5г Год назад +3

      @@JinOptimist Паша ты просто молодец. Удачи тебе и счастья в жизни)

  • @DF-ov1zm
    @DF-ov1zm Год назад +33

    dynamic - это не попытка сломать строгую типизацию, это необходимый инструмент, которым не просто можно, а нужно пользоваться тогда, когда вы из c# пытаетесь взаимодействовать с объектами, которые не принадлежат инфраструктуре C# (внешние по отношению к языку) и пришли к вам в код из динамически типизированной парадигмы. Например, когда вы из C# пытаетесь взаимодействовать со структурой DOM из Js или пользуетесь Python рантаймом из шарпа (да, такой вполне себе возможно, см. IronPython). Когда то взаимодействие между разными системами в винде происходило только через интерфейсы COM объектов, которые существовали задолго до C# и были полностью динамическими, что доставляло довольно много проблем там, где казалось бы никаких проблем быть не должно, ведь и то и другое разрабатывает одна и таже контора. В целом, без dynamic было очень не просто с динамическими структурами, приходилось изобретать дикие костыли с рефлекшеном, что сложно с точки зрения кода и медленно с точки зрения рантайма. Сейчас, конечно, такое уже реже встречается, потому что и COM уже не так актуален и есть TypeScript, с которым из шарпа можно работать нативно, ведь оба строготипизированные.. да и необходимость пользоваться питоновскими или другими рантаймами и их классами из шарпа - довольно специфическая история. Но и сейчас динамические структуры встречаются, например json с точки зрения C# - вполне себе динамически типизированный, если не десериализован в какой то конкретный тип.. и вы можете десериализовать его в dynamic и и работать с ним как с динамической структурой, без необходимости описывать заранее в классе. Для быстрого прототипирования - очень крутая штука, для продакшена, конечно, так лучше не делать) Без dynamic все это было бы намнооооого геморойнее.

  • @ИгровойканалАлександра-о9с

    Меня так часто подозревали сеньором, но не брали на джуна)

    • @TheMrGlobus
      @TheMrGlobus Год назад +4

      К сожалению, та же херня :(

  • @qimbe7441
    @qimbe7441 Год назад +50

    Очень хотелось бы увидеть подобный ролик, но с уклоном в web разработку на c#. Обкашлять все тонкости с ASP и EF. Думаю очень многим было бы интересно посмотреть.
    Всё таки с одним только знанием языка и ООП далеко не уехать на собесе. Но видео всё-равно - огонь!!!🔥🔥🔥

    • @ei2292
      @ei2292 Год назад

      А по математике что то спрашивают - логику, теорвер, матстатистику и т.д. ?

    • @danjilov3965
      @danjilov3965 Год назад

      @@ei2292дают полностью исписанную тетрадь, но с небольшим местом на полях и просят доказать ВТФ(Великую Теорему Ферма), не прибегая к методам эллиптических кривых

    • @spectre4708
      @spectre4708 Год назад

      @@ei2292 смотря куда идешь

    • @bohdanvoroniak649
      @bohdanvoroniak649 7 месяцев назад

      ​@@ei2292нет

    • @haxnted
      @haxnted 2 месяца назад

      ​@@ei2292спрашивают, если ты выбрал направление машинное обучение, bigdata

  • @ilyha1801
    @ilyha1801 Год назад +45

    То чувство, когда по мнению Павла "сеньорский вопрс" про DI container, задают на каждом собеседовании джуна. Говорю не от балды, а прошел около 10 собесов и на каждом спрашивали про внедрение зависимостей, время жизни и что от чего не желательно ставить в зависимость (привет чистая архитектура). А вообще у Паши дар приподносить информацию, вроде всё что он говорил тут я знаю, но после просмотра многие вещи лучше устаканились! Жду 3 выпуск😅

    • @teachmeskills
      @teachmeskills  Год назад +6

      Стоит задуматься и сделать!) спасибо

    • @JinOptimist
      @JinOptimist Год назад +10

      Вопросы про DI сильно отличаются по глубине ожидаемого ответа.
      Для джуна достаточно знать, что DI есть. Вот тут регистрирует, вот тут запрашиваем.
      А вот архитектурные вопросы, например, о возможности ограничения доступа на уровне DI, это уже совсем не для джуна вопрос.
      PS Приятно знать, что эта работа кому-то приносит пользу. Буду и дальше стараться ))

    • @DimaBriquez
      @DimaBriquez Год назад

      @@JinOptimistУ моего друга на стажировке спрашивали про время жизни. И в чем проблема когда в компонент с большим временем жизни попадает компонент с меньшим временем жизни.

    • @gengerlol
      @gengerlol Год назад

      ​@@DimaBriquezда ладно, только хотел об этом написать)
      Тоже на стажировку проходил, и тоже спрашивали, что будет если в скоупе транзиент, и наоборот. И по архитектуре тоже спрашивали...
      Не прошел, наверное мидла искали на стажёра)

    • @АнтонФролов-о1с
      @АнтонФролов-о1с Год назад +1

      ​@@gengerlolблин, как вы вообще попадаете на собеседования, у меня за последнюю неделю 5 отказов при том, что резюме далеко не пустое(много пет проектов), но без коммерческого опыта пока только нахер иду

  • @lizavetalitvinava4264
    @lizavetalitvinava4264 10 месяцев назад +10

    Очень хочется курс от Паши для Middle-Senior уровня. Про преподавательский дар это факт

    • @teachmeskills
      @teachmeskills  10 месяцев назад

      Все со временем. Мб, и сделаем)

    • @konstantink2396
      @konstantink2396 Месяц назад

      @@teachmeskills Вчера наткнулся на ваш канал. Паша максимально приятный человек. Какой-то курс будет? Я бы даже купил чтобы освежить память по .NET

  • @Юрчик-л8у
    @Юрчик-л8у Год назад +7

    Емое ,целый час пролетел как мгновенье .Так интересно слушать ,и все понятно почти сразу .Идеально

  • @ilyha1801
    @ilyha1801 Год назад +17

    Первый ролик смотрел несколько раз! Очень рад второму выпуску, спасибо, очень познавательно!

  • @АртемийКонь
    @АртемийКонь Год назад +10

    У него преподавательский талант. Хоть бери и конспектируй, много нового узнал. С удовольствием бы посмотрел 3ью серию)

    • @JinOptimist
      @JinOptimist Год назад +1

      Спасибо. Рад стараться ))

  • @ZuraevD
    @ZuraevD Год назад +3

    Ахах, он так артистично объясняет. Надеюсь в будущем буду также говорить на собеседованиях

  • @Євгеній-щ7ж
    @Євгеній-щ7ж Год назад +3

    Благодарю за ценный материал! Пару минут послушать Пашу по конкретному вопросу = потратить около часа на прочитывание различных статей и не факт, что будет так же понятно))

    • @teachmeskills
      @teachmeskills  Год назад +1

      Спасибо и вам большое) рады быть полезными)

  • @Alex_Noizzzz
    @Alex_Noizzzz Год назад +6

    Паша вообще молодец)) всегда нравится слушать именно его) все грамотно и доступно)) благодаря Паше я решил выбрать для себя C# как основной язык программирования, несмотря на то, что склонялся больше в сторону Java и конечено IDE от JetBrains.

    • @teachmeskills
      @teachmeskills  Год назад +1

      Мы полностью согласен) спасибо и вам за просмотр. И надеемся, что выбором довольны)

    • @Alex_Noizzzz
      @Alex_Noizzzz Год назад +1

      @@teachmeskills ну C# похож на JAVA вот только до сих пор не привыкну к Visual Studio) как по мне IntelliJ удобнее но уверен что это дело привычки))) спасибо за видео))почаще Пашу приглашайте)))

    • @teachmeskills
      @teachmeskills  Год назад

      @@Alex_Noizzzz сделаем! Спасибо! Вам удачи в учебе)

    • @DF-ov1zm
      @DF-ov1zm Год назад +1

      ​@@Alex_Noizzzzесли вам idea больше нравится, то можете использовать Rider от той же конторы, это таже самая idea ток для c#.

    • @kennedyspace2547
      @kennedyspace2547 Год назад +1

      ​@@Alex_NoizzzzНикогда не использую VS для разработки. Rider куда приятнее

  • @ДмитрийБойко-г8ю
    @ДмитрийБойко-г8ю Год назад +6

    Выпускай больше таких видео по C#, особенно с Пашей

  • @akiroqw
    @akiroqw Год назад +5

    Так интересно его смотреть, приятный человек:)

    • @teachmeskills
      @teachmeskills  Год назад

      это да)

    • @JinOptimist
      @JinOptimist Год назад +2

      Вы меня прямо застесняли )))
      Но всё равно, спасибо за добрые слова

  • @clutchmeisteryo9831
    @clutchmeisteryo9831 Год назад +3

    Нуу, честно говоря лучше я не видел. Паша огонь.

    • @teachmeskills
      @teachmeskills  Год назад

      Согласны) спасибо большое)

  • @nikole4479
    @nikole4479 Год назад +2

    Очень интересно и очень полезно! Я не фанатка изучения сухой теории, но спикера увлекательно слушать

    • @JinOptimist
      @JinOptimist Год назад

      Рад что вам понравилось :)

  • @МихайлоДвалі
    @МихайлоДвалі Год назад +1

    Фантастика! Сложные темы, но быстро и простым языком. Так держать!

  • @magiccreature7225
    @magiccreature7225 Год назад +4

    Спасибо большое за первую и вторую части видео! Сегодня проходила собеседование, вопросы и их разбор очень помогли)

    • @victoriash6047
      @victoriash6047 10 месяцев назад

      Прошла?

    • @magiccreature7225
      @magiccreature7225 10 месяцев назад +1

      @@victoriash6047 да)

    • @ds-vs
      @ds-vs 9 месяцев назад

      @@magiccreature7225 Привет, собес на джуниор позицию? Долгий был поиск работы?

    • @magiccreature7225
      @magiccreature7225 9 месяцев назад

      @@ds-vs привет, на позицию стажёра, поиск относительно долгий)

  • @goldgold594
    @goldgold594 Год назад +5

    Большое спасибо за выпуск!
    Ооочень многие моменты прояснил для себя! Жду 3 часть ❤️

    • @teachmeskills
      @teachmeskills  Год назад

      тоже большое спасибо за просмотр) были рады стараться)

  • @СтаниславТихомиров-о7е
    @СтаниславТихомиров-о7е 9 месяцев назад +1

    Супер! Спасибо за оба выпуска! Жду новых видео с Пашей))
    Было бы круто мидл-синьор собес посмотреть😀

    • @teachmeskills
      @teachmeskills  9 месяцев назад

      спасибо большое) что-нибудь придумаем обязательно)

  • @brend_pro1820
    @brend_pro1820 Год назад +2

    Ооо, приятно видеть продолжение, повод сделать чай

  • @JinOptimist
    @JinOptimist Год назад +19

    Мне стыдно. Я в тот день просто слишком много дебажил, так что Stack я не иначе как CallStack называл. Это конечно не правильно, речь идёт именно, что о Stack.

    • @teachmeskills
      @teachmeskills  Год назад +2

      Чистосердечное признание)

    • @имяможноменять
      @имяможноменять Год назад +5

      Спустился сюда специально в поисках этого комментария

  • @bahamengame
    @bahamengame Год назад +3

    Огонь видео! Вот бы побольше таких!

  • @program_with_hidesnowy8264
    @program_with_hidesnowy8264 Год назад +3

    Чудесное и понятное объяснение!!!!

  • @samirsalimkhanov3554
    @samirsalimkhanov3554 11 месяцев назад +1

    extension methods- методы расширения.
    Этим подходом можно расширять функционал классов к исходникам которых ты не имеешь доступа.
    Например есть класс из DLL но в этом классе не хватает для твоих нужд какого-то метода, вот тут ты можешь этот класс расширить.

  • @S3424868
    @S3424868 Год назад +3

    Очень много полезной информации. Спасибо

  • @Im_like_Merphy
    @Im_like_Merphy 8 месяцев назад

    Спасибо вам за ваш труд! Узнал много новых фич, получил небольшое прозрение о DI (Dependency Injection).

    • @teachmeskills
      @teachmeskills  8 месяцев назад

      Спасибо огромное) очень приятное) 5 марта будет следующий ролик с Пашей) будет тоже интересно)

  • @anaprodan6648
    @anaprodan6648 Год назад +2

    Ребят, это реально круто! Спасибо🤩

  • @tanchikipro523
    @tanchikipro523 Год назад +1

    Большое спасибо за ролик, про DI для себя многое почерпнул)

  • @MrLikerych
    @MrLikerych Год назад +2

    Воу. Я только посмотрел первую часть и вот вторая!

  • @samirsalimkhanov3554
    @samirsalimkhanov3554 11 месяцев назад

    "Какие типы шаблонов проектирования существуют в C# " -> дан четкий ответ!

  • @DecembristITTV
    @DecembristITTV Год назад +27

    Павел, вы говорили в прошлом выпуске, что стек лежит в куче. В этом выпуске вы рисуете их отдельно. Это разные стеки все таки или стек таки не лежит в куче?

    • @amicropness
      @amicropness Год назад +4

      А вас тоже заставили лайкнуть, шантажируя вашими интимными фото?

    • @JinOptimist
      @JinOptimist Год назад +2

      1) Это тот самый стек
      2) Рисуют их отдельно, что бы наглядней донести основную мысль
      3) А вот касательно, лежит ли он в куче...
      Многие на этом моменте заострили внимания и просили поделиться первоисточником. Я уже делал пару забегов в интернет, но ни старую статью, где это я впервые увидел, ни обратного утверждения, что стек и куча создаются отдельно, я пока не нашёл.
      Так что пока ни подтвердить, ни опровергнуть я это утверждение пока не могу.
      Если кто-то найдёт, поделитесь информацией. В конце концов если я ввёл людей в заблуждение, нужно будет исправиться и извиниться в очередном видео.

    • @DF-ov1zm
      @DF-ov1zm Год назад +13

      ​@@JinOptimistэто какой то бессмысленный вопрос сам по себе, и стэк и куча - фактически просто адресные пространства в одной и той же памяти и все. Физически они ничем не отличаются, только алгоритмом работы с ними. К тому же эти адресные пространства - виртуальные и принадлежат конкретным процессам, что бы одни процессы не могли ходить в чужие кучи. А вот стэк привязан не к процессу, а к треду и треды не должны беспокоиться, что к их стэку может получить доступ другой тред из того же самого процесса. Что значит стэк в куче? Типа, пересекается ли виртуальное адресное пространство стэка с виртуальным же адресные пространством кучи? Нет, не пересекается, нахера? У них даже адресация может быть принципиально разной, стэку просто не нужна 64-битная адресация с его размерами, а вот куче нужна. А как это все физически организовано в памяти - вообще не важно, вы все равно из режима, в котором процессор запускает пользовательский код, в физическую организацию памяти никакого доступа иметь не будете. А если вы там свою ОС пишите, ну тогда наверное придётся в теме лучше разбираться)

    • @Vovnenko
      @Vovnenko Год назад +3

      Цитата "На схемах организации памяти младшие адреса обычно располагаются вни- зу (начиная с адреса 0), а старшие - вверху. Помните обсуждение стека и кучи в главе 1? По принятому соглашению, стек располагается в старших адресах, а куча - под ним. Стек растет вниз, куча - вверх." Источник Кокоса К Управление памятью в NET 2020 страница 105 и ниже на страницы 112 про windows подробне.

  • @ДианаЛевченко-ъ1н
    @ДианаЛевченко-ъ1н Год назад +1

    Спасибо большое! Четко и понятно :D

  • @Павел-к6у
    @Павел-к6у Год назад +1

    Такие же вопросы мне задавали 18 лет назад, на моём первом собеседовании на C# разработчика. ОДин в один, я как раз Рихтера прочитал, и был хорош.
    Как выбрать из толпы человека, который будет показывать лучше результат... Вот есть два кандидата - один опытный практик - П, другой лучше подготовлен к собеседованию, теоретик - Т.
    Какого человека вы себе хотите? , наверное - практика, который быстро покажет результат без багов. На большинство вопросов из видео лучше ответит Теоретик.
    Что до практики, то IDE + AI подсветит, где virtual, где using, где protected, где StringBuilder вместо string, и держать это всё в голове - у меня не хватает места.
    Также я делал много задач по оптимизации, и всё, что обсуждается в подобных собеседоавниях про выделение памяти к 99% промышленных задачах не имеет смысла, так как затыки в других местах - базы данных и всё что связано с ними, большие объёмы передаваемых данных, специфики работы конкретных библиотек, повторные вычисления, парсинг, отсутствие кэширования - это секунды, а класс или структура - это 0.000001 секунды. Ну вот правильный выбор типа коллекции может ещё что то дать, если много поисков там по ней.
    Я больше доверяю методике, когда расшаривается экран, и делается простое тестовое задание за 40 минут.
    По тому что человек делает, как уверенно, как быстро набирает код, какие варианты решения проговаривает, какие уточняющие вопросы задаёт можно гипотезы построить. А также - можно полученный код как то сравнить между собой, а не "ну тот вроде про сборщик мусора лучше ответил, давай его возьмём.".
    Но кроме знаний ещё как то надо понять, что человек в принципе порядочный, энергичный, инициативный, пытливый ум, кропотливый...
    Возможно я ошибаюсь, и сравниваю поиск сеньора с поиском джуна...
    У меня нет ответа как правильно искать специалиста, но то, что общеустоявшаяся практика собеседоаний и список вопросов, который не меняется десятилетия, не работают - для меня очевидно.

    • @JinOptimist
      @JinOptimist Год назад +2

      Я с вами по многим пунктам согласен. Но обратите внимание, что тут в основном речь про собеседования для Джуна.
      То есть для человека без опыта работы. Было бы странно, ждать от него, что он будет хороший Практик. Поэтому и дают ему теоретические вопросы, которые покажут насколько он усидчивый, целеустремленный, серьёзно ли он настроен на профессию и т.д.
      Но конечно, если такие вопросы идут на позицию Сеньора, то это странно

  • @holyghost5763
    @holyghost5763 Год назад +2

    Предлагаю в следующий выпуск добавить побольше вопросов про коллекции. Например, в чём отличие словаря от хеш-таблицы.

    • @teachmeskills
      @teachmeskills  Год назад +5

      Что-нибудь придумаем)

    • @bequiet141
      @bequiet141 Год назад +8

      Да, а еще в чем отличие множества от set, очереди от queue, стэка от stack, массива от array. Полезно было бы узнать, конечно

    • @sanchous177
      @sanchous177 Год назад

      действительно, об этом же информации нет в интернете

  • @alexsft2024
    @alexsft2024 7 месяцев назад +1

    String и StringBuilder - это одно и тоже даже на уровне методов, просто первый тип неизменяемый, а второй да. "Намерения" не собираются, а сразу выполняются как метод модификации строки.

  • @Hennadii_S
    @Hennadii_S Год назад +1

    Думаю, на последний вопрос можно было бы и правильно было бы ответить: порождающие, структурные, поведенческие. Именно такой ответ, обычно, хотят услышать на вопрос о "типах" паттернов.

    • @JinOptimist
      @JinOptimist Год назад +1

      Согласен. Это классический ответ, но обычно его ожидают услышать на вопрос: какие типы паттернов вы знаете?
      А тут вопрос был достаточно странно сформулирован про шаблоны для C#.
      Но в целом да, думаю ваш вариант будет надёжней ))

  • @netandrey
    @netandrey Год назад +1

    Ребят, сделайте пожалуйста такой же формат только на middle позицию!

    • @JinOptimist
      @JinOptimist Год назад +1

      Интересная идея. Подумаю над возможными вопросами

  • @swalowslove3968
    @swalowslove3968 9 месяцев назад +1

    Кайф, вот бы на вышке также учили :(

  • @AnTonPro
    @AnTonPro Год назад +2

    Спасибо за вторую классную часть. А будет ли выпуск(или возможно уже есть) про веб и HTTP? На собеседованиях во многих языках это необходимо и устройство того же HTTP можно отлично прочесть на мозиле, но будет ли это так же прозрачно понятно как если бы об этом рассказали такие спецы и классные преподаватели как есть у вас в школе...) Мне кажется такой материал был бы актуален для многих направлений разработчиков, так как веб это неотъемлемая часть многих, если не всех проектов) Буду благодарен в любом случае

    • @JinOptimist
      @JinOptimist Год назад +1

      Да, видео в котором в том числе будет HTTP, сейчас уже в производстве

    • @ДимаПрограммист
      @ДимаПрограммист 10 месяцев назад

      @@JinOptimistПривет. Видео про веб ещё в производстве?

  • @existanz
    @existanz Год назад +1

    Спасибо, кажется я начинаю понимать dependency injection.

  • @KirillMvS
    @KirillMvS 6 месяцев назад

    Слушаю после окончания курса Java, как будто почти все также)

    • @teachmeskills
      @teachmeskills  6 месяцев назад

      ну не зря языки похожи между собой и постоянно конкурируют)

  • @ЖораКруг-б5в
    @ЖораКруг-б5в 11 месяцев назад +1

    Сглазил немного) Хочу маленькую ремарку вставить про то, как Singleton нарушает SRP из SOLID.
    Р.Мартин «Чистая Архитектура», Глава 7, стр. 79:
    “…функция должна делать что-то одно и только одно. Этот принцип мы используем, когда делим большие функции на меньшие, то есть на более низком уровне. Но он не является одним из принципов SOLID - это не принцип единственной ответственности. Соответственно, окончательная версия принципа единственной ответственности выглядит так: Модуль должен отвечать за одного и только за одного актора.”
    Singleton скорее нарушает Шаблон High Cohesion из GRASP, К. Ларман «Применение UML 2.0 и шаблонов проектирования», Глава 17, п. 17.14, стр. 341:
    «Проблема: как обеспечить сфокусированность обязанностей объектов, их управляемость и ясность, а заодно выполнение принципа Low Coupling?»
    То есть, Singleton конечно же наделяет дополнительной обязанностью класс, но если им пользуется только один актор, то этот паттерн не нарушает SRP; но конечно уменьшается степень зацепления, т.е. в некоторой смысле противоречит High Cohesion. А вот в какой степени - это надо решать в конкретном случае, возможно при всех доступных вариантах проектирования будет лучше применить Singleton, т.к. остальные варианты расфокусируют еще больше другие модули/классы или повысят еще связность (или нарушать еще другие принципы).
    Но это все не умоляет подачу материала, спасибо дуэту!🤗

  • @oshastitko
    @oshastitko 8 месяцев назад

    Вот не соглашусь, что ref - это просто ностальгия по плюсам! Да, востребованное и эффективное применение этого ref довольно редко и специфическое, но оно имеет свою нишу. Значимые типы иногда бывают относительно большими, те же структуры с десятками полей или энумы с сотнями значений. Если в структуре, скажем, сотня значений, это будет 400 байт. При передаче без ref эта структура будет скопирована в стеке, малейший цикл вызовет сами знаете какое исключение (это даже если отбросить момент различного поведения при передаче по ссылке или по значению)
    А про DI и сеньора вообще улыбнуло. По-моему, понимание слабой связанности классов - это вообще мастхев и без её понимания вообще к программированию коммерческих продуктов допускать нельзя!

  • @АлексейБольшевич
    @АлексейБольшевич Год назад +2

    По вопросу про разницу String и StringBuilder я бы хотел услышать более развернутый ответ:
    Когда вы изменяете объект типа String, например, конкатенируете строки или выполняете другие операции над ней, создается новый объект строки, содержащий изменения. Изначальная строка остается неизменной. Это означает, что каждая операция изменения строки создает новый объект в памяти, что может вызывать накопление мусора и иметь негативное влияние на производительность при выполнении большого количества операций над строками.
    В отличие от этого, StringBuilder предоставляет изменяемую последовательность символов. Вы можете модифицировать объект StringBuilder, добавляя, удаляя или изменяя символы в нем, и сам объект будет изменяться без создания новых объектов в памяти. Это позволяет сэкономить ресурсы и повысить производительность в случаях, когда требуется множество операций изменения строки.
    Таким образом, StringBuilder обеспечивает более эффективное использование памяти и скорости выполнения операций изменения строки по сравнению с использованием операций изменения String.

    • @JinOptimist
      @JinOptimist Год назад +1

      Хороший ответ. Но если вы на собеседовании скажете, что StringBuilder лучше, у меня тут же возникнет вопрос, а почему бы не использовать только его. Зачем вообще тогда существует String если StringBuilder лучше во всём.
      Когда описываете инструмент, не забывайте уточнять для каких он задач лучше подходит, и какие у него есть минусы ;)

    • @АлексейБольшевич
      @АлексейБольшевич Год назад

      ​@@JinOptimist Верно, каждый инструмент для своей задачи.
      Спасибо за интервью, было приятно послушать простые и в тоже время грамотные ответы на не всегда простые вопросы.

  • @AlexKras92
    @AlexKras92 Год назад +1

    У Стива Джобса была водолазка, у Павла - сандали)

  • @futureres9118
    @futureres9118 6 месяцев назад

    Уже по первой теме появился вопрос (задача инженерная):
    Записан файл на 16 гб. В нем идут пачки данных с синхрой crc и т.д. Самое долгое - это считывание из файла и чем большими кусками ты будешь это делать, тем быстрее отработает программа. Но в этом случае много крупных объектов да и выделенной памяти в целом. Решение к которому склонился я - использовать шаблон IDisposable и в ручную вызывать сборщик мусора.
    Ваше мнение?
    Как бы поступили в данном случае?

  • @alexsft2024
    @alexsft2024 7 месяцев назад

    Запугал интервьюера насчет экстеншена :) А просто ответить, что это добавление (расширение) новых методов к имеющимся типам путем написания нового кода в отдельном статическом методе с параметром this и ссылкой на этот тип .

  • @alexsft2024
    @alexsft2024 7 месяцев назад

    Памяти пользователю может и хватать, но GC запуститься сам в зависимости от её заполнения. Это не зависит от самочувствия пользователя или "места не хватает". Для этого есть специальное значение процентного уровня превышения памяти с трешхолдом.

  • @Tera-h7e
    @Tera-h7e 8 месяцев назад

    Очень понравилось видео, большой лайк! Но хотелось бы услышать немного больше об override методах. Дело в том, что помимо виртуальных методов есть и абстрактные, хотелось бы узнать, каковы их различия и в каких случаях использовать тот, или иной тип метода. Так же интересно узнать, зачем использовать модификатор sealed для класса? (да, я знаю, что в видео не было о них сказано, мне интересно услышать ваше мнение)

    • @teachmeskills
      @teachmeskills  8 месяцев назад

      В комментарии постараемся ответить) спасибо большое за апрув!)

  • @dm1tryrin
    @dm1tryrin Год назад +1

    Было бы ещё круто пригласить Пашу одновременно с Unity кодером и поговорить с ними о С# в контексте гэймдев.

    • @JinOptimist
      @JinOptimist Год назад +3

      С большим удовольствием пообщался бы с кем-нибудь из геймдева.
      Как навреное любой мальчика, всегда мечтал сделаю свою игру, так что будет интересно послушать как там у них на Unity всё работает и какие особенности в работе с C# у них есть.

    • @dm1tryrin
      @dm1tryrin Год назад

      @@JinOptimist Блин, лайк! Было бы очень интересно. Тем более сам этому учусь,

  • @PersonaN1
    @PersonaN1 11 месяцев назад

    Нужен следующий выпуск, но уже с вопросами поинтереснее. а лучше и с примерами кода. я вот год не собесился и даже несложные вопросы некоторые подзабыл, чуть стыдно было)

    • @teachmeskills
      @teachmeskills  11 месяцев назад

      Попробуем) спасибо за наводку)
      А про ваш случай - это нормально)

  • @maflend2762
    @maflend2762 Год назад +2

    Ждем третью часть

  • @kokosiki40
    @kokosiki40 Год назад +1

    Насчет var - с помощью него можно создавать анонимные типы

  • @alexandr123007
    @alexandr123007 10 месяцев назад

    Классный специалист!

  • @hetagggg
    @hetagggg Год назад +1

    Босоножки реально тема

    • @JinOptimist
      @JinOptimist Год назад +3

      :D
      Это что бы проще было зайти за своего среди программистов староверов.

  • @ITway404
    @ITway404 Год назад

    Былобы неплохо иногда вставлять примеры выражений о которых идет речь, но в таком случае будет уже лекция про с#)

  • @vasilyh4588
    @vasilyh4588 10 месяцев назад

    Кроме передачи параметров по "ref"/"val" в .NET добавили "in" - это когда параметр передаётся как бы по "ref" (избегаем копирования - передаём ссылку на объект), но при этом - менять параметр внутри функции - НЕЛЬЗЯ.
    Крмое этого из спецификаторов доступа упущен "internal" который виден в пределах проекта, но не виден ВНЕ текущего проекта. А также комбинации, но там чёрт ногу сломит - проще забить и использовать стандартные public/protected/private, иногда разбавляя internal.

    • @JinOptimist
      @JinOptimist 10 месяцев назад

      В промышленном программировании ни разу не видел, что бы использовали internal.
      Хотя да, про такой модификатор, программисты обычно знаю.
      Про In большинство и не слышали вовсе. К тому же применение для такого поведения проблематично придумать. Те же record куда как более органично в проектах используют. По крайней мере в моей практике.
      Но в любом случае, спасибо за ваш комментарий. Приятно встречать коллегу, который так же радеет за качество информации )))

    • @vasilyh4588
      @vasilyh4588 10 месяцев назад

      @@JinOptimist Потому что "in" относительно недавно появился - по моему только пару версий языка назад. Я сам про него узнал в марте этого года, когда освежал знания C# для преподавания.
      internal можно использовать в EntityFramework для создания конфигураций - public для этого слишком много, а private - определённо не хватает.

  • @samirsalimkhanov3554
    @samirsalimkhanov3554 11 месяцев назад

    StringBuilder и String похожи тем что они являются классами.
    StringBuilder как видно по названию он создает строку.

  • @vladimirlogvinov3549
    @vladimirlogvinov3549 Год назад +2

    Супер!

  • @Вадим-ц9я8с
    @Вадим-ц9я8с Год назад

    Про virtual методы ...я бы хотел все таки услышать про таблицу виртуальных методов.... а не сказку как компелятор сам понимает куда ему идти ))) а так спасибо большое )))

    • @JinOptimist
      @JinOptimist Год назад

      Ну, я всегда пытался рассказывать про поведение, которое влияет на то, как мы пишем код.
      Как компилятор это делает важно знать, либо если пишите свой компилятор, либо если вы просто любите теорию.
      Поэтому такие вещи я пытаюсь опускать. Например, тоже самое касается и стринг пула. Это прикольный механизм для оптимизации от самого языка, но спрашивать про него на собеседовании с моей точки зрения странно.
      И я рад, что вам понравился ролик ))

  • @Alexsander9614
    @Alexsander9614 Год назад +1

    Мне одному стало любопытно, почему на вопрос про разницу массивов и списков речь вдруг зашла про коллекции? 😁

    • @JinOptimist
      @JinOptimist Год назад +1

      Наверное потому, что это одна предметная область.
      Когда задают вопрос о String вполне нормально если тут же всплывают String Builder, char[], large object heap
      Тоже самое и со списком. Это как слово триггер, после которого тут же хочется рассказать про коллекции, про алгоритмическую сложность, массивы и т.д.

  • @igorpak6478
    @igorpak6478 6 месяцев назад

    Оч крутой выпуск👍

  • @anastascat2770
    @anastascat2770 Год назад

    Опять буду негодовать и говорить, что структура не всегда хранится в стеке :)

  • @ValeriySherstiuk
    @ValeriySherstiuk Год назад +1

    По поводу GC. Реально задумался про то, Что изначально для него все объекты мусор, а потому он изначально помечает(маркирует), добавляет бит в SyncBlockIndex всем объектам сразу. А затем идя по стеку и корням - убитает на тех объектах, до которых добрался.
    Надо Рихтера перечитать кусочек. Почему у меня было другое понимание?

    • @JinOptimist
      @JinOptimist Год назад +1

      Рад что материал оказался полезным, даже для тех кто неплохо разбираться в вопросе :)

    • @ДмитрийКондратенко-б5ь
      @ДмитрийКондратенко-б5ь 26 дней назад

      Про поколения стопудово спросят. Потому что ведь GC не убивает сразу насколько я помню, или точнее не ищет одинаково часто в разных поколениях.

  • @Fikusiklol
    @Fikusiklol Год назад +1

    Главный момент статики в том, что она хранится в отрыве от класса, где была создана. В своем участке памяти.
    И если некий экземпляр класса перестает существовать в памяти, то статика продолжает.
    За интервью спасибо, очень доступно и понятно)

  • @alexsft2024
    @alexsft2024 7 месяцев назад

    Сейчас out переменную предварительно объявлять не нужно.

  • @НикитаЛис-о2ы
    @НикитаЛис-о2ы Год назад +1

    Ребята, я конечно понимаю что надо завлекать людей все дела. Но обьективно покажите мне работодателя который сейчас наймет с такими знаниями как вы тут показываете. Не в одну компанию даже на трайнее брать скорее всего не будут. Слишком простые базовые вопросы. Покажите мне такие вакансии и я пойду туда работать)

    • @JinOptimist
      @JinOptimist Год назад +4

      Есть необходимо, а есть достаточное.
      Вопросы которые мы тут разбираем, это необходимое для прохождение собеседования.
      Никто и не утверждает, что ответов на эти вопросы будет достаточно. Мы просто взяли самые базовые и соответственно самые частые частые вопросы и попытались из как можно детальней разъяснить.
      Можете обратить внимание, что это уже второе видео из этой тематики. Полагаю не последнее.

    • @teachmeskills
      @teachmeskills  Год назад

      @@JinOptimist не последнее)

  • @IlyaArlenka
    @IlyaArlenka 8 месяцев назад

    Очень абстрактно

    • @teachmeskills
      @teachmeskills  8 месяцев назад

      Очень непонятна «абстрактность») конкретики дайте

  • @alexsft2024
    @alexsft2024 7 месяцев назад

    Всё напутал. Параметры сортировки передаются вместе со ссылкой (или телом ф.) на функцию сортировки. А лямбда - это просто запись этого.

  • @alexsft2024
    @alexsft2024 7 месяцев назад

    Ну вот дожили, не можем указать главное отличие класса и структуры. Тут даже в джуны не возьмут :)

  • @ivka-xj7in
    @ivka-xj7in 7 месяцев назад

    если используешь ref или out получается что value type будет на куче?

  • @IQ-120
    @IQ-120 12 дней назад

    Млин, чел, вот про мусор, прям как наши люди, пока есть куда сложить мусор - вывозить не будут :)))))) !!!

  • @orhanaliyev9774
    @orhanaliyev9774 Месяц назад

    Меня 3 собеса подряд спрашивают про паралельность ,лок и гонки и прочую асинхронщину и многопоточность. Куда делись вопросы про солид и полиморфизм )

  • @ivka-xj7in
    @ivka-xj7in 7 месяцев назад

    как поместить ссылку в кол стек, чтобы объект не был удален в куче?

  • @FullAppleObzor
    @FullAppleObzor 10 месяцев назад

    Дуже круто, дякую з України!

    • @teachmeskills
      @teachmeskills  10 месяцев назад

      І вам дзякуй! Вельмі прыемна)

  • @zjloo
    @zjloo Год назад

    Вам нужно приглашать народ. И собесы им устраивать))

    • @JinOptimist
      @JinOptimist Год назад

      Ну, на своём основном месте работы, я как раз много собеседований провожу :)

    • @zjloo
      @zjloo Год назад

      ​@@JinOptimistНу это круто разумеется. Но я про то, что если была бы рубрика. В которой иногда подобие собесов на трансляции проводили.
      Было бы топ. Ну типа стрессовая ситуация, многим бы помогло :D Ну тебе в любом случае виднее))

    • @JinOptimist
      @JinOptimist Год назад

      ​@@zjloo Тут дело в том, что у каждой компании, есть свои "любимые" вопросы и она их расскрывать не хочет. Потому что важно посмотреть, как кандидат будет справляться с задачей. О чём он будет думать, столкнувшись с проблемой. Зачастую нам нужен не правильный ответ, а увидеть, как человек к нему идёт.
      Поэтому проводить полноценной собеседование мало кто будет. Скорее это будет как тут, какие-то общие вопросы, которые ты можешь и так легко нагуглить.
      Собствено поэтому, я в этих роликах и пытаюсь не просто краткие ответы давать, а рассписывать мыслительный процесс :)

    • @DocMartens1972
      @DocMartens1972 Год назад +1

      ​​​@@JinOptimistKуча разделяется на Small Object Heap (SOH) и Large Object Heap (LOH). Когда размер объекта превосходит 85кб - он отправляется в LOH. Сделано для производительности процессов взаимодействия. Исходя из этого в одной куче не может быть слишком маленьких и слишком больших объектов вместе.
      Garbage Collector анализирует корни программы. Каждый такой корень может иметь указатель (переменную типа IntPtr, которая представляет адрес) либо может иметь значение NULL. GC организует объекты в управляемой куче по поколениям в зависимости от того, как долго они существуют. Объекты, которые только что созданы, находятся в поколении 0. Если они выживают после сборки мусора, они перемещаются в поколение 1, а затем в поколение 2. Объекты в поколении 2 считаются долгоживущими и редко проверяются на наличие мусора. GC обычно собирает мусор в одном поколении за раз, начиная с поколения 0. Сборка мусора может быть вызвана автоматически, когда доступная память становится недостаточной, или принудительно с помощью методов класса System.GC.
      К тому же GC работает постоянно в фоновом режиме. Механизм оптимизации сборщика мусора определяет наилучшее время для выполнения сбора, основываясь на произведенных выделениях памяти.
      Профессионал в .NET должен знать все азы платформы.

  • @unknyver
    @unknyver Год назад

    А как же вопрос про инкапсуляцию?))

  • @alexsft2024
    @alexsft2024 7 месяцев назад

    А мидл что, может пока умолчать о самом интересном, об уровнях генерации объектов при сборке мусора? Видно, что ещё пока не разобрался... По стеку никто не лазит в поисках ссылок, они хранятся в спец. таблицах ссылок с которыми работает GC.

  • @ReimsForYou
    @ReimsForYou Год назад +2

    В случае с virtual. Может это упоминалось в ролике, но я не заметил. Я проходил тест в компанию, и там было несколько заданий с ним. Именно что меня заинтересовало, так это когда в родительском классе был virtual метод, а в дочернем(который от родителя унаследовался) вместо override было написано new virtual. Я тогда немного удивился, ибо даже не знал что так можно, и сути я тоже не понял. Единственное что я заметил, если мы в переменную с типо "A", например, пихаем инстенс "B"(тот что дочерний), то в отличии от override метод не переопределяется. Можете подсказать в чем тут нюанс и зачем так делать, или это из ряда задачек на собеседование?

    • @DF-ov1zm
      @DF-ov1zm Год назад +3

      Нюанс в том, что вы не переопределяете метод базового класса, а просто подменяете методом дочернего класса. Соответственно, на объекте с дочерним типом выполнится метод дочернего же класса, а на объекте базового типа выполнится метод базового же класса. То есть в зависимости от того, в какой тип вы один и тот же объект засунете, выполняется два разных метода. На самом деле такое вряд ли вообще где то зачем то применяется, такое просто делать не принято, это антипаттерн. Вам и иде об этом скажет, если вы new не напишите. По сути new просто означает, что вы в курсе, что вы творите какую то дичь. То, что он и в базовом и в дочернем помечен как виртуал - на результат абсолютно никак не влияет, это просто что бы вас запутать. А вот если у базового класса метод как virtual НЕ помечен, то его можно подменить с помощью new в дочернем и сделать его virtual, что все наследники от дочернего класса могли его нормально переопределить (но переопределить именно метод дочернего класса, не базового,базовый останется таким же как был, просто будет спрятан).

    • @ReimsForYou
      @ReimsForYou Год назад

      @@DF-ov1zm понял, спасибо за обьяснение👍

  • @АртакМирзоян-л3б
    @АртакМирзоян-л3б 4 месяца назад

    Сейчас нужны с зарплатой джуны со знанием сениор

    • @Saltant
      @Saltant 3 месяца назад

      Всегда так было

  • @МаратГафиатуллин-н3п
    @МаратГафиатуллин-н3п 3 месяца назад

    В unity(BDW) нету поколении, только в NET

  • @ivansusanin9448
    @ivansusanin9448 Год назад

    Лайк однозначно. Зачем джуну знать про то, как сборщик мусора работает с памятью? Это уже перебор по-моему 🙂

    • @JinOptimist
      @JinOptimist Год назад +2

      Вопросы про GC это как вопросы на общую образованность. Знать об этом для работы не обязательно, но поговорив на эту тему, можно увидеть насколько человек понимает общие принципы. Наверное по этому такие вопросы и продолжают задавать

    • @pulsar1934
      @pulsar1934 Год назад +2

      А вы почитайте требования к джунам, рынок перполнен, требования как к мидлу года 3 назад.

    • @ivansusanin9448
      @ivansusanin9448 Год назад +1

      @@JinOptimist Всё равно мне это кажется странным.. Время на собеседование ограничено, и важно понять может ли джун писать добротный код, и с какой скоростью решает поставленные задачи. Поэтому если этот вопрос не влияет на результат собеседования, то ИМХО нет смысла тратить на это время, а если влияет, то это странно 🙂.
      Кстати, Вы прекрасно обьясняете сложные вещи простыми словами, очень приятно и полезно слушать! 🔥И ведущий тоже большой молодец! 👍

    • @ivansusanin9448
      @ivansusanin9448 Год назад

      @@pulsar1934 Я бы предпочёл за это время лучше что-нибудть практическое поспрашивать. Если конкуренция большая, то я бы усиливал и углублял проверку именно практических навыков. Если бы мне как джуну начали задавать такие вопросы на собеседовании, то я бы при наличии других предложений, выбрал бы другую фирму, даже если бы на все такие вопросы ответил 🙂

    • @pulsar1934
      @pulsar1934 Год назад

      @@ivansusanin9448 А мне кажется собеседование это конечно хорошо, хотя бы на человека посмотреть, но всё что нужно знать об уровне программиста это его гит и его проекты, достаточно посмотреть его код и всё становится предельно понятным. А собес это просто трёп, который к практике не имеет ни какого отношения.

  • @alexsft2024
    @alexsft2024 7 месяцев назад

    Из стека зависшие ссылки мы не удаляем, они там удаляются сами.

  • @talisman1104
    @talisman1104 7 месяцев назад

    Что-то к третьей части интервьюер выглядит уставшим

  • @MrKingofTiger
    @MrKingofTiger 8 месяцев назад

    в геймдеве в нормальных проектах есть DI, просто тут любят писать говно и оправдывать это всем, что только можно

  • @boombbiddi7931
    @boombbiddi7931 Год назад

    а как поколения не влияют, если 0 поколения переменные быстрее уничтожаются тк находятся рядом!?

  • @УкраїнськийБіт
    @УкраїнськийБіт 9 месяцев назад

    ссылки на видео не оставили

    • @teachmeskills
      @teachmeskills  9 месяцев назад

      держите - ruclips.net/video/zQbk4hVzVyU/видео.html

  • @AndrzejBelyi
    @AndrzejBelyi Год назад

    Если бы я так отвечал на собеседовании, я бы вряд ли прошёл его :/
    много деталей опущено.

    • @JinOptimist
      @JinOptimist Год назад

      Собеседование это диалог. Если интервьюеру нужно будет больше деталей, он задаст уточняющие вопросы или попросит рассказать подробней.
      Плюс вопросы которые мы тут поднимаем это скорее начало собеседования. Более сложные и специфичные вопросы мы тут не поднимали.
      Так что не волнуйтесь, если так вы будете отвечать в начале собеседования это вам не навредит. Главное что бы вы могли выдать больше деталей если это потребуется

  • @anastascat2770
    @anastascat2770 Год назад

    Статические методы и свойства потокобезопасны, поэтому достаточно статики для реализации синглтона. Локи никакие не нужны

    • @vasiliylu8054
      @vasiliylu8054 Год назад +1

      Точно-точно?

    • @JinOptimist
      @JinOptimist Год назад

      Поддержу комментатора выше.
      А вы уверены что любой Статичный метод и тем более свойство потокобезопасны? Может вы что-то конкретное имеете ввиду, потому что пока ваше утверждение выглядит, мягко говоря ложным

  • @DimaBriquez
    @DimaBriquez Год назад +1

    Почему такие легкие вопросы. Где вопросы про REST, GRPc, Microservices, MessageBroker, SOLID, тестирование NUnit, REST vs GRPc, Паттерны обычно спрашивают каждого вида и по несколько, Dapper vs EF, зачем нужна Reflection. И это не все.
    В общем как по мне сейчас от джуна требуют куда больше знаний технологий ибо знаниями самого языка не особо кого то удивишь. Вернее сейчас это считается пост фактум базой.

    • @JinOptimist
      @JinOptimist Год назад +1

      Как вы правильно заметить, начинаем мы с базовых вопрос о C#. То что как вы заметили этими знаниями никого не удивишь, не значит, что об этом не спрашивают или что этого знать не нужно.
      В тоже время, спасибо за список вопросов. Думаю если будет следующее видео, обязательно поговорим там о NUnit, ORM, Reflection, REST и много другом )))

  • @WhisperII
    @WhisperII Год назад

    Но про DI только практика, по теории ничего не сказано, про Inversion of Control ни слова.

  • @АлексейПетров-х6ф8ц
    @АлексейПетров-х6ф8ц 11 месяцев назад

    Жалко не раскрыли кто такой Паша Львов. Хотя бы вкратце кто он?

    • @teachmeskills
      @teachmeskills  11 месяцев назад

      У нас с его участием до этого выходили ролики. Когда приглашаем гостя в первый раз, просим пройтись по его биографии) вот ссылочка - ruclips.net/video/4ZykAmPUtrw/видео.html

    • @АлексейПетров-х6ф8ц
      @АлексейПетров-х6ф8ц 11 месяцев назад

      @@teachmeskills спасибо

  • @IGODX
    @IGODX Год назад

    Как пройти собеседование на C#, когда в стране всего 16 вакансий?) И то половина из них, это middle/senior.

    • @pulsar1934
      @pulsar1934 Год назад

      Не в той стране ищите)

    • @JinOptimist
      @JinOptimist Год назад +3

      Из ваших слов следует, что прямо сейчас есть как минимум 8 (половина от 16) вакансий, где требуются Джуны.
      Так что ответ просто, ходить на собеседования и учиться ;)

  • @dmitryp2121
    @dmitryp2121 10 месяцев назад

    ппц, я оказывается все это знаю, много лет, как избавится от чувства самозванца? много проектов веду с коммерческим опытом, но нет уверенности в себе чтобы попросить больше ЗП ((

    • @7xAlpha
      @7xAlpha 9 месяцев назад

      Возможно стоит попробоватся на вакансию где изначально предлагают больше чем есть у вас сейчас?

  • @UnknownCorey
    @UnknownCorey 8 месяцев назад +1

    Видео устарело на момент своего создания. Еще год назад на собесах это были вопросы скорее для менти, чем для джуна. Оттого смешнее слышать, что в вас подозревают сеньора.
    Закон спроса предложения сделал свое дело, сейчас средне-статистический джун с докером работает и RabbitMQ.

    • @teachmeskills
      @teachmeskills  8 месяцев назад

      А можно столбиком эти вопросы и список компаний, а то звучит так, что мы в вакууме живем, а у вас актуалочка на руках)

  • @easyjet4299
    @easyjet4299 Год назад

    Жалко не было моего любимого вопроса из собесов про DI и DIP из SOLID.

  • @IQ-120
    @IQ-120 12 дней назад

    Не, дружище, если из стека никто не ссылается, то не важно, что в куче.... Джун был прав!!! И вообще - покажите мне место с кодом мусорщика??!! До того задрали темой мусорщика - ссылку на исходники - в студию!!! А гребные легенды и сказки рассказывайте кому угодно!!! Или это повод самому залезть, посмотреть как работает на самом деле и обосрать всех синьеров? Подобный пример есть у Мурыча - про js спецификацию... Всякую херню придумывают про приведение типов, а читаешь спецификацию - там все по другому описано...

  • @ooohyeahooohyeah
    @ooohyeahooohyeah Год назад +1

    Ref для экономии памяти имхо

    • @JinOptimist
      @JinOptimist Год назад +2

      А ещё если по ref передать reference type то можно проинициализировать новый объект, ссылка на который будет подложена в старую переменную )))
      Но всё же думаю, это не основная причина использования ref

    • @ooohyeahooohyeah
      @ooohyeahooohyeah Год назад

      @@JinOptimist спасибо за видео вы очень уверенно отвечаете на вопросы. Мне бы так на собесах

    • @SomeOne-rv2bk
      @SomeOne-rv2bk Год назад

      ​@@JinOptimistещё можно делать return ref