@@SBeregovoyRU ну в принципе, этому есть объяснение, чаще, джуна берут без опыта, и чтобы понять какая у него база, логика такого количества вопросов есть. Однако, Я бы больше обращал внимание на его софт скилы, на умение коммуницировать и знание английского.
Очень познавательно. Посмотрел пару собеседований на вашем канале. Как предложение: заморочьтесь с монтированием, и там где кандидат не ответил, или ответил не всё, вставляйте врезки "как бы я ответил / какой правильный краткий ответ", мне кажется поможет поднять популярность видосов
Главная проблема такого подхода в том, что ответы на эти вопросы ты никогда не запомнишь при таком подходе "все в одном месте". По хорошему необходимо ставить на паузу после каждого вопроса, отвечать на него, гуглить вопрос, удостовериться в правильности ответа, продолжать смотреть. Если ответ не верный - выписать на листок этот вопрос. От того, что ты загуглишь лишний раз ты только лучше запомнишь и не будешь мандраж от сомнений ловить)
побольше таких собесов! ставлю на паузу и отвечаю сам) помогает. Если ответы еще будете выводить на экран, как бы вы ответили, цены бы не было) спасибо)
Очень здорово 👍 побольше бы такого контента. я так погрузилась в это собеседование, что меня даже потряхивало немного) как будто я на месте этого парня собес прохожу)
Отличная рубрика! Помогает понять, на что делать акцент, когда готовишься к собесам. По ощущениям, джунов гоняют на собесах сильнее, чем мидлов. Когда проходил собес на мидла, это скорее выглядело, как диалог о том, что я делал на прошлом месте работы, с какими проблемами сталкивался и как их решал. Когда ты джун, нужно доказать, что ты сможешь сам решать задачи - что добавляет сложности, т.к. это тяжело проверить. Виталий, удачи тебе, заполни пробелы в знаниях и у тебя все получится! p.s. привет из Тольятти)
У нас джунов гоняют даже на порядок больше чем в этом ролике, глянул как-то вопросы у нашего теха на столе, а там в стиле какие паттерны проектирования вы знаете и расскажите о них. Потом в стиле, что вы можете рассказать про паттерн фабричный метод. Ещё до кучи вопросы про триггеры и хранимые процедуры в SQL. Не особо понял зачем джунов этим грузят, дать простые задания и посмотреть как решает, а дальше в процессе работы уже втянется) Ну не суть. Приходил к нам как-то человек, хотел устроиться на позицию джуна, технически всё делал правильно, тестовое задание тоже все выполнил отлично, видно что мозги работают как надо. А вот речь не поставленна, запинается, плохо формулирует мысли, не может объяснить и техническими вопросами до кучи допинали. Сказали ему что он не подходит и ему ещё надо подучиться, а через пару дней его взяли в нашем же бизнес центре в другой компании на ту же позицию. А наши вместо него взяли чувака который разбирался кое-как, зато язык был подвешен и уверенности будто он второй Марк Цукерберг и красный диплом вишенкой на торте. Как итог, за 3 с небольшим года тот первый парень вырос в крутого спеца, из серии "было скучно, выучил за ночь норвежский", а наше второе пришествие Марка Цукерберга уволили не продержав и месяца потому что он был необучаем и считал что уже всё знает.
@@timtom489 Прям поставил бы +миллион к вашему комментарию. Действительно, от программистов, в том числе и потенциальных, не стоит ждать супер подвешенного языка. Рад за того парня, который попал в ту компанию, где вырос
@@timtom489 Это говорит о том, что компании, в основном, хотят, чтобы джун в теории разбирался на заебись, Это бред. Джун на то и джун, чтобы на работе многое изучать. Стажеры и вовсе почти ничего не знают. В баню. Этому челу нужно на уровень миддла собеседоваться, если он практик, конечно. Там не будет дурацких теоретических вопросов.
@@timtom489 я удивляюь, откуда джун будет помнить фабричный метод, когда у него практики мало. Для того, чтобы запомнить паттерн, нужно его пару раз на практике попробовать. А этих паттернов общеизвестных десятки. Пока все опробуешь, уже года полтора продет. Уже нужно будет на позицию миддла устраиваться, а не юниора.
Можно базу не пропустить, а часть базы забыть. Например, я неплохо знаю С++ уровня 2014 года. С# немного знаю. Если спросят по плюсам, на которых я прагаю совсем не часто, не факт, что на все теоретические вопросы я отвечу. Если спросят про С#, на котором я тоже прагаю редко, то я не отвечу на треть теоретических вопросов. Вот так. Нужно дать тестовое онлайн и посмотреть как он справится с ним. Офлайн тестовое на несколько часов без оплаты - плохой тон.
Интересный и очень полезный ролик для тех, кто только начинает карьеру. Но, возможно, некоторые вопросы слишком широкие для джуна. К примеру как работает сборка мусора. Очень обширная тема, начиная с простого упоминания поколений, режимов работы GC и заканчивая наличием allocation context и причин выпадения OOM. Кажется, что для джуна может быть сложновато. По мелочам, про Using. Развернется он не в try/catch/finally, а в try/finally - но мелочь, просто небольшая придирка с моей стороны)) И мне кажется, что для джуна жестковато подразумевать, что он полезет на старте изучения в IL-код и будет смотреть, что во что разворачивается)) По поводу рекомендации изучить как работает стек и куча - отличная рекомендация, которая действительно поможет в базе понять, как аллоцируется память и как там размещаются данные. Возможно, на базовые важные вопросы парень и не ответил, но в целом кругозор весьма неплох, подтянется немного и пойдет дальше, я считаю, что держался весьма достойно. В общем, Степан, большой респект вам за подобные видео, я думаю, что многим начинающим будет полезно посмотреть. Но не с целью понять и заучить, а что же спрашивают на собеседованиях, а с целью изучения именно того, что первоначально нужно для начала нормальной работы.
Спасибо, Сергей, за ваш канал. Видео интересное, парню удачи в обучении и поиск работы. Данный формат видео - золотая жила. И было бы здорово, если бы вы озвучивали правильные ответы если собеседник ошибается
37:58 тут ошибочка, строка работает так же, как и все другие ссылочные типы, то есть если присвоить одну строку к другой, то они будут ссылаться на один и тот же объект в памяти. Мало того, благодаря такой штуке, как string interning, даже str1 = "foo"; str2 = "foo"; Будут ссылаться на один и тот же объект. И даже str1 = "foobar"; str2 = "foo" + "bar"; Ссылаются на один и тот же объект (то есть когда конкатенация может быть выполнена на этапе компиляции)
К собеседующему претензия, что если кандидат не отвечает на вопрос, он должен сам ответить, потому что такие ответы усвоятся сразу и надолго! Так делают в нормальных компаниях, а не то, что собеседующий всегда отвечает "Ну там потом почитаешь". При таком ответе собеседующего у меня возникают вопросы к его компетенции!
Miposhka пробует себя в програмировании, честно сказать не ожидал, но парень молодец даже после победы на TI 10 всё равно ищет разные способы реализации!
Спасибо большое, даже несмотря то что собеседование об C#, помогло мне вспомнить некоторые детали Java. Немного было сложно понимать некоторые вопросы из за недостатка незнание слов на русском, так как изучал на итальянском..
У меня в том году было 4е собеседования, 2 - на XAMARINе, 1 - Fullsteck и 1 - WPF и Backend. И ни на одном у меня не спрашивали то чего спрашивали в первой половине видео, спрашивали про опыт про паттерны, показывали код или я показывал код, для последнего собеседования сделал тестовое задание. Про GC спрашивали на двух собеседованиях, почти везде про DI, ну и про ООП
Спасибо за видео, Степан. Очень познавательно. Сам хочу свитчнуться (36) и ожидаю своего 4 технического собеса. две трети вопросов из озвученных здесь мне никогда даже не задавали, никогда не знаешь что тебя ждёт.
@@Tinyismyson то есть, вы пошли на собеседование, немного его завалили и вам потом сказали, что .NET разработчиком взять не могут, но могут предложить работу (стажировку) QA C#?
Душнилово собес. Всегда поражался с таких уважаемых. Я б спросил работу с памятью, оптимизацию, паттерны, структуры данных и вуаля. Беги парень от таких собесов)
@@SergFreest Это ты прикалываешься? Если бы парень был полным нолем, то он почти ни на один вопрос правильно бы не ответил. Ноль это ты, скорее всего. Теоретически может быть ты и не ноль, а по практике около ноля. Знаю такие конторы, которые только по теоретическим знаниям берут. Потом увольняют таких работников.
37:57 нет, при присвоении строки копируются по ссылке, другое дело, что изменить их внутренне нельзя, потому что они неизменяемые (immutable), у них нет состояния, а при присвоении литерала в новую переменную попадает новая ссылка, поэтому в старой переменной остается прошлое значение
@@Hunter314414 Нет, строки копируются по ссылке. Правило интернирования действует только на известные во время компиляции строки (т.е. на константы) и тогда, когда вы явно вызываете String.Intern.
Кандидат держался достойно, видно, что сейчас изучает многие вещи и имеет стартовые знания. Но при этом ни раз кандидат говорил КАК делать правильно, но не мог капнуть и рассказать ПОЧЕМУ. ИМХО, я бы рекомендовал не зацикливаться на книжках, а закрывать именно те пробелы, что вскрываются на подобных собеседованиях. Можно даже попробовать еще пройти где-то собеседования и понять какие вообще знания сейчас нужны на рынке. Посмотреть на какую сумму могут оценить текущие знания и понять, что нужно подтянуть, если хочется прыгнуть выше. Или же просто посмотреть статьи на Хабре на тему собеседований, изучить список типичных вопросов и ответов.
Давайте не путать собеседование с экзаменом. Экзамены в университете, в результате которых заносится оценка в ведомость и выдается диплом. Спрашивать на собеседовании часами - не только глупо, но и портит репутацию компании. Так как рабочее время расходуется неадекватно. Засиживаться на работе ради вас часами никто не будет.
А сколько обычно такие собесы отводится времени? Или они дробятся, сегодня познакомились пообщались с hr, бабки мотивация , цели, в другой день уже техническое собес и потом тестовое?
@@zergzerg4844 Тестовое не везде есть. Тестовое, если оно офлайн, не должно выполняться за бесплатно. Особенно, если на его выполнение уйдет больше 1-2 часов. В крупных компаниях собес дробится на, минимум, 2 части: 1) hr; 2) техническое интервью. По видосу видно, что контора не далеко ушла от шараш-монтажа.
Собеседование обычно 1 час максимум и их обычно 3 штуки: 1. с HR - до получаса, 2. С техлидом - до 1 часа. Вместо этого может быть назначено тестовое (отдельное время и степень неадеквата тут может быть самой разной как по времени так и по задачам) + разговор по тестовому заданию. 3. С принимающим на работу - разговор по деньгам + подписание документов, если готов сделать это сразу - до получаса.
Согласен. + Вопросы лушные, я бы уже на втором вопросе ливнул. Что будет если поделить 2 на 3 в INT. Брет блять. Бан будет, достаточно знать что нехер в целочисленный тип, сунуть результат деления, даже если он без остатка.
Парень молодец, очень много знает для джуна, с вопросами про стек и кучу не ответил, это серьезный минус, еще не был задан вопрос про "ref и out" параметры, как они изменяются в методе, это тоже часто спрашивают. Если отталкиваться от знаний шарпа, то много тем было пропущено, да и вообще оценить уровень фундаментальных знаний в шарпе не так уж и просто, при желании человека всегда можно отсеять, если копнуть чуть глубже, хотя бы до уровня Рихтера. Для быстрого "въезда" c# не подходит, так же как и c++ или java, другое дело python или рhp, парню однозначно уважение и надеюсь ему повезет с работой, потому что фундаментальные знания это хорошо, но даже они без практики быстро забываются, а вечно учить теорию не возможно, через какое то время одна информация, начнет затирать другую. Автору спасибо за ролик, я как человек с опытом в шарпе для себя некоторые вещи новые узнал.
Спасибо за поддержку :) про стек и кучу я потом посмотрел и я бы не сказал, что эти знания сильно помогают в работе, если до этого я знал про то, что вэлью типы работают быстрее, что они копируются при передаче в метод, а чтобы не копировались нужно передавать с ref, что out параметр кидает значение в переменную метода, помеченную, как out, что ссылочные типы наоборот не копируются при передаче в метод и нужно делать велосипед в виде var ... = new ... {New.p1 = old.p1, ... }. Когда знаешь про область видимости переменных в методах. Я копал как бы в практические, так сказать, постулаты, применения методов, но не в их причину. Через стек и кучу можно в это зайти и будет даже быстрее понимание. Но само здание что стек это быстрая память приложения, а куча память компьютера и что в стеке хранятся вэлью и ссылки, а в куче значения ссылок, не рассматривая исключения, типа когда программист зачем-то сделал структуру и засунул в нее 3 ссылочных типа и подобных штук, не помогает в работе. Я учил, получается, именно как можно делать и как нельзя делать по причине просто потому что опытные ребята так сказали, если копнуть глубже то там оказывается вот теория про память, которая не применяется, а если ещё глубже, то там будет уровень ассемблера, а ещё глубже физика процессора и разных поколений. Но при этом я выбрал C#, как высокоуровневый язык как раз, чтобы не копать туда, я мог бы выбрать Си или ассемблер и я пытался в них разобраться, но это просто не интересно было. Мне нравится делать рабочие прототипы программ, чтобы данные удобно водились пользователем, ошибки обрабатывались, на сервере все тоже хорошо обрабатывалась, приложение работало быстро и приносило пользу. В последнее время мне ещё стала интересна тема архитектуры приложения и я туда копать стал, но никак не в более низкий уровень. Этому и ответы такие были. Ну и собес был чтобы закрыть свои дыры как раз. Если провести итог, то я редко хочу узнать, что лежит под копотом штук, которые дали разработчики языка или разработчики nuget. Для меня главное, чтобы они работали так, как указано в их документации. Детали реализации там обычно никто не указывает. И всякие вопросы по типу: а во что разворачивается out на уровне il кода? А на asembler? А как это на процессоре передается? Или аналог про слова string, int, delegate, new, this, event, using, class, virtual и т.д. Завалить можно, как ты сказал, на чем угодно, если копнуть поглубже, согласен.
@@VetalGimbarr На практике большинство из того что спрашивают на собеседовании редко нужно, даже если затрагивать тему оптимизации, то пока у тебя все работает, то заботится о ней не нужно, а все эти вопросы только для того чтобы пройти собеседование, я не так давно проходил собеседование в один крупный банк и у меня все это спрашивали, понятно что везде разные требования и junior это надолго пока не научишься не только повторять это, но и думать в контексте этих данных. Но ты молодец и советы коллеги тебе дают хорошие, удачи.
@@darkcrusaderzxc Согласен)) НО, если появится "узкий" кусок кода, ты не сможешь его оптимизировать, если про память и ASM ничего не знаешь)) Другое дело, что вряд ли в работе современного "бэкэндера" он появится)) На моей практике, такие куски кода появляются только в моих домашних проектах, вот последний раз писал A* для поиска пути на большой карте, для моего бота WoW, там пригодилось, все-таки граф в 100 000 000 нод - это не шутки)) Бизнесу нужны тупые, повторяющиеся действия, высшая математика и знания компуктера почти не требуется)) Особенно смешно, что современные "Веб-программисты" мидл уровня даже не знают как сеть работает, а зачастую не смогут даже HTTP запрос в блокноте написать, ну а что такое маска сети это вообще тайна)))
Интересно, а что делать если собеседователь неправ?) Как, например на 38:00 . s2 в данном моменте будет иметь ссылку на ТУ ЖЕ строку что и s. Отличается только поведение при попытке "переписать" строку, так как она immutable.
Привет! Спасибо за интервью, но я так и не понял почему на 37:30 говорится, что ссылки будут указывать на разные объекты в памяти? Они же будут ссылаться на 1 обьект. В данном случае строки ведут себя как ссылочный тип
Так про строки собеседующий сам не в курсе. Когда пишут string s = "a"; string s1=s; Не будет создаваться новая строка для s1. Откуда вы вообще взяли это? При конкатенации да, будет, но не в этом случае. Это блин принципиальный момент, можно сказать идеологический
string s = "привет"; string s2 = s; - ответ не правильный! ссылаться будут на один объект т.к. есть такая штука, как интернирование! и строки изменить можно небезопасным кодом, но потом не только поменяются значения всех её переменных, но и вызов и присвоение неизменённой версии будет возвращать всегда изменённую!
Это какой язык? В C++ и C# не так. В данном случае переменная s2 не будет ссылаться на переменную s. В C++: string & s2 = s - будет ссылаться на переменную s. В C#: ref string s2 = ref s.
@@vladimirandreev9022 так тут и не написано, что переменная s2 ссылается на переменную s! Они обе ссылаются на один и тот же объект в памяти, и если изменить переменную s = "пока", то только она будет указывать на новый объект в памяти, в то время, как s2 будет хранить старое значение, тобиш "привет".
Все опнравилось, но честно говоря, первый вопрос очень с float/decimal/double душный. От кандидата я бы просто хотел услышать в таком случае, что при работе с критичиски важными арифметическими операциями нужно граммотно подходить к типам данных чисел. А валидный тип можно путем поиска инфы в гугле найти
ну нормальный пацан на самом деле. по теории проседает, но на практике вроде какой-то опыт есть - а теория она приходит по факту. ко мне приходили на мидлов и похуже :) и я вообще с позиции swift на все это смотрю, некоторые моменты удивляют, но в целом все достаточно похоже, ну за рядом отличий, например у нас сборки мусора нет - есть ARC и по нему обычно хорошо гоняют на собесах. по факту это просто retain release на этапе компиляции, но многие "мидлы" думают что это какой-то там цикл в рантайме ( некоторые даже ранлуп вспоминают ради этого ), который убивает мусор. забавно что у нас была одинаковая реакция когда он упомянул про наследование и про DI - я тоже втупил и аж на паузу поставил чтоб осознать :)
26:18 порядок булевых операторов же, сначала идёт &&, потом ||, те понимание различия есть, но ответ абсолютно неправильный. Т.е. в первом выражении если A=true, то дальше ничего не проверяем
@@VetalGimbarr Ну те по вашей логике, если вас спрашивают про правило жи-ши, а всё остальное предложение написано абсолютно неправильно и с ошибками 1 класса, то плевать, главное то, про что спросили?
Очень хорошее видео, Спасибо!! Смотрю и вижу, что было с моей стороны правильным решением изучать С++ по видеолекциям с торрента. После них нет вопросов по массивам и типам данных. Видимо в лекциях по С# это упускают. Кодить приходилось кустарно и на С++ и больше всего на С#.
@@leonidpro3664 Хз, как по мне решать в какой-то степени чью то судьбу ответственный, нервный процесс. Не хочется принять ошибочное решение причем ошибочным может быть как найм так и отказ.
@@HeIvis "вы хорошо прошли собеседование, но мы нашли кандидата с более глубоким опытом". С год примерно, но тут у каждого свой график, по свободному времени. У меня его было мало
37:30 Не совсем с вами согласен. s2 действительно будет ссылкой и они вместе с s будут ссылаться на одну область памяти. Но строки immutable, изменить значение по ссылке не является возможным. Это кстати легко проверить var s = "hello"; var s2 = s; Console.WriteLine(object.ReferenceEquals(s, s2)); //OUTPUT: true
Тоже когда смотрел, т.к. есть понимание АСМ и т.д. и того, что строки иммутабельны, возник в башке вопрос - "а нахрена в случае копирования создавать новую строку?")) И Было предположение, что вряд ли создатся, что просто копируется адрес и что майки не дегенеры))) Спасибо, что подтвердили)
string Text = "Привет"; string SubText = Text; В данном случае SubText будет указывать на тот же самый объект строки в памяти. Ничего нового создаваться не будет. Это можно проверить "object.ReferenceEquals(Text , SubText)". Но если вдруг переменная SubText измениться, то только тогда приведёт к созданию нового объекта в памяти.
Правильный тон собеседования это когда кандидат ошибся или не знает, объяснить/расскрыть кратко ему правильный ответ. Иди читай.. Не очень комфортный вариант
На mid/senior совсем другой принцип собеса. На Junior мало кто ждёт правильного ответа на все вопросы. Тут важнее узнать общий кругозор. Ну и увидеть принцип мышления. В выборе джуна важнее то, как хорошо и быстро он будет учиться и какая у него есть база. При выборе мидла и сеньора мы берём уже сформировавшегося разраба и на его обучение не хочется тратить деньги и время. Тут важнее узнать про его опыт, как он решал те или иные проблемы. И, возможно, про конкретные технологии, которые используются в компании. По итогу, собеседование на джуна, как мне кажется, самое сложное.
Как человек за кучу вопросов к нему поймет что-то о компании и что ему следует здесь работать? Кроме того что здесь очень нудно и время тратится впустую
Степан, здравствуйте. Подскажите пожалуйста, какой из этих двух людей на ваш взгляд станет программистом - Первый это тот, кто фанатеет от программирования, но не обладает хорошим логарифмическим мышлением. А второй наоборот - имеет среднюю мотивацию к изучению, но очень хорош в математике и логарифмах ? Вопрос веду к тому, что более ценно в программировании - фанатизм, усидчивость или с рождения умение решать хорошо задачи и качественно ? Но выбрать можно только одно.
Я на собесах задаю подобные вопросы и все факапятся)) Все знают про СОЛИД и ни один про память и как все устроено) Но честно говоря, для продукта, который разрабатываем мы, это и не надо, потому берем, даже если человек не знает основ, главное чтобы код показал....
Я себя считаю вообще нолячим трейни, но когда я вижу, что человек, который находится на тестовом периоде в компании не знает отличия между стеком и кучей, у меня возникает много вопросов. Хотя со стороны видно, что он показал какие-то конспекты, какие-то книги читал, но все, что ч выше перечислил - это элементарщина из видеоуроков, на ютубе
где ты нашел информацию про тестовый период в компании? Это собеседование спустя год изучения интервалами неделя учебы через 3 месяца отдыха и 1 месяцем целенаправленной учебы), т.е. по факту времени где-то 2-2,5 месяца. За это время изучены только курсы, метанит. К собеседованию целенаправленно не готовился, просто было интересно что спрашивают на тот момент по C#, к чему готовиться, насколько досконально спрашивают теорию, которая никогда не пригодится и т.п. Если ты знаешь все, что спросили тут и у тебя есть практика, как у меня была на тот момент, потому что я именно практику делал, я на тот момент за 2,5 месяца сделал 3 прототипа игр на unity + C#, штук 20 различных консольных приложений, 3 приложения на wpf, одно на asp net core. И, честно, ни в одном не понадобилось именно определение из книжек стека и кучи, знания реализации стринги и стринг билдера под копотом и т.п. Вполне достаточно знаний о том, что есть разные области видимости переменных, знание, что есть IDisposable объекты, есть объекты на которые хранятся ссылки в памяти и их нужно обнулять вовремя. Я лично, спустя 2 месяца после этого собеса подтянул знания, ещё больше практиковался и устроился на работу и по сей день работаю, так что и тебе советую устроиться, потому что в этом собесе большинство базы есть, а некоторые вещи даже на уровне senior задач спрашиваются.
Касательно ИИ, у OpenAI уже есть ИИ, который интерпретирует текстовые команды на натуральном языке в готовый код. Например, ему говоришь: "напиши программу, которая проверяет является ли строка палиндромом", и он выдаёт непосредственно код, например, на питоне. На ютубе есть их ролик, вроде
Он просто шаблоны тебе выдает, это не ИИ который пишет осмысленный код, до этого еще далеко, современным процам и накопителям, так и подавно, лет (вы столько не проживете) можете быть спокойны господа)
@@ЕвгенийГорелов-е1з Не совсем понял про шаблоны. Что вы понимаете под этим? Ему написали: "сделай так, чтобы игрок мог двигаться вправо-влево стрелочками" и он написал соответствующий код с нуля, о каком именно шаблоне речь?
@@anonim1788 такого нет, есть хня, когда ты набираешь начало функции или название и она варианты предлагает, то что вы выдели просто рекламная байда, с оправданием типа "это прототип, но если вы нам дадите денег, то мы уж точно сделаем...."
@@ЕвгенийГорелов-е1з Вы уверены, что мы говорим об одном и том же проекте? Почему Вы говорите, что такого нет, если буквально то, что я написал, есть. Они даже раздают демку
var s = “a”; var s1 = s; s и s1 ссылаются на один объект. Но var s = “a”; var s1 = s + “b”; ссылаются на разные объекты. Таблица интернирования строк !
"var s = “a”; var s1 = s; s и s1 ссылаются на один объект" - вы не правы. В данном случае это не ссылка, а копия. В новую переменную копируется значение другой переменной. Так в JavaScript, C++, C#.
Скорее всего не сможешь и это будет нормально. Объем знаний который он спрашивает какой то неибический. я 3 года уже работаю и даже на половину фиг отвечу с наскоку. На самом деле когда хуячишь в прод , большинство из этих знаний не пригождаются и вылетают из головы через месяц. Чтобы уверенно рассуждать на все эти темы нужно не уметь писать код, а уметь проходить собеседования. Эти навыки пусть и частично перекрывают друг друга , но по большей части они разные. Более того , я закинул видос в чат и у нас даже синьоры сказали что это как то слишком круто для джуна.
так стопе. С строками какая то лажа. Как это при при вот таком у нас два разных объекта будут? объект один и ссылка в пуле на него var s = "test"; var s2 = s; Console.WriteLine("s.GetHashCode= " + s.GetHashCode()); Console.WriteLine("s2.GetHashCode= " + s2.GetHashCode()); Console.WriteLine(s.Equals(s2)); Console.WriteLine(s == s); Console.ReadLine();
@@SBeregovoyRU даже без интернирования строки копируются по ссылке. С интернированием у всех одинаковых строковых литералов одинаковая ссылка, т.е. изменив литерал в одной ссылке, изменяются все строковые литералы в других ссылках, все в рамках safe кода.
На вопросе "36:18 - Какая особенность при передаче ссылочных типов? Ссылочные vs значимые типы.". Вы спросили, будут ли 2 строки ссылаться на один и тот же участок памяти, вы отвечаете нет. Если 2 строки привести к object и сравнить в ReferenceEquals то будет true, а ReferenceEquals как раз таки сравнивает равенство ссылок. Разве здесь не работает правило интервирования строк ?
По поводу string. Да он immutable class, но в нем реализован паттерн flyweight, есть внутренний механизм интернирования строк. Если string s = "привет" и string s1 = "привет" - то это автоматически не схлопнет в один экземпляр на куче и s и s1 разве не станут ссылаться на один и тот же объект?
Интернируются автоматически только строки, которые заложены во время сборки. Строки, образованные во время исполнения не интернируются, и на то есть причина - это неоправданно дорого. Рассмотрим простой пример, где есть определенная область взаимодействия с пользователем - обработчик запроса в asp net. Допустим, мы хотим, чтоб мы взяли из запроса две строки, сложили их и вернули пользователю. Если бы дотнет интернировал строки, полученные в рантайме, то по окончанию запроса две изначальные строки и одна итоговая останутся в памяти, так как они интернированы. Получается, каждый запрос увеличивал бы использование памяти на три строки. А что будет, если произойдет тысяча разных запросов?
Не думаю что вы ответите, НО ОЧЕНЬ ХОТЕЛОСЬ БЫ. Перерыл пол интернета, но адекватного ответа не нашел. Почему все таки в типе decimal при добавлении 10 раз числа 0.1 будет не 1.0?..Компилятор боится лишний раз превращать десятичную дробь в целое число? Я знаю что double и float округляют значения после 6 и 15 цифры после запятой, но ведь тут четко написанно 0.1 а не 0.999999999...
Это не компилятор и его особенности. Это особенности работы процессора и вообще устройства чисел с плавающей запятой. Есть видео на эту тему у Тимофея Хирьянова. Точно в каком видео не скажу
Да, как говорил Михаил Портнов, отвечайте только то что вас спросили и не давайте лишнюю информацию) Если спрашивают знаете ли вы сколько времени, надо отвечать да, а не называть время, ибо вас спросили знаете ли, а не сколько сейчас на часах))
Что Я сейчас посмотрел? Что это было? Что за вопросы? Это был Анонс. Выпал с вопроса, Какие свойства есть у Обжекта? Что? Зачем это знать, какие это дает плюсы? Мы что проверяем тренированность памяти? А если Я их не знаю, но понимаю как работают. Просто Я их использую на таком автомате, что вряд ли вспомнить смогу сразу. А где вопрос тогда, - Вот Мы нажимаем на ярлык студии, что первое запускается, какой процесс стартует и запускает остальные? Мне лень разбирать каждый вопрос, там через один муть полная. 90% вопросов это вообще неочем. Особенно побитовые операции, да они используется раз 5 лет, решают 0.9% процента задач. Для какой цели этот вопрос? Это все человек получить и поймет после полу года работы в нормальной команде. Каким образом на навыки половина вопросов влияют? Это теория которая приходит с опытом. Учить насильно ее не получиться, спрашивают всегда разное. Все вопросы разбирать не буду, как сказал автор: Ну потом посмотришь, изучишь. Дополни вопросы: 1)базовые понятия ОПП(наследование, полиморфизм - можно примеры какие нибудь быстрые чтобы реализовал, инкапсуляций - тут базовые понятие зачем(а то Я как то видел код где все паблик, во всех классах, все классы в заголовочном файле написаны, сиди потом сам понимай что там)) 2)IoC, DI, IoC-контейнер 3)повышающее приведение типа 4)делегаты лучше просить показать пример, чем спросить теорию 5)Знания паттернов 2-3 любых. 2-3 знать и уметь реализовывать, остальные названий хватит 6)Библиотека классов, для чего нужно и шо это такое 7)Интерфейсы, абстрактные классы. Шо, зачем, когда. 8)Гит, шо, где зачем 9)Конвертирование и повышающие приведение, разница. 10) Ладно вот еще одни так и быть. Джинерики, как где зачем Да вроде хватит, потом посмотришь, изучишь дополнишь. Еле еле досмотрел, парня жалко, что он попал на собеседование к человеку который похоже пришел тешить свое чсв ну или Я не понимаю для какой цели половина вопросов. На 90% процентов Я отвечу включив студию и за секунду прочитав описание ну или методы какие есть. Для программиста важно: Мотивация Работоспособность Обучаемость Терпение Аккуратность Желание совершенствовать навыки Стрессоустойчивость вот с такими умниками 2 часа выдерживать разговора где за счет тебя реализуют своё чсв. У парня как минимум 3 из 6 есть. Особенно терпение, Я в 4 этапа смог только досмотреть. Как парень только после 30 минут не ушел Я не понимаю.
Я вот тоже думал, что на собеседовании будет спрашиваться в основном то, что реально используется в работе, т.е. немного про типы данных, дальше по ооп, про делегаты, события, потоки в шарпе, про дженерики, про ооп 3 столба, подробно про полиморфизм и инкапсуляцию можно, абстракцию, интерфейсы, паттерны, хотя бы основные типа mvc, di, fabrica, singleton, линк спросить, про бд спросить, про транзации, да и уже по рабочей технологии основы, тут на выбор asp, wpf, unity, ну и смежное, если с вебом, то про http, если с wpf, то про windows. Ну и гит, да. Можно по архитектуре пробежаться немного, принципы SOLID спросить и когда их разумно применять. А оказывается, что на собеседованиях спрашивают много теории, которую так сходу всю и не вспомнишь и если ты сидел и тупо делал задачки, писал код именно, гуглил много, а не заучивал книжки, то не пройдешь собеседование) Про то, как я продержался: для меня это не выглядело, как реализация своего чсв, для меня это было так: со мной делятся теми вопросами, которые спрашивают, которые надо бы знать, чтобы устроиться на работу, чем больше пробелов я нашел бы у себя, тем эффективнее прошло собеседование.
@@VetalGimbarr чсв реализовывал тот кто проводил собеседование. Для какой цели эти вопросы, и что даст знание 80% процентов ничего. Толку от знаний если их не применяешь. Я могу этому мужику так же провести собеседование, подготовлюсь за неделю найду самые дебри и устрою забег с препятствиями. Два или три вопроса на базовые вещи, остальное из разряда - а с какой ноги вот вы из дома выходите? Или как вы дышите как происходит это? Парень который отвечал если это ты вы держался нормально, то что не ответил это не страшно. У вас собеседование проводили не чтобы понять уровень знаний а чтобы повысить свое чсв, спросить нахрен не нужные не используемые вещи, которые чтобы знать надо просто за час сесть и прочитать все.
В целом хорошо, но как то мало про .NET, где про CLR, компиляцию программы, сборку, модификаторы доступа, дженерики, коллекции, linq. Лучше вместо partial классов, спросил бы, например, про отличие абстрактного класса от интерфейса. Про TPL тоже стоило спросить, не согласен с тем, что это не надо трогать, общее понимание должно быть, хотя бы что это такое и зачем нужно
В чем отличие абстрактного класса от интерфейса - самый заезженный вопрос. И особенно бесит, когда правильным считается ответ "Класс наследуется, а интерфейс имплементируется". Увольнял бы собеседовальщиков за такое.
27 минута. Написал гавнокод безобразным стилем, и спрашивает что с него будет. Хорошо что сам не запутался пока писал. По рукам дать некому. Конец вобще убил. Социально адекватного кодера он ищет. Мужик у тебя самого то все дома?)))
Аналогично, у нас многие джунов не читавших Рихтера даже рассматривать не хотят и часто гоняют по паттернам и внутреннему устройству самой платформы, причем далеко не верхами. Вспоминая как я заканчивал универ 5 лет назад, у нас 80% были нулями и ушли в макдак, процентов 15 максимум с гуглом и косяками вывезли бы сделать калькулятор, ещё процента 4 смогли бы запрограммировать алгоритмы быстрой, пузырьковой сортировки, бинарный поиск и алгоритм Дейкстры, на этом всё и вот только один на сотню был такого приличного уровня. В итоге почти все кто хоть что-то умел как-то устроились на последнем году обучения через приходивших в универ рекрутеров, а вот самый умный чувак, имея награды за проекты, возможно из-за скалада своего характера, оказался за бортом и пять лет работает за 20к руб сис админом в поликлинике.
Здравствуйте. Вы упоминали в вопросах про объекты что вроде как в стеке хранятся некоторые метаданные этих объектов. Не могли бы вы кратко сказать, что это за данные и по каким тегам о них можно найти информацию?
1. Категорически не согласен по поводу того, что софт-скиллз не тренируются, и по поводу оценки АДЕКВАТНОСТИ человека исходя из рассказов об опыте. 2. По кандидату в целом - очень слабо и поверхностно, но видно, что парень старался, развивался, а это самое главное в обучении. 3. В целом же, ценность подобных "интервью", равно как и аналогичных по стэкам Java, Python etc, стремится к нулю, так как заучивание теории не даёт реальных знаний, и не даёт интервьюеру оценить реальные боевые качества, навыки и потенциал интервьюируемого. 4. Все вышесказанное является отражением личного опыта и субъективным взглядом, и не претендует на истину ни в какой степени. Удачи кандидату в начинаниях, а индустрии пожелание оздоровиться и быть в целом поадекватнее (в осуществлении чего сильно сомневаюсь).
Это вообще все глупость. я знаете кодил на Делфи, не учил его, просто по базе с Паскаля что-то пробовал писать и смотрел примеры на форумах. Так и кодил. Понятия не имею ссылочный там тип строка или нет, но просто по опыту знаю ,что строка по умолчанию получает пустое значение строки, а если присвоить одной переменной вторую переменную, то это будут две разных переменных, т.е. как бы две разные строки. При этом Си шарп тоже самое как понял, но при этом какое то глупое душнилово в книгах и на собеседованиях. Зачем мне это знать? Если один раз написать код более менее объемный, то человек без книг поймет что такое строка, а что такое int. Как подобные вопросы вообще могут проверять скил джуна? По вашему я в делфи полное днище, при этом я писал там и парсеры и программы на несколько тысяч строк и с графикой работал. Мне кажется программисты в компаниях - это поехавшие люди, может я лучше код напишу и покажу с комментариями что он делает, а вы уж судите потом знаю я что-то или нет. А задавать вопросы тупые про теорию, да еще связанную с ассемблером или устройством tcp/ip, так это полный бред. Отдельной строкой идут тесты на алгоритмы и решение задач, которые нигде не применяются никогда. Просто бред сумасшедших, напоминает историю с дипломами. Вы хотите у нас работать и высокую зарплату? Давайте диплом МГУ, а опыт работы нужен, но как бы вы диплом покажите. Какое-то писькомерство.
Кошмар, собесы на джуна самые душные. То ли дело на сеньора, посидели, обсудили прошлые проекты, задачи, решения и разошлись, ждешь оффер. Никаких тебе зачем дабл и децимал.
Смотря в какую компанию, в большинстве случаев на джуна гоняют на порядок сильнее, почти наверняка спросят про многопоточность и асинхронность, могут спросить про сокеты, особо отбитые интервьюверы могут ещё в и сторону паттернов проектирования зарулить.
Зависит от компании. Где-то джун должен написать свой модуль для IDA Pro. Где-то - сказать что-нибудь о том, что float - это не то же самое, что double.
Оценим шансы кандидата получить первую работу. Как по вашему, возьмут на работу с такими знаниями или надо еще доучивать?
Junior гоняют серьезней чем На Middle, проходил через это
@@artemartem6993 Как думаете, почему так?
@@SBeregovoyRU ну в принципе, этому есть объяснение, чаще, джуна берут без опыта, и чтобы понять какая у него база, логика такого количества вопросов есть. Однако, Я бы больше обращал внимание на его софт скилы, на умение коммуницировать и знание английского.
Можно я следующий - тоже так хочу ))) Только из Юриста в Программисты =)) Да еще и в 34 =)
@@lerokanz3482 Возраст в этой сфере не важен) Всегда учишься.
Очень познавательно. Посмотрел пару собеседований на вашем канале.
Как предложение: заморочьтесь с монтированием, и там где кандидат не ответил, или ответил не всё, вставляйте врезки "как бы я ответил / какой правильный краткий ответ", мне кажется поможет поднять популярность видосов
в топ)
Мне кажется я тут прокомментировал почти все вопросы или по крайней мере дал наводку на ответ.
Главная проблема такого подхода в том, что ответы на эти вопросы ты никогда не запомнишь при таком подходе "все в одном месте". По хорошему необходимо ставить на паузу после каждого вопроса, отвечать на него, гуглить вопрос, удостовериться в правильности ответа, продолжать смотреть. Если ответ не верный - выписать на листок этот вопрос. От того, что ты загуглишь лишний раз ты только лучше запомнишь и не будешь мандраж от сомнений ловить)
Совет действительно годный
че он еще должен? спасибо и за то, что уже заморочился сделать видео...они ему еще советы дают
Работаю мидлом. Смотрю собес джуна и все равно пару новых вещей узнал) Спасибо
побольше таких собесов! ставлю на паузу и отвечаю сам) помогает. Если ответы еще будете выводить на экран, как бы вы ответили, цены бы не было) спасибо)
Очень здорово 👍 побольше бы такого контента. я так погрузилась в это собеседование, что меня даже потряхивало немного) как будто я на месте этого парня собес прохожу)
Отличная рубрика! Помогает понять, на что делать акцент, когда готовишься к собесам. По ощущениям, джунов гоняют на собесах сильнее, чем мидлов.
Когда проходил собес на мидла, это скорее выглядело, как диалог о том, что я делал на прошлом месте работы, с какими проблемами сталкивался и как их решал.
Когда ты джун, нужно доказать, что ты сможешь сам решать задачи - что добавляет сложности, т.к. это тяжело проверить.
Виталий, удачи тебе, заполни пробелы в знаниях и у тебя все получится!
p.s. привет из Тольятти)
У нас джунов гоняют даже на порядок больше чем в этом ролике, глянул как-то вопросы у нашего теха на столе, а там в стиле какие паттерны проектирования вы знаете и расскажите о них. Потом в стиле, что вы можете рассказать про паттерн фабричный метод. Ещё до кучи вопросы про триггеры и хранимые процедуры в SQL. Не особо понял зачем джунов этим грузят, дать простые задания и посмотреть как решает, а дальше в процессе работы уже втянется) Ну не суть. Приходил к нам как-то человек, хотел устроиться на позицию джуна, технически всё делал правильно, тестовое задание тоже все выполнил отлично, видно что мозги работают как надо. А вот речь не поставленна, запинается, плохо формулирует мысли, не может объяснить и техническими вопросами до кучи допинали. Сказали ему что он не подходит и ему ещё надо подучиться, а через пару дней его взяли в нашем же бизнес центре в другой компании на ту же позицию. А наши вместо него взяли чувака который разбирался кое-как, зато язык был подвешен и уверенности будто он второй Марк Цукерберг и красный диплом вишенкой на торте. Как итог, за 3 с небольшим года тот первый парень вырос в крутого спеца, из серии "было скучно, выучил за ночь норвежский", а наше второе пришествие Марка Цукерберга уволили не продержав и месяца потому что он был необучаем и считал что уже всё знает.
@@timtom489 поучительная история, и пишете вы классно)) 👍
@@timtom489 Прям поставил бы +миллион к вашему комментарию. Действительно, от программистов, в том числе и потенциальных, не стоит ждать супер подвешенного языка. Рад за того парня, который попал в ту компанию, где вырос
@@timtom489 Это говорит о том, что компании, в основном, хотят, чтобы джун в теории разбирался на заебись, Это бред. Джун на то и джун, чтобы на работе многое изучать. Стажеры и вовсе почти ничего не знают. В баню. Этому челу нужно на уровень миддла собеседоваться, если он практик, конечно. Там не будет дурацких теоретических вопросов.
@@timtom489 я удивляюь, откуда джун будет помнить фабричный метод, когда у него практики мало. Для того, чтобы запомнить паттерн, нужно его пару раз на практике попробовать. А этих паттернов общеизвестных десятки. Пока все опробуешь, уже года полтора продет. Уже нужно будет на позицию миддла устраиваться, а не юниора.
"Если пропускаешь базу, то потом специфичность становится магическим!", - хорошо сказано!
Можно базу не пропустить, а часть базы забыть. Например, я неплохо знаю С++ уровня 2014 года. С# немного знаю. Если спросят по плюсам, на которых я прагаю совсем не часто, не факт, что на все теоретические вопросы я отвечу. Если спросят про С#, на котором я тоже прагаю редко, то я не отвечу на треть теоретических вопросов. Вот так. Нужно дать тестовое онлайн и посмотреть как он справится с ним. Офлайн тестовое на несколько часов без оплаты - плохой тон.
Интересный и очень полезный ролик для тех, кто только начинает карьеру. Но, возможно, некоторые вопросы слишком широкие для джуна. К примеру как работает сборка мусора. Очень обширная тема, начиная с простого упоминания поколений, режимов работы GC и заканчивая наличием allocation context и причин выпадения OOM. Кажется, что для джуна может быть сложновато. По мелочам, про Using. Развернется он не в try/catch/finally, а в try/finally - но мелочь, просто небольшая придирка с моей стороны)) И мне кажется, что для джуна жестковато подразумевать, что он полезет на старте изучения в IL-код и будет смотреть, что во что разворачивается)) По поводу рекомендации изучить как работает стек и куча - отличная рекомендация, которая действительно поможет в базе понять, как аллоцируется память и как там размещаются данные.
Возможно, на базовые важные вопросы парень и не ответил, но в целом кругозор весьма неплох, подтянется немного и пойдет дальше, я считаю, что держался весьма достойно.
В общем, Степан, большой респект вам за подобные видео, я думаю, что многим начинающим будет полезно посмотреть. Но не с целью понять и заучить, а что же спрашивают на собеседованиях, а с целью изучения именно того, что первоначально нужно для начала нормальной работы.
У меня опыт 2 года и то некоторые вопросы пошел гуглить. Люблю такие видео, т.к. помогают развиваться.
+++ аналогично
Тут ситуация как с вождением, водить все умеют, а отправь сейчас повторно на экзамен по вождению и если повезет то может треть с правами останется)
А это потому что спрашивают ненужную чепуху которую не используют в реале.
парнишка молодчина, желаю ему успеха в его цели)
Спасибо, Сергей, за ваш канал. Видео интересное, парню удачи в обучении и поиск работы. Данный формат видео - золотая жила. И было бы здорово, если бы вы озвучивали правильные ответы если собеседник ошибается
37:58 тут ошибочка, строка работает так же, как и все другие ссылочные типы, то есть если присвоить одну строку к другой, то они будут ссылаться на один и тот же объект в памяти.
Мало того, благодаря такой штуке, как string interning, даже
str1 = "foo";
str2 = "foo";
Будут ссылаться на один и тот же объект. И даже
str1 = "foobar";
str2 = "foo" + "bar";
Ссылаются на один и тот же объект (то есть когда конкатенация может быть выполнена на этапе компиляции)
К собеседующему претензия, что если кандидат не отвечает на вопрос, он должен сам ответить, потому что такие ответы усвоятся сразу и надолго! Так делают в нормальных компаниях, а не то, что собеседующий всегда отвечает "Ну там потом почитаешь". При таком ответе собеседующего у меня возникают вопросы к его компетенции!
Ну собеседующий к тому же часть вопрос сам смотрит с тетрадки или с чего то еще)
я на собесах всегда тупо спрашиваю а какой правильный ответ и почему, 20 собесов и считай книжку прочитал 5 раз))
@@MrNBelkovхарооош)
Miposhka пробует себя в програмировании, честно сказать не ожидал, но парень молодец даже после победы на TI 10 всё равно ищет разные способы реализации!
Честно вообще не похож
Шикарно, чем жестче, тем интереснее и полезнее, спасибо!
Спасибо большое, даже несмотря то что собеседование об C#, помогло мне вспомнить некоторые детали Java. Немного было сложно понимать некоторые вопросы из за недостатка незнание слов на русском, так как изучал на итальянском..
Ля сеньор, муча грасиэс дэ компайлер
Отличнейший формат . Кандидату спасибо за смелость ,ты очень не плох . Жду интервью о твоей первой работе разработчика 👍
А вот тут проблемка будет, нужен опыт, а чтобы был опыт нужна работа))
@@denisn6408 ну как то люди начинают работать ,иначе бы никто и не работал 🤣
@@Ruslan_Ishmuratov по факту, конверсия очень маленькая.
@@denisn6408 а вы сами работаете ?
Уже работает) Мой коллега)
Интересный ролик, полезный, спасибо автору.
У меня в том году было 4е собеседования, 2 - на XAMARINе, 1 - Fullsteck и 1 - WPF и Backend. И ни на одном у меня не спрашивали то чего спрашивали в первой половине видео, спрашивали про опыт про паттерны, показывали код или я показывал код, для последнего собеседования сделал тестовое задание. Про GC спрашивали на двух собеседованиях, почти везде про DI, ну и про ООП
взяли хоть на работу
Спасибо за видео, Степан. Очень познавательно. Сам хочу свитчнуться (36) и ожидаю своего 4 технического собеса. две трети вопросов из озвученных здесь мне никогда даже не задавали, никогда не знаешь что тебя ждёт.
как успехи?
@@yourownazog8069 предлагали тогда идти на qa я чет отказался :) сижу дальше ищу
@@Tinyismyson то есть, вы пошли на собеседование, немного его завалили и вам потом сказали, что .NET разработчиком взять не могут, но могут предложить работу (стажировку) QA C#?
@@Tinyismyson вы уже больше 4 собеседований посетили?
@@yourownazog8069 ага, теперь пробуюсь поварится в опенсорс, на проекте space station 14. Как начну читать его без проблем - попробую еще раз
Душнилово собес. Всегда поражался с таких уважаемых. Я б спросил работу с памятью, оптимизацию, паттерны, структуры данных и вуаля. Беги парень от таких собесов)
С такими собесами на джуна, лучше сразу на мидла идти)))
Прикалываешься? Парень ноль полный
@@SergFreest Это ты прикалываешься? Если бы парень был полным нолем, то он почти ни на один вопрос правильно бы не ответил. Ноль это ты, скорее всего. Теоретически может быть ты и не ноль, а по практике около ноля. Знаю такие конторы, которые только по теоретическим знаниям берут. Потом увольняют таких работников.
Спрашивать про оптимизацию, работу с памятью у человека претендующего на позицию джуна?)
Ну вроде обычный собес, что бы прощупать
Гораздо прикольнее когда себеседующий отвечает на вопросы а не просто говорит - иди почитай.
а что гениально и умнее кажешься хD
37:57 нет, при присвоении строки копируются по ссылке, другое дело, что изменить их внутренне нельзя, потому что они неизменяемые (immutable), у них нет состояния, а при присвоении литерала в новую переменную попадает новая ссылка, поэтому в старой переменной остается прошлое значение
Изменить при желании можно)
string s1 = "Привет";
string s2 = s1;
bool EqualsResult = Object.ReferenceEquals(s1, s2); // TRUE
@@Hunter314414 Нет, строки копируются по ссылке. Правило интернирования действует только на известные во время компиляции строки (т.е. на константы) и тогда, когда вы явно вызываете String.Intern.
Кандидат держался достойно, видно, что сейчас изучает многие вещи и имеет стартовые знания.
Но при этом ни раз кандидат говорил КАК делать правильно, но не мог капнуть и рассказать ПОЧЕМУ.
ИМХО, я бы рекомендовал не зацикливаться на книжках, а закрывать именно те пробелы, что вскрываются на подобных собеседованиях.
Можно даже попробовать еще пройти где-то собеседования и понять какие вообще знания сейчас нужны на рынке. Посмотреть на какую сумму могут оценить текущие знания и понять, что нужно подтянуть, если хочется прыгнуть выше. Или же просто посмотреть статьи на Хабре на тему собеседований, изучить список типичных вопросов и ответов.
Давайте не путать собеседование с экзаменом. Экзамены в университете, в результате которых заносится оценка в ведомость и выдается диплом. Спрашивать на собеседовании часами - не только глупо, но и портит репутацию компании. Так как рабочее время расходуется неадекватно. Засиживаться на работе ради вас часами никто не будет.
А сколько обычно такие собесы отводится времени? Или они дробятся, сегодня познакомились пообщались с hr, бабки мотивация , цели, в другой день уже техническое собес и потом тестовое?
@@zergzerg4844 Тестовое не везде есть. Тестовое, если оно офлайн, не должно выполняться за бесплатно. Особенно, если на его выполнение уйдет больше 1-2 часов. В крупных компаниях собес дробится на, минимум, 2 части: 1) hr; 2) техническое интервью. По видосу видно, что контора не далеко ушла от шараш-монтажа.
Собеседование обычно 1 час максимум и их обычно 3 штуки:
1. с HR - до получаса,
2. С техлидом - до 1 часа. Вместо этого может быть назначено тестовое (отдельное время и степень неадеквата тут может быть самой разной как по времени так и по задачам) + разговор по тестовому заданию.
3. С принимающим на работу - разговор по деньгам + подписание документов, если готов сделать это сразу - до получаса.
Согласен. + Вопросы лушные, я бы уже на втором вопросе ливнул. Что будет если поделить 2 на 3 в INT. Брет блять. Бан будет, достаточно знать что нехер в целочисленный тип, сунуть результат деления, даже если он без остатка.
@@eduardlazarenko7910я вообще считаю, что не нужны эти вопросы на собеседованиях, пустая трата времени. ничего они не дают
Отличное видео, полезный контент, интересно временами посмотреть коллег по цеху, познавательно) 👍
Знания как для начального уровня хорошие, кандидат молодец!
еще раз вам спасибо ! очень хочется с вами по общаться в свободное время !
Парень молодец, очень много знает для джуна, с вопросами про стек и кучу не ответил, это серьезный минус, еще не был задан вопрос про "ref и out" параметры, как они изменяются в методе, это тоже часто спрашивают. Если отталкиваться от знаний шарпа, то много тем было пропущено, да и вообще оценить уровень фундаментальных знаний в шарпе не так уж и просто, при желании человека всегда можно отсеять, если копнуть чуть глубже, хотя бы до уровня Рихтера. Для быстрого "въезда" c# не подходит, так же как и c++ или java, другое дело python или рhp, парню однозначно уважение и надеюсь ему повезет с работой, потому что фундаментальные знания это хорошо, но даже они без практики быстро забываются, а вечно учить теорию не возможно, через какое то время одна информация, начнет затирать другую.
Автору спасибо за ролик, я как человек с опытом в шарпе для себя некоторые вещи новые узнал.
Спасибо за поддержку :) про стек и кучу я потом посмотрел и я бы не сказал, что эти знания сильно помогают в работе, если до этого я знал про то, что вэлью типы работают быстрее, что они копируются при передаче в метод, а чтобы не копировались нужно передавать с ref, что out параметр кидает значение в переменную метода, помеченную, как out, что ссылочные типы наоборот не копируются при передаче в метод и нужно делать велосипед в виде var ... = new ... {New.p1 = old.p1, ... }. Когда знаешь про область видимости переменных в методах. Я копал как бы в практические, так сказать, постулаты, применения методов, но не в их причину. Через стек и кучу можно в это зайти и будет даже быстрее понимание. Но само здание что стек это быстрая память приложения, а куча память компьютера и что в стеке хранятся вэлью и ссылки, а в куче значения ссылок, не рассматривая исключения, типа когда программист зачем-то сделал структуру и засунул в нее 3 ссылочных типа и подобных штук, не помогает в работе. Я учил, получается, именно как можно делать и как нельзя делать по причине просто потому что опытные ребята так сказали, если копнуть глубже то там оказывается вот теория про память, которая не применяется, а если ещё глубже, то там будет уровень ассемблера, а ещё глубже физика процессора и разных поколений. Но при этом я выбрал C#, как высокоуровневый язык как раз, чтобы не копать туда, я мог бы выбрать Си или ассемблер и я пытался в них разобраться, но это просто не интересно было. Мне нравится делать рабочие прототипы программ, чтобы данные удобно водились пользователем, ошибки обрабатывались, на сервере все тоже хорошо обрабатывалась, приложение работало быстро и приносило пользу. В последнее время мне ещё стала интересна тема архитектуры приложения и я туда копать стал, но никак не в более низкий уровень. Этому и ответы такие были. Ну и собес был чтобы закрыть свои дыры как раз.
Если провести итог, то я редко хочу узнать, что лежит под копотом штук, которые дали разработчики языка или разработчики nuget. Для меня главное, чтобы они работали так, как указано в их документации. Детали реализации там обычно никто не указывает. И всякие вопросы по типу: а во что разворачивается out на уровне il кода? А на asembler? А как это на процессоре передается? Или аналог про слова string, int, delegate, new, this, event, using, class, virtual и т.д. Завалить можно, как ты сказал, на чем угодно, если копнуть поглубже, согласен.
@@VetalGimbarr На практике большинство из того что спрашивают на собеседовании редко нужно, даже если затрагивать тему оптимизации, то пока у тебя все работает, то заботится о ней не нужно, а все эти вопросы только для того чтобы пройти собеседование, я не так давно проходил собеседование в один крупный банк и у меня все это спрашивали, понятно что везде разные требования и junior это надолго пока не научишься не только повторять это, но и думать в контексте этих данных. Но ты молодец и советы коллеги тебе дают хорошие, удачи.
@@darkcrusaderzxc Согласен)) НО, если появится "узкий" кусок кода, ты не сможешь его оптимизировать, если про память и ASM ничего не знаешь)) Другое дело, что вряд ли в работе современного "бэкэндера" он появится)) На моей практике, такие куски кода появляются только в моих домашних проектах, вот последний раз писал A* для поиска пути на большой карте, для моего бота WoW, там пригодилось, все-таки граф в 100 000 000 нод - это не шутки)) Бизнесу нужны тупые, повторяющиеся действия, высшая математика и знания компуктера почти не требуется)) Особенно смешно, что современные "Веб-программисты" мидл уровня даже не знают как сеть работает, а зачастую не смогут даже HTTP запрос в блокноте написать, ну а что такое маска сети это вообще тайна)))
Чтобы ответить на вопросы про стек и кучу нужно знать С++ хотя бы на более-менее сносном уровне. Он его явно не знает.
Интересно, а что делать если собеседователь неправ?) Как, например на 38:00 . s2 в данном моменте будет иметь ссылку на ТУ ЖЕ строку что и s. Отличается только поведение при попытке "переписать" строку, так как она immutable.
Говоришь, что собеседователь не прав и доказываешь.
Привет! Спасибо за интервью, но я так и не понял почему на 37:30 говорится, что ссылки будут указывать на разные объекты в памяти? Они же будут ссылаться на 1 обьект. В данном случае строки ведут себя как ссылочный тип
Насправді дуже круте відео, дякую за такий контент.
рад, что видео полезно для вас
спасибо. Отличное видео)
Так про строки собеседующий сам не в курсе. Когда пишут
string s = "a";
string s1=s;
Не будет создаваться новая строка для s1. Откуда вы вообще взяли это?
При конкатенации да, будет, но не в этом случае. Это блин принципиальный момент, можно сказать идеологический
Читаю книгу Троелсена и оказывается там описано все что было бы на собеседовании
Про свою жену и детей он там не пишет?
@@TheNofxsss вроде нет у Рихтера(CLR) вроде бы написано о своей семье
Спасибо. Видео очень полезное.
string s = "привет"; string s2 = s; - ответ не правильный! ссылаться будут на один объект т.к. есть такая штука, как интернирование! и строки изменить можно небезопасным кодом, но потом не только поменяются значения всех её переменных, но и вызов и присвоение неизменённой версии будет возвращать всегда изменённую!
Это какой язык? В C++ и C# не так. В данном случае переменная s2 не будет ссылаться на переменную s. В C++: string & s2 = s - будет ссылаться на переменную s. В C#: ref string s2 = ref s.
@@vladimirandreev9022 Это какой язык? В английском не так. В данном случае вообще буквы не из того алфавита.
@@vladimirandreev9022 так тут и не написано, что переменная s2 ссылается на переменную s! Они обе ссылаются на один и тот же объект в памяти, и если изменить переменную s = "пока", то только она будет указывать на новый объект в памяти, в то время, как s2 будет хранить старое значение, тобиш "привет".
Все опнравилось, но честно говоря, первый вопрос очень с float/decimal/double душный. От кандидата я бы просто хотел услышать в таком случае, что при работе с критичиски важными арифметическими операциями нужно граммотно подходить к типам данных чисел. А валидный тип можно путем поиска инфы в гугле найти
Сергей, борода Вам очень шла к лицу.
Надоела
Но отрастает быстро) Если че дело не долгое :-)
@@SBeregovoyRU не стоит вестись на чужое мнение. Будь собой
Это на Junior или на Middle?
Для Junior вполне нормально - я бы его взял
ну нормальный пацан на самом деле.
по теории проседает, но на практике вроде какой-то опыт есть - а теория она приходит по факту.
ко мне приходили на мидлов и похуже :)
и я вообще с позиции swift на все это смотрю, некоторые моменты удивляют, но в целом все достаточно похоже, ну за рядом отличий, например у нас сборки мусора нет - есть ARC и по нему обычно хорошо гоняют на собесах. по факту это просто retain release на этапе компиляции, но многие "мидлы" думают что это какой-то там цикл в рантайме ( некоторые даже ранлуп вспоминают ради этого ), который убивает мусор.
забавно что у нас была одинаковая реакция когда он упомянул про наследование и про DI - я тоже втупил и аж на паузу поставил чтоб осознать :)
спасибо, интересно вышло, лайк от СЕООНЛИ
Мне страшно представить какие вопросы задаются на собеседование джуна C++
сппсибо вам огромное !
Степан, можете оставлять вопросы с таймкодами, спасибо за выпуск!
26:18 порядок булевых операторов же, сначала идёт &&, потом ||, те понимание различия есть, но ответ абсолютно неправильный. Т.е. в первом выражении если A=true, то дальше ничего не проверяем
Вопрос был про разницу между && и &. Весьма странный комментарий)
@@VetalGimbarr Ну те по вашей логике, если вас спрашивают про правило жи-ши, а всё остальное предложение написано абсолютно неправильно и с ошибками 1 класса, то плевать, главное то, про что спросили?
@@DardellX эм, разумеется, про что спросили, про то и ожидается ответ. Котлеты отдельно, мухи отдельно.
Очень хорошее видео, Спасибо!! Смотрю и вижу, что было с моей стороны правильным решением изучать С++ по видеолекциям с торрента. После них нет вопросов по массивам и типам данных. Видимо в лекциях по С# это упускают. Кодить приходилось кустарно и на С++ и больше всего на С#.
Мне одному кажется, что Виталий его сын?)
Почему проходит собеседование он, а дикий мандраж у меня? Тоже начал стул в разные стороны крутить :D
Испанский мандраж😁
Да, собес это нервное дело. И кстати для того кто спрашивает тоже.
@@SBeregovoyRU значит неправильно подходите к этому процессу
@@leonidpro3664 Хз, как по мне решать в какой-то степени чью то судьбу ответственный, нервный процесс. Не хочется принять ошибочное решение причем ошибочным может быть как найм так и отказ.
1:17:40 внимание на субтитры XD
Да с парнем все предельно ясно - это вылитый прогер, бледный флегмат в очках), а за собес лайк
Прошел собеседование благодаря этому видео, многие вопросы повторялись. Правда результата пока жду)
И как, прошел? Сколько вообще заняло обучение?
@@HeIvis "вы хорошо прошли собеседование, но мы нашли кандидата с более глубоким опытом". С год примерно, но тут у каждого свой график, по свободному времени. У меня его было мало
37:30
Не совсем с вами согласен. s2 действительно будет ссылкой и они вместе с s будут ссылаться на одну область памяти. Но строки immutable, изменить значение по ссылке не является возможным.
Это кстати легко проверить
var s = "hello";
var s2 = s;
Console.WriteLine(object.ReferenceEquals(s, s2));
//OUTPUT: true
Да, я уже писал в комментах, что пример неудачный.
Тоже когда смотрел, т.к. есть понимание АСМ и т.д. и того, что строки иммутабельны, возник в башке вопрос - "а нахрена в случае копирования создавать новую строку?")) И Было предположение, что вряд ли создатся, что просто копируется адрес и что майки не дегенеры))) Спасибо, что подтвердили)
@@Hunter314414
var s = "hello";
var s2 = new String("hello"); // ReferenceEquals false
@@demonspel При чем в данном случае new? Вы сознательно указали новый объект строки.Конечно здесь ссылки будут разные.
Спасибо за видос, помогло устроиться на стажировку в классную IT компанию)
Привет, а не скажешь в какую компанию ?
@@licajina9882 Godel Tech
string Text = "Привет";
string SubText = Text;
В данном случае SubText будет указывать на тот же самый объект строки в памяти. Ничего нового создаваться не будет. Это можно проверить "object.ReferenceEquals(Text , SubText)".
Но если вдруг переменная SubText измениться, то только тогда приведёт к созданию нового объекта в памяти.
Правильный тон собеседования это когда кандидат ошибся или не знает, объяснить/расскрыть кратко ему правильный ответ. Иди читай.. Не очень комфортный вариант
Когда гость канала уже ответил на вопрос, очень не хватает правильного ответа или дополнения ответа.
Я очень много прокомментировал и где-то дал ну очень развернутые ответы. На реальном собесе такого не будет.
Не факт
Если это Junior, то как тогда выглядит собеседование на Mid и Senior? Боюсь представить 🤣🙈
На mid/senior совсем другой принцип собеса. На Junior мало кто ждёт правильного ответа на все вопросы. Тут важнее узнать общий кругозор. Ну и увидеть принцип мышления. В выборе джуна важнее то, как хорошо и быстро он будет учиться и какая у него есть база.
При выборе мидла и сеньора мы берём уже сформировавшегося разраба и на его обучение не хочется тратить деньги и время. Тут важнее узнать про его опыт, как он решал те или иные проблемы. И, возможно, про конкретные технологии, которые используются в компании.
По итогу, собеседование на джуна, как мне кажется, самое сложное.
Виталий силен. Программировать будет по любому. Умный парень. Интересно узнать - работает ли он уже?
Работает)) собес помог найти слабые стороны, подтянуть их и устроиться
почему написано, что собеседование? это больше смахивает на экзамен с натягиванием отличной оценки со стороны препода))
это точно на джуна собес? :)
Это собеседование на сеньора. Я не верю, что такими знаниями должен обладать джуниор.
любой, кто прочитал пару книг по шарпу ответит на все вопросы и даже глубже на все вопросы из первой части видео
@@sp1ne2104 какие книги посоветуете?
@@lucefan2816 Andrew Troelsen "Pro C# 10 with .NET 6"
@@doberman7395 спасибо!
Как человек за кучу вопросов к нему поймет что-то о компании и что ему следует здесь работать? Кроме того что здесь очень нудно и время тратится впустую
если вам нудно программировать и заниматься самосовершенствованием в программировании - вы явно выбрали не ту профессию
@@SBeregovoyRU тут дело не в нудности, а в неадекватности подборщика
ДУШНО ОЧЕНЬ xDDD
Может форточку открыть?
@@SBeregovoyRU На собесах у себя форточки открывайте)
Степан, здравствуйте. Подскажите пожалуйста, какой из этих двух людей на ваш взгляд станет программистом - Первый это тот, кто фанатеет от программирования, но не обладает хорошим логарифмическим мышлением. А второй наоборот - имеет среднюю мотивацию к изучению, но очень хорош в математике и логарифмах ?
Вопрос веду к тому, что более ценно в программировании - фанатизм, усидчивость или с рождения умение решать хорошо задачи и качественно ? Но выбрать можно только одно.
Конечно тот кто фанатеет в конечном счете значительно превзойдет того у кого хорошая база
Что такое логарифмическое мышление? Это умение решать алгоритмичиские задачки по логарифмической сложности?
Подскажите как работать со звуком, генерировать и анализировать на низком уровне. Какая библиотека.
Интересно.
Я на собесах задаю подобные вопросы и все факапятся)) Все знают про СОЛИД и ни один про память и как все устроено) Но честно говоря, для продукта, который разрабатываем мы, это и не надо, потому берем, даже если человек не знает основ, главное чтобы код показал....
Другое дело.
var s = "Привет";
var s2 = a;
У нас тут создается новая строка???? Серьезно???? Может вы перепутали со сравнением строк по значению?
Я себя считаю вообще нолячим трейни, но когда я вижу, что человек, который находится на тестовом периоде в компании не знает отличия между стеком и кучей, у меня возникает много вопросов. Хотя со стороны видно, что он показал какие-то конспекты, какие-то книги читал, но все, что ч выше перечислил - это элементарщина из видеоуроков, на ютубе
где ты нашел информацию про тестовый период в компании? Это собеседование спустя год изучения интервалами неделя учебы через 3 месяца отдыха и 1 месяцем целенаправленной учебы), т.е. по факту времени где-то 2-2,5 месяца. За это время изучены только курсы, метанит. К собеседованию целенаправленно не готовился, просто было интересно что спрашивают на тот момент по C#, к чему готовиться, насколько досконально спрашивают теорию, которая никогда не пригодится и т.п. Если ты знаешь все, что спросили тут и у тебя есть практика, как у меня была на тот момент, потому что я именно практику делал, я на тот момент за 2,5 месяца сделал 3 прототипа игр на unity + C#, штук 20 различных консольных приложений, 3 приложения на wpf, одно на asp net core. И, честно, ни в одном не понадобилось именно определение из книжек стека и кучи, знания реализации стринги и стринг билдера под копотом и т.п. Вполне достаточно знаний о том, что есть разные области видимости переменных, знание, что есть IDisposable объекты, есть объекты на которые хранятся ссылки в памяти и их нужно обнулять вовремя. Я лично, спустя 2 месяца после этого собеса подтянул знания, ещё больше практиковался и устроился на работу и по сей день работаю, так что и тебе советую устроиться, потому что в этом собесе большинство базы есть, а некоторые вещи даже на уровне senior задач спрашиваются.
Децимал это что-то про децла?
Касательно ИИ, у OpenAI уже есть ИИ, который интерпретирует текстовые команды на натуральном языке в готовый код. Например, ему говоришь: "напиши программу, которая проверяет является ли строка палиндромом", и он выдаёт непосредственно код, например, на питоне. На ютубе есть их ролик, вроде
В райдере уже встроена поддержка ИИ, уже шарит по гитхабу и выдает варианты.
Он просто шаблоны тебе выдает, это не ИИ который пишет осмысленный код, до этого еще далеко, современным процам и накопителям, так и подавно, лет (вы столько не проживете) можете быть спокойны господа)
@@ЕвгенийГорелов-е1з Не совсем понял про шаблоны. Что вы понимаете под этим? Ему написали: "сделай так, чтобы игрок мог двигаться вправо-влево стрелочками" и он написал соответствующий код с нуля, о каком именно шаблоне речь?
@@anonim1788 такого нет, есть хня, когда ты набираешь начало функции или название и она варианты предлагает, то что вы выдели просто рекламная байда, с оправданием типа "это прототип, но если вы нам дадите денег, то мы уж точно сделаем...."
@@ЕвгенийГорелов-е1з Вы уверены, что мы говорим об одном и том же проекте? Почему Вы говорите, что такого нет, если буквально то, что я написал, есть. Они даже раздают демку
Степан, добрый день. Изучаю С# больше года. Еще не работал. Можешь ли ты провести собеседование со мной? Заранее спасибо
А смысл проводить с каждым? Включаешь это видео и проверяешь, сможешь ли ты ответить на эти вопросы или нет?
var s = “a”; var s1 = s; s и s1 ссылаются на один объект. Но var s = “a”; var s1 = s + “b”; ссылаются на разные объекты. Таблица интернирования строк !
"var s = “a”; var s1 = s; s и s1 ссылаются на один объект" - вы не правы. В данном случае это не ссылка, а копия. В новую переменную копируется значение другой переменной. Так в JavaScript, C++, C#.
@@vladimirandreev9022 так я про это и говорю
Надо доучиться, не уверенные ответы на вопросы и база не глубокая
начну изучать С#
через 3 месяца посмотрю это видео, посмотрим смогу ли ответить на вопросы
Скорее всего не сможешь и это будет нормально.
Объем знаний который он спрашивает какой то неибический. я 3 года уже работаю и даже на половину фиг отвечу с наскоку.
На самом деле когда хуячишь в прод , большинство из этих знаний не пригождаются и вылетают из головы через месяц.
Чтобы уверенно рассуждать на все эти темы нужно не уметь писать код, а уметь проходить собеседования. Эти навыки пусть и частично перекрывают друг друга , но по большей части они разные.
Более того , я закинул видос в чат и у нас даже синьоры сказали что это как то слишком круто для джуна.
@@gogibeet та я уже c++ изучаю, ОТМЕНА ПАРНИ ОТМЕНА
@@gogibeet тут на самом деле ещё довольно лайтовое собеседование, в реальности джунов ещё на порядок сильнее гоняют.
@@timtom489 откуда такая уверенность?
@@gamb5730 Как успехи , что в итоге изучили?
🔥🔥🔥🔥🔥
Каждое собеседования для программиста, это как экзамен! Страшно!
так стопе. С строками какая то лажа. Как это при при вот таком у нас два разных объекта будут? объект один и ссылка в пуле на него
var s = "test";
var s2 = s;
Console.WriteLine("s.GetHashCode= " + s.GetHashCode());
Console.WriteLine("s2.GetHashCode= " + s2.GetHashCode());
Console.WriteLine(s.Equals(s2));
Console.WriteLine(s == s);
Console.ReadLine();
Да, не удачный пример. Отработает интернирование
@@SBeregovoyRU даже без интернирования строки копируются по ссылке. С интернированием у всех одинаковых строковых литералов одинаковая ссылка, т.е. изменив литерал в одной ссылке, изменяются все строковые литералы в других ссылках, все в рамках safe кода.
На вопросе "36:18 - Какая особенность при передаче ссылочных типов? Ссылочные vs значимые типы.". Вы спросили, будут ли 2 строки ссылаться на один и тот же участок памяти, вы отвечаете нет. Если 2 строки привести к object и сравнить в ReferenceEquals то будет true, а ReferenceEquals как раз таки сравнивает равенство ссылок. Разве здесь не работает правило интервирования строк ?
Да, здесь ошибся он немного, в данном случае ссылка будет одна, если бы вопрос был с применением StringBuilder, например, были бы разные
По поводу string. Да он immutable class, но в нем реализован паттерн flyweight, есть внутренний механизм интернирования строк. Если string s = "привет" и string s1 = "привет" - то это автоматически не схлопнет в один экземпляр на куче и s и s1 разве не станут ссылаться на один и тот же объект?
и не только, если у тебя есть string s2 = "при" + "вет" это тоже интернируется
Интернируются автоматически только строки, которые заложены во время сборки. Строки, образованные во время исполнения не интернируются, и на то есть причина - это неоправданно дорого. Рассмотрим простой пример, где есть определенная область взаимодействия с пользователем - обработчик запроса в asp net. Допустим, мы хотим, чтоб мы взяли из запроса две строки, сложили их и вернули пользователю. Если бы дотнет интернировал строки, полученные в рантайме, то по окончанию запроса две изначальные строки и одна итоговая останутся в памяти, так как они интернированы. Получается, каждый запрос увеличивал бы использование памяти на три строки. А что будет, если произойдет тысяча разных запросов?
это я знаю, я ж описал ситуацию где идет интернирование в момент компиляции. Кстати, интернирование еще можно вызвать вручную на объекте string
@@ВячеславДудка-к2м мне показалось, там был вопрос, и я на него просто ответил.
👍
Впринципе теории вполне достаточно для прохождения собеседования, но я бы больше смотрел на код.
37:30 Хм... А разве не произойдет интернирование строк?
Думал коммент написать, а уже есть. В данном примере это будет ссылка на одну область памяти.
Не думаю что вы ответите, НО ОЧЕНЬ ХОТЕЛОСЬ БЫ. Перерыл пол интернета, но адекватного ответа не нашел. Почему все таки в типе decimal при добавлении 10 раз числа 0.1 будет не 1.0?..Компилятор боится лишний раз превращать десятичную дробь в целое число? Я знаю что double и float округляют значения после 6 и 15 цифры после запятой, но ведь тут четко написанно 0.1 а не 0.999999999...
Это не компилятор и его особенности. Это особенности работы процессора и вообще устройства чисел с плавающей запятой. Есть видео на эту тему у Тимофея Хирьянова. Точно в каком видео не скажу
Единственный интересный вопрос Отличие IEnumerable от IQuerable - но на уровень Expression Tree так оттуда и не спустились
когда он сказал про DI я уже за него испугался там столько вопросов можно было не для джуна закинуть)))
Да, как говорил Михаил Портнов, отвечайте только то что вас спросили и не давайте лишнюю информацию) Если спрашивают знаете ли вы сколько времени, надо отвечать да, а не называть время, ибо вас спросили знаете ли, а не сколько сейчас на часах))
Вопросы лёгкие, просто почитать документацию и запомнить важное)
Ко всем легким вопросам готов не будешь. Никакая документация не поможет. Память не бесконечная.
22:00 (приблизительно и дальше пару минут)
Почему у него в компиляторе выходит с неточностью (скриншот) , а у меня на VS 2010 ULTIMATE всё корректно?
Что Я сейчас посмотрел? Что это было? Что за вопросы? Это был Анонс. Выпал с вопроса, Какие свойства есть у Обжекта? Что? Зачем это знать, какие это дает плюсы? Мы что проверяем тренированность памяти? А если Я их не знаю, но понимаю как работают. Просто Я их использую на таком автомате, что вряд ли вспомнить смогу сразу. А где вопрос тогда, - Вот Мы нажимаем на ярлык студии, что первое запускается, какой процесс стартует и запускает остальные? Мне лень разбирать каждый вопрос, там через один муть полная. 90% вопросов это вообще неочем. Особенно побитовые операции, да они используется раз 5 лет, решают 0.9% процента задач. Для какой цели этот вопрос? Это все человек получить и поймет после полу года работы в нормальной команде. Каким образом на навыки половина вопросов влияют? Это теория которая приходит с опытом. Учить насильно ее не получиться, спрашивают всегда разное. Все вопросы разбирать не буду, как сказал автор: Ну потом посмотришь, изучишь.
Дополни вопросы:
1)базовые понятия ОПП(наследование, полиморфизм - можно примеры какие нибудь быстрые чтобы реализовал, инкапсуляций - тут базовые понятие зачем(а то Я как то видел код где все паблик, во всех классах, все классы в заголовочном файле написаны, сиди потом сам понимай что там))
2)IoC, DI, IoC-контейнер
3)повышающее приведение типа
4)делегаты лучше просить показать пример, чем спросить теорию
5)Знания паттернов 2-3 любых. 2-3 знать и уметь реализовывать, остальные названий хватит
6)Библиотека классов, для чего нужно и шо это такое
7)Интерфейсы, абстрактные классы. Шо, зачем, когда.
8)Гит, шо, где зачем
9)Конвертирование и повышающие приведение, разница.
10) Ладно вот еще одни так и быть. Джинерики, как где зачем
Да вроде хватит, потом посмотришь, изучишь дополнишь. Еле еле досмотрел, парня жалко, что он попал на собеседование к человеку который похоже пришел тешить свое чсв ну или Я не понимаю для какой цели половина вопросов.
На 90% процентов Я отвечу включив студию и за секунду прочитав описание ну или методы какие есть.
Для программиста важно:
Мотивация
Работоспособность
Обучаемость
Терпение
Аккуратность
Желание совершенствовать навыки
Стрессоустойчивость вот с такими умниками 2 часа выдерживать разговора где за счет тебя реализуют своё чсв.
У парня как минимум 3 из 6 есть. Особенно терпение, Я в 4 этапа смог только досмотреть. Как парень только после 30 минут не ушел Я не понимаю.
Я вот тоже думал, что на собеседовании будет спрашиваться в основном то, что реально используется в работе, т.е. немного про типы данных, дальше по ооп, про делегаты, события, потоки в шарпе, про дженерики, про ооп 3 столба, подробно про полиморфизм и инкапсуляцию можно, абстракцию, интерфейсы, паттерны, хотя бы основные типа mvc, di, fabrica, singleton, линк спросить, про бд спросить, про транзации, да и уже по рабочей технологии основы, тут на выбор asp, wpf, unity, ну и смежное, если с вебом, то про http, если с wpf, то про windows. Ну и гит, да. Можно по архитектуре пробежаться немного, принципы SOLID спросить и когда их разумно применять. А оказывается, что на собеседованиях спрашивают много теории, которую так сходу всю и не вспомнишь и если ты сидел и тупо делал задачки, писал код именно, гуглил много, а не заучивал книжки, то не пройдешь собеседование) Про то, как я продержался: для меня это не выглядело, как реализация своего чсв, для меня это было так: со мной делятся теми вопросами, которые спрашивают, которые надо бы знать, чтобы устроиться на работу, чем больше пробелов я нашел бы у себя, тем эффективнее прошло собеседование.
@@VetalGimbarr чсв реализовывал тот кто проводил собеседование. Для какой цели эти вопросы, и что даст знание 80% процентов ничего. Толку от знаний если их не применяешь. Я могу этому мужику так же провести собеседование, подготовлюсь за неделю найду самые дебри и устрою забег с препятствиями.
Два или три вопроса на базовые вещи, остальное из разряда - а с какой ноги вот вы из дома выходите? Или как вы дышите как происходит это?
Парень который отвечал если это ты вы держался нормально, то что не ответил это не страшно. У вас собеседование проводили не чтобы понять уровень знаний а чтобы повысить свое чсв, спросить нахрен не нужные не используемые вещи, которые чтобы знать надо просто за час сесть и прочитать все.
🙂
@@TheRainGameTM 🤑
@@NikitaJe_ вообще самый хардкорный вопрос будет про оператор goto))
В целом хорошо, но как то мало про .NET, где про CLR, компиляцию программы, сборку, модификаторы доступа, дженерики, коллекции, linq. Лучше вместо partial классов, спросил бы, например, про отличие абстрактного класса от интерфейса. Про TPL тоже стоило спросить, не согласен с тем, что это не надо трогать, общее понимание должно быть, хотя бы что это такое и зачем нужно
Понятно, что можно было много чего еще спрашивать. Но у нас тут не марафон на знания .net. Итак собеседование заняло 2 часа.
В чем отличие абстрактного класса от интерфейса - самый заезженный вопрос. И особенно бесит, когда правильным считается ответ "Класс наследуется, а интерфейс имплементируется". Увольнял бы собеседовальщиков за такое.
@@9285550
Интерфес уже может содержать имплементацию функций. В современном C#, где-то с версии 9.0.
Прогресс, однако... :)
Добрый день! Как то можно попасть к Степану на такое же собеседование?
27 минута. Написал гавнокод безобразным стилем, и спрашивает что с него будет. Хорошо что сам не запутался пока писал. По рукам дать некому. Конец вобще убил. Социально адекватного кодера он ищет. Мужик у тебя самого то все дома?)))
Не думаю, что с такими знаниями возьмут на джуна. Я год назад в епам на треннинг проходил собес, там вопросы были гораздо сложнее.
Аналогично, у нас многие джунов не читавших Рихтера даже рассматривать не хотят и часто гоняют по паттернам и внутреннему устройству самой платформы, причем далеко не верхами. Вспоминая как я заканчивал универ 5 лет назад, у нас 80% были нулями и ушли в макдак, процентов 15 максимум с гуглом и косяками вывезли бы сделать калькулятор, ещё процента 4 смогли бы запрограммировать алгоритмы быстрой, пузырьковой сортировки, бинарный поиск и алгоритм Дейкстры, на этом всё и вот только один на сотню был такого приличного уровня. В итоге почти все кто хоть что-то умел как-то устроились на последнем году обучения через приходивших в универ рекрутеров, а вот самый умный чувак, имея награды за проекты, возможно из-за скалада своего характера, оказался за бортом и пять лет работает за 20к руб сис админом в поликлинике.
@@timtom489 алгоритмы, которые потом почти некогда не используются в проектах
Здравствуйте. Вы упоминали в вопросах про объекты что вроде как в стеке хранятся некоторые метаданные этих объектов. Не могли бы вы кратко сказать, что это за данные и по каким тегам о них можно найти информацию?
Почитайте, например, Рихтера
Привет! Можно ли как-нибудь связаться с участником ? ) Очень интересно с ним пообщаться
1. Категорически не согласен по поводу того, что софт-скиллз не тренируются, и по поводу оценки АДЕКВАТНОСТИ человека исходя из рассказов об опыте.
2. По кандидату в целом - очень слабо и поверхностно, но видно, что парень старался, развивался, а это самое главное в обучении.
3. В целом же, ценность подобных "интервью", равно как и аналогичных по стэкам Java, Python etc, стремится к нулю, так как заучивание теории не даёт реальных знаний, и не даёт интервьюеру оценить реальные боевые качества, навыки и потенциал интервьюируемого.
4. Все вышесказанное является отражением личного опыта и субъективным взглядом, и не претендует на истину ни в какой степени.
Удачи кандидату в начинаниях, а индустрии пожелание оздоровиться и быть в целом поадекватнее (в осуществлении чего сильно сомневаюсь).
Степан, если я правильно помню, то using развернется не в try - catch - finally, а в try - finally, Поправьте , если я не прав.
да. верно
Да, так и есть. Т.е. using это так называемый 'syntax sugar'.
Это вообще все глупость. я знаете кодил на Делфи, не учил его, просто по базе с Паскаля что-то пробовал писать и смотрел примеры на форумах. Так и кодил. Понятия не имею ссылочный там тип строка или нет, но просто по опыту знаю ,что строка по умолчанию получает пустое значение строки, а если присвоить одной переменной вторую переменную, то это будут две разных переменных, т.е. как бы две разные строки.
При этом Си шарп тоже самое как понял, но при этом какое то глупое душнилово в книгах и на собеседованиях. Зачем мне это знать? Если один раз написать код более менее объемный, то человек без книг поймет что такое строка, а что такое int. Как подобные вопросы вообще могут проверять скил джуна?
По вашему я в делфи полное днище, при этом я писал там и парсеры и программы на несколько тысяч строк и с графикой работал. Мне кажется программисты в компаниях - это поехавшие люди, может я лучше код напишу и покажу с комментариями что он делает, а вы уж судите потом знаю я что-то или нет. А задавать вопросы тупые про теорию, да еще связанную с ассемблером или устройством tcp/ip, так это полный бред.
Отдельной строкой идут тесты на алгоритмы и решение задач, которые нигде не применяются никогда. Просто бред сумасшедших, напоминает историю с дипломами. Вы хотите у нас работать и высокую зарплату? Давайте диплом МГУ, а опыт работы нужен, но как бы вы диплом покажите. Какое-то писькомерство.
Кошмар, собесы на джуна самые душные. То ли дело на сеньора, посидели, обсудили прошлые проекты, задачи, решения и разошлись, ждешь оффер. Никаких тебе зачем дабл и децимал.
А это точно на джуна собеседование ?
Смотря в какую компанию, в большинстве случаев на джуна гоняют на порядок сильнее, почти наверняка спросят про многопоточность и асинхронность, могут спросить про сокеты, особо отбитые интервьюверы могут ещё в и сторону паттернов проектирования зарулить.
Еще попросят написать формулу для расчёта площади фигур))))
@@timtom489 но ведь это уже уровень мидла
@@sergioabromovich4770 согласен, но у некоторых интервьюверов свое мнение на этот счет)
Зависит от компании. Где-то джун должен написать свой модуль для IDA Pro. Где-то - сказать что-нибудь о том, что float - это не то же самое, что double.