Главное правило детектива — знай, что ты ищешь!
Ты проверил снаряжение: режим
И что дальше? 🤔
Вот тут и происходит разделение на новичков и опытных разработчиков. Новичок начинает бесцельно нажимать F10, просто наблюдая, как меняются цифры, в надежде, что ошибка сама выпрыгнет ему в лицо с криком «Это я!»😜
Опытный разработчик делает иначе. Потому что он знает главное, золотое правило отладки.
Отладчик — это не волшебная палочка, которая находит ошибку. Это инструмент, который помогает ТЕБЕ найти ошибку, проверяя твои ГИПОТЕЗЫ.
Прежде чем нажать F5, ты должен сделать самую важную вещь: остановиться и подумать.
Шаг 0. Сформулируй ожидания (ты же знаешь, что программисты считают с нуля?🙈 )
Представь себя не просто детективом, а прокурором, который уже знает, как должно было пройти «идеальное преступление» (т.е. как должен был правильно выполниться твой код).
Прежде чем лезть в отладчик, ответь себе на простой вопрос:
Что я ожидаю увидеть в этой точке кода?
— На третьей итерации этого цикла переменная
— После выполнения этой строки объект
— Когда я дойду до этого
Ты должен понимать эталонное, правильное поведение программы. Иначе как ты поймешь, что что-то пошло не так?
> Отладка — это процесс сравнения ожиданий с реальностью. Нет ожиданий — нет отладки. Есть только бесцельное блуждание по коду.
Как это выглядит на практике?
Давай возьмем простой пример. Код должен посчитать итоговую цену товара со скидкой:
Плохой подход (новичок):
Так, что-то не то. Поставлю-ка я точку останова на
Хороший подход (детектив с гипотезой):
1. Ожидание. Цена 150, скидка 20%. Я ожидаю, что
2. Гипотеза. Проблема, скорее всего, в расчете
3. Проверка с помощью отладчика:
— Ставлю точку останова ПОСЛЕ строки
— Запускаю отладку (F5). Программа останавливается.
— Навожу мышку на
— Реальность:
— Сравнение: Моя гипотеза верна! Переменная не равна
Видишь разницу? Во втором случае отладчик используется как точечный лазерный инструмент для проверки конкретной идеи, а не как дубина, которой ты размахиваешь в темноте.
❗️Запомни навсегда
Прежде чем погрузиться в отладку, задай себе главный вопрос:
Что я ожидаю здесь увидеть и почему я думаю, что этого не происходит?
Сформируй гипотезу, и только потом иди ее проверять. Это сэкономит тебе не просто минуты, а часы и целые дни работы.
Отладчик — это не волшебная палочка, а твой верный напарник. Он не найдет ошибку за тебя — он поможет проверить твои гипотезы.
Ставьте реакцию:
🔥 — Спасибо, теперь я всегда буду думать перед отладкой. Это мой новый ритуал!
👀 — Еще сложно, но интересно... Поделись в комментах. Помогу❤️🩹
👍 — Если ты уже применил это и нашел баг за 2 минуты. Расскажи, как!
Ты проверил снаряжение: режим
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
Те, кто давно со мной, кто уже работает в IT, они все прошли через потоковые курсы. Если вдруг ты это читаешь, напиши в комментариях свое мнение о потоковых курсах. Это поможет новичкам нашим определиться с дальнейшим шагом.
Для тех, кто не знает вкратце, что там можно и нужно делать:
- попрактиковаться на реальных проектах
- наработать портфолио
- научиться писать чистый и масштабируемый код
- получить опыт, который нужен работодателю
Если вам что то из этого зацепило и хочется двигаться вперед, то оставляйте заявку по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse. Если не определились с курсом выберите "ООП на практике", дальше мы вас сориентируем.
Потоки запускаются 2 раза в году. Мы туда вкладываем много энергии и хотим видеть результаты учеников в виде крутых проектов с чистым кодом и красиво оформленным портфолио, которые готовы выходить на рынок труда.
Я еще много буду рассказывать и показывать про потоковые курсы. Если вкратце:
1. Если знаешь основы, идешь на ООП на практике
2. Если знаешь ООП. то идешь на ASP или WPF
Все просто😉
Для тех, кто не знает вкратце, что там можно и нужно делать:
- попрактиковаться на реальных проектах
- наработать портфолио
- научиться писать чистый и масштабируемый код
- получить опыт, который нужен работодателю
Если вам что то из этого зацепило и хочется двигаться вперед, то оставляйте заявку по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse. Если не определились с курсом выберите "ООП на практике", дальше мы вас сориентируем.
Потоки запускаются 2 раза в году. Мы туда вкладываем много энергии и хотим видеть результаты учеников в виде крутых проектов с чистым кодом и красиво оформленным портфолио, которые готовы выходить на рынок труда.
Я еще много буду рассказывать и показывать про потоковые курсы. Если вкратце:
1. Если знаешь основы, идешь на ООП на практике
2. Если знаешь ООП. то идешь на ASP или WPF
Все просто😉
👍6❤2🔥2
Forwarded from Анг
Вечер добрый, лучший ученик 🌱
У нас шикааааарная новость!
Мы добавили Дипломную работу в конце курса — теперь у тебя будет возможность применить все знания на практике и создать свою первую консольную игру!
Это отличный способ закрепить пройденное и получить реальный результат — игру, которую ты создал!
👉 Какая именно игра? Заходи скорее в Основы программирования — впереди твой первый проект!
У нас шикааааарная новость!
Мы добавили Дипломную работу в конце курса — теперь у тебя будет возможность применить все знания на практике и создать свою первую консольную игру!
Это отличный способ закрепить пройденное и получить реальный результат — игру, которую ты создал!
👉 Какая именно игра? Заходи скорее в Основы программирования — впереди твой первый проект!
Stepik: online education
Консольная игра
🔥20❤5👍2
Зачем вам ООП
Вы начали учиться программированию, освоили основы, возможно, даже прошли продвинутые темы. Вы уже пишете свои первые программы, и — самое главное — они РАБОТАЮТ! Это настоящая победа.
Но наверняка вы столкнулись с трудностями:
— Нужно добавить новую функцию? Приходится переписывать половину программы, на которую вы потратили столько сил.
— Открыли свой код через месяц? Уже не можете вспомнить, как он работает, хотя писали его сами.
— Вы сами не знаете качество вашего кода
Почему так происходит?
Все просто: вы научились писать работающий код. Но в реальной разработке этого недостаточно.
Программы постоянно меняются и дорабатываются. Новый функционал нужно добавлять так, чтобы не сломать то, что уже протестировано и стабильно работает. А знаете ли вы, что разработчики тратят до 80% времени на чтение кода и только 20% — на его написание? Ваш код — это «чужой» код для других (и для вас самих через месяц). Он должен быть понятным.
Следующий шаг в вашем развитии — научиться писать код, который будет не только работающим, но и читаемым и расширяемым.
Решение — объектно-ориентированный подход (ООП)
ООП — это не просто набор правил, это способ мыслить и структурировать код. Вы начинаете описывать программу через объекты и процессы из реального мира (пользователь, корзина, заказ, оплата). Благодаря этому код становится интуитивно понятным.
Принципы ООП помогают достичь двух ключевых целей:
1. Читаемость. Код легко понять даже спустя долгое время.
2. Расширяемость. Новый функционал добавляется легко, с минимальными изменениями в старом коде.
Как помогает в этом курс «ООП на практике»
Данный курс — это мост между «я умею писать код» и «я пишу код как профессионал».
За время обучения вы с нуля напишете 7 полноценных программ с применением ООП и оформите их в портфолио на GitHub. Именно здесь мы «ставим почерк» — учим писать код, который легко читать, поддерживать и развивать.
Старт нового потока — 5 сентября. Длительность — 3 месяца. Вас ждут плотный кодинг и код-ревью, которые выведут вас на новый уровень.
Как построено обучение
Курс длится 3 месяца и работает в недельном ритме:
— Пятница (вечер). Выходит новый урок (лекция + домашнее задание).
— До четверга. Выполняете ДЗ и отправляете на код-ревью. Мы проверяем задания каждый будний день.
— Четверг (утро). Публикуем видеоразбор задач от меня, где объясняю как и почему лучше решать задания.
— Пятница (вечер). Провожу еженедельный стрим. Обсуждаем частые ошибки и разбираю любые темы по вашим вопросам.
Главная ценность курса — это персональное код-ревью и живые стримы!
А для тех, кто справляется с заданиями быстрее остальных, у нас всегда готовы дополнительные задачи, чтобы вы могли прокачаться на максимум.
Начать обучение и перейти на другой уровень программирования можно по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse.
Это обязательный курс для освоения на пути становления разработчиком на C#!
Вы начали учиться программированию, освоили основы, возможно, даже прошли продвинутые темы. Вы уже пишете свои первые программы, и — самое главное — они РАБОТАЮТ! Это настоящая победа.
Но наверняка вы столкнулись с трудностями:
— Нужно добавить новую функцию? Приходится переписывать половину программы, на которую вы потратили столько сил.
— Открыли свой код через месяц? Уже не можете вспомнить, как он работает, хотя писали его сами.
— Вы сами не знаете качество вашего кода
Почему так происходит?
Все просто: вы научились писать работающий код. Но в реальной разработке этого недостаточно.
Программы постоянно меняются и дорабатываются. Новый функционал нужно добавлять так, чтобы не сломать то, что уже протестировано и стабильно работает. А знаете ли вы, что разработчики тратят до 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. 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🔥41❤17👍3
Вся правда о ООП
Я хотел написать куча постов про
— что такое ООП и зачем он нужен новичкам
— какие проблемы решает ООП
— что будет если писать неверно на ООП
— почему стоит прийти к нам учиться на ООП на практике
— что такое ревью кода
...
И таких пунктов набралось прям много! Просто времени не хватит, чтобы до старта потока вам рассказать все...
Поэтому будет сильно проще, быстрее и легче для всех провести стрим, в котором я все расскажу и покажу!
❗️Стрим будет в эту среду 20 августа в 19 часов по мск прямо в этом канале!❗️
Ставьте напоминание в календарь, чтобы не пропустить😉
Я хотел написать куча постов про
— что такое ООП и зачем он нужен новичкам
— какие проблемы решает ООП
— что будет если писать неверно на ООП
— почему стоит прийти к нам учиться на ООП на практике
— что такое ревью кода
...
И таких пунктов набралось прям много! Просто времени не хватит, чтобы до старта потока вам рассказать все...
Поэтому будет сильно проще, быстрее и легче для всех провести стрим, в котором я все расскажу и покажу!
❗️Стрим будет в эту среду 20 августа в 19 часов по мск прямо в этом канале!❗️
Ставьте напоминание в календарь, чтобы не пропустить😉
🔥21❤3👍1
Л – логика
Как понять, что написанный вами код решает поставленную задачу?
— ПРОСТО! Запускаешь программу и проверяешь делает программа то, что указано в условии задачи. ВСЕ!
Как понять, что написанный вами код правильный/чистый?
— НИКАК!
Посмотрите на кусок кода одного из участников прошлого потока ООП на практике (закреплен ниже к посту под спойлером). По мнению автора все ок, потому что код решает поставленную задачу. А читается ли код, простой ли он, масштабируемый ли он — это вопросы следующего уровня, который может подскажет только более опытный товарищ!
По сути это как в младших классах ставят почерк! Можно написать текст как будто курица писала (или не дай бог врач🙈), а можно писать четко и красиво, чтобы всем понятно было что написано.
Вот этому мы и учим на курсе ООП на практике.
❗️Завтра, в среду 20 августа в 19 часов по мск прямо в этом канале проведу стрим в котором расскажу более подробно про курс ООП на практике!❗️
Ставьте напоминание в календарь, чтобы не пропустить😉
P/S Это самый нужный курс из всех которые есть в нашей школе! Тут появляются ваши первые проекты/результаты! Записаться на курс можно по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse.
Места ограничены.
Следующий поток через пол года!
Как понять, что написанный вами код решает поставленную задачу?
— ПРОСТО! Запускаешь программу и проверяешь делает программа то, что указано в условии задачи. ВСЕ!
Как понять, что написанный вами код правильный/чистый?
— НИКАК!
Посмотрите на кусок кода одного из участников прошлого потока ООП на практике (закреплен ниже к посту под спойлером). По мнению автора все ок, потому что код решает поставленную задачу. А читается ли код, простой ли он, масштабируемый ли он — это вопросы следующего уровня, который может подскажет только более опытный товарищ!
По сути это как в младших классах ставят почерк! Можно написать текст как будто курица писала (или не дай бог врач🙈), а можно писать четко и красиво, чтобы всем понятно было что написано.
Вот этому мы и учим на курсе ООП на практике.
❗️Завтра, в среду 20 августа в 19 часов по мск прямо в этом канале проведу стрим в котором расскажу более подробно про курс ООП на практике!❗️
Ставьте напоминание в календарь, чтобы не пропустить😉
P/S Это самый нужный курс из всех которые есть в нашей школе! Тут появляются ваши первые проекты/результаты! Записаться на курс можно по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse.
Места ограничены.
Следующий поток через пол года!
❤6👍1🔥1
Media is too big
VIEW IN TELEGRAM
ООП на практике
Вчера провел стрим на тему ООП и почему он нужен всем разработчикам C#.
Это следующий логичный шаг после основ программирования, чтобы писать работающие и масштабируемые программы.
Рассказал про курс ООП на практике. Какие проблемы он решает и КАК решает!
Обязательно к просмотру:
YouTube | VK
Для записи на курс нужно оставить заявку по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse.
Если у вас есть вопросы, хотите разобрать именно вашу ситуацию, то также оставляйте заявку. Мы с вами поговорим и подскажем куда двигаться дальше.
Вчера провел стрим на тему ООП и почему он нужен всем разработчикам C#.
Это следующий логичный шаг после основ программирования, чтобы писать работающие и масштабируемые программы.
Рассказал про курс ООП на практике. Какие проблемы он решает и КАК решает!
Обязательно к просмотру:
YouTube | VK
Для записи на курс нужно оставить заявку по ссылке 👉 https://docs.google.com/forms/u/0/d/e/1FAIpQLSd2jFR92Co9Jsi_Vj3s0i3rcqgLHEHICuneR29nIFPpBMllpQ/formResponse.
Если у вас есть вопросы, хотите разобрать именно вашу ситуацию, то также оставляйте заявку. Мы с вами поговорим и подскажем куда двигаться дальше.
🔥11👍3❤2😁1