Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина
276 subscribers
189 photos
19 videos
1 file
75 links
Для связи: @junoscode
Download Telegram
🔥 Ответы на вопросы с собеседований 🔥


🙂 Всем привет! Посидел сегодня и подумал, а может стоит записать пост о вопросах которые задают на собеседованиях. Будит цикл постов по несколько вопросов и ответов на них. Начнем с вопросов про C#


1️⃣ Чем отличается динамическая типизация от статической?
Самый просто ответ. При статической типизации тип переменных определяется на этапе компиляции, а в динамической в процессе выполнения. Так же можно отметить, что при статической типизации код становится чуть понятнее за счет явных типов, но при динамической можно упростить код, ведь одной переменной может хватить для одного класса

2️⃣ Значимые и ссылочные типы. Спецификаторы аргументов функций ref, out
Начнем с места хранения. Значимые типы храниться в стеке. Ссылочные типы хранятся в куче, а ссылки на них в стеке. При попытке скопировать значимый тип - мы копируем значение. При попытке скопировать ссылочный тип - мы копируем только ссылку

Ref - ключевое слово, которое позволяет передавать не значение, а ссылку на переменную где хранится это значение. Меняя значения внутри метода мы меняем значение переменной которую передовали

3️⃣ Что такое ref и out?
Out - ключевое слово, которое обязует проинициализировать параметр метода внутри. Бывает полезно когда нужно вернуть несколько типов из одного метода


💥 Если вам понравился пост - оставляйте комментарии и ставьте реакции. Много сил было потрачено сегодня, надеюсь, вам понравилось! А если хотите больше советов с собеседований - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
18🦄1
🔥 Готовься к этим вопросам на собесе! 🔥


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

1️⃣ Что такое класс? Что такое структура? В чем отличие между структурой и классом?

✔️ Класс - данные и методы, которые используются для изменения этих данных. Отметим, что класс является ссылочным типом. Он используется для моделирования более сложного поведения или для таких данных, которые будут изменятся после создания объекта класса

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

2️⃣ Какие есть модификаторы доступа?

Private - объект виден только в текущем классе

Private protected - то же что и protected, но только внутри одной dll сборки

Protected - объекты видны в пределах текущего класса и его наследников

Internal - доступ к этим объектам имеют только объекты и текущей сборки. По сути тот же public, но доступ для объектов внутри своей dll


Protected internal - то же что и internal, но в добавок виден наследникам из других dll сборок

Public - у этого модификатора нет ограничений по доступу


💥 Спасибо за реакции под предыдущим постом. Очень мотивируют делать контент для вас! Буду благодарен за обратную реакцию снова! Ну и если хотите видеть больше детализированных картинок - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🦄1
🔥 Вопросы про интерфейсы на собеседовании 🔥


🙂 Всем привет! Сегодня мы уделим внимание вопросам про интерфейсы, которые могут задать вам на собеседовании


1️⃣ Что такое интерфейс? Какие члены можно описывать в интерфейсе?

✔️ Самое просто объяснение которое можно дать. Интерфейс - контракт который мы накладываем на класс. Почему это контракт? Потому что мы обязываем класс реализовать все члены этого интерфейса

✔️ Интерфейс может описывать методы, свойства и события. После версии C# 8.0 в нем допускается использование любых модификаторов доступа, кроме private. Модификатор доступа по умолчанию public


2️⃣ Отличие интерфейса и абстрактного класса.

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

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

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


3️⃣ Может ли структура реализовывать интерфейс?

✔️ ДА!


💥 Надеюсь, данная информация была полезной! Не забывайте про обратную реакцию - это лучшая ваша поддержка. А если хотите разбираться лучше в C# - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2🦄1
🔥 Что такое замыкание? Пример с замыканием 🔥


🙂 Всем привет! Скорее всего вы даже не слышали о таком понятии как замыкание. Оно используется в функциональном программировании. Сегодня я попытаюсь простыми словами объяснить эту тему, чтобы в дальнейшем вы не посыпались на этом вопросе во время собеседования на работу мечты

‼️ По сути замыкание состоит из трех элементов:

1️⃣ Пользователь - в нашем случае это метод Main

2️⃣ Внешняя функция - метод GetClouser

3️⃣ Внутренняя функция - анонимная функция внутри внешней функции


📈 Принцип работы

Внешняя функция при вызове возвращает экземпляр внутренней функции

Пользователь сохраняет этот экземпляр в переменную

При каждом вызове этой переменной мы вызываем одну и ту же внутреннюю функцию

Внутренняя функция увеличивает переменную X, которая хранится во внешней функции

Таким образом внутренняя функция запоминает значение X


💥 Заключение
Суть замыкания заключается в том, что происходит изменение переменной внешней функции через вызовы внутренней функции. Мы бы смогли добиться того же самого эффекта, если бы сделали X полем класса. Тогда бы при вызове метода он также увеличивал X на один при каждом вызове. Таким образом замыкание избавляет нас от создания лишнего поля


⚠️ Буду благодарен за обратную реакцию! А если хотите больше информации про фишки нашего любимого языка программирования - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6🦄1
🔥 Что такое делегат? 🔥


🙂 Всем привет! Сегодня мы рассмотрим тему, с которой работал каждый, но не каждый смог понять. В очень редких случаях приходится работать с чистыми делегатами, но для собеседования стоит иметь понимание как это работает

🗣️ Делегат — это тип, который представляет собой ссылку на метод с определенным списком параметров и типом возвращаемого значения🗣️

🕯 При создании экземпляра делегата этот экземпляр можно связать с любым методом с совместимой сигнатурой и типом возвращаемого значения

📌 По сути, наша система событий работает на основе делегатов. При подписке на событие мы передаем ссылку на наш метода, а при вызове события вызывается и наш метод

‼️ Пример: [модификатор доступа] delegate [возвращаемый тип] PerformCalculation([аргументы]);

✔️ Если создавая класс - мы создаем новый тип объекта. То создавая делегат - мы создаем новый тип функции. На изображении можно увидеть, что мы создаем экземпляр делегата в параметр new() передаем ссылку на метод. Если мы хоти добавить больше методов, то добавляем через +=. Соответственно если мы хотим убрать ссылку на метод мы используем -=


💥 Заключение
Стоит понимать, что создавая делегат мы создаем новый тип функции. При создании экземпляра - мы добавляем в него любые методы которые подходят по сигнатуре. Сколько методов добавим - столько и активируется при вызове делегата. А если остались вопросы - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2🦄1
🔥 В чем разница между array и List? 🔥


🙂 Всем привет! Достаточно часто встречающийся вопрос на собеседовании. В C# есть несколько коллекций, предназначенных для хранения данных, и две из самых популярных из них — это массивы (Arrays) и списки (Lists). Несмотря на то, что обе структуры данных могут использоваться для хранения коллекций элементов, между ними есть несколько ключевых отличий

1️⃣ Статичность vs Динамичность:

Array: Массив в C# имеет фиксированный размер, который нужно задавать при его создании. После создания массива его размер изменить нельзя. Если необходимо увеличить или уменьшить количество элементов, придется создавать новый массив и копировать в него данные

List: Список (List<t>) является динамической коллекцией. Его размер может изменяться в процессе выполнения программы, что делает его более гибким в работе. Добавление и удаление элементов осуществляется проще и быстрее

2️⃣ Методы и свойства:

Array: У массивов есть ограниченное количество встроенных методов и свойств. Например, они имеют свойство Length, которое показывает количество элементов в массиве

List: Списки имеют обширный набор методов для работы с данными, такие как Add(), Remove(), Sort(), Contains() и другие, что делает работу с коллекциями гораздо более удобной. Кроме того, у списка есть свойство Count, которое возвращает количество элементов в списке


3️⃣ Типизация:

Array: Массив может хранить элементы одного типа. Тип массива определяется при его создании и, следовательно, все элементы должны соответствовать этому типу

List: Список также типизирован, но при этом он более абстрактен. Вы можете использовать генерацию типов (generics), и это позволяет создавать списки любого типа без необходимости указывать конкретный тип при работе с данными

4️⃣ Производительность:

Array: Массивы могут быть более производительными при доступе к элементам, так как они расположены в памяти последовательно. Это позволяет значительно ускорить операции чтения и записи

List: Хотя списки могут быть немного медленнее из-за своей динамической природы и управления памятью, они предлагают лучшую гибкость, особенно при частых изменениях в количестве элементов

💥 Заключение
Выбор между массивом и списком в C# зависит от конкретных потребностей вашего приложения. Если вам нужен фиксированный набор данных и требуется высокая производительность, массив может быть лучшим выбором. Если же вы ожидаете частые изменения в размерах коллекции или необходимость в более простых операциях, таких как добавление и удаление элементов, то список будет более подходящим вариантом. А если остались вопросы - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🦄1
🔥 Новая встреча с Романом Сакутином, ведущий IT-мероприятия, группа ВК 🔥


🙂 Всем привет! Отдохнём слегка от программирования. Сегодня я поделюсь новостями, которые произошли за последнее время

Я купил билет на GamePush Conf. Очень интересно будет посетить мероприятие, где будет выступать в том числе и Роман Сакутин. Есть кто-то захочет прийти тоже, то обязательно при покупке указывайте промокод AGAVA

❗️ Не реклама - дружеский совет


✔️ Также в этот четверг я буду ведущим на саммите Gamedev Education Abyss. Отдельно отмечу, что среди кураторов там будет и один из судьей ИНДИКОНа. Обязательно приходите, вход бесплатный! Завтра у нас будет последняя репеция, надеюсь, что смогу всё классно провести! Рад буду видеть каждого!

📌 Адрес: 5-я ул. Ямского Поля, 23/25к2


📈 Ну и как приятный бонус: я создал группу во ВКонтакте. Зачем она нужна, спрашивается? Там параллельно будут выходить посты по программированию, геймдизайну, разработке игр. Позже там появится бот, благодаря которому все желающие смогут получить знания для GameDev в одном месте. Друзья, пожалуйста, подпишитесь на него! Мне будет очень приятно, а для вас - куча полезного контента!


💥 Пишите, какие у вас новости! Очень интересно будет почитать! А если хотите быть в курсе всех новостей GameDev - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
5🤮2🦄2🥰1
🔥 Обработка исключений. Блок try, catch, finally - порядок выполнения 🔥


🙂 Всем привет! Соскучился по программированию, надеюсь, вы тоже. Обработка исключений в C# позволяет разработчикам эффективно справляться с ошибками и исключительными ситуациями. Это достигается с помощью блоков try, catch и finally. Давайте подробнее рассмотрим, как они работают, и какой порядок выполнения в C#


📊 Структура блоков

1️⃣ Блок try:
Код, который может вызвать исключение, помещается в блок try. Если в этом блоке происходит ошибка, выполнение прекращается, и управление передается в соответствующий блок catch

2️⃣Блок catch:
Этот блок предназначен для обработки исключений. В блоке catch вы можете указать тип исключения, которое хотите обработать, что позволяет детализировать обработку ошибок

3️⃣ Блок finally:
Этот блок выполняется всегда, независимо от того, произошло ли исключение или нет. Он часто используется для освобождения ресурсов, например, закрытия файлов или соединений


‼️ Порядок выполнения. Расширим понимание последовательности действий при обработке исключений в C#:

Корректное выполнение:
Если код в блоке try выполняется без ошибок, то блоки catch будут пропущены, и управление перейдет к блоку finally

Исключение возникает:
Если в блоке try возникает исключение, выполнение прекращается, и управление передается первому соответствующему блоку catch, который может обработать это исключение

Выполнение блока catch:
В блоке catch обрабатывается ошибка — вы можете вывести сообщение об ошибке, логировать её или произвести другие действия

Выполнение блока finally:
После выполнения блока catch (либо если его не было, при отсутствии исключения), управление всегда переходит к блоку finally. Это полезно, например, для закрытия ресурсов


💥 Заключение
Обработка исключений в C# с использованием блоков try, catch и finally помогает сделать программы более устойчивыми к ошибкам. Этот подход позволяет разработчикам контролировать выполнение кода и управлять ресурсами, обеспечивая корректную работу приложений даже в случае возникновения исключений. Если хотите совершать меньше ошибок на пути в GameDev - Джун Джуно к вашим услугам!
Please open Telegram to view this post
VIEW IN TELEGRAM
4🦄3👍1🤔1🤡1
🔥 КОНФЕРЕЦИЯ "ИГРОВАЯ ИНДУСТРИЯ" 🔥


🙂 Всем привет! Уже 16 октября в Москве пройдет бизнес-конференция «Игровая индустрия»!

💥 Вас ждет интенсивный нетворкинг с 650+ представителями индустрии, издателями, сервис-провайдерами и игровыми платформами. Среди участников — Yandex.Games, Astrum Entertainment, 1C Game Studios, Innova, HeroCraft и другие.

Если в работаете над игрой, присоединяйтесь бесплатно к конференции, приняв участие в выставке разработчиков! У каждой команды будет один бесплатный и возможность получить дополнительный, собственное место в экспозоне, а также шанс найти инвесторов или издателей. Заявки принимаются до 13 октября вот здесь.

‼️ Всех участников выставки ждет конкурс с призами — техникой от Яндекс.

✔️ Если у вас нет игры, вы все еще можете принять участие бесплатно в качестве волонтера! Вы сможете получить не только полезные знания от профессионалов индустрии, но и получить ценный опыт. Прием заявок уже открыт!

📈 Также вас ждут три потока выступлений, экспо-зона, кофе-брейки, вечеринка и многое другое!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Вот и прошла "Игровая Индустрия"

Я лично, к большому сожалению, приехать не смог. Однако на конференцию с двух ног залетел наш разработчик Демид и всем рассказал о Welwise Studio)

Визитки ПОЛУЧИЛИ ВСЕ, орифлейм отдыхает 🌟


В первый день конференции Демида не пустили внутрь и он раздавал визитки на улице🫡

Однако парень не сдался и всё же пробрался на второй день😎

- Демид, поделишься своими впечатлениями?

"Да, конечно!

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

Ну а жаждущие дополнительной коммуникации, могли обсудить разработку игр за бутылкой пива или на перекуре. Помните, ЗОЖ - классная тема! Вы ведь не хотите оказаться в
российской поликлинике?)"


Давайте накидаем огоньков Демиду, который гордо представлял Welwise Studio на конференции🔥🔥🔥

P.S. Даня на фото такой счастливый🥹🥰☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥219👍3
This media is not supported in your browser
VIEW IN TELEGRAM
[Последний Интенсив]

8й интенсив. Последний. Лучший.

С 22 по 24 апреля. 3 дня подряд.

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

За 3 дня мы выдадим базу и уйдем вглубь!

Я со своей стороны обещаю, что мы дадим топ контент. Все, что я понял за 6+ лет в геймдеве. Выложимся на полную.

В последний раз.

Готовьте записную книжку и стартуем во вторник в 19.00 по Мск у меня на канале.

Поставьте 🔥🔥🔥
🔥93🥰2🦄1
Сделай первую игру с нуля и получи грант на 1 000 000 рублей

Джун Джуно к вашим услугам! 🔥 Я веду этот канал как участник творческой мастерской Романа Сакутина. Наша цель создавать творческие игры и радовать игроков.

Становись разработчиком игр вместе со мной здесь - https://ijunior.ru/workshop-gamedev?utm_source=telegram_workshops&utm_medium=pinned_post&utm_campaign=JuniourJuno
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁4🔥31🕊1