Код 12-річної дитини
Всім привіт!
Молодший брат (12 років, закінчив 7 клас звичайної школи) серйозно вирішив зайнятися програмуванням. Порадив йому мову python, оскільки вважаю, що вона чудово підходить для початківців, та ще й таких! Сам він надибав книгу Доусона, яку захоплено читає.
Так от, сьогодні випадково натрапив на його власну програму на python`і. Здивувала його логіка, сам код:
print("На відгадування слова вам дано 4 спроби")
print("Слово складається з англійських букв")
word = "python"
tries = 4
letter = input("Введіть букву :")
if letter == "p" or "y" or "t" or "h" or "n":
print("Правильно! Ця буква є в слові!")
letter = input("Введіть букву:")
else:
print("Такої букви в слові немає!")
tries = 4 - 1
print("Ваші спроби : " + str(tries))
letter = input("Введіть букву:")
if letter == "p":
print("Ваше слово : 'p*****'")
print("Ваші спроби : " + str(tries))
letter = input("Введіть букву :")
elif letter == "y":
print("Ваше слово : '*y****'")
print("Ваші спроби: " + str(tries))
letter = input("Введіть букву :")
elif letter == "t":
print("Ваше слово : '**t***'")
print("Ваші спроби: " + str(tries))
letter = input("Введіть букву :")
elif letter == "h":
print("Ваше слово : '***h**'")
print("Ваші спроби : " + str(tries))
letter = input("Введіть букву :")
elif letter == "o":
print("Ваше слово : '****o*' ")
print("Ваші спроби : " + str(tries))
letter = input("Введіть букву :")
elif letter == "n":
print("Ваше слово : '*****n'")
print("Ваші спроби : " + str(tries))
letter = input("Введіть букву :")
else:
print("Такої букви в слові немає!")
Питання: як ви вважаєте, дитині в 12 років ще зарано починати програмувати, чи це нормально?
Запрошую до обговорення!
UPD: Брат кіпішує, що ще не доробив програму
88 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів-
це ьув я
-
Ну ХЗ. Я в 13 лет получил свою первую пару сотен баксов за примитивную базу данных запчастей для John Deere (через посредника, ествественно). Так что всем кто считает что12-13 лет — слишком рано — пусть подождут своей пенсии для начала чего-либо. Нормально всё заходит в детстве.
Склонности людей к профессиям в 12 лет и начинают проявляются. Я думаю все нормальные программисты где-то в таком возрасте и написали свою первую программу. Нужно же понимать что в какой-то художественной гимнастике 22 года уже пенсионный возраст. В программировании где-то35-40. Насколько хороши задатки у малого сказать сложно, потому что с 9 строки уже идёт ад и содомия. Но вроде как что-то есть.
лол
Я же надеюсь, что вам всем под 40 вы во всю валите код на технологиях выученных не 10 лет назад и потому лолкаете :))
Вы считаете, что в 40 нельзя выучить новые технологии? :)
І вже певне не стоїть, га-га-га :D
Смотря на кого.
Я считаю что это на порядок сложнее чем выучит их в 20, а этого достаточно чтобы проиграть в конкурентной борьбе.
На порядок, то есть в 10 раз?)
там если и будет разница, то процентов 20, не больше..
Ага, только у 40 летних в конкурентной борьбе уже опыт коммерческого программирования, знания структур, алгоритмов, практик, умение работать в команде, усидчивость, умение читать чужой код, искать информацию, знакомства среди других программистов, которые могут помочь..
<сарказм>Ну а так да, в остальном конечно 20 летним везде дорога..< / сарказм>
А почему не на 2 порядка?)
-
Вам сюда: dou.ua/forums/topic/20749
Коментар порушує правила спільноти і видалений модераторами.
-
-
Я начинал в11-12 лет на Спектруме на встроенном в него Бейсике )))
Из документации — распечатка, чего команды означают.
Я теж в 12 почав кодити, і нічого, нормальний (місцями). Писав на Delphi, потім — на С. Потім, маю декілька знайомих, які так само починали — вони зараз реально круті специ і цікаві співрозмовники)
А щодо коду — ще навчиться писати. Я особисто почав задумуватися над чистотою коду вже під 17 років, до цього мені було якось фіолетово на такі речі. І часто в програмах були глобальні однобуквенні змінні)
Не показуйте йому цього:
github.com/...ycerLviv/Hangman-shitcode
Back in my times...
12-летние дети п***или палкой кропиву и им было збс :)
Вообще пусть делает че хочет, я вот тоже в 12 лет купил какую-то книгу (не помню, PS7 или С++ или Corel), но подталкивать кодить в 12 не нужно.
Я как-то умудрялся сочетать :-)
Дома Бейсик, на природе — фехтовалка с крапивой ;-)
При этом я в 12 лет прочитал «Огнём и мечом» и заинтересовался тем периодом с другой стороны, Польшей, польским языком и латынью. 12 лет — благодатный возраст, львиная доля нашего багажа это то, что мы узнали до 13 лет. И эти знания с навыками ещё и в голове держатся лучше, чем последующие.
Лол, спершу здивувався як це, а потім згадав і таки да! Кропиву, лопухи і бур’ян :)
Еще одуванчики неплохо с ноги отлетали.
bizlit.com.ua/...FlfYSh3eMjzgaAn1NEALw_wcB
Допоміг, пояснив
Нормально в 12 пробовать программировать.
Я когда-то вела курсы по Scratch для группы 8-10лет. Курс для новичков без опыта программирования. Состоял из разработки 10ти простеньких игр. При правильной подаче дети отлично разбираются и в алгоритмах и циклах. Причем у них всегда куча идей, что можно добавить в игру, как усложнить. Тут главное не мешать, а только направлять.
Я начал программировать на бейсике на спектруме где то в таком же возрасте, может в 13 лет. И тогда я уже мог сделать программку которая рисовала меню на экране по которому бегала полоска управляемая с клавиатуры и выполнялся пункт меню, в другой под меню переходило и или что то делало. Так как в наше время дети более развитые, начал он поздновато, не быть ему23-х летним сеньором ))))
А чому це може бути ненормально — обирати професію в 12 років? я особисто не бачу раціональних аргументів.
UPD: брат правильно кіпішує :) могли п з ним пофіксати парочку багів, потім викладати код :)
Тому що в 12 починається не стабільний підлітковий період. Краще до 17років розвивати якісь навики, а не готуватися до певної професії.
Ну на загал Ви ІМХО праві: шкільний період напевно краще розвивати дитину різнобічно. А що скажете про спортсменів? дівчата-гімнастки в14-15 років будуть на чемпіонатах перемагати, пацанчики-футболісти за грубі гроші батькам налом переходять з одної футбольної школи в іншу, бо легально ніззя. Ті ж шахісти, з 7-8 років (а сестри Полгар куди раніше) сидять за книжками і компутерами... Цей варіант також має свою перевагу: дитина концентрується на чомусь одному. В ідеалі, гадаю, її мали п обережно просвітити і підтримати:)
Это если у ребенка есть явно выраженный один талант. Большинство людей- обычные универсалы..
Код переписали, баги пофіксили :)
Ми засильно захопилися оптимізацією, архітектурою і корпоративними стандартами. Їх усіх не може бути біля витоків пристрасного зацікавлення, як паяючи свою першу схему, рано та й недоречно думати, які мають бути елементна база, монтаж і розведення для готового пристрою для його серійного виробництва, встановлення в стандартний корпус, забезпечення тепловідведення і стандартного живлення. Ні перша, ні десята саморобки готовим пристроєм не стануть.
І так само ніхто з перших спроб не писав код на рівні стронґ-джуна. Якщо він відчує і воно йому «зайде», то він сам скоротить цей код в N разів і виправить усі помилки.
Б***ь. Шо вы все, как моя мама. О***битесь от детей. Дайте им палками играться и делать, то что нравится им. Без рассказов и заманух какими-то необозримыми деньгами и тд. Вот ты бы так же радовался, если бы брату дотка нравилась? Сделал бы стрим его каточки? Нет. Ну и вот.
Детство на то и дано, чтобы не думать ни о чём, дёргать Машку за косички и тд. Я путь навязывания профессии с 7 лет прошла. Каждый год, как круг по Данте. Оно никому не надо.
А саму то дёргали за косички? И чё как те люди поживают?) И что сама делала?
та куда мне было, меня ж готовили в супер войска супер элитной профессии ПЕРЕВОДЧИК. солдат джейн на фронте лингвистики
Дотка имеет переспективу только для корейских киберспортсменов. Поскольку мы только приближаемся к Корее (и то, Северной), то занятия доткой абсолютно бесперспективны и пустая трата времени.
к этому и референс был
Что-то не видно в топах корейских команд. А7-й инт европейцы взяли.
А, собственно, никто и не приебывался-то
Братан в дотці має 3000 ММР :))
-
Не сидел на доу долго, сдесь собрание поехавших походу: код ребенка, 5%, дебил поехал в Германию, сломалось весло, вы извините но создайте на форуме тему флуд и пусть туда перенесут треш. Иногда хочется почитать что-то но если 90% говна в главной ветке это пздц товарищи)))))
Удалите сообщение, темы есть))
-
Ем, окей
Звичайнісінький собі код. Реальна робота не стільки писати, скільки читати код. От коли він зможе ЧИТАТИ код — то вже половина справи.
Дай йому завдання на оптимізацію коду. Це визначить, чи є в нього гуманітарні навички, щоб писати код вірно зрозумілий людьми, а не лише (теоретично вірно) машиною.
Цей код як мінімум показує те, що він не виконав його у своїй голові
Да, тут важен момент, что для ребенка это все игра и если правила ему не понравятся то игра станет не интересной. Сам в школе колупался в бейсике на zx spectrum, если бы меня мариновали изначально всякими коде практис или еще чем то забил бы сразу от нудятства, а так даже книгу читал «как написать игру на zx spectrum».
З досвіду — краще не допомагати порадами, і давати читати кращий код
В мене в 12 було краще
Але я знайомий з математиками, які писали саме так
Такими темпами діти програмістів про програмування будуть дізнаватися раніше, ніж про секс.
так і було, і вже до речі давненько так, років зо 30 тому
Школьные олимпиады по информатике — не, не слышал?
На олимпиадах по информатике трахаются?
Там обычно только1-3 девчонки участвует. Но бухаловка перед отъездом была обязательна
-
Мій перший код був приблизно такий же. Зараз можна дати щось почитати для такого віку (думаю література вже є) і починати з процедурного підходу. Потім вже ООП — зараз він наврядчи щось зрозуміє.
Я в 11 примерно такой же код писал
Правильно брат делает — что кипишует.
Я бы не хотел — чтобы без моего разрешения, мой недоработанный код в паблик выкладывали и приглашали его обсудить =)
Прапор в руки тому, хто буде дописувати цей код)
1. код не коректний, бо виконається лише раз. можливо, час розповісти про цикли.
2. що саме вас дивує у логіці?
3. код вочевидь новачковий. проте це і добре — краще пояснити, нащо ті цикли, коли сам вже намучився з Ctrl+C/Ctrl+V
4. якщо може робити операції над числами, то абстрактне мислення вже засвоїв. чому ви думаєте, що програмування зарано?
Рядок
говорить сам за себе :)
Звісно цикли колись він засвоїть, проте, я вважаю, що до них він повинен прийти сам, не тому, що йому просто хтось розкаже, що існує ось-така от магія. Помучиться — почне шукати легкого шляху і зрозуміє, що цикли це не просто конструкція мови програмування — це необхідність. Сподіваюся ви зрозуміли
ну, якщо продублювати увесь блок і замінити tries = 4 — 1 на «tries = 3......... tries = 2 ...... tries = 1» то буде логічно ж :)
якщо він може перебрати крупу для каші, чи набрати десяток вже дозрілих персиків у магазині — то він вже засвоїв цикл з умовою виходу та цикл з лічильником ;) лишилось лише перенести це на код.
Первая гитара должна быть — бревно, первая машина — жигули, первая телка — стремная. Ну-ну.
а потом о массивах
Я в 5 классе на факультатив по информатике ходил(турбо паскаль), когда мне показали циклы был в полном восторге. А массивы не показали, но я видел, как их использовали 9классники, и люто завидовал этой магии.. Книжек по программированию, и интернета тогда не было у нас в городе.
Конечно-конечно, не было книжек :)
И как вообще можно показывать циклы без массивов? Они ж как бы за руку ходят, практически все циклы имеют под собой массив в том или ином виде, и только малая их часть обслуживает потоки. Которые по сути те же самые массивы, но с иными критериями конца.
Я бы сказал, что уже поздновато. Информатику обычного с первого класса учат
Якщо ви про вміння рухати мишкою, та друкувати на клавіатурі, то це він вміє з5-ти років. 10-11 класах вивчають Skype, та Паскаль.
Інформатика в школі, наразі, дає дітям знання про те, як малювати в paint’i, набирати тексти в word`і і т.д. і т.п. Окей, в
Питання в іншому: варто дітям з шкільної парти пояснювати принципи ООП, структури даних, чи залишити це на потім?
думаю, що не треба.
розділити задачу на кроки, перевірити на коректність, виявити причину помилки — для цього ООП не обов’язкове зовсім.
а абстракціями абстракцій можна відбити зацікавленість.
Думка слушна, проте є і інша сторона.15-річному підлітку. Аналогія з програмуванням:можливо 12-річній дитині під час формування логічного мислення буде легше засвоїти всю цю «логіку» та основи, аніж 18-літньому студенту якогось універу?
Малим дітям легше вивчити мову, аніж
ну, мова то трохи інше. мова — це як ми висловлюємо свої думки. різні слова, трохи різні конструкції. та й усе.
программування — це насамперед особливий режим мислення, не типовий для людини.
це як біг(що ми робимо і просто так, без тренувань) та, скажімо, ковзани(якщо спеціально не займатись, само собою не вийде)
Я тоже так думал.. А потом сравнил, сколько я выучил английского за 3 месяца, и за сколько учится говорить на таком же уровне ребенок в постоянном окружении носителей.
Только вот английский ты учишь уже зная какой-то язык, а то и два. Зная принцип по которому язык построен. Зная как его нужно учить. По сути ты не учишься ничему принципиально новому. Просто вызубриваешь пару новых правил построения фраз и переводы уже известных тебе слов. Да к тому же используешь для этого всю мощь современных информационных технологий.
Ребенок же учится совершенно новой и не свойственной для себя вещи, при этом не используя вообще ничего кроме наблюдения за действиями окружающих.
Ребенка учат, он не сам учится. Учат постоянно. Да и нельзя измерять как бы взрослый учил язык, не зная языка в принципе. Потому рассуждения, кому проще, а кому сложнее, не имеют под собой основания, а если мерить, кто быстрее выучит, то однозначно взрослый.
Програмування можна вчити в будь-якому віці. Краще в 9 років, коли сформоване логічне мислення, але паттернів ще замало. Там нема ніякого «легше», 12 років — це вже дорослий вік із точки розвитку процесу мислення.
Далі буде тільки фаза погіршення, бо через статеве дорослішання мозок кардинально буде шокований величезними дозами дофаміну — цей гормон має мерзенну сутність: він стимулює пам′ять працювати без перевірки, без фільтрації. Наприклад, він може зробити із хлопця гея, фашиста, змусити покрити все тіло татуюванням чи вчинити самогубство. Я просто пояснюю, що в російськомовній зоні є величезні прогалини у знаннях того, як саме люди навчаються, і який із того результат. А результат — дуже низька якість освіти при величезних витратах часу.
До речі, програмування — не логічне. Якби воно було логічне — воно б і не знадобилося. Все що роблять насправді програмісти — змушують комп′ютер виконувати абсолютно нелогічні дії. А для логічних — вже давно написані утиліти. Наприклад, ти ж не станеш писати програму для архівації файла у 7z? Але коли треба це зробити в автоматичному режимі — то вже напишеш скрипт.
Нет, не про это
Бегите из той школы.
Я бы давал бы знания ООП лет с 5ти, чего ждать то?
> Я бы давал бы знания ООП лет с 5ти, чего ждать то?
Не в образу Вам, але Ви — наркоман.
Нет, просто есть стереотип о том, что детей надо жалеть и всячески поощрять безцельное существование. Не надо так
Прогрес у вас!9-му класі (5 років тому) вчили, як браузером користуватися.
Мене в
Більшість цього і зараз не знає. Бо тоді не ставили би Хром :)
а что с хромом не так для юзера?
Це тролінг. Насправді знання програмування неможливо дати. Ними можна лише ЗАЦІКАВИТИ.
Але вивчення я би пропонував розпочинати НЕ з Python, а з VBA. Чому так: дуже щвидкий прогрес в Excel, розуміння як поводитися з величезними масивами даних, розуміння природи людського фактора у програмуванні. І звичайно розуміння, що треба РОБИТИ З ЛАЙНА ЦУКЕРОЧКУ.
Чому так: зазвичай всі дані знаходяться у стані лайна. І з кожним роком потрібно все більше сміття перебрати просто щоб дістатися до даних. Ще більше — щоб їх кудись передати. І більше на порядок — щоб потім їх отримати назад, зробити верифікацію (особливо якщо вони збережені попередньою версією).
Тому, якщо це справді професія, найкращий шлях — спочатку навчитися обробці даних, і вже потім відчувати ЩО САМЕ виконують програми. А тому починай з Excel, далі давай бази даних та SQL, далі знов Excel та його зведені таблиці. І вже потім — VBA.
Що корисного саме в VBA — є функція запису макросів. Тобто, робиш щось руками — і от воно ж тобі постає як програма. Це єдина серйозна причина, чому VBA є коротким шляхом до розуміння справжніх паттернів людської інформації, а не тієї х-ні, що пишуть в заумних книжках. Ну і він точно не боятиметься «великих даних», бо розумітиме що таке гіперкуб OLAP, і коли не треба вигадувати велосипед (писати зайвий код) замість використання серйозних інструментів.
Воплощение зла. Использовать Бейсик как первый язык + показывать его в сочетании с MS Office — это double kill... Не надо так травмировать детскую психику :)
ИМХО лучший способ заинтересовать ребенка — показать пример как написать очень простую игрушку. Дальше воображение само дорисует что еще можно сделать когда умеешь делать такие простые вещи.
Чтобы написать простую игрушку, нужны скиллы покруче чем у 99,7% здесь сидящих. А вот умение программировать ЛОГИКУ как раз таки в VBA лучше всего нарабатывается.
Я не призываю анонировать на мелкомягкие технологии. Или изучать их до матёрого профессионализма. Но освоить лучшие практики манипуляций с данными — самое оно.
Воображение? Знали б вы сколько людей не смогли освоить профессию, из-за того что образование полагается на мифическое воображение, мифические способности мозга, которые должны закрыть огромные дыры в самой структуре обучения, и ещё более громадные — в понимании результата этого обучения.
К слову, чтобы освоить ООП нужно день-два, не больше. А вот чтобы привыкнуть к реальным задачам манипуляции с данными, чтобы понимать беспомощность компьютера в понимании что он делает, чтобы научиться обрезать острые углы и избавляться от лишнего кода, чтобы понять как зачем и когда делается рефакторинг — лучше всего иметь дело с РЕАЛЬНЫМИ объектами, чем писать всё с нуля.
Вы же не предлагаете при изучении баз данных выучить сначала межсерверную поддержку целостности и горячее резервирование? Нет. Сразу начинаете с SQL.
Программирование начинается с умения РАБОТАТЬ С ИНФОРМАЦИЕЙ. А уже потом учатся фреймворки и языки на которых они пляшут, в зависимости от выбора профессии. VBA прост тем, что его не нужно учить, там нечего учить в самом языке — это просто макроязык. Зато можно прекрасно попрактиковаться, не испытывая проблем обычных языков: когда всё разваливается, хрен сложишь воедино, а источники информации в один голос льют ведро помоев вместо компактно собранного примера с пояснением возможных вариаций.
ЛибреОфис использовать с питоном можно с таким же успехом.
Если там есть функция записи макросов, чтобы из ручных движений сделать программный код — да, этот вариант наилучший.
Вообще пофик на язык, поэтому нужно брать перспективные, например C++17
Надо исходить из предметной области, а уже потом брать язык и фреймворки.
Ага, особенно на курсах вайтивайти.