c++ с чего начать
добрый день, у школьника возникло желание стать программистом и изучить основы программирования самостоятельно или с моей помощью. Посоветуйте ресурс, где взять саму программу, также вводные уроки итд.
Именно программирование проще понять с С#, чем с С++.
У Microsoft даже есть книжка для подсаживания школия на .NET - можно бесплатно скачать с msdn на русском ("С# для школьников").
А ты обучать-то умеешь?
Тем более - школьника - читай - глуповатого мелкого с шилом в заднице.
Сможешь объяснить ему, что функция в математике, которую он будет изучать через несколько лет, и функция в программировании, об которой он пока понятия не имеет, есть сущности одного порядка?
И на каждом "занятии" должно быть и новое, и закрепление старого, и практика по всему объему, и, обязательно, успешность... даже там, где надо 3-4 занятия объяснять базис...
Учить школоло - это не фунт изюма лопать...
Я, в свое время, отбирал школьников и студентов на обучение.
Так даже после отсева совсем неспособных на беседе, все одно оставалось много дураков и из трех полных групп приходилось формировать две группы:
- треть - вообще ничто - уходит через 2-3 недели,
- треть - просто не способна ничего воспринимать - повторит что дал и на этом все,
- треть - что-то воспринимает и учит самостоятельно...
Способных, прогрессу которых интересно помогать, - единицы...
Посоветуйте ресурс, где взять саму программу, также вводные уроки итд.
-----
Для начала - определись с областью в которой обучать будешь. С++ - не самый лучший инструмент в плане обучения - чтобы его эффективно использовать - его надо знать на приличном уровне.
Ресурсов - много. От МСДН до www.w3schools.com
Но каждая программа обучения рассчитана на определенный базис. Если его нет или он не достаточно усвоен - надо корректировать.
Кроме этого - каждая программа обучения рассчитана на определенный результат. И результатом может быть не прогер, а кодер или админ...
Так что помимо самого языка, не забывай об алгоритмике и куче других вещей.
Вводные уроки - это просто - будешь рассказывать как пользоваться инструментами - тынц сюда, тынц туда... ну или набей вот это для получения вот того...
Дашь быстрее - не поймет зачем, дашь медленнее - потеряет интерес...
Можешь посмотреть не только Мс Студию, но и Лазаруса (Паскаль)... или еще что от Эмбардакеро сейчас идет... ну и ГнуСи есть...
Не забывай, что кроме Милкософта еще есть Линухи, Маинфраймы и всякие встроенные системы - там тоже программят...
Начни с Arduino. По этой платформе есть хорошая познавательная книжка Электроника для начинающих (2-е издание), в том числе и на немецком.
Вообще платформа мне очень понравилась (я сыну купил "Матрешку Z"), но ему оказалось слишком рано :) Жаль, что в моем детстве не было таких штук :)
Возраст школьника какой?
Как мне кажется, в темном будущем миром будут править те, кто будет разрабатывать мат.алгоритмы и\или контролировать разработчиков оных. Возможно - это лишь предположение - традициионные кодеры будут терять значимость по мере совершенствования средств разработки. Поэтому решать олимпиадные задачки по информатике, ИМХО, намного полезнее, чем изучать любой язык программирования.
Понимаю, что такие задачки решать мало кому интересно. Засим не претендую на высокую полезность совета. Разве что, обратить внимание и на этот аспект.
Полностью подпишусь под мнением Bigfoot и дополню ссылкой на https://www.bwinf.de/ где можно квадратно гнездовым решать все, что находится, а тот факт, что моя дочь в 3-ем классе смогла сама порешать некоторые юниорские задачи оттуда и попасть во второй тур говорит о том, что возраст тут не важен, главное чтоб желание было.
Ребята, человек говорит, его ребенок интересуется программированием. По крайней мере хочет попробовать. А вы ему начинаете рассказывать, что лучше заняться чем-то другим, если он хочет завтра управлять миром. Если бы он спросил, с чего начать учиться управлять миром, все было бы правильно, а так - как в анекдоте: "- дорогая, в магазине воды не было, я купил тебе печенье."
> Ребята, человек говорит, его ребенок интересуется программированием
правильно, вы ответьте, пожалуйтса, на главный вопрос как ребенка заинтересовать что-то програмировать, это что, он начнет иерархию классов, темплейтные подстановки или вызовы виртуальных функций изучать, он сразу скажет - Папа, зачем мне это?
А когда он, прочитает задачку куда должна пойти его черепашка, или как расставить ровненько свечки на тортике заумной конфигурации, и захочет эту задачу решить, то в него можно и алгоритмику, и семантику языков с легкостью влить, впитает как губка! Ссылку, что я дал выше почитайте, особенно условия задачек этого года и прошлых лет - реально любого нормального ребенка заводит!
Я вот на своем опыте заметил, что моя дочурка пока может программировать только те программы, которые помещаются на один экран. И на основании этого наблюдения бы рекомендовал бы ТС ограничиться подклассом С из С++, чтоб мозги на раскоряку не шли.
ИМХО, С++ надо учить минимум после нумерики цвай, иначе у человека возникает иррациональное желание поэкспериментировать и в конечном итоге получается быдлокодер, пруф гуглится на слова Stroustrup C++ 1998 interview
для быстро попробовать вполне:
https://www.python.org/downloads/
https://docs.python.org/3/tutorial/
устанавливается за секунды и сразу можно 2х2 и хэллоуорлд попробовать.
чтобы что-нибудь другое посоветовать, нужно знать ответы на по-крайней мере три заданных ранее вопроса.
Согласен, что Ардуино - вещь классная, но вот на мое чадо пока совершенно не производит впечатление - кроме мигания светодиода у нее ни одна программа на экран не помещается, а мигать светодиодом ей уже надоело, у нее в ембеддед мечта - паука (с 18 моторами) запрограммировать, чтобы он наших котов сам гонял. Вот и чешу репу как по стадиям это все рассказывать, и пока тренируемся на том, что писал выше.
у детей усидчивости нет и
-----
Угу... Специфика...
результат должен всегда и очень быстро достигаться.
-----
А вот тут не совсем правильно.
Результат, несомненно, должен достигаться, но "очень быстро" - не соответствует действительности.
Занятие должно планироваться так, чтобы обозначенная для занятия цель была достигнута.
Но обозначенная для занятия цель может не быть результатом.
Она может быть каким-то промежуточным куском, который потом будет использоваться.
Основное - понимание промежуточности обозначенной цели и ее успесhное достижение.
школьник в 6 классе, т.е. 12 год пошел. По моему самое время, чтобы начать готовить себя к будущему. Как пришел к программированию? С детства интересовала электроника, с компьютером всегда был ближе, чем его сверстники. Идей всегда было хоть отбавляй, родители не успевали за их реализацией. Как то в школе показали скрэтч, так он нашел на ютубе туториал, как сделать на нем игры и стал мастерить. Сделал танчики, пару раз запутался когда цикл в цикле, я ему помог почистить, чтобы все работало правильно. Однажды, не сказав мне ничего, сделал секретную клавишу, такого в ютубе не было, перехватывающую мое управление танком, чтобы мешать мне в процессе игры, действие которой мне и продемонстрировал.
в общем желание есть, время и интерес тоже имеются, почему бы и не потратить усилия на что либо полезное.
Точно! Во времена СССР и Ельцина никаких ардуин не было, ни тебе готовых наборчиков с сенсорами/актуаторами, ни удобных штэкплатин. Всё надо было самому делать и из хлама выпаивать.
Я никогда никому не завидовал, но когда мне попал в руки ардуино, я по-настоящему позавидовал сегодняшней школоте.
C++ в образовании не нужен, от слова вообще. Слишком бородатый и костыльный язык, пожалейте ребенка, не насилуйте психику.
Проще всего начинать с интерпретируемого языка типа Python.
Во времена СССР и Ельцина никаких ардуин не было
-----
Не надо об временах СССР - вас тогда еще в проекте не было.
В СССР 60-х вполне нормально было с различными наборами для конструирования - от механических до химико-электрических.
И весьма, надо сказать, комплексные наборы были. НО - опционально, для дома и недорого 2-3(-5) рубля за набор.
Да, разумеется, электроники для моделей не было. А где она тогда была?
А вот вот где-то после 75-го - все это начали делать обязательным в школе и очень сильно упрощать - вместо 30 вариантов стандартных конструкций на одном наборе, начали выпускать один набор на одну конструкцию.
Так что ко времени Ельцина - там вообще ничего не осталось...
На западе - тут вообще мрак. Если Я обойду все магазины в своей деревне (9000 рыл), то фиг найду хоть один набор конструктора, рассчитанный на детей 7-8 лет... Для них будут рекомендованы... кубики... или пазлы... все... даже Лего не будет...
Если отвлечься от детей - то и взрослому просто не из чего что-то сделать своими руками - нет материалов в продаже... даже в инете надо долго искать...
Так что капитализм - это полная задница с куда более жестким дефицитом всего, чем было в СССР...
Если отвлечься от детей - то и взрослому просто не из чего что-то сделать своими руками - нет материалов в продаже... даже в инете надо долго искать...
А ведь кто-то сгоряча может в этот откровенный трындеж поверить... Чувак ведь просто не в теме - ни ухом, ни иной частью лица. Он никогда не слышал ни про "Conrad", ни про магазины типа берлинского "Modulor" (торгует в т.ч. и онлайн)... Главное - кинуть лозунг с броневичка: "Раньше и девки были краше, и ... стоял выше! Да здравствует ВОСР!"
С т.з. советского "самоделкина" - того же моделиста - в Европе сейчас просто рай. Найти можно ВСЕ. Если, конечно, искать, а не тупо ныть.
А что можно выбрать в подарок детям для сборки и программирования?
Типа Raspberry Pi, но проще и увлекательнее.
> А ведь кто-то сгоряча может в этот откровенный трындеж поверить... Он никогда не слышал ни про "Conrad",
подпишусь полностью, а если кому до Конрада ехать далеко, можно на дом заказать, или на крайняк в ебее кучу всего купить с серьезно большим выбором, чем в конраде.
на крайняк в ебее кучу всего купить
-----
Ну давай попробуем...
Вводная по конструктору для ребенка:
- должен развивать пространственное мышление
- должен развивать мелкую моторику рук
- должен иметь не менее 150 элементов, не менее 10 групп элементов
- должен иметь не менее 30 рекомендуемых вариантов использования
- должен позволять создавать не менее 300 других вариантов
- должен быть дуракоустойчив, ремонтопригоден и совместим с десятком других
- должен позволять использовать самодельные элементы
Из полученного списка вычеркнем Лего - у него почти нет возможности использовать элементы непредусмотренным образом.
И не забудь уложится в 4 рубля 50 копеек - тогда ты найдешь советский "Конструктор" образца где-то 66/67-го года. Но, гарантирую - не найдешь.
Конрад
-----
У нас есть нечто называемое Маплин.
Кое-что там есть, но либо для уже совсем взрослых, либо дитЙaми 8-13 лет будет сломано за пару часов... ну и довольно дорого...
Добавлю - очередей там никогда нет...
Так что капитализм - это полная задница с куда более жестким дефицитом всего, чем было в СССР..
Почто же тогда мучаетесь на островах-то у самих изобретателей капитализма? Может, лучше назад? Там социализм! Коммуной пахнет!
> Ну давай попробуем...
У меня ребенок выбрал себе на день рождения паука 18dof, я добавил туда терасикосвкую и хардкернеловкую борды, деталек было точно больше 150, собирала, пыжилась, недели две наверное. Сейчас вмести прикручиваем ИИ, ибо есть мечта, чтоб этот паук гонялся за котами. Да, в 4 рубля не уложишся, но и там даже на 300 не наберется. Уже год играется, и думаю, будет еще года два ИИ прикручивать, а попутно можно докупать по мере необходимости всякие ништячки и осваивать кучу попутных технологий.
Идею подсмотрел отсюда: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language... но цена вопроса не понравилось и на том же е-бее при правильном поиске в любую точку мира все необходимые компоненты почти в 10 раз дешевле доставляются.
Убей не понимаю
вашу проблему!
паука 18dof
-----
А вместо паука из тех же деталек твое чадо сможет собрать... хммм... ну скажем того зайца, коего известный барон соизволил подстрелить?
Ах, нет... просто не предусмотрено и никак не сделать работающую модельку... ну тогда уже и сопоставлять нечего - у тебя игрушка 1-1...
т.е. 30-ю вариантами там и не пахнет, не говоря уже об самостоятельном творчестве...
Хотя, признаю, игрушка интересная и весьма навороченная... но - игрушка, не конструктор...
Убей не понимаю вашу проблему!
-----
Да нет у меня никакой проблемы.
Есть проблема у тех, кто знает об СССР только из пропагандистских роликов - там у детей не было Айфонов - или рассказов "сильно пострадавших в деЦтве" от отсутствия бубuльгумов...
Вот и поправляю данное (не)понимание по мере возможности...
Может, лучше назад? Там социализм!
-----
Там, таки последние 26 лет пещерный национализм с апартеидом...
У меня, в частности, поражение в 86 правах на основании того, что моя мама в 2-х летнем возрасте жила в 40 км по другую сторону линии проведенной через 50 лет...
НУ да ничего - еще немного и там все схлопнется...
> Хотя, признаю, игрушка интересная и весьма навороченная... но - игрушка, не конструктор...
это довольно недеццкая игрушка! Я был на презентации у Терасика этой диковинки. Попросили самых смелых встать в кружок примерно 5 метров диаметром, по центру стоял этот паук. Далее всех предупредили, что паук сейчас выберет жертву и добежит и прыгнет примерно на грудь этой жертве, и никто даже свалить не успеет. Действительно, так и произошло. Жалко, что не на меня пригнул, но я реально не смог заметить как от это сделал, но в общем-то немудрено, ибо с места разгоняется до 30км/ч.
Дополнительно на эту платформу можно поставить кучу сенсоров, свистелок и перделок, тогда это будет хорошо программируемый конструктор на любой вкус и цвет.
ЗЫ: модуль ИИ даже
в дорогом комплекте не поставляется, ибо чревато. Но при желании и понимании вопроса на раз собирается из необходимых софтверных модулей. Если мощи не хватает, сейчас завались свистков для ускорения вычислений по ИИ. Все-таки 10-50Тмипсов которые делает наш мозг не на раз еще можно от батарейки запитать.
Из полученного списка вычеркнем Лего - у него почти нет возможности использовать элементы непредусмотренным образом.
Я тебя умоляю!
Lego - Techninic + Lego - Power + Mindstorms + плюс мешок простых деталей
Есть еще Fischertechnik .
Правда все это совсем недешево... но было бы желание ;)
Товарисчт, вы еще не устали трындеть о том, о чем не имеете ни малейшего представления?
Ознакомьтесь с продукцией компании Eitech и не вешайте больше лапшу на уши людям про супер-пупер-мегаконструкторы советских времен. Они были на уровне скромненьких (т.е., не "топовых" - а были и такие) ГДР-овских конструкторов (заявляю ответственно, как тогдашний юзер этих вещиц). А ГДР-овские в свою очередь являлись продолжателями славной немецкой традиции, которая на ГДРии вовсе не закончилась, о чем свидетельствует приведенный мною линк.
Тупое пропагандонство не красит вас, товаристч. "Фитилек прикрутите, коптит-с" (с) Митьки
это довольно недеццкая игрушка!
-----
Согласен - довольно таки сильно не детская игрушка.
Но не меняет того факта, что именно - игрушка, а не конструктор.
на эту платформу можно... будет ... конструктор
-----
Можно поставить. Дополнительно. Но платформа - с ее ограничениями - останется.
Ну как бы тебе по проще объяснить...
Ну вот есть игрушка - модель машинки. Можно собрать машинку. Она даже будет ездить.
А вот из того же набора собрать... хммм... ну скажем - модельку башенного крана - уже не выйдет...
Можно взять другую игрушку - модель башенного крана. Можно ее собрать. Может даже будет что-то понимать.
Но из набора для башенного крана не собрать машинку.
Наиболее вероятно - из двух игрушек не получится собрать автокран или что-то еще...
Просто потому что оба комплекта - сборные игрушки, а не конструкторы.
А разницы то не много - если двигатель однотипный, то разница - в редукторе - его нужно считать/подгонять - и несущих...
А в конструкторе имеется возможность скомпоновать и одно, и другое...
и еще 200-300 вариантов - была бы голова, руки и желание пробовать...
В отношении Паука - попробуй "научить" его чему-нибудь кроме бега.
Ну скажем - пусть смотает нитки в клубок... или "соткет" паутину...
Lego - Techninic + Lego - Power
-----
Ну, вообще-то, Я специально написал - исключая Лего. По нему и его ограничениям можно говорить долго и отдельно.
это совсем недешево...
------
Т.е. ты, персонально, готов признать, что конструктор с 30 моделями за 4 рубля 50 копеек в 67-м году прошлого века это совсем не плохо и очень далеко от "страдающиx октябрят"...
Я специально написал - исключая Лего.
Подозреваю, что лего ты исключил именно из-за того, что лего подходит по всем статьям :)
Впрочем, есть же и другие производители: Fischertechnic, Eitech, http://www.robots-toys.ru итд Для всех этих конструкторов можно покупать детали практически на вес и собирай все, что тебе захочется.
Опять же, из модельки автомобиля не получится собрать башенный кран из-за недостатка деталей, а не из-за какой-то там специфики. А детали можно покупать сколько хочешь и какие хочешь.
По нему и его ограничениям можно говорить долго и отдельно.
Нет там никаких ограничений. Кроме бюджета конечно :D
Т.е. ты, персонально, готов признать, что конструктор с 30 моделями за 4 рубля 50 копеек в 67-м году прошлого века это совсем не плохо и очень далеко от "страдающиx октябрят"...
Сказать, что конструктор с 30ю моделями из 67-ого года мало чем отличается от Robotics Competition Set
> В отношении Паука - попробуй "научить" его чему-нибудь кроме бега.
вычислительной мощи, которую туда можно напихать, должно на многое хватить, а что получится - полностью зависит от того, кто будет это разрабатывать. Я видел, как такой паук ползет по 70 градусному склону с кучей веток сам принимая решение какую ногу куда поставить и выпутывается из зарослей колючек.
> Ну скажем - пусть смотает нитки в клубок... или "соткет" паутину...
ключевое слово, которое ты не усек: автономно гонял по многоэтажному дому одну из трех кошек без пульта управления и помощи хозяйки.
Помиж, черт тебя побери, что детям сейчас надо не жирафика из лего складывать помигивая светодиодом, а реально мозгами думать учится, ибо когда они будут нашего с вами возраста, они
будут жестко конкурировать с ИИ. У меня на столе стоит 24терафлопсовый комп, собранный 4 года назад, пока он жрет 2кватта, и у меня еще нет правильного софта для ИИ. Через двадцать лет у каждого в кармане будет под 1000терафлопс с аккумулятора и поднять криво ИИ с мозгами больше челоеческих на нем не сможет только ленивый. Делай сам выводы, в каком направлении надо детей учить.
именно из-за того, что
-----
Вообще-то - из-за мелкой моторики рук - там довольно крупные детали, и из-за пространственного видения системы - там детальки не мешают друг другу при движении...
Т.е. по основным моментам для 4-5-6 летних детишек...
мало чем отличается
-----
Тот, который был у меня в 5 леt, был ближе к Eitech, но существенно объемнее...
из-за недостатка деталей
-----
Так ведь ребенку не объяснишь понятие "недостаток деталей"... особенно при наличии каких-то железок, деревяшек, резинок и проволоки в купленной коробке...
Ну а если ребенок не в состоянии заменить что-то из недостающего чем-то из имеющегося, то об каком конструировании может идти речь? Тут в пору думать об вспомогательной школе...
должно на многое хватить
-----
Возможно.
Правда Я пытаюсь подвинуть тебя к осмыслению другого момента - разницы между использованием предмета по назначению и использованием того же предмета совершенно непредусмотренным образом.
Делай сам выводы, в каком направлении надо детей учить.
-----
Всему свое время.
Начнешь раньше - будет слишком сложно, приступишь позже - может быть слишком поздно... vидел и тех, и других...
Сам же говоришь - "не сможет только ленивый" - т.е. для того чтобы заточить кол для охоты на дикую собаку нужна будет хорошая моторика рук...
> Сам же говоришь - "не сможет только ленивый" - т.е. для того чтобы заточить кол для охоты на дикую собаку нужна будет хорошая моторика рук...
да, возможно ИИ будет вподляк работать мусорщиком, и тех, кто с хорошей моторикой будут использовать по такому назначению.
Воистину сказано, что человечество - это бутлоадер искуственного интеллекта.
будут использовать по такому назначению.
-----
Ну так остальных то просто утилизируют за непригодностью...
В проекте и не только я уже был, разумеется. Или вы считаете, что период перестройки следует вычеркнуть из истории СССР как несоответствующий каким-то частным критериям "советскости"?
И вообще, речь-то шла о ПРОГРАММИРОВАНИИ, а не о конструировании вобщем, так что при чём здесь тонкая моторика рук? И о том, как программирование сделать увлекательным для самой юной школоты.
Arduino тут примечателен тем, что у него очень низкий порог вхождения, и можно более ли менее РАЗДЕЛЬНО изучать актуаторы, электронику и программирование. Методически это лучше для обучения.
И это при том, что никто не мешает дозировать уровень сложности. Не нравится ардуиновская IDE - не используй, по минимуму нужен только стартап, инициализирующий МК, а все библиотеки можно самому переписать, хоть на ассемблере.
А что если пайка и изготовление печатных плат на коленке меня не интересует, вообще, в принципе? Не проблема. Готовые провода и гнездовые штекплатины. А так же есть готовые сенсоры, например сонар. Мне как программисту может быть интересно, как устроен сонар на уровне базовой теории, и какие есть подвохи при применении сонара в отдельных случаях, но изготавливать его самому у меня нет никакого желания.
При том, что для сенсоров уже есть готовые библиотеки, и не надо читать даташиты. Хотя, опять таки, никто не запрещает всё переписать под себя, и хоть на ассемблере, если это по какой-то причине нужно.
По технологической части прогресс на рынке МК налицо.
Доперестроечный клон Intel8080: ок. 0.6 MIPS
ATmega328 (Arduino Uno на нём): 20 MIPS
Таким образом, уже по производительности МК постперестроечная техника позволяет программировать системы на порядок сложнее доперестроечных. И всё это "из коробки", ну или почти всё, с допокупкой необходимых инструментов типа мультиметра и доп. компонент.
А если речь именно о конструировании и есть деньги, то сегодня можно купить 3Д принтер, и смоделировать всё, что позволит используемый материал и разрешающая способность принтера.
Как там во времена Брежнева с этим делом было? Вот то-то и оно.
Средства разработки ПО постоянно совершенствуются уже с 50х годов, а кодеры до сих пор нужны в больших количествах и с разной квалификацией. Причём, кодеры зачастую получают больше всяких постдоков с PhD.
Машины никогда не будут разрабатывать ПО за людей. Если этого не случилось до AI Winter, то почему это должно случиться в ближайшие 50 лет? Какие к тому предпосылки?
Ключевые процессы в индустрии ПО неформализуемы в принципе, и поэтому там математика не играет решающей роли.
-----
Как действующий гражданин СССР именно Я таки имею возможность определять критерии советскости.
речь-то шла о
------
о недоступности ресурсов для детского технического творчества в СССР.
Это - ложь. Они были более доступны, чем на западе.
Как сейчас - не знаю - четверть века там не был...
Arduino тут примечателен тем, что
-----
Не могу обсуждать Ардуино - Я не знаком с его возможностями.
но изготавливать его самому у меня нет никакого желания
-----
Угу... Об возможности сконструировать систему "а-ка сонар" говорить бесполезно.
Как там во времена Брежнева с этим делом было?
-----
А нормально было - ножовки, напильники и надфили примененные к бруску дерева и листу металла вполне решали большую часть проблем.
Заодно с тренировкой рук - тренировались и мозги на понимание базовых основ сопромата.
Отсутствие этих навыков в руках и мозгах у современных детишек приводит к решениям в которых гибнут другие люди.
Примеров - масса. Недавний - рухнула крыша с магазине - 54 трупа. До сих пор не выяснили кто ответственен...
А теперь - контрольный вопрос - сколько мегафлоп имел Ардуино в 60-х? Пусть даже в самой развитой стране запада...
о недоступности ресурсов для детского технического творчества в СССР
я протестую против такой формулировки темы. Лично я влез в эту дискуссию только ради ответов на изначально поставленный вопрос о ПРОГРАММИРОВАНИИ. Если вас напрягает моё "во времена СССР и Ельцина", это я использовал для обозначения кооординаты во времени, а не в пространстве. Мне просто удобнее ориентироваться по российской исторической хронологии. Но можно выбрать американскую историческую или любую другую хронологию, без изменения смысла. Например, "во времена Картера и Шмидта". В конце концов, это раздел не о политике. И я ничего не имею против изучения программирования на "Микро-80", хотя сегодня есть лучшие альтернативы.
А теперь - контрольный вопрос - сколько мегафлоп имел Ардуино в 60-х? Пусть даже в самой развитой стране запада...
В том-то и дело, что "ни сколько", и в этом мой тезис: сейчас по части программирования простора для творчества как минимум не меньше, чем тогда, а с учётом доступности наборчиков типа тех, которые с Ардуино, в изучение программирования вносится дополнительный элемент интересности, даже каких-то примитивных роботов на Ардуино разрабатывают. Здесь подразумевается, разумеется, что помимо Ардуино у человека уже есть ПК, что сегодня обычное дело.
Вот, например, игрушечный робот на базе Ардуино:
https://www.hackster.io/myusufkosoglu/table-cleaner-voice-...
управление голосом по синезубу.
а кодеры до сих пор нужны в больших количествах и с разной квалификацией
Тяжкое наследие прошлого.
кодеры зачастую получают больше всяких постдоков с PhD.
Тяжелый неблагодарный труд должен как-то поощряться. А вченые просто удовлетворяют личное любопытство за казенный счет.
Машины никогда не будут разрабатывать ПО за людей
Этого и не требуется. Речь шла о том, что РОЛЬ программеров будет снижаться - и она уже снижается - при возрастании роли алгоритмистов-математиков. Программер (толковый) вполне может заниматься разработкой или модификацией алгоритмов, но на каком-то этапе все равно понадобится голова математика. Когда эффективность алгоритмов станет определяющим фактором (ну, к примеру, быстродействие компов подойдет к теоретическим пределам), тогда и платить математикам будут больше, чем самым лучшим программерам. А пока соблюдается некая условная справедливость. Тем не менее, тенденция вполне отчетлива. Повторяю: речь не о ЗАМЕНЕ человека машиной, а о перераспределении значимости между участниками процесса разработки.
Ключевые процессы в индустрии ПО неформализуемы в принципе, и поэтому там математика не играет решающей роли.
Да начхать на процессы в индустрии ПО. Они будут так или иначе подстраиваться под требования заказчиков. А заказчику в будущем будет требоваться в первую очередь все более эффективный алгоритм. И индустрия ПО может хоть на ушах стоять, а без математиков не обойдется. Просто еще прокатывает экстенсивное наращивание вычмощности за счет "железа" и/или "кластеризации".
а я думаю, что распределение ролей в обозримом будущем будет примерно таким же, как и сейчас, потому что на каждого математека с его новым алгоритмом нужен будет как минимум один кодер, который сможет написать эффективную РЕАЛИЗАЦИЮ (а это разные задачи и разные роли) и ещё один кодер, который будет фиксить баги и вобщем поддерживать реализацию и тестер, который сможет проверить, на сколько то, что заявлено в спецификации соотв. действительности на практике. Каждая гениальная идея будет (как и было всегда) порождать пирамиду обслуги, без которой эта идея останется разве что на страницах специализированных научных журналов. И мне пока не понятно, как предел роста вычислительных ресурсов сможет принципиально изменить ситуацию в обозримом будущем. При том, что индустрия до сих пор не может отказаться от технологически устаревших ЯП типа C++. Даже в mission critical системах. Т.е. даже тот теоретический задел, по которому давно уже написаны горы статей и защищены армии докторантов, этот задел не всегда востребован бизнесом.
В принципе, можно порассуждать на эту тему.
Допустим, классические компы достигли пика производительности, а масштабируемых квантовых компов или другой принципиально отличной от классической аппаратной базы так и не появилось.
Вобщем, можно считать, что это уже случилось сегодня.
Что это будет означать кроме возможного коллапса Интел? Люди все равно будут использовать ПО, и нужно будет его модифицировать.
А сколько десятилетий ещё можно будет фиксить баги в легаси коде?
Не будет экстенсивного роста за счёт использования нового железа, но могут открыться новые ниши для создания кастомных более эффективных решений для
конкретных задач. А здесь больший простор как раз для кодерских задач, т.к. вся теория уже известна, и ничего нового изобретать не нужно, а грубо говоря, "надо такой же костюм, но с перламутровыми пуговицами". С профессии программиста снимут, наконец, совершенно незаслуженный нимб элитарности, и она станет всего лишь одним из хороших и нужных традиционных ремёсел.
Новые алгоритмы будут, как и раньше давать существенные толчки прогрессу, но бизнес по-прежнему не будет ориентироваться на теорию (от математика к кодеру), т.к. прогресс в теории практически не то, что не контролируем, его даже сложно предсказать.
А если всё ИТ и около-ИТ навернётся медным тазом по каким-то пока неизвестным причинам, то и интерес к области со стороны теоретиков также угаснет, и они тоже будут не нужны обществу. IT это же не наука, и григориев перельманов тут быть не может, просто как класса.
Да начхать на процессы в индустрии ПО. Они будут так или иначе подстраиваться под требования заказчиков. А заказчику в будущем будет требоваться в первую очередь все более эффективный алгоритм. И индустрия ПО может хоть на ушах стоять, а без математиков не обойдется. Просто еще прокатывает экстенсивное наращивание вычмощности за счет "железа" и/или "кластеризации".
заказчику объяснят, что возможно, а что - нет или "может быть". Выдумывание новых алгоритмов - это как раз из серии "может быть". Т.е., может быть его выдумают через месяц, а может быть, вообще никогда не выдумают.
Речь шла о том, что РОЛЬ программеров будет снижаться - и она уже снижается - при возрастании роли алгоритмистов-математиков.
Не согласен. Понимание важности алгоритмистов будет расти (но медленно, часто проблема решается "а давайте купим еще 20 серверов", если у нас что-то с O(n^2)) а роль программистов снижаться не будет.
Я знаю что вы не любите сравнений, но все же попробую. Это как сказать что при постройке дома роль строителей снижается при возрастании роли архитекторов. Пока нет роботов-строителей с ЧПУ нужны думающие строители. Как и строителю, программисту (в обозримой перспективе, имхо следующие лет 20 ничего не изменится) приходится думать что он делает. Иначе будет налеплено такое, что проще написать заново чем переделать. "Думающий" программист нужен просто потому что математик не может описать что ему надо (поставить ТЗ) так, чтобы можно было не думая взять и написать программу. Да, кусок, отвечающий за, например, 4/3 решение проблемы коммивояжера, можно будет реализовать по бумажке. А всю обвязку - откуда будут поступать данные на вход, как и куда отдавать решение, а в каком виде все это представлять, а что делать если надо параллельно для 1000 запросов обсчитывать, а как мы будем пользователей авторизировать - должен решать программист / архитектор ПО. Как только аналитики начнут все это описывать в формальном виде - программистов можно будет разогнать и генерировать код автоматически, а математики-аналитики вместо 5 страничек с формулами будут писать 1000-е страничные талмуды описывающие все-все-все. Пока что есть только частные решения. Те же модели workflow. Моделировать в UML тот еще геморрой... А искать ошибки в сгенерированном коде - оооо... Не дай бог. Знаю 2 больших фирмы которых так задолбали расходы связанные с генерируемым кодом, что они инвестировав несколько десятков миллионов и несколько лет времени слезли с генерации (низкая роль программистов) и вернулись к написанию кода ручками (высокая роль программистов). У моего работодателя расходы на обслуживание кода снизились с 2008-го примерно в 2 раза.
А заказчику в будущем будет требоваться в первую очередь все более эффективный алгоритм. И индустрия ПО может хоть на ушах стоять, а без математиков не обойдется.
Я знаю "индустрию ПО" с другой стороны... Заказчику за редкими исключениями требуется "чтобы было красиво", "чтобы работало как раньше" и "чтоб все делалось само", а! и "а справа внизу чтоб на зеркальной поверхности наш 3-д логотип крутился". И донести до них мысль что надо инвестировать деньги в разработку более эффективного алгоритма... очень сложно. "А чо, сейчас-то работает? не пытайтесь с нас больше денег содрать!" Заказчик понимает только в еврах. Ему не нужен алгоритм, ему нужно чтобы было быстро, качественно и самое главное дешево сейчас. Даже "вложив сейчас 100к мы предположительно сэкономим через 3 года миллион" понимает хорошо если один из 10. "А дайте мне гарантии что мы этот миллион сэкономим".
Лично мне с математиками приходилось сталкиваться один раз - обсуждали возможность для страховки на лету просчитывать риски. Был скрипт то-ли на R то-ли вообще матлабовский, который по ночам подсчитывал пару сотен коэффициентов, а риски на лету считались исходя из этих значений, а заказчик хотел сделать "чтоб прям щас и все точно". Но слился когда стали выяснять а с какой точностью и что конкретно ему надо на лету считать. Ну, примерно как вы сейчас AlexNek-а пытали.
Все, что Вы тут написали, безусловно верно. Но речь шла о другом. На данный момент ситуация такова, что развитие средств генерации кода еще недостаточно, а выч.мощности позволяют наращивать их экстенсивно. Я же говорил о случае, когда вычмощности будет затруднительно наращивать таким методом, а средства генерации кода станут гораздо более развитыми. Возможно, речь даже не о 20, а о 50 годах, но таковой момент когда-нибудь наступит. Уже сейчас есть отдельные области, где именно алгоритмы определяют качество программно-аппаратного комплекса. Ну, к примеру, на борт АПЛ невозможно впихнуть супер-мега-компьютер, и размеры сонара тоже ограничены, плюс, гидрология бывает настолько сложной, что даже сонар с большой антенной не спасет. Поэтому дальность обнаружения часто будет определяться алгоритмом обработки акустического сигнала на компьютере с ограниченной мощностью. Это лишь частный случай, возможно, нехарактерный для современной практики, но я вижу, что постепенно потребность в математической оптимизации растет. Есть запросы производителей кунштюков для IOT - там часто нужно впихнуть какое-нибудь распознавание в крайне ограниченную память при малой вычмощности.
Я надеюсь, что жизнь заставит заказчиков повышать свою компетентность. Хотя, конечно, это может и маниловщина. В любом случае я вангую постепенное повышение заработков математиков-алгоритмистов на фоне кодеров. Я знаю, что многие программеры выполняют функцию алгоритмистов - образование информатика вполне позволяет - поэтому включаю таких специалистов в число первых
Плюс, развитие средств анализа данных, не требующее особых навыков программиста - те же R, Matlab, Origin позволяют юзеру легко и непринужденно создавать весьма сложные скрипты для манипуляции с данными без глубокого понимания принципов функционирования "железа"
и ОС.
те же R, Matlab, Origin позволяют юзеру легко и непринужденно создавать весьма сложные скрипты для манипуляции с данными без глубокого понимания
Просто офуеть!
Тема все равно остается о том, с чего бы начать ребенку знакомиться практически в программированием. И "где взять программу"... А вы как политики: неважно о чем речь, я должен использовать любую возможность, чтобы показать, какой я крутой и правильный.
Помогите лучше ТС. Хотя я бы ему уже сейчас посоветовал просто погуглить "с чего ребенку начать программировать". Гугль выплюнет много гораздо более полезного, чем рассуждения карликов о будущем мироздания.
зы. сам не пойму, откуда во мне столько желчи : )
В том-то и дело, что "ни сколько"
-----
Угу...
Вот только в СССР можно было "выпаивать" и что-то собирать... Я, например, видел ПАЛ-декодер собранный на транзисторах... а на западе - либо покупался готовый модуль, либо не покупался... при этом как он работает - покупатель мог не иметь никакого понятия... это, кстати, так и осталось...
хотя сегодня есть лучшие альтернативы.
-----
На сегодня - да, есть.
А по состоянию на "во времена Картера и Шмидта" - их не было ни в СССР, ни на западе.
Но в Союзе, с его обязательным и бесплатным средним образованием, обеспеченность кружками и конструкторами была выше западной.
Так что в следующий раз стоит сравнивать с какой-нибудь пигвинией - там нет помнящих что было и может сойти любая фигня...
зы. сам не пойму, откуда во мне столько желчи : )
-----
Это на тебя попали брызги из моей отрыжки...
Вернемся к нашим баранам: с какого языка начинать.
С++ отличный язык (и становится еще лучше), но начинать с него не есть гут.
Начинать нужно с функциональных языков, таких как Haskell, OCaml, или LISP.
Эти языки дисциплинируют мышление: учат мыслить рекурсивно и избегать "побочных эффектов".
P.S. И вообще, лучше конструктор, чем деструктор!.
Начинать с ЛИСПа - жОстко. Думаю, это весьма изысканный способ отбить у ребенка интерес к программированию. Круче только, наверное, если начинать обучение с Perl-а.
По мне, чем ближе язык к естественному (ну, типа, старорежимного "если...то...иначе...все"), тем лучше. Выскажу крамольную мысль, но старый добрый "паскаль" - как бы ни охаивали его нынче - для _обучения_ _программированию_ достаточно хорош. Привить ребенку основы алгоритмов, научить оптимизировать код можно вполне. Тут главное не язык, а учитель - кто и как будет учить.
Да бл..., полтора года мариновали (с хором и акробатами (с)), тут забудешь, пожалуй.
к исходному вопросу: http://pascalabc.net/primeri-programm/programmi-i-algoritm...
спасибо всем, пока взяли уроки на питоне, на каникулах будет чем заняться
Все не читала, извините если повторюсь. Я live code школьнику посоветовала бы.
Вот и я всё больше склоняюсь к питону для себя лично.
Зачем ? А штоб мозги не усыхали. Не всегда же носится по рыбалкам,
стрелялкам и т.д. Да и интересно чёт ... :)))