IRON PROGRAMMER
Топ-3 уникальных слова в тексте, которые встречаются чаще всего Я вижу вам зашел формат разбора решений. Тогда погнали дальше к следующей задаче. Напишите функцию, которая – принимает текст - строка, состоящая из слов, разделенных пробелами – возвращает…
Я напоминаю что надо решить задачу!
❤1
Все таки последний раз напоминаю, что надо решить задачу из этого поста. Прислать свое решение надо в комментариях к посту
И завтра выйдет видео разбор вашего кода.
Если пришлют еще 3 новых решения, то покажу как пользоваться BenchmarkDotNet - это библиотека для качественного оценивания кода по времени и памяти. Некий стандарт!
И завтра выйдет видео разбор вашего кода.
Если пришлют еще 3 новых решения, то покажу как пользоваться BenchmarkDotNet - это библиотека для качественного оценивания кода по времени и памяти. Некий стандарт!
👍3
Обновление курсов
Успеваете следить за нововведения в язык C#?
Мы стараемся поддерживать актуальность тем и в целом языка в наших курсах.
В октябре мы обновили следующие курсы:
1. PRO C#. Для продвинутых. Добавили 2 новых модуля:
– модуль "Decimal"
– модуль "Record" с новыми фичами языка C#. После данного модуля вы будете по другому писать свои классы👌
2. PRO C#. LINQ. Добавили 11 практических задач разного типа
Всем хорошей учебы🫶
Успеваете следить за нововведения в язык C#?
Мы стараемся поддерживать актуальность тем и в целом языка в наших курсах.
В октябре мы обновили следующие курсы:
1. PRO C#. Для продвинутых. Добавили 2 новых модуля:
– модуль "Decimal"
– модуль "Record" с новыми фичами языка C#. После данного модуля вы будете по другому писать свои классы👌
2. PRO C#. LINQ. Добавили 11 практических задач разного типа
Всем хорошей учебы🫶
🔥27❤4😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Кто то различит меня от моего аватара?😂
😁16👍2
Фриланс в IT: плюсы, минусы и как не сгореть
Фриланс в IT — это как будто тебе дали ключи от машины мечты, но с одним условием: ты сам за бензин, ремонты и каждый поворот отвечаешь. С одной стороны, свобода — ты можешь работать в любое время и из любой точки мира. Хочешь кодить в пижаме или на пляже? Пожалуйста. Никакого начальника, никаких офисов, никто не стоит над душой.
⚠️ Но! В реальности фриланс — это про бесконечные дедлайны. Клиенты часто хотят "ещё вчера", а у тебя их не один, а пять, и каждый тянет одеяло на себя. Плюс, постоянная нестабильность. Сегодня у тебя заказов куча, а завтра тишина и дыры в бюджете. Вдобавок, ты не просто кодишь, ты ещё и менеджер по продажам, бухгалтер и специалист по пиару — всё в одном лице.
🫠 Ну а теперь самое важное: выгорание. На фрилансе ты часто оказываешься в ситуации, когда работа не кончается. Без чёткого графика, границы между личным и рабочим временем стираются. В итоге можно легко попасть в цикл: работаешь день и ночь, а потом месяц не можешь ни на что смотреть.
🚫 Как не сгореть? Учись отказываться. Да-да, иногда «нет» — это лучшее, что ты можешь сделать для своей психики. Устанавливай границы: время работы, время отдыха. И никогда не забывай про «выключать ноутбук» после конца рабочего дня.
Фриланс — это не только свобода, но и ответственность
А у вас был опыт работы во фрилансе? Делись в комментах!
#PROIT
Фриланс в IT — это как будто тебе дали ключи от машины мечты, но с одним условием: ты сам за бензин, ремонты и каждый поворот отвечаешь. С одной стороны, свобода — ты можешь работать в любое время и из любой точки мира. Хочешь кодить в пижаме или на пляже? Пожалуйста. Никакого начальника, никаких офисов, никто не стоит над душой.
Фриланс — это не только свобода, но и ответственность
А у вас был опыт работы во фрилансе? Делись в комментах!
#PROIT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Пет проекты
Наверняка каждый из вас думал какой пет проект создать, чтобы
- было интересно
- не стыдно было показать работодателю
Специально для вас создали канал, в котором каждую неделю публикуем идеи для пет проектов.
Просто забирай и создавай 👌
https://t.me/take_create
Погнал дальше творить великие дела🫶
Наверняка каждый из вас думал какой пет проект создать, чтобы
- было интересно
- не стыдно было показать работодателю
Специально для вас создали канал, в котором каждую неделю публикуем идеи для пет проектов.
Просто забирай и создавай 👌
https://t.me/take_create
Погнал дальше творить великие дела🫶
❤11
Присваивание объединения со значением NULL
У нас скоро (очень скоро) выйдет курс по нововведениям языка C# – PRO C#. Эволюция языка. Хочу вас ввести в курс дела. Я считаю каждый уважающий себя C# разработчик должен знать историю развития своего главного инструмента для написания программ - язык C#.
Расскажу об одной прикольной фиче из C# 8 версии.
Начнем как всегда с проблемы😉
В реальных приложениях часто приходится работать с переменными, которые могут принимать значение null. Например, у нас может быть объект, который не инициализирован, и мы хотим присвоить ему значение по умолчанию, если он равен null. До появления C# 8, это приходилось делать с помощью условных операторов, например:
Метод ProcessData проверяет, равен ли список numbers null, и если да, инициализирует его новым объектом List<int>. Подобная запись может показаться громоздкой для такой элементарной операции.
Решение
В C# 8 появился оператор присваивания объединения с null (??=), который упрощает код и делает его более лаконичным. С помощью этого оператора можно выполнить ту же операцию в одну строчку:
Оператор ??= проверяет, является ли переменная слева от оператора равной null, и если это так, присваивает ей значение справа от оператора. Если переменная не равна null, то присваивание не выполняется.
⚠️ Внимание!
Оператор ??= чем-то похож на оператор ??, и тем не менее отличается. Напомним, что оператор ?? используется для возврата значения левого операнда, если он не равен null, в противном случае возвращается значение правого операнда. Например:
Если someString не равен null, someString сохранит своё значение. Если someString равен null, someString получит значение default value.
Таким образом, оператор ??= делает подобную проверку компактнее, ведь при его использовании не придётся дважды писать someString:
Вот такую приколюшку завезли в C#, чтобы нам с вами легче было писать читаемый и чистый код☺️
Как вам? Знали про такую фичу?
❤️ — если знали о такой фиче
👀 — если узнали о нем впервые
#полезные_материалы #эволюция_языка
У нас скоро (очень скоро) выйдет курс по нововведениям языка 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
👀19❤11👍7🤯1😱1
Присваивание объединения со значением NULL
У нас скоро (очень скоро) выйдет курс по нововведениям языка C# – PRO C#. Эволюция языка. Хочу вас ввести в курс дела. Я считаю каждый уважающий себя C# разработчик должен знать историю развития своего главного инструмента для написания программ - язык C#.
Расскажу об одной прикольной фиче из C# 11 версии.
Начнем как всегда с проблемы😉
В C# работа со строками может быть связана с трудностями при необходимости использования многострочных строк и строк с экранированными символами, такими как кавычки или обратные слэши. Например, работа с JSON, XML или SQL-запросами внутри кода требует тщательной экранизации символов, что может сделать код менее читаемым и более сложным для поддержки.
Рассмотрим пример, в котором требуется создать JSON-строку с вложенными кавычками и переносами строк:
Такой код не только выглядит громоздко, но и трудно читается, особенно при увеличении сложности строки.
До появления C# 11 одним из распространённых способов решения этой проблемы могло стать использование строковых литералов с экранированием символов и конкатенацией строк:
Хотя этот метод решает проблему создания многострочных строк, он всё ещё имеет ряд недостатков:
– Необходимость экранирования специальных символов (например, \n для переноса строки, \" для кавычек).
– Ухудшение читаемости кода из-за конкатенации строк и экранированных символов.
– Сложности при редактировании таких строк.
Решение
С выходом C# 11 появилась новая возможность — необработанные строковые литералы, которые значительно упрощают работу с многострочными строками и строками, содержащими специальные символы. Необработанные строковые литералы заключаются в тройные кавычки """.
Перепишем пример с использованием необработанных строковых литералов:
Очевидно, что такой подход имеет ряд преимуществ:
– Не нужно экранировать специальные символы.
– Многострочные строки поддерживаются напрямую.
– Читаемость кода значительно улучшается.
Также стоит отметить, что необработанные строковые литералы поддерживают интерполяцию. Несколько символов $ обозначают, сколько последовательных скобок начинают и завершают интерполяцию. Использование нескольких символов $ в необработанных строковых литералах необходимо для корректной интерполяции строк с фигурными скобками, например, для JSON-строки с интерполяцией.
Для указания того, что интерполяцию начинают и заканчивают 2 фигурные скобки необходимо использовать $$""", например:
Вот такую приколюшку завезли в C#, чтобы нам с вами легче было писать читаемый и чистый код☺️
Как вам? Знали про такую фичу?
❤️ — если знали о такой фиче
👀 — если узнали о нем впервые
#полезные_материалы #эволюция_языка
У нас скоро (очень скоро) выйдет курс по нововведениям языка 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#, чтобы нам с вами легче было писать читаемый и чистый код☺️
Как вам? Знали про такую фичу?
❤️ — если знали о такой фиче
👀 — если узнали о нем впервые
#полезные_материалы #эволюция_языка
👀21❤4
Как выбрать между фронтендом и бэкендом?
Итак, ты стоишь на развилке: фронтенд или бэкенд? Кажется, что это как выбрать между светлой и тёмной стороной Силы. Но на самом деле, это просто две разные работы с кодом.
🌸 Фронтенд
Это про всё красивое, что видит пользователь. Ты делаешь сайты, которые сияют, анимации, которые плавно двигаются, и интерфейсы, которые удобны даже для бабушки.
Тут важны чувство стиля, понимание UX и любознательность: как сделать так, чтобы всё выглядело круто на всех устройствах? А ещё нужно дружить с HTML, CSS и JavaScript, да и с фреймворками типа React или Vue тебе по пути.
⚙️ Бэкенд
Это магия за кулисами. Ты создаёшь логику, которая всё это двигает. Фронтендер может нарисовать супер-кнопку, но если за ней нет базы данных, серверов и API, она пустая. Бэкендер работает с данными, обрабатывает запросы, строит архитектуры.
Здесь тебе нужны языки вроде Python, Java, Go или даже C#. И если тебе по душе структурирование, оптимизация процессов и работа с серверами — твоя дорога сюда.
❓ Как выбрать? Если тебе нравится видеть результат работы сразу и ты кайфуешь от визуала — фронтенд. Если любишь погружаться в логику, алгоритмы и данные — бэкенд твоё. А если хочешь быть джедаем в обоих мирах, добро пожаловать во фуллстек!
Что выбрал ты? Пиши в комментах, интересно узнать!
#PROIT
Итак, ты стоишь на развилке: фронтенд или бэкенд? Кажется, что это как выбрать между светлой и тёмной стороной Силы. Но на самом деле, это просто две разные работы с кодом.
Это про всё красивое, что видит пользователь. Ты делаешь сайты, которые сияют, анимации, которые плавно двигаются, и интерфейсы, которые удобны даже для бабушки.
Тут важны чувство стиля, понимание UX и любознательность: как сделать так, чтобы всё выглядело круто на всех устройствах? А ещё нужно дружить с HTML, CSS и JavaScript, да и с фреймворками типа React или Vue тебе по пути.
Это магия за кулисами. Ты создаёшь логику, которая всё это двигает. Фронтендер может нарисовать супер-кнопку, но если за ней нет базы данных, серверов и API, она пустая. Бэкендер работает с данными, обрабатывает запросы, строит архитектуры.
Здесь тебе нужны языки вроде Python, Java, Go или даже C#. И если тебе по душе структурирование, оптимизация процессов и работа с серверами — твоя дорога сюда.
Что выбрал ты? Пиши в комментах, интересно узнать!
#PROIT
Please open Telegram to view this post
VIEW IN TELEGRAM
🧩 Загадка для программистов: Выходной
Программист спрашивает у начальника:
— Когда можно взять выходной? 🏖
👨💼 Начальник загадочно отвечает:
Когда послезавтрашний день станет вчерашним, выходной будет так же далеко от субботы, как тот день, который был сегодня, когда позавчера было завтра. 🤯
Наш программист 🧑💻 сначала ничего не понял, а потом как понял! 🎉
❓ Когда будет выходной?
Делитесь своими мыслямипод скрытым текстом в комментариях.👀
#решение_задачи
Программист спрашивает у начальника:
— Когда можно взять выходной? 🏖
👨💼 Начальник загадочно отвечает:
Когда послезавтрашний день станет вчерашним, выходной будет так же далеко от субботы, как тот день, который был сегодня, когда позавчера было завтра. 🤯
Наш программист 🧑💻 сначала ничего не понял, а потом как понял! 🎉
❓ Когда будет выходной?
Делитесь своими мыслями
#решение_задачи
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️⃣ Начнём с первой части:
«Когда послезавтрашний день станет вчерашним»
Представим, что сегодняшний день — это 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🎉4❤2🏆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
До завтра👨💻
Итак. По результатам голосования большинство за четверг в 19:30 или в субботу в 16:00.
Предлагаю долго не тянуть: стрим будет в четверг, завтра в 19:30.
Стрим проведем прямо тут😎
Для тех, кто не сможет присутствовать на стриме, предлагаю накидать свои вопросы в комментариях к этому посту.
А для тех, кто хочет задать вопрос анонимно, есть форма для этого 👉 https://forms.gle/wNX8Q2DtKJXRZqAJ8
До завтра👨💻
👍18🤣1