Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, GarryIV, Вы писали:
GIV>>Только не Пролог. Ему же только 12 лет! Вот станет совершеннолетним и пусть сам решает а пока никаких психотропных штучек. Т>Моему 10, а он уже убежден, что Haskell — самый крутой язык.
Ничего. Вот будет ему 13-14 лет и станет он назло тебе на бейсике программировать.
Тяжелый возраст однако
Здравствуйте, bestix, Вы писали:
B>Доброе время суток! B>Собственно сабж. Сам программист, вот думаю сына начать обучать. С какого языка посоветуете? B>С уважением.
Я бы сказал, что чтоит сначала оценить нужен ли ему вообще какой либо язык т.к. если нет личной заинтересованности, то может проявиться отторжение. А с языков стоит начинать строго формальных, не имеющих кучи ньюансов. Вообще самый простой, кроме шуток, Assembler для X86 в режиме Ideal. на нём очень просто программировать и даже прикольно получать результаты (например, программка вывода в последовательный порт — 4 строки не считая заголовка) а результат красиво мигающие светодиодики, если воткнуть их плюсовую ногу на один из [1..8] выходов разъёма, а вторую на 17-ю ногу (общая земля, если память не изменяет). но асму без железа учить смысла нет.
А из высокоуровневых — думаю, что Java. нет проблем с памятью, да и в терминах объектов человеку, не приученому ранее к процедурной парадигме, проще мыслить. Да и изначально вырабатывается верный способ мышления... Если начинать c Java и использовать JBuilder. то сразу привыкнет и к UML диаграмкам и будет явно видеть как каждый шаг его работы отражается в графическом представлении архитектуры проектика. + заодно кросплатформенность и запад почти весь на ней живёт. Вот представь, если пацан к 16 годам будет шарить в EJB + CORBA + писать на Java как на русском — это же бесценный кадр.
Правда в школе ему будет жутко тяжко. Вот представь, как ему вообще потом слушать ту ересь, которую обычно несут преподы по информатике... да и вообще какое нафиг уважение к преподу, который по сравнению с таким пацаном — полный баран. тут скорее всего прийдётся дать на лапу директору, чтобы пацана освободили от курса и не травмировали его психику
Здравствуйте, bestix, Вы писали:
B>Доброе время суток! B>Собственно сабж. Сам программист, вот думаю сына начать обучать. С какого языка посоветуете? B>С уважением.
часто встречал рассуждения, что начинающих надо учить тому то, а потом этому, а потом еще третьему и именно в этом порядке
с точки зрения
1. человека с интеллектуальными способностями выше среднего
2. профессионального разработчика ПО
могу сказать, что если ваш сын соответствует 1, и вы собираетесь развивать его в направлении 2, то с педагогической точки зрения абсолютно безразлично с чего начинать ибо рано или поздно он все равно обойдет все сам и найдет то, что ему больше нравится
а с точки зрения рынка на текущий момент и ближ неск лет и повышения усвояемости наиболее применяемых сегодня и вновь возникающих технологий, то посоветовал бы
1. начать с С++
2. дать обзор программирования под разные платформы и в разных предметных областях
3. задать вопрос — в каком направлении он хочет собственно сам развиваться? — и соответственно обучать новым языкам и технологиям (хотя, если ваш сын все таки выше среднего то дальше он прекрасно справиться без вашей помощи)
Здравствуйте, bestix, Вы писали:
B>Доброе время суток! B>Собственно сабж. Сам программист, вот думаю сына начать обучать. С какого языка посоветуете? B>С уважением.
забыл сказать
перед изучением программирования, дайте ему хотя бы базовый курс технического английского
иначе на пункте 3, когда придется читать много док, могут возникнуть проблемы
Здравствуйте, GarryIV, Вы писали:
GIV>Только не Пролог. Ему же только 12 лет! Вот станет совершеннолетним и пусть сам решает а пока никаких психотропных штучек.
Ничего в нем психотропного нет. Просто заржавевшие мозги многих программеров не способны так резко развернуться. Кстати, понимание пролога хороший тест на способность воспринимать новое — я видел как гурастые программеры не могли с ним справится. После пары недель изучения они так и не могли писать что то, отличное от полных аналогов примеров.
Здравствуйте, AndrewVK, Вы писали:
AVK>Ничего в нем психотропного нет. Просто заржавевшие мозги многих программеров не способны так резко развернуться. Кстати, понимание пролога хороший тест на способность воспринимать новое — я видел как гурастые программеры не могли с ним справится. После пары недель изучения они так и не могли писать что то, отличное от полных аналогов примеров.
Hello, bestix!
You wrote on Sun, 09 Jan 2005 13:49:05 GMT:
b> Собственно сабж. Сам программист, вот думаю сына начать обучать. С b> какого языка посоветуете?
Имхо, такой что:
а) язык с простым и однозначным синтаксисом.
Современный визуальный васик тут точно не покатит.
C/С++ — тоже — слишком много частностей и оговорок.
Хорошие кандидаты — Java, C#, Паскаль/Delphi
б) который позволит увидеть хоть-какой-то-видимый-результат за наименьшее количество шагов
Скорее всего, ребенок захочет получить что-то и получить быстро. Так что, придется использовать какую-то развитую среду программирования, желательно с РАД-промочками,
чтобы процесс создания приложения был "инкрементальным".
в) приложение должно быть как можно более легко переносимым с компьютера на компьютер. Т.к. ребенок рано или поздно решит похвастаться перед сверстниками своими достижениями.
То есть — в идеале — скопировать екзешник на дискету и все.
Никаких JRE, VB Runtime или (тьфу-тьфу) дот-нет-фреймворков.
г) легко позволит использовать компьютер до как можно более низкого уровня.
Конечно, сборка мусора это очень хорошо, но пусть сначала научится работать с памятью "по старинке", а то потом переучиваться будет сложновато. Также, нелишним будет доступ ассемблеру и любому системному АПИ — т.к. рано или поздно ребенок этим заинтересуется.
Чтобы не угробить этот интерес в зародыше, лучше чтобы первые экспенименты он проводил на "родном" языке
Так что, при всей моей любви к C/C++, и прохладном отношении к Паскалю, я бы выбрал
Delphi/Kylix...
Posted via RSDN NNTP Server 1.9
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, bkat, Вы писали:
B>Русский, английский, французский. B>Если есть возможность, то пусть поучит так же какой-нибудь из восточных языков. B>12 лет — еше пока идеальный возраст для этого и знание этих языков B>принесет твоему сыну полезней куда больше пользы, чем языки программирования.
B>Уже после 20-ти лет учить иностранные языкеи будет гораздо сложнее чем в 12 лет. B>А вот с С++ (если это будет для него актуально) он и сам разберется.
Это как с религией. Если покрестить в детстве человека — потом не открестится.
Так что, не надо пудрить детям мозги коммуC++змом. Сами разберутся.
Паскаль в руки, пусть бегины строчит, да слюни на шаблоны пускает...
DEA>Имхо, такой что: DEA>а) язык с простым и однозначным синтаксисом. DEA>Современный визуальный васик тут точно не покатит. DEA>C/С++ — тоже — слишком много частностей и оговорок. DEA>Хорошие кандидаты — Java, C#, Паскаль/Delphi
DEA>б) который позволит увидеть хоть-какой-то-видимый-результат за наименьшее количество шагов DEA>Скорее всего, ребенок захочет получить что-то и получить быстро. Так что, придется использовать какую-то развитую среду программирования, желательно с РАД-промочками, DEA>чтобы процесс создания приложения был "инкрементальным".
DEA>в) приложение должно быть как можно более легко переносимым с компьютера на компьютер. Т.к. ребенок рано или поздно решит похвастаться перед сверстниками своими достижениями.
DEA>То есть — в идеале — скопировать екзешник на дискету и все. DEA>Никаких JRE, VB Runtime или (тьфу-тьфу) дот-нет-фреймворков.
DEA>г) легко позволит использовать компьютер до как можно более низкого уровня.
DEA>Конечно, сборка мусора это очень хорошо, но пусть сначала научится работать с памятью "по старинке", а то потом переучиваться будет сложновато. Также, нелишним будет доступ ассемблеру и любому системному АПИ — т.к. рано или поздно ребенок этим заинтересуется.
DEA>Чтобы не угробить этот интерес в зародыше, лучше чтобы первые экспенименты он проводил на "родном" языке
DEA>Так что, при всей моей любви к C/C++, и прохладном отношении к Паскалю, я бы выбрал DEA>Delphi/Kylix...
Странный вывод. При всём том, что вы тут написали, ему прямая дорога в C++.
И не надо колечить ребёнка уродцами борланда, особенно вторым
зы. Кстати у ребёнка то хоть спросили нравится ему это или нет? А то получится ... как всегда.
Здравствуйте, bestix, Вы писали:
B>Доброе время суток! B>Собственно сабж. Сам программист, вот думаю сына начать обучать. С какого языка посоветуете? B>С уважением.
Я думаю, что алгоритмику лучше начать давать в примерах на Pascal (Turbo- и нет — без разницы), здесь можно объяснить нужность типов и типобезопасность. А вот ООП — как дальнейшее расширение понятия типов, динамику и время жизни объектов можно объяснить на Java, здесь уже можно переходить к инструментам разработчика (станкам), показать различные IDE (Eclipse, JBuilder, NetBeans), объяснить, чем они отличаются. Дальше — сервера приложений и способы работы с ними.
Здравствуйте, Dog, Вы писали:
DEA>>Так что, при всей моей любви к C/C++, и прохладном отношении к Паскалю, я бы выбрал DEA>>Delphi/Kylix... Dog>Странный вывод. При всём том, что вы тут написали, ему прямая дорога в C++.
Это так кажется.
А на самом деле все упирается в... строки (как ни странно).
Для того чтобы использовать строки с C++, в случае C-style строк придется обьяснить что такое массивы. А это лучше обьяснять на немного других примерах. Если же использовать C++-style строки, то придется обьяснить что такое обьекты и шаблоны — хотя бы в общих чертах. А также, чем отличается хранения обьектов на стеке и на freestore. Это, опять-таки лучше обьяснять на других примерах.
И еще один аспект проблемы. Диагностики компилятора. Борландовский паскаль по умолчанию настраивается на выдачу только одной ошибки и стопорит компиляцию. Что для новичка есть несомненный плюс.
Сишные же компиляторы любят обругать настолько длинно и витиевато, что у новичка ум за разум зайдет.
Я уж не говорю про диагностику в случае какого-нибудь косяка в шаблонах... В оcобенности если использовать boost
Dog>И не надо колечить ребёнка уродцами борланда, особенно вторым
Вам хочется начать holy war?
Если да, то вы выиграли — можете заказывать бюст на родине.
Dog>зы. Кстати у ребёнка то хоть спросили нравится ему это или нет? А то получится ... как всегда.
Это надо папу Бестикса спрашивать
__________
16.There is no cause so right that one cannot find a fool following it.
Лично я начинал с ассемблера 8080. Это, конечно, не пример для подражания — просто тогда я был аппаратчиком. А первый язык высокого, не побоюсь этого слова, уровня был С по Кернигану-Ритчи. И до сих пор я считаю, что это лучший учебник по программированию.
сразу хочу заметить, что я не рекомендую всем и каждому начинать обучение с C++. Просто хотел отметить, что приведенные тобой "проблемы" таковыми не являются. Трудности при использовании C++ в качестве первого языка обучения в другом.
> А на самом деле все упирается в... строки (как ни странно). > Для того чтобы использовать строки с C++, в случае C-style строк придется обьяснить что такое массивы. А это лучше обьяснять на немного других примерах. Если же использовать C++-style строки, то придется обьяснить что такое обьекты и шаблоны — хотя бы в общих чертах. А также, чем отличается хранения обьектов на стеке и на freestore.
Это не совсем так. Новичку совершенно все равно, что запоминать: string или std::string. Использование std::string в простых случаях ничем не отличается от использования string в языках, где этот тип является "встроенным". Про шаблоны, пространства имен, объекты, разницу между локальным размещением объектов и размещением на куче можно при этом не объяснять:
> И еще один аспект проблемы. Диагностики компилятора. Борландовский паскаль по умолчанию настраивается на выдачу только одной ошибки и стопорит компиляцию. Что для новичка есть несомненный плюс. Сишные же компиляторы любят обругать настолько длинно и витиевато, что у новичка ум за разум зайдет.
Да, здесь согласен, диагностика должна быть хорошей. Но, имхо, есть возможность использовать компиляторы с хорошей диагностикой:
D:\Users\pkuznetsov\test\string_errors>como -c test.cpp
Comeau C/C++ 4.3.3 (Oct 25 2003 12:02:26) for MS_WINDOWS_x86
Copyright 1988-2003 Comeau Computing. All rights reserved.
MODE:strict warnings C++
"test.cpp", line 7: error: "s2" has already been declared in the current scope
std::string s2 = 0.25;
^
"test.cpp", line 7: error: no suitable constructor exists to convert from
"double" to "std::basic_string<char, std::char_traits<char>,
std::allocator<char>>"
std::string s2 = 0.25;
^
D:\Users\pkuznetsov\test\string_errors>g++ -c test.cpp
test.cpp: In function `int main()':
test.cpp:7: redeclaration of `std::string s2'
test.cpp:6: `std::string s2' previously declared here
test.cpp:7: declaration of `std::string s2'
test.cpp:6: conflicts with previous declaration `std::string s2'
test.cpp:7: conversion from `double' to non-scalar type `
std::basic_string<char, std::char_traits<char>, std::allocator<char> >'
requested
> Я уж не говорю про диагностику в случае какого-нибудь косяка в шаблонах... В оcобенности если использовать boost
Не надо использовать эти возможности на ранних этапах обучения.
Posted via RSDN NNTP Server 1.9
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>сразу хочу заметить, что я не рекомендую всем и каждому начинать обучение с C++. Просто хотел отметить, что приведенные тобой "проблемы" таковыми не являются. Трудности при использовании C++ в качестве первого языка обучения в другом.
Совой об пень или пнем об сову — какая разница?
>> Если же использовать C++-style строки, то придется обьяснить что такое обьекты и шаблоны ПК>Это не совсем так. Новичку совершенно все равно, что запоминать: string или std::string.
...Если рассмотреть строчку "std::string s2 = 0.25;" Сразу возникнет вопрос "а почему это не сработало".
Тут хошь не хошь, а придется обьяснять про обьекты и конструктора. Ученик же, полистав справку по обьекту и его конструкторам увидит там помимо всего прочего заклинания типа "template<class InputIterator>", "const X&" у него появится еще одна куча вопросов про template, const и загадочный знак "&" или (тьфу-тьфу) про еще более загадочный знак "*".
И на эти вопросы придется хоть как-то отвечать — т.к. ответ "тебе еще рано" обладает мерзкой тенденцией отвлекать от текущей задачи — то есть написания "кульного приложения".
Короче, для того чтобы "офигение" новичка не превысило критической массы, ему придется все разжевывать и стараться держать от языкового справочника на как можно более далеком расстоянии. Что не есть гуд с точки зрения привития навыков РТФМить.
Хотя, если взять на вооружение толковую книжку для начинающих, "кривую обучения" может быть и удастся как-то выровнять...
>> И еще один аспект проблемы. Диагностики компилятора. ПК>Да, здесь согласен, диагностика должна быть хорошей.
Вполне согласен что диагностика в como и g++ более или менее читабельна.
Но проблема состоит еще и в том, что данные компиляторы не поставляются с развитой средой программирования, которая тоже ой как нужна. И способов подключения их к развитой среде програмирования, насколько мне известно, нету.
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Про шаблоны, пространства имен, объекты, разницу между локальным размещением объектов и размещением на куче можно при этом не объяснять:
Не забудьте, что придётся объяснить, почему не работает такой код:
std::string a = "hw";
std::string b;
b = "ggg" + a;
Здравствуйте, SWW, Вы писали:
SWW>Лично я начинал с ассемблера 8080. Это, конечно, не пример для подражания — просто тогда я был аппаратчиком. А первый язык высокого, не побоюсь этого слова, уровня был С по Кернигану-Ритчи. И до сих пор я считаю, что это лучший учебник по программированию.
Язык С (не С++) со времён К&Р немного изменился. Там синтаксис маленько архаичный, AFAIR.