Готовься к Этим 4 Вопросам на Собеседовании Junior С# Developer

Поділитися
Вставка
  • Опубліковано 20 сер 2024
  • Собеседование на C# Junior Developer - это не так просто. Джуниор C Sharp - первая ступень работы программиста в данной сфере. Чтобы точно пройти собеседование и стать джуном си шарп - посмотри это видео и подпишись на мой канал! Меня зовут Роман Сакутин, и я помогу тебе познать мир GameDev, а так же легко пройти публичное и техническое собеседование.
    Подготовка к собеседованию (бесплатный курс) - lk.ijunior.ru/...
    БОРИС (Бесплатное Обучение Разработке Игр) - ijunior.ru/bori...
    Обучение с нуля с гарантией трудоустройства - ijunior.ru/csha...
    МОЯ КНИГА - csharpbook.saku...
    ГРУППА КАНАЛА - holymonkey
    ШКОЛА ПРОГРАММИРОВАНИЯ ЯЮНИОР - holymon...
    Я В VK - rsakutin
    INSTA - / sakutinhuytin
    ЧАТ В ТЕЛЕГЕ - t.me/csharp_fa...

КОМЕНТАРІ • 188

  • @rsakutin
    @rsakutin  4 роки тому +28

    На каких вопросах валились вы?

    • @skainet_
      @skainet_ 4 роки тому +74

      Что такое c#?

    • @dubovikovpv
      @dubovikovpv 4 роки тому +25

      Что вы знаете о Garbage collector'e ?
      Когда вызывается статический конструктор?
      В чем преимущество StringBuilder перед String ?
      Что такое Linq?
      Вы на плюсах писали ?

    • @vicooller
      @vicooller 4 роки тому +2

      Delegate и Enum после компиляции?

    • @AlexeyKamchatkin
      @AlexeyKamchatkin 4 роки тому

      Dippps а в чем проблема? Есть книги как писать 3д движки , возможно вы просто книги не читаете

    • @TheOmokage
      @TheOmokage 4 роки тому +7

      @@dubovikovpv Поздновато отвечаю, но смотри. Стат конструктор перед обычным вызывается, потом инициализатор, потом обычный конструктор. Стринг билдер изменяет существующую память под строку, в то время как стринг анмютабл тип и его конкатенация в обычных условиях приводит к выделению новой памяти, даже елси только одну букву добавляем.

  • @cherepyiiika
    @cherepyiiika 4 роки тому +238

    Роман, мы вам перезвоним!

    • @PoixoN
      @PoixoN 3 роки тому +2

      Ви что терасофт?

    • @Mr.Epsilion
      @Mr.Epsilion 2 роки тому

      @@PoixoN нет, просто чернокожий...

    • @Tat_rat
      @Tat_rat 2 роки тому +2

      Так и не перезвонили

  • @denisk8342
    @denisk8342 4 роки тому +189

    Мое личное мнение.
    Задавать такие вопросы на собеседовании это признак того, что работодатель не понимает для чего ему сотрудник. Дело в том, что компания обычно занимается вполне определенным видом работ и эти работы не абстрактны, как показанные задачи. Поэтому стоит спрашивать именно по часто встречающимся задачам для будущего сотрудника, а не просто какие-то интересные вопросы из справочника.

    • @vivaleute5141
      @vivaleute5141 4 роки тому +13

      Да проблема ещё и в том, что вопросики так себе. Особенно 4-й, это тупость. Это работает потому что у строки, например, оператор == перегружен и работает как equals(), где помимо сравнения ссылок сравнивается ещё и контент. Просто тупой вопрос как по мне, можно просто создать класс подобного типа с перегруженных оператором сравнения.

    • @JohnDoe-tm1rv
      @JohnDoe-tm1rv 4 роки тому +1

      @@vivaleute5141 Я проверил - оно работает с ненулевыми строками.

    • @vivaleute5141
      @vivaleute5141 4 роки тому

      @@JohnDoe-tm1rv Ну молодец, что проверил, хотя, если ты программист, то как бы знать должен. Так а к чему это было сказано?

    • @JohnDoe-tm1rv
      @JohnDoe-tm1rv 4 роки тому

      @@vivaleute5141 Забудь, оно таки не работает

    • @vivaleute5141
      @vivaleute5141 4 роки тому

      @@JohnDoe-tm1rv Не работает у тебя в голове разве что

  • @elsee8865
    @elsee8865 4 роки тому +63

    Ну а в реальном мире, джуны в геймдеве никому не нужны. Никто не будет вам предлагать сделать тестовые задания. И если у вас уже много самодельных работ, вам повезёт, если их хотябы посмотрят. Так что будьте к этому готовы. Не пессимист, просто говорю как есть

    • @LionbI4
      @LionbI4 4 роки тому +5

      для Unity - нужны. Junior-ы занимаются версткой интерфейсов и созданием вьюшек под них.

    • @dkvChannel
      @dkvChannel 2 роки тому +3

      Вывод - пилю игру сам в соло) Главное что бы для игрока всё работало, как я там буду три яруса говна мазать игроку не интересно. Если игра получит аудиторию у меня появятся деньги и время на переписывание кода уже в тиме с более менее толковым кодером. Нахер студии с их 100500 три в ряд и донатными помойками!

  • @zachemny
    @zachemny 4 роки тому +60

    По второму вопросу объяснение в корне неправильное. Если бы был боксинг, то структуры через using вообще нельзя бы было освобождать - ведь был бы тот же боксинг. Но никакого боксинга в реальности тут не будет, т.к. в данном случае будет выполнен constrained вызов Dispose(). А вот копирование структуры выполнено действительно будет, но не на выходе из блока using, а на входе в него. Просто using так работает - копирует то, что ему подано на вход извне.
    По 4-му - тоже. Дело не в интернировании строк (этот механизм по-умолчанию всегда отключен), что легко проверить, передав конструктору строки непустой массив. А в том, что генерируется ссылка на String.Empty, кот. единственная на домен.
    В общем, читайте первоисточники, а не ориентируйтесь на ролики в ютюбе.

    • @nooftube2541
      @nooftube2541 3 роки тому

      Главное не ориентироваться на такие комментарии...
      Про using я половину не понял. Но почему это using копирует? Это не так. Если заменить структуру на класс в примере все заработает. using ничего не освобождает - учит мат часть. Кстати с 8го шарпа пример таки заработает, ибо там убрали каст к интерфейсу и теперь using просто вызовет Dispose() даже если IDisposable не указан.
      Стринги всегда по умолчанию интернируются, если что. Не уверен про сам пример, но интернирование работает только с литералами. Если включить интернирование, то следующий код будет верен:
      string a = "a";
      string b = "a";
      a != b
      Но вообще пример из ролика подозрительный конечно.

    • @zachemny
      @zachemny 3 роки тому +5

      @@nooftube2541 Зачем наезжаете на чужие комментарии, если в своём пишете чушь?
      1) using копирует на входе, чтобы убедиться в этом, достаточно взглянуть на IL, даже лезть в спецификации не нужно. То что в случае класса работает - так то копируется ссылка. Удивительное, как говорится, рядом.
      2) Не надо придираться к словам, пытаясь казаться умнее. Dispose в нормальной жизни как раз освобождает ресурсы - для этого и предназначен.
      3) Про C# 8.0 - опять чушь пишите. using работает через duck typing только для ref struct. Это особый случай, в бизнес коде встречающийся крайне редко. Очевидно, вы что-то слышали, но только левым ухом или поняли не до конца.
      4) Стринги никогда по умолчанию не интернируются, с чего вы это взяли? Прежде чем писать свой коммент, я это кстати проверил, как и все др. свои утверждения. Что же касается вашего кода, то едва ли вы его проверяли, ведь он даже не компилируется, и разбираться, что вы там имели в виду, я не собираюсь. Интернирование литералов - это вообще тут не подходит, где вы в примере 4 видели литералы?

    • @nooftube2541
      @nooftube2541 3 роки тому

      @@zachemny
      1. ошибся - да. Логично что копирует
      2. есть множество способов использования Dispose помимо освобождения ресурсов. Но то что сам Dispose ничего не освобождает - особенно сам объект - это самое важно в понимании Dispose. Но если грубо, то конечно можно так сказать... но в любом случае это освобождение ресурсов, а не объекта.
      3. Действительно, у меня компилится только для ref struct, что странно, потому что по спеке - должно работать для всего: docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/using#detailed-design
      4. литералы всегд аинтернируются по дефолту: docs.microsoft.com/en-us/dotnet/api/system.string.intern?view=netcore-3.1 но можно отключить. "Обычные" (то есть собранные) стринги не интернируются, и это никак нельзя включить "по-дефолту", только явным вызовом String.Intern(). Но в примере действительно не в этом дело. Странные дела со string.Empty, не знал что оно так хитро работает.
      А причем мой тут код, и откуда вы знаете компилируется он или нет?

    • @zachemny
      @zachemny 3 роки тому +3

      @@nooftube2541
      1) Ага, уже вежливее, это хорошо.
      2) Если у вас в коде Dispose будет часто заниматься чем-то, кроме освобождения ресурсов, то это будет вызывать закономерные WTF у ваших коллег на код-ревью или при поддержке. Так что лучше ИМХО всё-таки придерживаться общепринятых норм. А так-то конечно: конструктор может заниматься освобождением ресурсов, а Dispose() - их выделением, компилятору всё равно, что вы в них напишите.
      3) Там по вашей ссылке какая-то вода:
      The language will add the notion of a disposable pattern. Это вообще в будущем времени.
      ref struct: These types can't implement interfaces today and hence can't participate in using statements. А это уже не актуально.
      Так что ИМО лучше читать пропозалы, там как-то более чётко описывается, что было/будет имплементировано.
      4) Когда-то давным-давно можно было включить автоинтернирование для всех строк, но видимо потом эту фишку выпилили. Возможно никому не пригодилась. Впрочем могу и ошибаться, никогда этим не пользовался.
      4.1) Со String.Empty ничего хитрого: referencesource.microsoft.com/#mscorlib/system/string.cs,1577 Вот код конструктора строки из массива char, предельно простой.
      5) Ваш код:
      string a = "a";
      string b = "a";
      a != b
      Что такое a != b ?
      Чтобы обсуждать код надо писать законченные фрагменты. К тому-же 2 одинаковые строки конечно будут равны между собой, будь там интернирование, или нет его. Проверять интернирование надо так:
      var isInterned = String.IsInterned(a);
      а на единый общий инстанс так:
      var eq = ReferenceEquals(a, b);
      А ваш код ни к селу ни к городу. Вот и создаётся ощущение (правильное), что у человека каша в голове.

    • @sergs2919
      @sergs2919 3 роки тому

      using Dispose() тут просто обнуляет ссылку на кучу... так как в using передается копия ссылки

  • @ljlj
    @ljlj 3 роки тому +63

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

    • @sergs2919
      @sergs2919 3 роки тому +6

      ну я бы не сказал вопросы в принципе простые

    • @dkvChannel
      @dkvChannel 2 роки тому

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

    • @kadencode5347
      @kadencode5347 2 роки тому

      @@dkvChannel так это легкие вопросы

    • @dkvChannel
      @dkvChannel 2 роки тому +1

      @@kadencode5347 , ну я рад за тебя...

    • @kadencode5347
      @kadencode5347 2 роки тому

      @@dkvChannel ну смотри, первое задание например совсем понятное. Перегрузку ты должен был проходить в изучении функций. Класс B наследуется от класса A.
      A - его родитель, и в соответствии B наследует все его методы. Но поскольку метод Foo перегружается в классе B вывод очевиден)

  • @mimineko3100
    @mimineko3100 4 роки тому +47

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

    • @apdgslfhsodbna
      @apdgslfhsodbna 4 роки тому +28

      Просто приходишь к начальнику, кладёшь ноги на стол и говоришь:«С этого дня я работаю у вас»

    • @user-zb2ed1is1v
      @user-zb2ed1is1v Рік тому +3

      желательно чтоб соискателю было не больше 20ти лет а опыта работы не мнее 10ти.

  • @trollleibus4689
    @trollleibus4689 7 днів тому +1

    8:00 нет, object может каститься только к реальному типу, который был до упаковки. т.е. даже если у тебя изначально был short, ты не сможешь скастовать его до int.

  • @dapdizzy
    @dapdizzy 4 роки тому +3

    На вход дан массив цифр (2-9). Каждой цифре может соответствовать несколько символов (как латинские символы на кнопках старых сотовых телефонов).
    По заданной последовательности цифр вывести все возможные комбинации символов получаемые заменой каждой цифры одним из символов соответствующим цифре.
    Пример: на входе - 233
    2 - abc
    3 - def
    Вывод:
    add
    ade
    adf
    aed
    aee
    aef
    afd
    afe
    aff
    ...
    cff

  • @brix7267
    @brix7267 3 роки тому +4

    C# знаю на уровне синтаксиса, но в целом стаж 10+ лет с другими языками. Как ни странно, но ответил на все правильно, хотя соображения почему отличались от ответа автора

  • @KapSLifeCHaNNeL
    @KapSLifeCHaNNeL 3 роки тому +6

    Только начинаю изучать программирование, из видео нифига не понял. Вернусь Джуниором через пол года :D

    • @belozerov_mi
      @belozerov_mi 3 роки тому

      5 месяцев прошло, как дела?

    • @user-_AMG_
      @user-_AMG_ 3 роки тому

      @@belozerov_mi Бро, шаришь в с#?

  • @yuryermolov13
    @yuryermolov13 5 місяців тому

    Так красивее:
    object x = new string(string.Empty);
    object y = new string(string.Empty);
    Console.WriteLine(x == y);

  • @metalkefir591
    @metalkefir591 Рік тому +1

    Ответ на 2 очень простой, трахнуть стулом по голове человека который описывает структуры с диспоуз и пишет юзинг в такой манере.
    Структуры в Шарпе нужны для интеропа и взаимодействия с С++ либами например, после вызова метода библиотеки она вернет нам указатель на место где лежит результат в стеке, мы сможем зная размеры типов полей наложить туда структуру и прочесть результат.
    Наличие в структурах ссылочных типов и тем более объекта который необходимо утилизировать это говнокод. Вопрос зачем спрашивать про говнокод?

  • @user-bx1kc2bd5z
    @user-bx1kc2bd5z Рік тому

    object x= new Random (0,0);
    object y = new Random (0,0);
    Console.writeLine(x==y);

  • @UnrealSPh
    @UnrealSPh 3 роки тому +2

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

  • @KraGenGames
    @KraGenGames 2 роки тому +1

    Курст не бесплатный. Нжно 20баллов что бы их получить нужно
    Подтвердить почту +5 балов
    Пригласить друга +5 балов
    получить сертификат + 50 балов. Так что нифига он не бесплатный

  • @ultrarabbit8116
    @ultrarabbit8116 4 роки тому +55

    Очень напоминает статью из метанита.

    • @instkoff
      @instkoff 4 роки тому +11

      Это и есть с метанита

    • @yippeeki-yey
      @yippeeki-yey 3 роки тому

      @@instkoff А на метаните с Рихтера

    • @alazarn7
      @alazarn7 3 роки тому +4

      @@yippeeki-yey а Рихтер не для джунов, ту-дунс )

  • @Primeraby
    @Primeraby 4 роки тому +3

    Вроде на джуна такие вещи и спрашивали, полезный для начинающих видос :)

  • @alexsft2024
    @alexsft2024 4 місяці тому

    Батенька, интерфейс реализуется структурой, а не наследуется! Также забыл сказать какой именно интерфейсный метод реализуется. Тоже что ли, пойти по-предовать? :)

  • @user-uh5qc6ep7r
    @user-uh5qc6ep7r 4 роки тому +3

    Продолжай, ну и зацепи Unity естественно :3

  • @camelCased
    @camelCased 2 роки тому +2

    Я придумал еще одно решение:
    object x = new string(string.Empty);
    object y = new string(string.Empty);
    Console.WriteLine(x == y);
    Похоже, что string.Empty ("" тоже подойдет) приводит к такому же результату, как пустой массив символов.

  • @alexgorodecky1661
    @alexgorodecky1661 4 роки тому +8

    С dispose пример чудовищный. Использование disposed объектов запрещает сам смысл using. Троллинг с value типами, это вообще отдельный котел для создателей c#

    • @nooftube2541
      @nooftube2541 3 роки тому

      Не запрещает, если знаешь как используется.

  • @unknown3164
    @unknown3164 3 роки тому +1

    DownCast (вниз к производному классу) невозможен без предварительного UpCast(вверх к базовому классу)

  • @user-nh1lp8xt4j
    @user-nh1lp8xt4j 2 роки тому

    Круто. Уже что-то понимаю в языке)

  • @daniyarm2922
    @daniyarm2922 4 роки тому +20

    Если ты хорошо знаешь С#, это ты должен вести собеседования. Достоин ли они что бы платит тебе ))

  • @satorlous
    @satorlous 4 роки тому +6

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

  • @user-wd2xw9oh7w
    @user-wd2xw9oh7w 4 роки тому +2

    В 3, как показалось, не совсем верно объясняется - то, что short не вмещает всех значений int, не является причиной падения, на (long)obj точно так же падало бы; приводить можно , именно как дальше говорится, только к вышестоящим по иерархии, а в случае структур это могут быть только интерфейсы или ValueType

    • @nooftube2541
      @nooftube2541 3 роки тому

      Разве к ValuType можно кастить?

    • @user-wd2xw9oh7w
      @user-wd2xw9oh7w 3 роки тому

      @@nooftube2541 сейчас проверил такой код, всё работает
      int i = 4;
      object o = i;
      ValueType vt = (ValueType)o;
      Console.WriteLine(vt);
      а почему должно быть нельзя?

    • @sometexthere4169
      @sometexthere4169 Рік тому

      @@nooftube2541 Все значимые типы наследуются от ValueType, так что можно, если тип одинаковый (я про распаковку)

  • @kirillsviderski4739
    @kirillsviderski4739 4 роки тому +2

    Очень крутой контент. Будет что спрашивать у ребят на зачете в конце школьного года ;)

  • @LionbI4
    @LionbI4 4 роки тому +3

    Я бы даже отвечать не стал на эти вопросы. Просто не пошел бы к работодателю, у которого на интервью такие идиотские вопросы.

    • @LionbI4
      @LionbI4 4 роки тому +5

      Это вопрос из серии: что будет если на java написать Integer a = 1; Integer b = 1; log(a == b); Integer a1 = 1000; Integer b1 = 1000; log(a1 == b1); - в первом случае покажет true, а во втором - false. Потому что в java во время боксинга интов - до 127 - возвращаются Singleton интегера. А после 127 - новый объект. Абсолютно бесполезные знания для написания реальных вещей на java. тем более для Junior.

  • @nikitafrolov3859
    @nikitafrolov3859 4 роки тому +2

    Если бы было подробнее, тогда было бы лучше, а то некоторые определения совершенно не понятны

  • @supromental
    @supromental 5 місяців тому

    Если такие тонкости должен знать джун, что тогда должен знать мидл интересно.

  • @Brick87Game87
    @Brick87Game87 4 роки тому

    хитрость про интерфейс не знал. спасибо

  • @myganter
    @myganter 4 роки тому +1

    Я ЧУВСТВУЮ что ты немного затролил Александра Шевчука из itvdn :3

  • @BlushSmith
    @BlushSmith 5 місяців тому

    Честно говоря, основательно подумал бы, прежде чем соглашаться на работу в контору, задающие такие вопросы джуну.
    Делать структуру IDisposible? Серьёзно, так кто-то в мире буедет делать?
    И джун должен шарить в тонкостях работы юзинга при обработке структур?
    Это даже не смешно.
    PS: в четвёртом вопросе стоило бы обратить внимание не на фокусы с угадыванием, а на то, что структуры сравниваются по значению, соответственно подойдёт new int() или new DateTime(), без всяких там nullable

  • @user77090
    @user77090 2 роки тому

    IDisposable произносится вообще не так, и ударение не там. Почему все разработчики так ужасно коверкают English? Потому что не удосуживаются сверяться со словарем и шпарят по когда-то освоенным шаблонам, конечно же неправильным.

  • @_Otets_
    @_Otets_ 2 роки тому

    А я думал такие вопросы померли еще в 2010-ом.

  • @_kk_
    @_kk_ 4 роки тому +1

    Почему 'x' и 'y' в этом случае равны:
    object x = new string( new char[0] );
    object y = new string( new char[0] );
    А в этом нет:
    object x = new string( new char[1] { '0', } );
    object y = new string( new char[1] { '0', } );
    ?

    • @detmalone
      @detmalone 4 роки тому +7

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

    • @elamaunt
      @elamaunt 4 роки тому

      Будут равны, только если сравнивать так (string)x == (string)y. Тогда вызовется переопределенный оператор сравнения ==, а в нем реализовано сравнение по значению. Еще будут равны, если написать object.Equals(x,y)

  • @StrelokSitonix
    @StrelokSitonix 4 роки тому

    Отличный контент!

  • @ajiekcahdppeperoni7011
    @ajiekcahdppeperoni7011 4 роки тому +2

    Это не те вопросы, у джуна нет опыта. его надо спрашивать теорию, а не дрочить мозг какими-то тонкостями.

    • @JohnDoe-tm1rv
      @JohnDoe-tm1rv 4 роки тому +3

      Джунов такие вопросы спрашивают не для того, чтобы получить правильный ответ. А для того, чтобы он ошибся, начал думать, воспользовался подсказками и смог исправится и объяснить почему он ошибся. В этом всем процессе начинает бюыть видно как человек мыслит и как решщает зхадачи и способен ли к обучению

  • @free115
    @free115 3 роки тому +7

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

    • @dkvChannel
      @dkvChannel 2 роки тому

      Кстати да)))

    • @VoimiX2008
      @VoimiX2008 11 місяців тому

      Сапожник без сапог)

  • @ram0973
    @ram0973 4 роки тому +1

    Никто не видел детальное сравнение ООП и прочего в Java и C# ?. Например, в Java нет virtual, почему, чем это хорошо/плохо, какой аналог struct может быть в Java и т.д.

    • @justfairytale5722
      @justfairytale5722 2 роки тому +1

      Знаю, что опоздал, но мало ли кто-то прочтет.
      В джаве все нестатические методы по умолчанию виртуальные, а аналогов структурам нет.

    • @rexdraconis1703
      @rexdraconis1703 Рік тому

      Ну структуры быстрее работают(они же в стекле вроде), поэтому скорее всего, чисто теоретически будет быстрее с ними.

  • @25x25RS
    @25x25RS 4 роки тому +2

    В 3 вопросе у Вас ошибка объяснения.
    (long)obj - тоже выдаст ошибку.

    • @user-ud2rt2kx7f
      @user-ud2rt2kx7f 4 роки тому

      Ну да, логичнее было сказать что value тип при анбоксинге должен быть таким же, как и при боксингом

    • @25x25RS
      @25x25RS 4 роки тому

      @@user-ud2rt2kx7f почти. в int? не будет ругаться.

    • @nooftube2541
      @nooftube2541 3 роки тому

      @@25x25RS почему почти? Был int, и должен стать int.

  • @romedov882
    @romedov882 4 роки тому +2

    Очень полезно. Спасибо!
    Свалился на 3 и 4

  • @Razor_Zet
    @Razor_Zet Рік тому

    1/4. Я просто тупень... У меня всё.

  • @danyilkorotych1727
    @danyilkorotych1727 4 роки тому +1

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

    • @daddy_chill1530
      @daddy_chill1530 4 роки тому +4

      Google algorithms
      Удачи, кстати!

    • @enqeegeth3604
      @enqeegeth3604 4 роки тому

      Прошёл?

    • @danyilkorotych1727
      @danyilkorotych1727 4 роки тому +9

      @@enqeegeth3604 Да! Вот только час назад сообщили, очень рад. В общей сложности собеседовало 4 человека, изначально 2 ейчара(общие вопросы, английский и тд), потом два програмиста по скайпу, при том с разных городов для оптимальности выводов. Очень широкий спектр вопросов, долго было. Справшивали ООП(принципы), наследование в шарпах(virual, override), патерны(в часности синглтон реализовать), и еще много всего по констркциям + код писать в онлайне. Дальше был JS основы, потом был вопрос по дискретке упростить логическое выражение. И геометрия, в часности векторное произведение, нормалли, скалярное произведение, производные и тд. Сложно было, думал завалил, ибо много что просто забыл. Но в итоге взяли. Так что всем удачи, ребят пробуйте, не опускайте руки если получаете отказ, когда-то точно повезет если работать)

    • @enqeegeth3604
      @enqeegeth3604 4 роки тому

      @@danyilkorotych1727 Круто, молодец! Я буквально 4 месяца назад начал изучать шарп). А вот насчёт математических знаний всё сложно... Кажись помню только терему пифагора, а про дискретку толком ничего и не знаю. До собеса ещё далеко, а уже страшно...

    • @danyilkorotych1727
      @danyilkorotych1727 4 роки тому +1

      @@enqeegeth3604 ну насчет математики - ее не везде спрашивают, все зависит от специфики разработки, что реально часто спрашивают - это задачки типа как поменять местами две части массива не исполюзуя еще один массив и тд, так что немного потренировать такое нужно, в инете их много

  • @paulgarrett7044
    @paulgarrett7044 2 роки тому

    Ставьте скорость на 0.5 и смело засыпайте.

  • @sometexthere4169
    @sometexthere4169 Рік тому

    На 3 автор сам не понимает почему распаковка в short не возможна. "Мы туда упаковали int, а short не кастится до int. Дело в том, что short меньше по размеру". А если бы мы туда long кастили, то получилось бы? Автор, кастится должно к тому же типу, а не к большему или меньшему. Сам не понимаешь процессов, которые объясняешь

  • @stanislavshilo6022
    @stanislavshilo6022 3 роки тому

    слушай, ну если в java вот так сделать, наверное ошибки нее будет, потому что в шорт диапазон интовая единица входит

  • @tomdwan5423
    @tomdwan5423 3 роки тому

    кто-то понял кто автор последнего вопроса?
    Напишите пожалуйста Имя не могу понять что Роман сказал

  • @loam
    @loam Рік тому

    А че за прикол с бесплатным курсом, который не бесплатный по итогу?))

  • @user-tn9pq7bv5h
    @user-tn9pq7bv5h 2 роки тому

    ты говоришь что шорт не катится до Инта, так как он меньше. но это же как раз позволяет ему каститься)

    • @softed
      @softed Рік тому

      Кастится тот что больше, потому что диапазон значений расширяется, а не сужается, и нет потенциальной утечки данных.

  • @sergey.stafeev
    @sergey.stafeev 4 роки тому

    По ссылке не бесплатный курс, надо сделать какие-то действия, потратить на это время, время это деньги. Так то.

  • @yarosroman
    @yarosroman 2 роки тому

    А что мой комментарий то стерли про IDisposable?

  • @trofimchikchik
    @trofimchikchik 4 роки тому +1

    Бесплатный курс с гарантией.

  • @subscribe-on
    @subscribe-on 2 роки тому

    4 из 4. Задачки какие-то ну уж через чур лёгкие. По поводу 4 задачи: чтобы всегда возвращало true нужно убрать "?" перед вызовом конструктора структуры int. Да и вообще подойдёт вызов любого конструктора 2-х одинаковых структур... 2-е решение это какие-то танцы с бубном, потому что можно было просто сделать var x = new char(); и всё (собственно, опять же вызов конструктора структуры).
    Но нет же! Нужно блеснуть своим "умом" и написать что-то вроде:
    var x = new string(new char[new char().ToString().IndexOf("", StringComparison.Ordinal)]);
    var y = new string(new char[new char().ToString().IndexOf("", StringComparison.Ordinal)]);
    Если бы мне такое собеседующий задвинул, я бы рукой себе лоб пробил.

  • @user-dp5ru5kg6q
    @user-dp5ru5kg6q 2 роки тому

    как охуенно объяснил просто лацк!

  • @crossbow258
    @crossbow258 3 роки тому

    В четвертом ещё можно было создать со стрингом метод инсерт

  • @lobstercrab6491
    @lobstercrab6491 Рік тому

    Ай диспосЕйбл... у меня всё.

  • @alexpirotsky6247
    @alexpirotsky6247 3 роки тому

    Последнее, а бул подойдёт?

  • @siviristm9668
    @siviristm9668 4 роки тому

    Отучился 2 года на программиста, не разу не юзал object и var. Слышал, но не использовал... Пора читать книги...

    • @JackFastGame
      @JackFastGame 4 роки тому +2

      var - это синтаксический сахар, который используется лишь в зависимости от конвенций компании, в которой работаете.

  • @user-wu4pb9vd4e
    @user-wu4pb9vd4e 4 роки тому +3

    using System;
    using System.Threading;
    using static System.Console;
    internal sealed class Test
    {
    public float Example;
    }
    namespace FirstTest
    {
    internal sealed class Test
    {
    public string Example;
    }
    internal class Program
    {
    private static void Main()
    {
    //var t = new Test();
    //t.Example = 2.2f;
    Task();
    ReadKey();
    }
    private static void Task()
    {
    var array = new[] {4, 8, 15, 16, 23, 42};

    foreach (var i in array)
    {
    ThreadPool.QueueUserWorkItem(callBack => Write($"{i} "));
    }
    }
    }
    }
    1) как сделать так, чтобы закомментированный код работал не трогая класс Test
    2) Что выведет метод Task()

    • @4AneR
      @4AneR 4 роки тому

      1) добавить переименовывающий using, например using OuterTest = Test;
      2) Не уверен, но вроде не определено, т.к. метод закончится, когда заполнится очередь в цикле, а что потоки успеют выполнить и в каком порядке не определяется. Может ошибка даже, если callback попробует читать массив после снятия ссылки со стека

    • @mixa1l
      @mixa1l 4 роки тому

      2) 42 23 16 15 8 4

  • @LionbI4
    @LionbI4 4 роки тому +1

    Ужос какие дебильные вопросы. Никогда такие не задаю. Принимал на работу человек 100.
    Правильные вопросы: как бы вы реализовали игру жизнь(предоставляются правила)? Как лучше индексировать номера телефонов? Есть стандартный массив, как бы вы его перевернули задом наперёд без вызова функции reverse? (написать код на бумажке).

    • @stasostrin47
      @stasostrin47 4 роки тому

      Ну тоже такие себе вопросы... главное у программиста это мышление, абстракции, композиция и декомпозиция задачи.. кодинг и правила языка это малая доля хорошего ПО

    • @maxumka548
      @maxumka548 3 роки тому

      Написать код на бумажке? А потом ты подтираясь ей, его соберёшь? А чем смысл? Или в голове вообще ничего?

    • @LionbI4
      @LionbI4 3 роки тому

      @@maxumka548 В чем проблема 3 строчки написать? Хоть псевдоязыком.

  • @tvtv7026
    @tvtv7026 2 роки тому

    ВСЕГДА БЫЛО ПЛЕВАТЬ НА СОБЕСЕДОВАНИЕ ЭТО Я ИМ НУЖЕН НЕ ОНИ МНЕ

  • @streamcnoremorse3323
    @streamcnoremorse3323 3 роки тому

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

  • @user-xo9ks9bc6j
    @user-xo9ks9bc6j 4 роки тому +2

    Поставьте скорость проигрывания 1.25 =)) и будет нормально

  • @user-ry8yh6ht2k
    @user-ry8yh6ht2k 2 роки тому

    Реальное собеседование на middle developer ua-cam.com/video/-y5etXS6efs/v-deo.html

    • @konstantindavydow5533
      @konstantindavydow5533 2 роки тому +1

      Вы забыли написать, что по ссылке - собеседование на FRONTEND developer

  • @SoferPeOZN
    @SoferPeOZN 3 роки тому

    IDespacito

  • @MrGreen-vw9yr
    @MrGreen-vw9yr Рік тому

    ДИ СПА СЕЙБЛ 🎊🎊🎊

  • @maks_fil
    @maks_fil 4 роки тому

    128 лайков)

  • @user-uf9od8iq1n
    @user-uf9od8iq1n Рік тому

    Какой же талант 2*2=4 так долго об этом рассказывать. Херня, эти вопросы все знают. Говорить про них 30сек.