Три месяца назад я писал маленькую утилиту для склада: функция добавляла товар в список заказа. При первом вызове всё работало. При втором — в списке лежал прошлый заказ вместе с новым. Дело было не в логике склада. Дело было в одной строчке, которую я писал сотни раз до этого и ни разу не думал, что она может себя так вести. В тот вечер я писал функцию, которая добавляет товар в список заказа, и чтобы не таскать список снаружи каждый раз, дал ему значение по умолчанию прямо в сигнатуре функции: def add_item(item, order=[]): order...
Программирование в задачах и примерах
Что реально пригодится на ОГЭ по информатике из школьной программы Python
Девятиклассники на моих курсах чаще всего спрашивают не «как выучить Python», а конкретнее: что из школьной программы реально пригодится на экзамене, а что можно пока отложить. Разберём по честному, без раздутого списка тем ради количества. Сразу оговорюсь: точные формулировки заданий в ОГЭ по информатике меняются от года к году, поэтому актуальную демоверсию перед подготовкой стоит сверить на сайте ФИПИ, а здесь речь пойдёт о базовых темах, которые остаются актуальными почти в любой версии экзамена последних лет...
10 функций JavaScript, без которых не обойтись даже в первом проекте
Собрал десять функций JavaScript, без которых почти невозможно обойтись даже в первом небольшом проекте: разберём каждую на коротком примере, который можно сразу проверить в консоли браузера. console.log() выводит значение в консоль разработчика. Кажется банальным, но именно эта функция становится вашим главным инструментом отладки на первых месяцах, когда пока нет привычки пользоваться полноценным дебаггером. console.log("Проверяем значение:", x); document.querySelector() находит на странице первый элемент, подходящий под указанный CSS-селектор...
5 признаков, что ребёнку ещё рано учить программирование, и 3 — что уже пора
Родители часто спрашивают меня не «с какого языка начинать», а более ранний вопрос: а не рано ли вообще начинать. Собрал признаки в обе стороны, опираясь на опыт занятий с детьми разного возраста на своих курсах. Пять признаков, что пока рано: Ребёнок ещё плохо читает самостоятельно и с трудом справляется с текстом на пару предложений. Программирование даже в блочном виде вроде Scratch требует читать подписи на кнопках и понимать инструкции, и если чтение само по себе даётся с трудом, кодинг добавит ещё один слой сложности поверх уже существующей нагрузки...
Три вещи о Python, которые я намеренно не говорю новичкам на первом занятии
Есть вещи про Python, которые я знаю с первого дня преподавания, но никогда не говорю новичкам. Не потому что скрываю правду, а потому что честность в неправильный момент иногда вредит больше, чем аккуратное молчание. Первая вещь: Python далеко не самый быстрый язык из существующих, и для некоторых задач его скорости прямо не хватает без дополнительных ухищрений. Если на первом занятии рассказать новичку, что его будущий код будет работать медленнее, чем аналогичный на C++, у многих сразу опускаются руки: зачем учить что-то заведомо не самое эффективное...
Разбираю циклы в Python на пальцах: задача, с которой сыпется весь класс
На курсе про циклы мне раз в неделю задают один и тот же вопрос: «а как понять, сколько раз цикл выполнится, если в условии написано что-то сложнее простого числа?» Обычное объяснение через синтаксис почти никому не заходит с первого раза. Расскажу способ, который наконец начал работать почти у всех моих учеников. Стандартное объяснение цикла for в Python выглядит так: у него есть начальное значение, условие продолжения и шаг изменения переменной. Формально это верно, но для новичка это три абстрактных термина подряд, за которыми не стоит никакой картинки в голове...
