IRON PROGRAMMER
2.75K subscribers
1.1K photos
158 videos
31 files
942 links
👨🏻‍💻Уютный канал для ВСЕХ, кто интересуется языком C#

Задать вопрос или приобрести курс — https://t.me/ironprogrammpro_bot?start=tg_ironprogrammer_desc 🔥

Мои продукты 👉🏻 https://ironprogrammer.ru

Хочешь «войти в IT?» — https://t.me/+qPfo1QTi1uY4OGQy
Download Telegram
Все таки последний раз напоминаю, что надо решить задачу из этого поста. Прислать свое решение надо в комментариях к посту

И завтра выйдет видео разбор вашего кода.

Если пришлют еще 3 новых решения, то покажу как пользоваться BenchmarkDotNet - это библиотека для качественного оценивания кода по времени и памяти. Некий стандарт!
👍3
Обновление курсов

Успеваете следить за нововведения в язык C#?

Мы стараемся поддерживать актуальность тем и в целом языка в наших курсах.

В октябре мы обновили следующие курсы:

1. PRO C#. Для продвинутых. Добавили 2 новых модуля:

– модуль "Decimal"
– модуль "Record" с новыми фичами языка C#. После данного модуля вы будете по другому писать свои классы👌

2. PRO C#. LINQ. Добавили 11 практических задач разного типа

Всем хорошей учебы🫶
🔥274😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Кто то различит меня от моего аватара?😂
😁16👍2
Уголки факультета 😂
😁151👍1
М - мотивация

Невозможно столько учиться, работать и не получить результата😉
🔥36👍3
Фриланс в IT: плюсы, минусы и как не сгореть

Фриланс в IT — это как будто тебе дали ключи от машины мечты, но с одним условием: ты сам за бензин, ремонты и каждый поворот отвечаешь. С одной стороны, свобода — ты можешь работать в любое время и из любой точки мира. Хочешь кодить в пижаме или на пляже? Пожалуйста. Никакого начальника, никаких офисов, никто не стоит над душой.

⚠️ Но! В реальности фриланс — это про бесконечные дедлайны. Клиенты часто хотят "ещё вчера", а у тебя их не один, а пять, и каждый тянет одеяло на себя. Плюс, постоянная нестабильность. Сегодня у тебя заказов куча, а завтра тишина и дыры в бюджете. Вдобавок, ты не просто кодишь, ты ещё и менеджер по продажам, бухгалтер и специалист по пиару — всё в одном лице.

🫠 Ну а теперь самое важное: выгорание. На фрилансе ты часто оказываешься в ситуации, когда работа не кончается. Без чёткого графика, границы между личным и рабочим временем стираются. В итоге можно легко попасть в цикл: работаешь день и ночь, а потом месяц не можешь ни на что смотреть.

🚫 Как не сгореть? Учись отказываться. Да-да, иногда «нет» — это лучшее, что ты можешь сделать для своей психики. Устанавливай границы: время работы, время отдыха. И никогда не забывай про «выключать ноутбук» после конца рабочего дня.

Фриланс — это не только свобода, но и ответственность

А у вас был опыт работы во фрилансе? Делись в комментах!

#PROIT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Вы долго ждали этого 😂

Разбор решений второй задачи с помощью BenchmarkDotNet

Ютуб | ВК

Приятного просмотра
🔥14🎉1
Пет проекты

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

Специально для вас создали канал, в котором каждую неделю публикуем идеи для пет проектов.

Просто забирай и создавай 👌

https://t.me/take_create

Погнал дальше творить великие дела🫶
11
Присваивание объединения со значением NULL

У нас скоро (очень скоро) выйдет курс по нововведениям языка C# – PRO C#. Эволюция языка. Хочу вас ввести в курс дела. Я считаю каждый уважающий себя C# разработчик должен знать историю развития своего главного инструмента для написания программ - язык C#.

Расскажу об одной прикольной фиче из C# 8 версии.

Начнем как всегда с проблемы😉
В реальных приложениях часто приходится работать с переменными, которые могут принимать значение null. Например, у нас может быть объект, который не инициализирован, и мы хотим присвоить ему значение по умолчанию, если он равен null. До появления C# 8, это приходилось делать с помощью условных операторов, например:
public void ProcessData(List<int> numbers)
{
if (numbers == null)
{
numbers = new List<int>();
}

// Далее работа со списком numbers
}

Метод ProcessData проверяет, равен ли список numbers null, и если да, инициализирует его новым объектом List<int>. Подобная запись может показаться громоздкой для такой элементарной операции.

Решение
В C# 8 появился оператор присваивания объединения с null (??=), который упрощает код и делает его более лаконичным. С помощью этого оператора можно выполнить ту же операцию в одну строчку:

public void ProcessData(List<int> numbers)
{
numbers ??= new List<int>();

// Далее работа со списком numbers
}

Оператор ??= проверяет, является ли переменная слева от оператора равной null, и если это так, присваивает ей значение справа от оператора. Если переменная не равна null, то присваивание не выполняется.

⚠️Внимание!
Левый операнд оператора ??= должен быть переменной, свойством или элементом индексатора.


Оператор ??= чем-то похож на оператор ??, и тем не менее отличается. Напомним, что оператор ?? используется для возврата значения левого операнда, если он не равен null, в противном случае возвращается значение правого операнда. Например:
var someString = null;
someString = someString ?? "default value";

Если someString не равен null, someString сохранит своё значение. Если someString равен null, someString получит значение default value.

Таким образом, оператор ??= делает подобную проверку компактнее, ведь при его использовании не придётся дважды писать someString:
var someString = null;
someString ??= "default value";



Вот такую приколюшку завезли в C#, чтобы нам с вами легче было писать читаемый и чистый код☺️

Как вам? Знали про такую фичу?

❤️ — если знали о такой фиче
👀 — если узнали о нем впервые

#полезные_материалы #эволюция_языка
Please open Telegram to view this post
VIEW IN TELEGRAM
👀1911👍7🤯1😱1
Присваивание объединения со значением NULL

У нас скоро (очень скоро) выйдет курс по нововведениям языка C# – PRO C#. Эволюция языка. Хочу вас ввести в курс дела. Я считаю каждый уважающий себя C# разработчик должен знать историю развития своего главного инструмента для написания программ - язык C#.

Расскажу об одной прикольной фиче из C# 11 версии.

Начнем как всегда с проблемы😉
В C# работа со строками может быть связана с трудностями при необходимости использования многострочных строк и строк с экранированными символами, такими как кавычки или обратные слэши. Например, работа с JSON, XML или SQL-запросами внутри кода требует тщательной экранизации символов, что может сделать код менее читаемым и более сложным для поддержки.

Рассмотрим пример, в котором требуется создать JSON-строку с вложенными кавычками и переносами строк:
string jsonString = "{\n\"name\": \"John\",\n\"age\": 30\n}";
Console.WriteLine(jsonString);
// {
// "name": "John",
// "age": 30
// }

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

До появления C# 11 одним из распространённых способов решения этой проблемы могло стать использование строковых литералов с экранированием символов и конкатенацией строк:
string jsonString = "{\n" +
" \"name\": \"John\",\n" +
" \"age\": 30\n" +
"}";

Хотя этот метод решает проблему создания многострочных строк, он всё ещё имеет ряд недостатков:
– Необходимость экранирования специальных символов (например, \n для переноса строки, \" для кавычек).
– Ухудшение читаемости кода из-за конкатенации строк и экранированных символов.
– Сложности при редактировании таких строк.

Решение
С выходом C# 11 появилась новая возможность — необработанные строковые литералы, которые значительно упрощают работу с многострочными строками и строками, содержащими специальные символы. Необработанные строковые литералы заключаются в тройные кавычки """.

Перепишем пример с использованием необработанных строковых литералов:
string jsonString = """
{
"name": "John",
"age": 30
}
""";

Console.WriteLine(jsonString);
// {
// "name": "John",
// "age": 30
// }

Очевидно, что такой подход имеет ряд преимуществ:
– Не нужно экранировать специальные символы.
– Многострочные строки поддерживаются напрямую.
– Читаемость кода значительно улучшается.

Также стоит отметить, что необработанные строковые литералы поддерживают интерполяцию. Несколько символов $ обозначают, сколько последовательных скобок начинают и завершают интерполяцию. Использование нескольких символов $ в необработанных строковых литералах необходимо для корректной интерполяции строк с фигурными скобками, например, для JSON-строки с интерполяцией.

Для указания того, что интерполяцию начинают и заканчивают 2 фигурные скобки необходимо использовать $$""", например:
string name = "John";
int age = 30;
string jsonString = $$"""
{
"name": "{{name}}",
"age": {{age}}
}
""";

Console.WriteLine(jsonString);


Вот такую приколюшку завезли в C#, чтобы нам с вами легче было писать читаемый и чистый код☺️

Как вам? Знали про такую фичу?

❤️ — если знали о такой фиче
👀 — если узнали о нем впервые

#полезные_материалы #эволюция_языка
👀214
Как выбрать между фронтендом и бэкендом?

Итак, ты стоишь на развилке: фронтенд или бэкенд? Кажется, что это как выбрать между светлой и тёмной стороной Силы. Но на самом деле, это просто две разные работы с кодом.

🌸 Фронтенд
Это про всё красивое, что видит пользователь. Ты делаешь сайты, которые сияют, анимации, которые плавно двигаются, и интерфейсы, которые удобны даже для бабушки.

Тут важны чувство стиля, понимание UX и любознательность: как сделать так, чтобы всё выглядело круто на всех устройствах? А ещё нужно дружить с HTML, CSS и JavaScript, да и с фреймворками типа React или Vue тебе по пути.

⚙️ Бэкенд
Это магия за кулисами. Ты создаёшь логику, которая всё это двигает. Фронтендер может нарисовать супер-кнопку, но если за ней нет базы данных, серверов и API, она пустая. Бэкендер работает с данными, обрабатывает запросы, строит архитектуры.

Здесь тебе нужны языки вроде Python, Java, Go или даже C#. И если тебе по душе структурирование, оптимизация процессов и работа с серверами — твоя дорога сюда.

Как выбрать? Если тебе нравится видеть результат работы сразу и ты кайфуешь от визуала — фронтенд. Если любишь погружаться в логику, алгоритмы и данные — бэкенд твоё. А если хочешь быть джедаем в обоих мирах, добро пожаловать во фуллстек!

Что выбрал ты? Пиши в комментах, интересно узнать!

#PROIT
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну красота же?
🔥52👍10🏆2🤯1🎉1👀1
🧩 Загадка для программистов: Выходной

Программист спрашивает у начальника:
— Когда можно взять выходной? 🏖

👨‍💼 Начальник загадочно отвечает:

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

Наш программист 🧑‍💻 сначала ничего не понял, а потом как понял! 🎉

Когда будет выходной?

Делитесь своими мыслями под скрытым текстом в комментариях.👀

#решение_задачи
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧩 Решение задачи: Выходной

Начальник запутал все дни недели, чтобы программисту 🧑‍💻 было над чем подумать! Давайте разберёмся в днях, чтобы выяснить, какой же день недели — долгожданный выходной. 🚀

1️⃣ Начнём с первой части:
«Когда послезавтрашний день станет вчерашним»

Представим, что сегодняшний день — это X. Тогда:

Завтра будет X+1
Послезавтра — X+2
Чтобы день X+2 стал вчерашним, должен наступить новый день — X+3. 📅

2️⃣ Теперь вторая часть:
«как тот день, который был сегодня, когда позавчера было завтра»

Пусть X — это сегодня:

Вчера будет X−1
Позавчера — X−2
Чтобы позавчера стало «завтра», вернёмся ещё на один день назад. Значит, когда «позавчера было завтра» — это X−3.

3️⃣ Объединяем части:
Получается, через 3 дня (X+3) «выходной будет так же далеко от субботы», как и 3 дня назад (X−3). 🤔

То есть в какую бы сторону мы ни двигались от изначального дня (субботы), уходим на одинаковое количество дней. Значит, суббота — и есть долгожданный выходной! 🎉

🧩 Ещё больше задач на курсе PRO Логические задачи со скидкой 20%, где ты улучшишь свое логическое и критическое мышление благодаря решению задач

#решение_задачи
1
Я вот тут заметил, что шагнул планку в 2 000 подписчиков🥹

Для меня это большая цифра. Поэтому надо что то устроить в эту честь.

Во-первых, можете поздравить меня😂

А во-вторых, можете накидать в комментах какую движуху устроить нам. Я за любой хипиш)
🔥37👍7🎉42🏆1
В честь 2к подписчиков хочу устроить созвон со всеми учениками.

Собственно выбирайте лоты, в которых сможете быть на стриме. Время мск!
Final Results
10%
Среда в 18:00
30%
Среда в 19:00
13%
Четверг в 15:00
33%
Четверг в 19:30
15%
Пятница в 15:00
15%
Пятница в 16:00
24%
Пятница в 17:00
33%
Суббота в 16:00
3
Стрим

Итак. По результатам голосования большинство за четверг в 19:30 или в субботу в 16:00.

Предлагаю долго не тянуть: стрим будет в четверг, завтра в 19:30.

Стрим проведем прямо тут😎

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

А для тех, кто хочет задать вопрос анонимно, есть форма для этого 👉 https://forms.gle/wNX8Q2DtKJXRZqAJ8

До завтра👨‍💻
👍18🤣1