[identity profile] soul-in-limbo.livejournal.com posting in [community profile] useful_faq
В наличии имеется любознательный подросток среднего подросткового возраста, 1 шт. Хочет учиться программированию, тяготеет к искусственному интеллекту, нейрогибридным системам, мат. моделям биологических систем (насмотрелся Михаила Бурцева на Постнауке). Навыков в программировании чуть менее чем 0. Вопрос: с чего начать, чтобы двигаться в желаемом направлении? Желательно азы азов, заложить надежный фундамент. Посоветуйте книжки, курсы, пожалуйста.

Date: 2013-11-21 01:18 pm (UTC)
From: [identity profile] krazzzer.livejournal.com
Возможно даже стоит полезть в ActionScript в адобовском флеше. Там по крайней мере все видно сразу и принципы программирования быстрее доходят.

Date: 2013-11-21 01:38 pm (UTC)
From: [identity profile] potan.livejournal.com
Из книжек рекомендую старый SICP (http://newstar.rinet.ru/~goga/sicp/sicp.pdf). Лучше пока ни чего не написали.
Из обучающих систем - kojo (http://www.kogics.net/sf:kojo).

Date: 2013-11-21 02:08 pm (UTC)
From: [identity profile] havohudonosor.livejournal.com
Можно Булеву алгебру начать изучать.

Date: 2013-11-21 02:11 pm (UTC)
From: [identity profile] jack-talking.livejournal.com
Чтобы заложить надёжный фундамент - хорошо учись в школе и поступай в хороший институт. В институте тебя дадут базу и, главное, научат учиться.
После этого выберишь то, что интересно и начнёшь развиваться в этом направлении.
И главное! По курсам и книжкам фундамент не заложишь. Тем более надёжный.
Иных вариантов нет.

Date: 2013-11-21 05:21 pm (UTC)
From: [identity profile] jack-talking.livejournal.com
В школе надо заниматься не информатикой, а алгеброй и геометрией. Чтобы поступить на профильный факультет хорошего ВУЗ-а.
Книги помогут человеку опытному, а новичка только запутают или, в худшем случае, напугают и на всю жизнь отобьют желание заниматься программированием.

Date: 2013-11-21 05:40 pm (UTC)
From: [identity profile] sir-i-alexis.livejournal.com
Феерическая чушь.

Date: 2013-11-21 06:19 pm (UTC)
From: [identity profile] jack-talking.livejournal.com
А, ну понятно... Учиться не надо! Нам дайте сразу космодром построить!

Date: 2013-11-21 06:37 pm (UTC)
From: [identity profile] jack-talking.livejournal.com
Удачи!

Date: 2013-11-21 07:18 pm (UTC)
From: [identity profile] sir-i-alexis.livejournal.com
Можно только пожалеть человека, для которого изучение алгебры с геометрией и какая-либо активность вне школьной программы являются взаимоисключающими вещами: это скорее всего означает, что с его собственным образованием и развитием в том возрасте что-то пошло не так.

Логическое и системное мышление, которые воспитывает программирование, могут только помочь при изучении и точных наук, и иностранного языка.

Чтобы поступить в профильный вуз, нужно к окончанию школы уже иметь представление, какой профиль человеку нужен: а для этого нужно пробовать, экспериментировать - и делать это именно в школьном возрасте.

Edited Date: 2013-11-21 07:20 pm (UTC)

Date: 2013-11-21 06:15 pm (UTC)
From: [identity profile] jack-talking.livejournal.com
Крутой кулцхакер самоучка, наверное?

Date: 2013-11-21 07:23 pm (UTC)
From: [identity profile] sir-i-alexis.livejournal.com
Да ты просто дока по части бессмысленных алогичных выводов! Еще раз сможешь?

А вот если б ты в школе позанимался программированием, очень возможно, в голове у тебя было б больше порядка, а в словах - разумности. =)

Date: 2013-11-22 10:20 am (UTC)
From: [identity profile] moribeth.livejournal.com
В вузах нормально программированию учат очень мало где. И преимущественно не в России.

Date: 2013-11-21 02:22 pm (UTC)
From: [identity profile] dims12.livejournal.com
А сколько лет-то?

Можно посоветовать прогамму MATLAB, в ней есть обширные библиотеки методов, как сугубо математических, так и прикладных, включая ИИ. Однако язык программирования, которым они пользуются, довольно устаревший, многие современные концепции реализованы не очень хорошо (ради совместимости со старыми версиями).

Date: 2013-11-21 04:46 pm (UTC)
From: [identity profile] dims12.livejournal.com
Ну мануал можно читать, если по-английски шпрехает. Иначе -- есть книжки, но книжку я не могу порекомендовать.

Date: 2013-11-21 04:49 pm (UTC)
From: [identity profile] uncle-rus.livejournal.com
Начать следует с Python, поскольку:
- прост в освоении
- красив
- лаконичен
- кроссплатформенный
- может в метапрограммирование, ООП, ФОП
- имеет великое множество биндингов и библиотек, в том числе numpy (математика), libfann (Fast Artifical Neural Networks), OpenCV (Computer Vision), PyBrain, PyMorphology, тысячи их.

Для погружения нужны:
- Книга "В глубь языка Питон (Dive into Python)"
- Интерпретатор (скачать с сайта python.org)
- Текстовый редактор в худшем случае. Специализированная IDE типа PyCharm лучше.
- Начальные навыки гугления.

Follow the white rabbit, Neo.
Edited Date: 2013-11-21 04:52 pm (UTC)

Date: 2013-11-21 05:04 pm (UTC)
From: [identity profile] daddits.livejournal.com
Java Programming for Kids, Parents and Grandparents http://myflex.org/books/java4kids/java4kids.htm Есть на русском.

Date: 2013-11-21 05:48 pm (UTC)
From: [identity profile] creta.livejournal.com
Если у него хороший английский - посмотреть coursera и он сам выберет, что его может заинтересовать прямо сейчас.
Курсы - можно попробовать Учебный центр "СПЕЦИАЛИСТ" при МГТУ им. Н.Э. Баумана, там и онлайн вариант есть, но они недешевые, можно при МГУ что-то поискать.

Date: 2013-11-21 07:41 pm (UTC)
From: [identity profile] sir-i-alexis.livejournal.com
Ребенку возможно будет интересно что-то такое: программируемые роботы от Лего (http://ru.wikipedia.org/wiki/LEGO_Mindstorms).

Также существуют игры, основанные на программировании: Colobot (http://ru.wikipedia.org/wiki/Colobot), Ceebot (http://ru.wikipedia.org/wiki/Ceebot) (возможно, есть что-то поновей того же плана: последний раз мониторил подобные вещи довольно давно).

Все эти штуки могут зародить интерес и дать понимание о робототехнике - одной из бурно растущих сегодня отраслей искусственного интеллекта (гуглить по словам "интеллектуальные агенты").

Date: 2013-11-22 05:42 am (UTC)
From: [identity profile] x-b.livejournal.com
Советовал бы для начала развивать алгоритмику, потом будет проще пересесть на любой другой язык.
Пару лет назад натыкался под программу для линукса, там нужно было подавать команды черепашке на привычном языке "Повернись налево, сделай 5 шагов" и добиваться нужного результата. К сожалению, названия не помню, но аналоги скорее всего есть и в виндоус

Date: 2013-11-22 05:57 am (UTC)
From: [identity profile] apashenko.livejournal.com
http://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%BE_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

Date: 2013-11-22 06:16 am (UTC)
From: [identity profile] apashenko.livejournal.com
Когда я был любознательным подростком среднего подросткового возраста, отец подогнал мне вот такую книжку (http://mirknig.com/2009/03/18/bejsik-yeto-prosto.html). Я её прочитал, но, поскольку компьютеров тогда ещё не было, полученных знаний применить не мог. А когда в школе началась информатика (никогда не забуду первый в моей жизни компьютер — МС 0511), на первом занятии все стали изучать оператор PRINT, а я стал гонять по экрану отрезок. С правильными углами отражения, синусы, косинусы, все дела... Незаметно подкравшийся сзади учитель лишь хмыкнул и до самого выпускного ничего у меня не спрашивал. Перед выпускным, правда, пришлось написать правильные ответы на все билеты для нашей школы и соседней (подружка там училась).

Эх, что-то разностальгировался...

Да, а после школы как-то оно само пошло-поехало: Бейсик, Паскаль, Фортран, Фокал, Си. Потом их аналоги под Windows: Delphi, VB, VS и ещё много всяких непонятных слов.

Date: 2013-11-22 10:25 am (UTC)
From: [identity profile] moribeth.livejournal.com
Я бы пошла другим путем. Книжки это хорошо, но... отправьте его на курсы. Сейчас программирования для школьников ой как немало (такие курсы есть в Юниум, да и вообще куча вариантов, хоть бы и дистанционные).
Там программирование, конечно, будет достаточно примитивное, но во-первых, ребенок поймет, как оно ему вообще, а во-вторых, это будет в благожелательной, адаптированной к детям атмосфере. Это не отпугнет во всяком случае, как может отпугнуть книжка по матлабу или лиспу в 13 лет, еще и на английском)
Хорошая адаптированная книга есть у Microsoft, называется программирование на C# для школьников. Заложит ребенку основы понимания классов.

Date: 2013-11-22 10:34 am (UTC)
From: [identity profile] moribeth.livejournal.com
Хороший выбор! Удачи вам) Надеюсь, ребенку понравится)

Date: 2013-11-22 10:27 am (UTC)
From: [identity profile] moribeth.livejournal.com
И да, не давайте ребенку книжки по фортран/паскаль/дельфи/пролог/бейсик. Это все безнадежно устарело.

Date: 2013-11-22 12:03 pm (UTC)
From: [identity profile] moribeth.livejournal.com
Любые си-подобные. С, С++, С#, PHP, Java, JavaScript, ActionScript и т.п.

Date: 2013-11-22 11:01 am (UTC)
From: [identity profile] pphantom.livejournal.com
С таким подходом к делу ребенку вообще книжки по программированию давать не стоит - к тому моменту, когда он вырастет, модные в этом сезоне языки тоже устареют. :)

А если серьезно, то разбираться стоит не с синтаксисом конкретного языка, а с идеями, в него заложенными. Потом, когда понадобится, разобраться с синтаксисом того, что тогда будет в моде, толковый человек сможет за два-три дня.

Отсюда вывод: никаких книжек "язык xxx за 21 день", никаких "руководств для чайников", "языков для школьников", писания флэшей и тому подобной сиюминутчины. Среди уже данных советов есть действительно толковые: старый SICP, булева алгебра, просто математика. Для ИИ достаточно легко искать книги с названиями типа "Системы ИИ" (кстати, именно с таким названием была в свое время отличная переведенная на русский книжка Лорьера), но не надо трогать что-либо вроде "реализация ИИ в системе Visual Prolog 5.2".

Date: 2013-11-22 12:01 pm (UTC)
From: [identity profile] moribeth.livejournal.com
Дети растут очень быстро) В 16 уже можно начинать подрабатывать. За 3 года информация настолько устареть не успеет.
Просто математика это, конечно, хорошо. И для ИИ, безусловно, необходима. Но 99% тех, кто когда-то хотел заниматься ИИ, вырастая, занимается прикладными задачами.

Date: 2013-11-22 02:55 pm (UTC)
From: [identity profile] pphantom.livejournal.com
Зачем надо начинать подрабатывать в 16 лет? Чтобы потом всю жизнь быть низкоквалифицированным кодером?

Эти вещи жестко связаны. Попытка освоить азы и тут же начать работать почти всегда означает остановку развития (или, как минимум, сильное его замедление). Поэтому, например, совершенно типичная история жизни студентов IT-специальностей российских ВУЗов выглядит так: поступаем, учимся писать сортировку "пузырьком", курсу ко второму решаем, что уже можно начать зарабатывать и писать на ныне модном ЯП вместо освоения тех же сортировок на "допотопном Паскале"... и начинаем зарабатывать. Правда, сравнительно небольшие деньги на скучных и примитивных задачах, причем всю жизнь. И когда где-то в районе 5-го курса нормальный студент действительно может начать всерьез заниматься интересными вещами, 99% его сокурсников это себе позволить уже не могут, поскольку ни черта не умеют, кроме писания примитивного кода за скромную зарплату.

Нет, бывают случаи, когда иначе никак - семейные финансы не позволяют. Но, если жизненной необходимости нет, лучше потратить это время на учебу. А уж если речь идет о школьнике, то тем более.