Мой сын заинтересовался программированием на Python, и у меня появился вопрос – есть ли сегодня возможность купить книгу для ребёнка в качестве самоучителя? Самоучители для взрослых детям не подходят – мотивации продираться самостоятельно через учебники программирования и у взрослых не всегда хватает, а у ребёнка скучное «академическое» изложение вообще может убить весь интерес к предмету на пятой странице.
К счастью, на момент написания статьи (конец 2018 года) выбор оказался весьма широк – есть как переводные, так и отечественные книги, нацеленные на детскую и подростковую аудиторию. В ходе поиска, отсеяв книги по Python 2, я смог найти 10 свежих книг по Python 3 для детей, изучил каждую их них вживую в офлайн-магазинах, и результатами своих изысканий хочу поделиться с вами в статье под катом.
Для самых маленьких – весело и с картинками
К. Вордерман и др.
Программирование для детей: Иллюстрированное руководство по языкам Scratch и Python, 224 стр.
Издательство: Манн, Иванов и Фербер, 2017 г.ISBN: 978-5-00057-472-0, 978-5-00100-073-0, 978-5-00100-557-5, 978-5-00117-348-9
Carol Vorderman. Computer Coding for Kids: A Unique Step-By-Step Visual Guide, From Binary Code to Buildings Game, 224 pp.
Publisher: DK Children, June 2014
ISBN: 978-1-40934-701-9, 978-0-24118-169-0 (eBook)
«Dorling Kindersley» — это Ferrari мира детских издательств. Поэтому с одной стороны, покупая книги с этим логотипом, вы можете быть уверены в качестве как текста, так и печати, но с другой стороны — Ferrari дёшево не бывает. К данной конкретной книге всё это относится в полной мере – отличное качество полиграфии, продуманное и нацеленное именно на детское восприятие изложение – но при стоимости, заметно превышающей среднюю по рассматриваемой выборке.
Эта книга отличается от всех остальных тем, что её целевая аудитория – самые младшие школьники, и их знакомство с программированием начинается не сразу с Python, а с языка визуального программирования Scratch, аналогом которого в нашей системе образования является «ПервоЛого». Информация в книге распределена так: 64 страницы посвящены Scratch, 94 страницы – Python, причём материал излагается в сравнении со Scratch, а в двух последних главах на 45 страницах рассказывается про устройство компьютеров и интернета.
Единственный недостаток этого издания с точки зрения русскоязычного читателя состоит в том, что фразы на английском языке, используемые в программах-примерах, оставлены без перевода. Маленький российский читатель в целевом возрасте скорее всего ещё не знает английский настолько свободно, чтобы суметь их прочитать даже со словарём – и без помощи родителей здесь не обойтись, зато навык чтения на английском тоже может быть прокачан.
Качество полиграфии издания – великолепное, цветная печать на хорошей белой бумаге, полутвёрдая обложка, шитый блок обеспечивает долговечность и детеустойчивость.
К. Вордерман и др.
Программирование на Python: Иллюстрированное руководство для детей, 224 стр.
Издательство: Манн, Иванов и Фербер, 2018 г.ISBN: 978-5-00117-399-1
Carol Vorderman. Computer Coding Python Projects for Kids, 224 pp.
Publisher: DK Children, June 2017.
ISBN: 978-0-24128-686-9, 978-0-24131-432-6 (eBook)
Следующая книга в том же серийном оформлении для более продвинутых детей. Все 224 страницы целиком посвящены только Python, и на этот раз издатель в том числе перевёл все фразы из программ-примеров на русский. Текст книги и программы-примеры не дублируют предыдущее издание — здесь всё своё, порядок изложения также немного другой.
И чтобы вы знали, Кэрол Вордерман – ни разу не программист, а телезвезда, которая вела на протяжении 26 лет суперпопулярное шоу головоломок Countdown, под её фамилией как раскрученным брендом в Британии издано изрядное количество научпопа для детей. Её имя на обложке помогало книге продаваться, а за качественную содержательную часть отвечал остальной коллектив из 5 авторов, скрывающихся за аббревиатурой «и др.» Та же история и с предыдущей книгой – только набор 5 реальных авторов немного другой.
Качество полиграфии издания – великолепное, цветная печать на хорошей белой бумаге, полутвёрдая обложка, шитый блок.
Программирование для детей на языке Python, 96 стр.
Издательство: АСТ, 2017 г.ISBN: 978-5-17982-809-9
Louie Stowell. Coding for Beginners using Python, 96 pp.
Publisher: Usborne Publishing Ltd, March 2017.
ISBN: 978-1-40959-934-0, 978-0-79453-950-4
Если ценники первых двух книг в обзоре вас неприятно поразили – то, к счастью, у нас есть более доступный вариант для младшего возраста! Потерявшая авторство в процессе издания на русском языке книга Луи Стоуэлла является безо всяких скидок достойной альтернативой предыдущему изданию DK, а стоит значительно дешевле. Количество страниц здесь меньше – но сама книга большего формата, и более компактной вёрстки, так что объём материала практически такой же.
В этом издании, как и в первой книге обзора, фразы на английском из примеров программ на русский не переведены, юному программисту потребуется словарь или помощь родителей. Но знания языка лишними не бывают – так что отсутствие перевода можно счесть и за плюс.
Качество полиграфии издания – великолепное, цветная печать на хорошей бумаге, полутвёрдая обложка, шитый блок.
Для тех, кто постарше – посерьёзнее и картинок поменьше
Д. Бриггс.
Python для детей: Самоучитель по программированию, 320 стр.
Издательство: Манн, Иванов и Фербер, 2018 г.ISBN: 978-5-00100-616-9, 978-5-00117-231-4
Jason R. Briggs. Python for Kids: A Playful Introduction to Programming, 344 pp.
Publisher: No Starch Press, December 2012.
ISBN: 978-1-59327-407-8
Самая почтенная книга в данном обзоре – оригинал 2012 года. Количество положительных отзывов о ней в интернете огромно – и книга действительно хороша, но с одной важной оговоркой: по структуре это скорее учебник, а не самоучитель. С цветными картинками, но вот прямо классический школьный учебник, с соответствующим подходом к изложению: всё последовательно, с практикой, очень детально поясняется в расчёте на впервые столкнувшихся с программированием, но, увы, почти без поддерживающих интерес промежуточных результатов. Как учебник для курсов/кружков – вообще идеально, при условии дополнения какой-то поддерживающей интерес побочной активностью. Английские фразы в примерах переведены.
Качество полиграфии издания — прекрасное, цветная печать на хорошей белой бумаге, плотная мягкая обложка, шитый блок.
Б. Пэйн.
Python для детей и родителей, 352 стр.
Издательство: Эксмо, 2017 г.ISBN: 978-5-69995-169-7
Bryson Payne. Teach Your Kids To Code: A Parent-Friendly Guide To Python Programming, 336 pp.
Publisher: No Starch Press, April 2015.
ISBN: 978-1-59327-614-0
Эта книга тоже построена как учебник, но на мой взгляд больше чем предыдущая подходит на звание самоучителя для ребёнка – написана гораздо более живым языком, есть занимательные промежуточные результаты, в каждой главе подводятся итоги и предлагаются идеи по самостоятельной доработке получившихся программ (при этом с возможностью скачать готовые варианты модификаций, если что-то не будет получаться). Английские фразы в примерах переведены.
Качество полиграфии издания — прекрасное, цветная печать на хорошей белой бумаге, твёрдая обложка, шитый блок.
П. Томашевский.
Привет, Python! Моя первая книга по программированию, 256 стр.
Издательство: Наука и Техника, 2018 г.ISBN: 978-5-94387-748-3
Ещё одна книга-учебник, гораздо более «школьная» чем предыдущие – главы так и называются «уроками», каждый «урок» разбит на «задания», оживляжа текста заметно меньше, промежуточные результаты ни разу не занимательные, а чисто функциональные.
Качество полиграфии издания — бюджетное, чёрно-белая печать на сероватой бумаге, мягкая обложка, клеёный блок.
Д. Кольцов.
Python: Создаем программы и игры, 400 стр.
Издательство: Наука и Техника, 2017 г.ISBN: 978-5-94387-746-9
Невзирая на название, игры в этой книге занимают незначительную часть объёма изложения (3 главы из 37), это классический самоучитель для взрослых, который, возможно не намеренно, в силу названия и оформления обложки мимикрирует под книгу для детей. Из плюсов — материала по языку в ней изложено гораздо больше, чем в «детских» книгах, но ребёнку это издание не подойдёт.
Качество полиграфии по минимуму: чёрно-белая печать на газетной бумаге, совсем мягкая обложка, клеёный блок.
Учимся, играя – так тоже можно!
Э. Свейгарт.
Учим Python, делая крутые игры, 416 стр.
Издательство: Бомбора, 2018 г.ISBN: 978-5-69999-572-1
Al Sweigart. Invent Your Own Computer Games with Python, 4 edition, 376 pp.
Publisher: No Starch Press, December 2016.
ISBN: 978-1-59327-795-6
Оригинал этой книги на английском полностью бесплатен (в онлайн-варианте), поэтому мои претензии ниже по подходу к изложению к оригиналу неприменимы – если тебя что-то не устраивает, то в мире бесплатного сыра ты просто берёшь другой кусочек, но с бумажной книгой за деньги приходится тщательнее выбирать перед началом банкета.
Мне не очень понравился подход к изложению материала – в каждой главе читателю сначала предлагается механически набрать код очередной игры, а затем также механически прочитать пару десятков страниц, описывающих что именно в этом коде происходит. Нет вовлечённости читателя в обучение – в отличие от остальных книг в обзоре. Для «хайпа» издатель перевода назвал игры из книги «крутыми» — однако никакой особой «крутизны» автор в оригинале никому не обещал, игры в книге вполне «обыденные», хотя и весьма разнообразные. Из плюсов – изложение идёт последовательно от простого к сложному, и на чисто игровых примерах из книги действительно можно научиться программировать с нуля. Картинок нет, английские фразы в примерах переведены.
К сожалению, качество полиграфии этого издания подкачало – чёрно-белая печать на белой, но полупрозрачной бумаге (просвечивает текст с оборота и следующей страницы), плюс тексты программ набраны мелким шрифтом (фонт Condensed). Удобства восприятию это, увы, совсем не добавляет – фактически читать труднее, чем если бы бумага была изначально газетной (например, см. последнюю книгу предыдущего раздела обзора). Плотная мягкая обложка, клеёный блок.
К. Ричардсон.
Программируем с Minecraft: Создай свой мир с помощью Python, 368 стр.
Издательство: Манн, Иванов и Фербер, 2017 г.ISBN: 978-5-00100-819-4
Craig Richardson. Learn to Program with Minecraft: Transform Your World with the Power of Python, 336 pp.
Publisher: No Starch Press, December 2015.
ISBN: 978-1-59327-670-6
Если ваш ребёнок — фанат Minecraft, то эта и следующая книги обзора дают уникальную возможность выучить Python не отходя от любимой игры. С помощью предлагаемых примеров программ можно вытворять в мире Minecraft такое, что вручную сотворить крайне затруднительно. Собственно обучение идёт по классической схеме от простого к сложному, в каждой главе читатель учится новым трюкам и сразу видит результат. Для вовлечения в процесс обучения используется необычный приём — в части примеров программ намеренно пропущены небольшие блоки кода, которые читателю предлагается написать самостоятельно, руководствуясь детальным описанием пропущенного функционала и знаниями, полученными в предыдущих главах. «Отягощающим» моментом по сравнению с книгами выше является необходимость параллельного изучения внутреннего устройства Minecraft — но для фаната в этом-то и прелесть.
Качество полиграфии издания — прекрасное, цветная печать на хорошей белой бумаге, плотная мягкая обложка, шитый блок.
Д. Вэйл, М. О`Хэнлон.
Minecraft: Программируй свой мир на Python, 224 стр.
Издательство: Питер, 2018 г.ISBN: 978-5-44610-951-7
David Whale, Martin O'Hanlon. Adventures in Minecraft, 2nd Edition, 320 pp.
Publisher: Wiley, November 2017.
ISBN: 978-1-119-43958-5, 978-1-119-43955-4 (eBook)
Обратите внимание на год издания – в 2016 году на русском выходило первое издание этой книги (синяя обложка), в котором использовался Python 2.
По заверениям авторов первую половину книги могут одолеть даже младшие школьники, так как кроме адаптации к Python 3 второе издание было ими специально переработано в сторону упрощения понимания смысла и структуры предлагаемых примеров программ. Особенностью данной книги является написанная специально для неё библиотека готовых подпрограмм манипуляции объектами в Minecraft, за счёт чего впечатляющих визуальных результатов можно добиться с меньшими трудозатратами на свой код.
Качество полиграфии издания — прекрасное, цветная печать на хорошей белой бумаге, плотная мягкая обложка, шитый блок.
А если вам уже 18+?
Тогда почитайте вот этот пост «Обзор литературы по языку Python для начинающих», его автор hatman как раз рассматривает вопрос выбора литературы для взрослых.
Но если вам всё-таки хочется цветных картинок и весёлых примеров – то возьмите себе что-то из моего обзора!
ISBN: 978-5-00057-472-0 – 30 400 страниц
ISBN: 9785000574720 – 5 700 страниц
ISBN: 978-5-000-57472-0 – 5 результатов (все мимо)
ISBN: 978-5-0005-7472-0 – 5 результатов (все мимо)
ISBN: 978-5000574720 – ровно 1 результат, но это Amazon!
Комментарии (45)
binakot
26.10.2018 22:09+3Какие-то странные комментарии. Основная задача — это познакомить свое чадо с программирование в целом, изучить основы; язык — дело второе. Хоть питон, хоть паскаль, хоть джаваскрипт… Просто с питоном легче играться, он не ограничен api браузера и устаревшим тулингом.
kovserg
26.10.2018 22:55Начинать лучше с C, lua и только потом уже переползать на всякую жуть и абстракции типа c++,java,c#,rust,python,erlang,go,php,perl,javascript…
Kitsok
26.10.2018 23:44Конечно С лучше с точки зрения понимания, как это работает, но для ребенка, на мой взгляд, сложно.
kovserg
27.10.2018 01:19Ребёнку сложно с абстракциями работать, ему надо учится на конкретных примерах что бы построить модели для дальнейших обобщений. Сначала надо учиться на примерах, и желательно на таких которые можно пощупать. Более того чем проще инструмент для изучения тем лучше. lua собирается tcc и вся граматика lua помещается на 1 странице и занимает это всё несколько мегабайт.
Потом взять arduino, а не топовый игровой комп и поморгать светодиодом, включить моторчик, подёргать рычагами раскачивая маятник, померить температуру, включить выключить утюг поддерживая заданную температуру, сыграть мелодию, определить время восхода и захода солнца, собрать тетрис…
Необходимо наиграться что бы потом появился интерес разбираться с математикой и физикой, алгоритмами, структурами данных и приёмами работы с кодовой базой. И только потом можно травмировать психику php, python-ом, scala-ой, javascript-овыми гигабайтовыми монстрами и крос браузернй несовместимостью.boblenin
27.10.2018 03:42Это у вас теоритические размышления или вы действительно своего ребенка научили через lua? Вот я собираюсь уже на 5 заход пытаясь найти вариант, который бы смог конкурировать и той же просто игрой в minecraft.
alfaterra
26.10.2018 22:57+1Хочу поделиться своим опытом с обучением дочки.
По-моему Scratch дает хороший старт ребенку (7-8 лет). Потому что сразу получается игра, мультик или графика. Ведь главное увлечь самим процессом. Дальше уже можно потихоньку осваивать настоящий ЯП. Книгу Э. Свейгарта в электронном варианте смотрел. Некоторые игры взял в качестве учебных пособий для своего ребенка, их можно вначале на том же Scratch реализовать.
gban
27.10.2018 02:02С майнкрафтом отлично зашло — начали с создания объектов, построение лабиринта, с прохождением на время, с рисованием лабиринта в excell и импортом...
Femistoklov
27.10.2018 08:10«Python для детей» — звучит как «физические формулы для детей» или «сопромат для детей». «Музыкальная нотация для детей» тоже, вроде, не встречается. Гораздо лучше — «занимательные опыты по физике», конструктор с примерами моделей.
Zet_Roy
27.10.2018 12:29-4Почему именно Python? Как по мне это синтаксически сложный не выразительный язык, C# в синтаксисе попонятнее со скобочками и полными именами функций.
Leljka
27.10.2018 12:51-1Я это уже видела. Это взято отсюда www.pvsm.ru/python/297120
Там куча полезности, конечно, но удивило, что это здесь.SupplePython
27.10.2018 20:23В конце приведенной вами статьи указан источник на хабр. Будьте внимательнее.
Anshi85
27.10.2018 19:49Могу посоветовать книгу «Укус питона» или Byte of Python, все очень кратко и понятно, всего 159 страниц и 600+ килобайт. Думаю ребенок под руководством взрослого справится без проблем.
Zet_Roy
Я думаю что когда ребенок подрастет к своему совершенолетию то python уже будет неактуальный.
Survtur
Очень интересно, поделитесь мудростью, на какой язык лучше ориентироваться?
Zet_Roy
Для детей? Лучше никакой, пусть игры играют и с друзьями на улице гуляют нежели кодом глаза выжигать и становится очкастым задротом неудачником.
usego
Мы учились на паскале и он уже неактуален. и…?
Anthony_K
В продакшене он давно неактуален. Это язык для обучения программированию.
third112
Можно уточнить: паскаль был задуман как язык для обучения программированию, но оказалось, что его возможности больше. В частности, и сейчас для описания новых алгоритмов зачастую используют Pascal-like псевдо-код.
GeMir
third112
ИМХО возраст не помеха. Нпр., теореме Пифагора гораздо больше лет, но ее всегда будут применять. Если в паскале удалось воплотить действительно верные основные принципы кодинга, то м.б. к нему (паскалю) вернутся. М.б. что-то добавят и назовут иначе. Вопрос в том: удалось ли сделать ЯП, который сильно лучше паскаля?
GeMir
geisha
Да паскаль так же неплох как и был. Просто нужно делать уточнение: эти детские учебники, на самом деле, не питону учат, а учат как кодить на примере питона. Я не читал, но вряд ли там найдешь подробное руководство по всем финтам из itertools или как правильно написать mixin. А паскаль можно выучить за школьный курс, поставить галочку и перейти к другому языку если интересно.
third112
ИМХО Паскаль и сейчас был бы неплох, т.к. задает приоритет надежности исходного кода, а последующие языки гнались за производительностью кодера. В результате сейчас имеем кучу кривого ПО, которое сбоит и ведет к реальным авариям на земле и в небе.
usego
Ну тёплое с мягким тоже мешать не надо. Сложность ПО и архитектур нынче в разы, если не на порядки сложнее, чем 20-30 лет назад, когда паскаль был в моде в универах.
third112
Да. И во многом это из-за процесса раздувания ПО.
usego
Не на ровном месте ПО раздувается. Требования к ПО тоже многократно выросли.
third112
Как они выросли? См. вики:
DaneSoul
Если школьник понимает, что учит «для галочки» и нигде это потом использовать не будет, как и многие другие школьные предметы, то и отношение будет такое же и результат околонулевой — только убивать интерес к программированию. Ничего страшного, расширить и углубить знания всегда проще, чем учить язык с нуля.
geisha
В той или иной мере, в школе всё учится для галочки.
third112
Да. И до сих пор на Delphi-7 сюда на Хабр пишу — и меня (мой Паскаль) читают :) Шутка: если писать на другом языке, то найдется читатель, который встанет в позу «я не знаю этот язык», а про такой простой язык, как Паскаль, каждый сказать такое просто стесняется.
В связи с этим меня заинтересовала фраза из статьи:
Заинтересовался не просто программированием, а именно на Python? Почему? — Воля Ваша, уважаемый автор, но язык вперед программинга выглядит ИМХО как запряжение телеги вперед лошади.
(Это только частный вопрос. А в целом ИМХО статья м.б. полезной, чтобы сорентироваться в доступных книгах на заданную тему).
MaximSF Автор
Сегодня именно на Python — из-за рекламы в школе «Яндекс-Лицея», программирование в целом уже освоено раньше :-) Многие авторы комментариев прочли статью как рекомендацию учить ребёнка программированию впервые именно на Питоне и спорят с этим тезисом — однако этого утверждения в статье нет, это просто обзор литературы по конкретному языку, чтобы другим родителям было проще решать аналогичную задачу, если она у них появится. Выбор языка для первого обучения ребёнка — это всегда ваш выбор для вашего ребёнка, и есть много других статей, которые описывают возможные подходы к этому выбору.
third112
Спасибо за ответ, но я опять не понял: как можно было освоить «программирование в целом» без ЯП?:
Действительно:
И я так понял. Наверное, чтобы небыло такой «непонятки» стоило написать, нпр., «получилось так, что я или школьный учитель моего ребенка или воспитатель дет.сада и т.д. стали учить его Питону, теперь нужны книжки, чтобы продолжить на этом ЯП» — тогда «непонятки» бы небыло.
MaximSF Автор
Программирование осваивалось с младшего школьного возраста постепенно, в несколько этапов — но мой опыт в области обучения детей программированию ограничен и поэтому по вопросу о том, как учить ребёнка программированию и какой язык выбрать как первый, я предлагаю вам обратиться к другим статьям. Если же в какой-то момент вам потребуется выбрать книгу для ребёнка именно по Python — то надеюсь, что эта статья вам поможет. Спасибо за комментарий!
MaximSF Автор
К сожалению, печатные книги всегда отстают от острия прогресса — выучить сегодня язык программирования будущего (каким бы он в итоге не оказался) по самоучителю не выйдет, их просто ещё ни одного не написали :-)
Прямо сегодня интерес к Python возник из-за «рекламы» в школе «Яндекс.Лицея» — и в общем-то сегодня это вполне подходящий выбор для обучения программированию с нуля. А если в итоге ваш ребёнок выберет профессию программиста, то остановится на одном языке всё равно не получится — учиться придётся всю жизнь, всё новым и новым актуальным языкам/фреймфоркам/и т.д.
boblenin
Питон может быть и будет не актуальным, но понимание условных ветвлений, циклов, структур данных, функций и вообще осознание того, что компьютер можно заставить делать что-то более сложное чем просто реакция на тычек пальцем или мышкой — останется актуальным.
ivan_suroegin
Почему?
gudvinr
Всё правильно. Потому что надо не учить язык, а учиться программировать. Развивать абстрактное мышление, доводить до автоматизма процесс декомпозиции задач, проводить параллели со структурами данных в реальном мире и пр.
Учить любой язык программирования, неважно насколько он актуален сейчас или будет потом, совершенно бесполезно в любом возрасте. Потому что программирование — это способ выражения своих мыслей, а не языковые конструкции.
Правда, зачастую эту мысль, в сущности довольно очевидную, мало где озвучивают и зачастую из "уметь писать на языке X" делают вывод "выучиться программировать", что в целом не совсем правда. Хотя, написав множество программ в процессе освоения некоторого языка, можно выработать привычки и в конце концов научиться программировать.
И в этом ключе достаточно просто понимать, что не важно, что использовать для обучения. Будь то питон, паскаль или ещё какой-нибудь 1С. Да, это в некоторой степени влияет на скорость обучение и т.д., но концепции почти везде более-менее одинаковые.
Да и питон постарше сегодняшних выпускников вузов будет, которые могли его впитывать с молоком матери. Так что рано хоронить его пока.