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
This media is not supported in your browser
VIEW IN TELEGRAM
🔥12
Твой код снова не работает? Хватит гадать на кофейной гуще!

Знакомая ситуация? Ты написал код, он выглядит идеально (по твоему мнению😂), но... не работает. Или работает, но совсем не так, как ты ожидал.

Ты начинаешь напрягать глаза, чтобы прочитать каждую строчку кода, а потом каждую букву. Ты думаешь, что так найдешь ошибку быстрее. А на самом деле проходит 20-30 минут, а ошибка не найдена.

Потом ты начинаешь злиться на себя и судорожно вставлять Console.WriteLine("я здесь") или Console.WriteLine("переменная x = " + x) в каждую вторую строчку, чтобы понять, что происходит.

Если узнал себя — этот пост для тебя. Пора прекратить быть гадалкой. Ну пожалуйста. Ну по-братски😔

Я тебе расскажу как избавиться от этой проблемы. Это классическая проблема, у которой есть классическое решение — отладчик (debugger).

Что такое отладка? 🕵️‍♂️

Представь, что твоя программа — это фильм. Обычно ты смотришь его от начала до конца. А теперь представь, что у тебя есть волшебный пульт, который позволяет:

Поставить фильм на паузу в любом моменте (это называется breakpoint или точка останова).
Прокрутить по одному кадру вперед (шаг за шагом).
Заглянуть в карманы к героям и прочитать их мысли (посмотреть значения всех переменных в этот конкретный момент).

Отладка — это и есть этот процесс. Это не просто исправление ошибок. Это процесс поиска этих ошибок с помощью специальных инструментов, встроенных в Visual Studio.

Ты буквально говоришь программе: «Эй, остановись вот на этой строчке, я хочу посмотреть, что у тебя внутри».

Какие проблемы решает отладчик?

Вот лишь несколько классических проблем новичка, которые отладчик решает за минуты, а не за часы:

1. «Почему моя переменная пустая/неправильная?»
Без отладчика: Ты ставишь 10 Console.WriteLine-ов, чтобы отследить, где значение "испортилось".
С отладчиком: Ты ставишь breakpoint и просто смотришь, на каком шаге переменная получает не то значение, которое ты ожидал. Ты видишь всю картину целиком!

2. «Программа падает с ошибкой, но я не понимаю, где именно»
Без отладчика: Ты читаешь ошибки и пытаешься угадать, какая из 5 функций виновата.
С отладчиком: Он сам остановится на той самой строке, которая вызвала падение. Не нужно гадать — он тебе ее покажет.

3. «Этот сложный цикл или условие работает не так, как я задумал»
Без отладчика: Ты пытаешься в уме прокрутить 50 итераций цикла. Мозг кипит, результат нулевой.
С отладчиком: Ты проходишь цикл шаг за шагом (итерация за итерацией), наблюдая, как меняются переменные и по какому пути идет логика. Все тайное становится явным.

Почему тебе нужно научиться этому ПРЯМО СЕЙЧАС?

Это экономит время. Часы мучительных поисков превращаются в минуты целенаправленной работы.
Это снижает стресс. Пропадает чувство «я ничего не понимаю». Появляется контроль над ситуацией.
Это делает тебя профессионалом. Умение пользоваться отладчиком — это то, что отличает новичка от опытного разработчика. На собеседованиях это ценят.
Это углубляет понимание кода. Ты начинаешь видеть, как программа «живет» и «дышит» изнутри, а не просто как набор текста.

Перестань воевать со своим кодом. Начни с ним разговаривать. Отладчик — твой переводчик.

Ставьте реакцию:

🔥 — если я убедЗил тебя, что отладчик это твой лучший друг
👀 — если надо еще словечек накидать😏
🔥31👀42
Агент, проверь снаряжение! Три условия, без которых магия не сработает

Итак, ты готов стать детективом. Лупа (твой мозг) наготове, дело (баг) ждет. Но прежде чем ринуться в бой, любой агент проверяет свое снаряжение. В мире отладки есть три простых, но обязательных условия. Если их не соблюсти, твои точки останова просто не сработают, и ты вернешься к гаданию на Console.WriteLine.

Давай убедимся, что твое оборудование настроено правильно.

Условие №1. Режим «Отладка» (Debug), а не «Релиз» (Release)

Это — самая частая ловушка для новичков. У твоей программы есть два основных режима сборки:

Debug (Отладка). Это режим для разработчика. Программа собирается со всеми "уликами" для твоего отладчика: специальными файлами (.pdb), картами кода и без оптимизаций, которые могут запутать логику. Это как режиссерская версия фильма с комментариями и вырезанными сценами.

Release (Выпуск). Это режим для конечного пользователя. Код максимально оптимизируется, сжимается, а все отладочные "улики" выбрасываются, чтобы программа работала быстрее и весила меньше. Это версия фильма для кинотеатра — гладкая и без лишних деталей.

Твоя задача: Всегда убеждайся, что в Visual Studio выбран режим Debug. Обычно это выпадающее меню на верхней панели инструментов (скрин прикрепил снизу).

> Почему это важно? Если ты попытаешься отладить Release-версию, отладчик будет как детектив, пришедший на пустое место преступления, где все улики уже стерли. Он не сможет сопоставить твой код с тем, что реально выполняется, и твои точки останова будут проигнорированы.

Условие №2. Запуск с отладчиком (F5), а не без него (Ctrl+F5)

В Visual Studio есть две главные кнопки запуска:

▶️ Пуск (F5). Это команда «Запустить и следить». Ты не просто запускаешь программу, а прикрепляешь к ней отладчик с самого старта. Он бежит рядом с твоей программой и готов остановиться по первому твоему требованию (на точке останова).

Запуск без отладки (Ctrl + F5): Это команда «Просто работай». Программа запускается сама по себе, максимально быстро, без надзора. Отладчик в этом процессе не участвует.

Твоя задача: Для поиска ошибок всегда используй F5 или зеленую кнопку «Пуск».

> Почему это важно? Запуск через Ctrl+F5 — это как отправить агента на задание, но сказать ему ждать у входа. Он просто не будет внутри, когда что-то пойдет не так.

Условие №3. Код должен быть свежим (актуальная сборка)

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

Результат. Visual Studio обычно предупреждает, что «точка останова не будет достигнута, так как исходный код отличается от версии, запущенной в данный момент». Твои точки останова будут выглядеть как пустые красные кружки, а не залитые.

Твоя задача: Если ты не уверен, актуальна ли сборка, просто нажми Ctrl + Shift + B (Собрать решение) или выбери в меню «Сборка» -> «Пересобрать решение» перед запуском отладки. Обычно Visual Studio делает это автоматически при запуске по F5, но иногда что-то может пойти не так.

> Почему это важно? Это как пытаться ориентироваться в новом городе по старой карте. Отладчик просто не найдет нужные "улицы" (строки кода), потому что в его "карте" (старой сборке) их еще нет или они находятся в другом месте.

Итог для настоящего агента:

Перед каждой миссией по отлову бага, проверь свой чек-лист:
1. Режим Debug? — Есть.
2. Запускаю через F5? — Есть.
3. Код свежий, сборка актуальна? — Есть.

Теперь ты во всеоружии. Ни один баг не скроется!

Как тебе такой ликбез по подготовке? Ставь 👍, если теперь все стало на свои места
👍17🔥1🏆1
Прикольное сравнение 😂😍

А вы бы как сравнили наше обучение с другими обучениями?
😁24💯21🔥1
Главное правило детектива — знай, что ты ищешь!

Ты проверил снаряжение: режим Debug включен, запускаешься по F5. Ты поставил точку останова, запустил код, и... программа замерла. Строка подсвечена желтым.

И что дальше? 🤔

Вот тут и происходит разделение на новичков и опытных разработчиков. Новичок начинает бесцельно нажимать F10, просто наблюдая, как меняются цифры, в надежде, что ошибка сама выпрыгнет ему в лицо с криком «Это я!»😜

Опытный разработчик делает иначе. Потому что он знает главное, золотое правило отладки.

Отладчик — это не волшебная палочка, которая находит ошибку. Это инструмент, который помогает ТЕБЕ найти ошибку, проверяя твои ГИПОТЕЗЫ.

Прежде чем нажать F5, ты должен сделать самую важную вещь: остановиться и подумать.

Шаг 0. Сформулируй ожидания (ты же знаешь, что программисты считают с нуля?🙈)

Представь себя не просто детективом, а прокурором, который уже знает, как должно было пройти «идеальное преступление» (т.е. как должен был правильно выполниться твой код).

Прежде чем лезть в отладчик, ответь себе на простой вопрос:
Что я ожидаю увидеть в этой точке кода?

— На третьей итерации этого цикла переменная counter должна быть равна 3
— После выполнения этой строки объект user должен иметь непустое поле email
— Когда я дойду до этого if, условие isReady должно быть true

Ты должен понимать эталонное, правильное поведение программы. Иначе как ты поймешь, что что-то пошло не так?

> Отладка — это процесс сравнения ожиданий с реальностью. Нет ожиданий — нет отладки. Есть только бесцельное блуждание по коду.

Как это выглядит на практике?

Давай возьмем простой пример. Код должен посчитать итоговую цену товара со скидкой:
// Цель: применить скидку 20% к цене 150
double price = 150;
double discountPercent = 20;
double finalPrice = 0;

// Расчет
double discountAmount = price / discountPercent;
finalPrice = price - discountAmount;

Console.WriteLine($"Итоговая цена: {finalPrice}"); // Ожидаем 120, но получаем 142.5. Почему?


Плохой подход (новичок):
Так, что-то не то. Поставлю-ка я точку останова на double discountAmount и буду жать F10, пока не пойму, что не так. *...проходит 5 минут бессмысленных шагов...*

Хороший подход (детектив с гипотезой):
1. Ожидание. Цена 150, скидка 20%. Я ожидаю, что finalPrice будет равен 120 (150 - (150 * 0.20))

2. Гипотеза. Проблема, скорее всего, в расчете discountAmount. Я думаю, что он рассчитывается неправильно. Он должен быть 30, а он, видимо, какой-то другой

3. Проверка с помощью отладчика:
— Ставлю точку останова ПОСЛЕ строки double discountAmount = price / discountPercent;. Мне не нужно смотреть, как она считается, мне нужно увидеть результат.
— Запускаю отладку (F5). Программа останавливается.
— Навожу мышку на discountAmount.
Реальность: discountAmount равен 7.5 (150 / 20).
Сравнение: Моя гипотеза верна! Переменная не равна 30. Ошибка в этой строке. Теперь я могу сфокусироваться на исправлении одной конкретной формулы (price * (discountPercent / 100)), а не перечитывать весь код.

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

❗️Запомни навсегда
Прежде чем погрузиться в отладку, задай себе главный вопрос:
Что я ожидаю здесь увидеть и почему я думаю, что этого не происходит?

Сформируй гипотезу, и только потом иди ее проверять. Это сэкономит тебе не просто минуты, а часы и целые дни работы.

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

Ставьте реакцию:

🔥 — Спасибо, теперь я всегда буду думать перед отладкой. Это мой новый ритуал!
👀 — Еще сложно, но интересно... Поделись в комментах. Помогу❤️‍🩹
👍 — Если ты уже применил это и нашел баг за 2 минуты. Расскажи, как!
👍8👀2🔥1
6 лет совместной жизни ❤️ Полет нормальный 😂
58🔥13🎉12👍4👀2😁1
😁32
This media is not supported in your browser
VIEW IN TELEGRAM
Те, кто давно со мной, кто уже работает в IT, они все прошли через потоковые курсы. Если вдруг ты это читаешь, напиши в комментариях свое мнение о потоковых курсах. Это поможет новичкам нашим определиться с дальнейшим шагом.

Для тех, кто не знает вкратце, что там можно и нужно делать:
- попрактиковаться на реальных проектах
- наработать портфолио
- научиться писать чистый и масштабируемый код
- получить опыт, который нужен работодателю

Если вам что то из этого зацепило и хочется двигаться вперед, то оставляйте заявку по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse. Если не определились с курсом выберите "ООП на практике", дальше мы вас сориентируем.



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

Я еще много буду рассказывать и показывать про потоковые курсы. Если вкратце:
1. Если знаешь основы, идешь на ООП на практике
2. Если знаешь ООП. то идешь на ASP или WPF

Все просто😉
👍62🔥2
Forwarded from Анг
Вечер добрый, лучший ученик 🌱


У нас шикааааарная новость!

Мы добавили Дипломную работу в конце курса — теперь у тебя будет возможность применить все знания на практике и создать свою первую консольную игру!

Это отличный способ закрепить пройденное и получить реальный результат — игру, которую ты создал!


👉 Какая именно игра? Заходи скорее в Основы программирования — впереди твой первый проект!
🔥205👍2
Зачем вам ООП

Вы начали учиться программированию, освоили основы, возможно, даже прошли продвинутые темы. Вы уже пишете свои первые программы, и — самое главное — они РАБОТАЮТ! Это настоящая победа.

Но наверняка вы столкнулись с трудностями:
— Нужно добавить новую функцию? Приходится переписывать половину программы, на которую вы потратили столько сил.

— Открыли свой код через месяц? Уже не можете вспомнить, как он работает, хотя писали его сами.

— Вы сами не знаете качество вашего кода

Почему так происходит?

Все просто: вы научились писать работающий код. Но в реальной разработке этого недостаточно.

Программы постоянно меняются и дорабатываются. Новый функционал нужно добавлять так, чтобы не сломать то, что уже протестировано и стабильно работает. А знаете ли вы, что разработчики тратят до 80% времени на чтение кода и только 20% — на его написание? Ваш код — это «чужой» код для других (и для вас самих через месяц). Он должен быть понятным.

Следующий шаг в вашем развитии — научиться писать код, который будет не только работающим, но и читаемым и расширяемым.

Решение — объектно-ориентированный подход (ООП)

ООП — это не просто набор правил, это способ мыслить и структурировать код. Вы начинаете описывать программу через объекты и процессы из реального мира (пользователь, корзина, заказ, оплата). Благодаря этому код становится интуитивно понятным.

Принципы ООП помогают достичь двух ключевых целей:
1. Читаемость. Код легко понять даже спустя долгое время.
2. Расширяемость. Новый функционал добавляется легко, с минимальными изменениями в старом коде.

Как помогает в этом курс «ООП на практике»

Данный курс — это мост между «я умею писать код» и «я пишу код как профессионал».

За время обучения вы с нуля напишете 7 полноценных программ с применением ООП и оформите их в портфолио на GitHub. Именно здесь мы «ставим почерк» — учим писать код, который легко читать, поддерживать и развивать.

Старт нового потока — 5 сентября. Длительность — 3 месяца. Вас ждут плотный кодинг и код-ревью, которые выведут вас на новый уровень.

Как построено обучение

Курс длится 3 месяца и работает в недельном ритме:
— Пятница (вечер). Выходит новый урок (лекция + домашнее задание).
— До четверга. Выполняете ДЗ и отправляете на код-ревью. Мы проверяем задания каждый будний день.
— Четверг (утро). Публикуем видеоразбор задач от меня, где объясняю как и почему лучше решать задания.
— Пятница (вечер). Провожу еженедельный стрим. Обсуждаем частые ошибки и разбираю любые темы по вашим вопросам.

Главная ценность курса — это персональное код-ревью и живые стримы!

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

Начать обучение и перейти на другой уровень программирования можно по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse.

Это обязательный курс для освоения на пути становления разработчиком на C#!
👍13
Моя вторая книга готова к выпуску😳

Читаю это и не понимаю, это реальность или во сне?

Работали над книгой около года...
Переработали материал, добавили иллюстраций для большего понимания, нарисовали обложку книги.

Книга "Алгоритмы поиска и сортировки" готова к предзаказу😍 Можно заказать в одном из магазинов:

1. https://www.chitai-gorod.ru/product/algoritmy-poiska-i-sortirovki-3119134?ysclid=mdx7o20u5v83211857

2. https://www.bookvoed.ru/product/algoritmy-poiska-i-sortirovki-8732428?utm_custom_source=referrer_book24

3. https://book24.ru/product/algoritmy-poiska-i-sortirovki-8732428/?ysclid=mdx7p49k1l409085073

Скоро моя книга появится на полках крупных магазинов. Еще одна мечта исполнена😎

Буду рад, если поддержите молодого писателя😂
1🔥4117👍3
Вся правда о ООП

Я хотел написать куча постов про
— что такое ООП и зачем он нужен новичкам
— какие проблемы решает ООП
— что будет если писать неверно на ООП
— почему стоит прийти к нам учиться на ООП на практике
— что такое ревью кода
...
И таких пунктов набралось прям много! Просто времени не хватит, чтобы до старта потока вам рассказать все...

Поэтому будет сильно проще, быстрее и легче для всех провести стрим, в котором я все расскажу и покажу!

❗️Стрим будет в эту среду 20 августа в 19 часов по мск прямо в этом канале!❗️

Ставьте напоминание в календарь, чтобы не пропустить😉
🔥213👍1
Live stream scheduled for
Л – логика

Как понять, что написанный вами код решает поставленную задачу?

— ПРОСТО!
Запускаешь программу и проверяешь делает программа то, что указано в условии задачи. ВСЕ!


Как понять, что написанный вами код правильный/чистый?

— НИКАК!

Посмотрите на кусок кода одного из участников прошлого потока ООП на практике (закреплен ниже к посту под спойлером). По мнению автора все ок, потому что код решает поставленную задачу. А читается ли код, простой ли он, масштабируемый ли он это вопросы следующего уровня, который может подскажет только более опытный товарищ!

По сути это как в младших классах ставят почерк! Можно написать текст как будто курица писала (или не дай бог врач🙈), а можно писать четко и красиво, чтобы всем понятно было что написано.

Вот этому мы и учим на курсе ООП на практике.

❗️Завтра, в среду 20 августа в 19 часов по мск прямо в этом канале проведу стрим в котором расскажу более подробно про курс ООП на практике!❗️

Ставьте напоминание в календарь, чтобы не пропустить😉

P/S Это самый нужный курс из всех которые есть в нашей школе! Тут появляются ваши первые проекты/результаты! Записаться на курс можно по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse.

Места ограничены.

Следующий поток через пол года!
6👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
10🔥6👍1