Форум: "Прочее";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизПарадокс Блаба и обучению программированию Найти похожие ветки
← →
Alkid © (2008-04-09 11:55) [0]Есть такой чувак - Пол Грэхам, пророк и мессия LISPа в нашем грешном мире. Он в своё время сформулировал интересную вещь - парадокс Блаба.
(он есть тут, где-то посередине текста:
http://www.paulgraham.com/avg.html ищите по слову "Blub").
ИМХО, рациональное зерно в этом есть.
Так вот, собственно, вопрос - не стоит ли начинать преподавание в профильных ВУЗах с более мощных и высокоуровневых языков, пусть даже и не мэйнстримовых? Того же Лиспа, например (или Схемы), что бы "размять мозги" студенту и не дать ему закоснеть в рамках более ограниченного мэнстрима. А потом уже переходить к распространённым промышленным языкам (C/C++/Java/.NET/Deplhi), что бы подготовить его к реальным задачам. Ваши мнения, коллеги?
← →
Kolan © (2008-04-09 12:01) [1]> Блаба
Только с 20 раза прочитал не «бабла».
> Ваши мнения, коллеги?
Мое имхо — надо учить думать, проектировать, а языки — это инстументы…
← →
Alkid © (2008-04-09 12:11) [2]
> Только с 20 раза прочитал не «бабла».
Кому что :)
> Мое имхо — надо учить думать, проектировать, а языки — это
> инстументы…
Хм, не совсем. Язык, как естественный, так и программирования, навязывает нам абстракции, которыми мы мыслим, т.е. серьёзным образом определяет наш способ думать. И думать в контексте программирования людей учат именно при помощи языков программирования.
← →
clickmaker © (2008-04-09 12:23) [3]
> стоит ли начинать преподавание в профильных ВУЗах с более
> мощных и высокоуровневых языков
у нас в ВУЗе давали и лисп и плюсы и трубопаскакаль... только вот программистами, да хоть и просто инженерами, стали по 2-3 человека из группы.
Остальные - кто куда. Кто продает, кто покупает, кто руководит...
Я к чему. Половина идет в ВУЗ просто за дипломом "щоб було". Их "разминать" бесполезно. Другая половина делится на тех, кого удалось "размять", т.е. они сами заинтересовались и тех, кто в конце концов присоединяется к первой половине.
Отсюда вывод: если нет реальных/практических/интересных (нужное подчеркнуть) задач, то размять мозги не сможет даже самый мускулистый массажист. А реальные/практические/интересные задачи - это тот самый мэинстрим
← →
Simpson (2008-04-09 12:29) [4]Alkid © (09.04.08 11:55)
Есть мнение что профессор Вирт писал Паскаль как раз под эти цели, помимо того есть еще и Оберон, и Модула того же автора. Дубовый кофе(Java) много чего утянул у Вирта, так что и простота, и строгость, и логика.
Специально для учебных заведений болтается в сети BlackBox(Windows+IDE+ Pascal), только учат все равно Си
← →
Mystic © (2008-04-09 12:39) [5]> Так вот, собственно, вопрос - не стоит ли начинать преподавание
> в профильных ВУЗах с более мощных и высокоуровневых языков,
> пусть даже и не мэйнстримовых? Того же Лиспа, например
> (или Схемы), что бы "размять мозги" студенту и не дать ему
> закоснеть в рамках более ограниченного мэнстрима. А потом
> уже переходить к распространённым промышленным языкам (C/C++/Java/.
> NET/Deplhi), что бы подготовить его к реальным задачам.
> Ваши мнения, коллеги?
Я бы не сказал про ВУЗы, меня просто интересует методика преподавания программирования.
Итак, вопрос: ты пробовал писать на функциональных языках программирования? На самом деле переходить на них и привыкать к ним очень даже непросто: другой стиль мышления. Нет локальных переменных. Функция зачастую передается в качестве аргумента другой функции. По сути это реализация некоторой математической абстракции.
С другой стороны при таком подходе возможен обратный эффект, о котором упоминал Джоэл Спольский: после этого становится трудно постигнуть указатели, императивный стиль. Да и те, кто программировал на ФЯ, зачастую после этого стремятся перенести функциональные черты в C#/C++/Delphi/Java. Хорошо это или плохо я не знаю, но языки под это мало пригодны (lambda есть только в C#)
Лично мой путь в программировании такой: МК-52, BASIC по книге, C, Pascal а уже потом ради интереса всякие другие языки программирования. Я знаю, что это рабочая схема.
← →
clickmaker © (2008-04-09 12:40) [6]
> мой путь в программировании такой: МК-52
а счеты? ))
← →
Kolan © (2008-04-09 12:46) [7]> счеты
Между прочим у нас в России я частенько вижу как на них считают в маленьких магазинах…
Привычка с 4 века до нашей эры видимо осталась…
← →
DiamondShark © (2008-04-09 12:47) [8]
> а счеты? ))
А у них не фоннеймановская архитектура.
← →
Alkid © (2008-04-09 12:51) [9]
> у нас в ВУЗе давали и лисп и плюсы и трубопаскакаль... только
> вот программистами, да хоть и просто инженерами, стали по
> 2-3 человека из группы.
> Остальные - кто куда. Кто продает, кто покупает, кто руководит.
> ..
Я не спорю, с ЭТИМ (т.е. с мотивацией) ситуация реально плачевная, но это тема для отдельной дискуссии. Я сейчас о другом - о том, как правильно научить тех, у кого с мотивацией в порядке и кто готот реально вложиться в обучение. Как правильно "потратить" этот ресурс, выжать из него максимум пользы - вот вопрос.
← →
DiamondShark © (2008-04-09 13:04) [10]
> Я не спорю, с ЭТИМ (т.е. с мотивацией) ситуация реально
> плачевная, но это тема для отдельной дискуссии. Я сейчас
> о другом - о том, как правильно научить тех, у кого с мотивацией
> в порядке и кто готот реально вложиться в обучение. Как
> правильно "потратить" этот ресурс, выжать из него максимум
> пользы - вот вопрос.
А тогда надо посмотреть на мотивацию ВУЗов.
Кодить на жабе, паскале и плюсах можно и обезьяну обучить. А у учебных заведений, даже типа некоммерческих, баблос за поголовье капает, а не за качество, всё равно рынок эту стаю обезьян слопает и не подавится. А то что продукт -- говно, так это фигня, для этого на соседнем факультете маркетоиды учатся.
← →
Alkid © (2008-04-09 13:06) [11]
> Итак, вопрос: ты пробовал писать на функциональных языках
> программирования? На самом деле переходить на них и привыкать
> к ним очень даже непросто: другой стиль мышления. Нет локальных
> переменных. Функция зачастую передается в качестве аргумента
> другой функции. По сути это реализация некоторой математической
> абстракции.
Немного пробовал. Мой путь тоже "традиционен" и "рабоч" - Turbo Pascal, Turbo Basic, калькулятор Б3-34, потом C, C++, C#.
Засада тут вот в чём - долгое время я учился (восновном сам) программировать н этих языках и они сформировали моё понимание программирования. Я не знал, что это лишь частный случай и есть альтернативные подходы.
Первая ломка сознания у меня случилась лет в 17, когда я начал изучать ООП. К тому времения я уже лет 7 самопалом прогарммировал в процедурном стиле и по-началу не мог вообще понять, что это за ООП, нафига оно надо, когда у меня и так всё замечательно. А там каких-то сложностей понавыдумывали.
Но потом я всё же изучил ООП и с тех пор (мне щас 26) "прокачивал" именно эту парадигму.
К сожалению, наш ВУЗ давал весьма хреновый уровень знаний по программированию и ни о каких альтернативах нам даже не рассказывали.
Из-за этого про альтернативы я узнал поздно, уже достаточно приросши мозгом к ООП. С другой стороны, хотелось развиватьс и я самостоятельно начал изучать ФП и ЛП, что привело к второй ломке сознания, когда уже сложившееся представление о том, как надо программировать, было отброшено и я начал снова его выстраивать. И пусть я даже не программирую на работе на Лиспе и Прологе (у нас С++), но те идеи, которые я почерпнул из них помогают мне.
Например, сейчас я пишу весьма хитрый кусок программы, где мне крайне пригодились некоторые новые для меня концепции. Я сначала написал "по-старинке", а потом увидел новые возможности и переписал - получилось короче, проще, элегантнее и, что немаловажно, оптимальнее по памяти и скорости работы.
Так вот, можно ли как-нибудь изначально дать студентам больше кругозора, что бы они не замыкались в одной парадигме? Имхо это было бы полезно, лучше чем если бы все как я доходили до этого личным опытом.
← →
Alkid © (2008-04-09 13:09) [12]
> А тогда надо посмотреть на мотивацию ВУЗов.
> Кодить на жабе, паскале и плюсах можно и обезьяну обучить.
> А у учебных заведений, даже типа некоммерческих, баблос
> за поголовье капает, а не за качество, всё равно рынок эту
> стаю обезьян слопает и не подавится. А то что продукт --
> говно, так это фигня, для этого на соседнем факультете
> маркетоиды учатся.
Увы, есть такое дело. Как пример - ВУЗ, в котором я учился. К счастью я самопалом учил всё сам и сильно за пределами программы. Уровень преподавания у нас был УЖАСЕН, при том, что победных фанфар на тему "какие мы крутые" было много :(
← →
Mystic © (2008-04-09 13:21) [13]> И пусть я даже не программирую на работе на Лиспе и Прологе
> (у нас С++)
Программирование на шаблонах и есть функциональный стиль :)
template <int n>
struct Factorial<0>
{
const value = 1;
};
template <int n>
struct Factorial
{
const value = n * Factorial<n-1>::value;
};
int array[Factorial<5>::value];
> Так вот, можно ли как-нибудь изначально дать студентам больше
> кругозора, что бы они не замыкались в одной парадигме?
Это безусловно полезно, вопрос с чего начинать?С фон Неймановской архитектуры, а потом писать на ней интерпретатор LISP или с LISP-а, а потом писать на нем интерпретатор фон Неймановской машины?
← →
Alkid © (2008-04-09 15:47) [14]
> Программирование на шаблонах и есть функциональный стиль
> :)
Это compile-time прибамбасы :) Кстати, шаблоны в Ц++ это тоже пример. Я сначала изучил С++ без шаблонов и, даже прочитав про них, не стал их использовать - мне и так было хорошо, я знал, как всё и без них сделать. Потом, когда уже научился ими пользоваться и "распробовав" их я начал извлекать из реальную выгоду.
> Это безусловно полезно, вопрос с чего начинать?С фон Неймановской
> архитектуры, а потом писать на ней интерпретатор LISP или
> с LISP-а, а потом писать на нем интерпретатор фон Неймановской
> машины?
С чего начинать - не знаю. Наверное РЕШАЮЩЕЙ роли это не играет. Тут дело в другом - надо достаточно быстро дать разные альтернативы, что бы человек не коснел в рамках одной парадигмы, а знал, что есть разные подходы.
← →
TRSteep © (2008-04-09 16:11) [15]LISP по крайней мере в нашем университете проходили
Думать как работает язык после паскаля получаеться очень даже не сразу...
← →
neanderthal (2008-04-09 18:45) [16]>
> Есть мнение что профессор Вирт писал Паскаль как раз под
> эти цели
"размять мозги"? паскалем-то?! LOL
← →
Alkid © (2008-04-09 19:10) [17]
> "размять мозги"? паскалем-то?! LOL
Паскалем - нет, не удастся.
Только если наряду с паскалем дать ещё какой-нибудь незамутнённый функциональный язык + Пролог.
← →
Mystic © (2008-04-09 20:37) [18]> "размять мозги"? паскалем-то?! LOL
Если программировать только на ФЯ, то любой императивный язык, в том числе и паскаль, будет разминать мозги: столько всего нового :)
← →
jack128_ (2008-04-10 00:07) [19]
> Тут дело в другом - надо достаточно быстро дать разные альтернативы,
> что бы человек не коснел в рамках одной парадигмы, а знал,
> что есть разные подходы.
один подход станет родным, а остальные он будет знать. Сколь угодно хорошо, но просто знать. И дай бог, что б родным стал подход, используемый мейнстримом..
← →
Игорь Шевченко © (2008-04-10 00:16) [20]А меня на фортране учили. Ничего страшного.
> не стоит ли начинать преподавание в профильных ВУЗах с более
> мощных и высокоуровневых языков, пусть даже и не мэйнстримовых?
> Того же Лиспа, например (или Схемы), что бы "размять мозги"
> студенту
Матаном надо мозги разминать. Или сопроматом.
← →
neanderthal (2008-04-10 01:31) [21]
> Mystic © (09.04.08 20:37) [18]
> > "размять мозги"? паскалем-то?! LOL
> Если программировать только на ФЯ, то любой императивный
> язык, в том числе и паскаль, будет разминать мозги: столько
> всего нового :)
Автор процитированого мною поста [4] явно не ФЯ имел ввиду. Просто у многих при виде слов "обучение программированию" в голове загорается лампочка "пиарим Оберон" и взводится флажок "Си - бууууу!!!". Что мне и бросилось в глаза в свете темы ветки.
← →
Германн © (2008-04-10 01:32) [22]
> Игорь Шевченко © (10.04.08 00:16) [20]
Матаном - да. Но не сопроматом.
Эвтаназия не должна быть мучительной! :)
← →
clickmaker © (2008-04-10 09:47) [23]
> Матаном надо мозги разминать. Или сопроматом
или "проектированием механизмов и приборов". Отличная разминка. Ползаешь по листу ватмана, рисуешь вектора моментов и смотришь, чтоб все сошлось. Почти как дебет с крЕдитом
← →
oldman © (2008-04-10 10:14) [24]
> Alkid © (09.04.08 12:11) [2]
> Язык, как естественный, так и программирования,
> навязывает нам абстракции, которыми мы мыслим, т.е. серьёзным
> образом определяет наш способ думать.
Имхо, язык - способ выражения мыслей, а не их навязывания...
Можно думать и на русском и на нерусском (при хорошей тренировке, разумеется).
Мысли при этом одинаковые.
← →
Alkid © (2008-04-10 10:45) [25]
> один подход станет родным, а остальные он будет знать. Сколь
> угодно хорошо, но просто знать. И дай бог, что б родным
> стал подход, используемый мейнстримом..
Согласен. Но знать про остальыне полезно. Как я уже на своём опыте убедился - успешно применять эти знания можно и программируя на мэнстриме.
> Матаном надо мозги разминать. Или сопроматом.
Не согласен. Да как прокачка именно абстрактной думалки это сгодится, но это слишком далеко от программирования, что бы дать непосредственный эффект.
> Имхо, язык - способ выражения мыслей, а не их навязывания.
> ..
> Можно думать и на русском и на нерусском (при хорошей тренировке,
> разумеется).
> Мысли при этом одинаковые.
Язык не навязывает мысли, он навязывает способ мышления. Применительно к программированию - любой тьюринг-полный язык может быть успешно применён для решения любой алгоритмической задачи, но разные задачи решаются на разных языка с разной степенью элегантности, причём именно за счёт разных абстракций, поддерживаемых языком.
Например, возвращаясь к моей работе: сейчас я пишу оптимизатор команд. Достаточно интересная и нетривиальная программа. Первый прототип я набросал в традиционном стиле, ООП, STL, контейнеры. В принципе получилось неплохо (по меркам ООП).
В последнее время я активно изучал новые для меня языки Lisp, Scheme, Prolog и их варианты. После анализа получившегося прототипа я увидел, что некоторые абстракции, которые я почерпнул из них могут очень пригодиться. В Частности продолжения (Scheme) и бэктрэкинг (Prolog). Плюс к этому я реорганизовал код, выразив его в виде набора чистых функций, оперирующих неизменяемыми структурами данных (т.е. порождающих их).
Вуаля! Код сократился в полтора раза, количество классов сократилось в два раза. И это при том, что продолжения и бэктрэкинг мне пришлось моделировать самому, в некотором специальном виде.
Так вот к чему я - если бы я не изучал эти "ненужные" немэйнстримовые языки, я был бы ограничен способах выражения своих мыслей.
← →
Игорь Шевченко © (2008-04-10 10:58) [26]Alkid © (10.04.08 10:45) [25]
> Не согласен. Да как прокачка именно абстрактной думалки
> это сгодится, но это слишком далеко от программирования,
> что бы дать непосредственный эффект.
Видишь ли, прокачка именно абстрактной думалки и дает способность к поиску изящных решений, вне зависимости от используемого языка программирования. Если нужно воспитать китайца, работающего методом copy|paste (а использование этого метода широко варьируется), тогда ему и думалка ни к чему - заставил вызубрить грамматику языка и вперед.
← →
jack128_ (2008-04-10 11:06) [27]
> Имхо, язык - способ выражения мыслей, а не их навязывания.
> ..
Новояз и ему подобные - не просто так придумываются ;-)
> В Частности продолжения (Scheme) и бэктрэкинг (Prolog).
хе, а мона чуть подробнее?? что то судя по описанию - в ОО языках это реализуется добовлением в класс методов SaveToSream/LoadFromStream -)
← →
DiamondShark © (2008-04-10 11:24) [28]
> > В Частности продолжения (Scheme) и бэктрэкинг (Prolog).
>
>
> хе, а мона чуть подробнее?? что то судя по описанию - в
> ОО языках это реализуется добовлением в класс методов SaveToSream/LoadFromStream
> -)
~~
о-0
\_/
День удался ;)
← →
jack128_ (2008-04-10 11:59) [29]
> День удался ;)
Я что то не то сморозил???
Ну вот цитата:
есть так называемый откат ("бэктрэкинг"). Откат, это когда программа возвращается к пройденному ранее состоянию, если доказательство очередной подцели закончилось неудачей. Во время отката программы отменяются все присваивания переменным, сделанные в ходе её исполнения, и переменные становятся снова неопределёнными. Обычно программа откатывается до первой пройденной развилки в алгоритме, чтобы попытаться пройти по другому пути. (с) http://www.cplire.ru/Lab144/start/r_intro.html
И ?? в delphi я бы так это сделал:
begin
SaveToStream(TmpStream);
if not TryProve then
LoadFromStream(TmpStream);
...
end;
PS - что такое логические языки предстовляю смутно :-)
← →
Alkid © (2008-04-10 12:09) [30]
> Видишь ли, прокачка именно абстрактной думалки и дает способность
> к поиску изящных решений, вне зависимости от используемого
> языка программирования. Если нужно воспитать китайца, работающего
> методом copy|paste (а использование этого метода широко
> варьируется), тогда ему и думалка ни к чему - заставил вызубрить
> грамматику языка и вперед.
Да, даёт. Но это слишком оторвано от нашей специфики. Да, математику изучать надо. Сопромат - не уверен. Но это ни в коем случае не заменит изучения нашей специфики, может только помочь - вот что я хочел сказать.
> хе, а мона чуть подробнее?? что то судя по описанию - в
> ОО языках это реализуется добовлением в класс методов SaveToSream/LoadFromStream
> -)
Эхм...
Нет, абсолютно неверно.
Вот первое что нашёл - английская википедия.
Продолжения:
http://en.wikipedia.org/wiki/Continuation
Бэктрэкинг:
http://en.wikipedia.org/wiki/Backtracking
← →
Alkid © (2008-04-10 12:14) [31]
> PS - что такое логические языки предстовляю смутно :-)
Советую этот пробел ликвидировать :)
Как реализовать НОРМАЛЬНЫЙ бэктрэкинг на Delphi/C++ в нормальном виде я не знаю. Даже если можно, это, наверное, будет непросто и неизящно. Я реализовывал его для ОЧЕНЬ СПЕЦИАЛЬНОГО случая, применяя продолжения (тоже сработанные на коленке), рекурсивные функции и immutable data structures (IDS).
В *принципе* вместо IDS можно использовать сериализацию/восстановление, но это, ИМХО, некрасиво и неоптимально.
← →
Игорь Шевченко © (2008-04-10 13:30) [32]Alkid © (10.04.08 12:09) [30]
> Да, даёт. Но это слишком оторвано от нашей специфики. Да,
> математику изучать надо. Сопромат - не уверен. Но это ни
> в коем случае не заменит изучения нашей специфики, может
> только помочь - вот что я хочел сказать.
Ты себе можешь представить, что существует масса неплохих программистов, которых либо вовсе не обучали программированию, либо обучали "не тому" программированию - другие языки, другие парадигмы и т.д.
?
Вот откуда они взялись, с прокачанными мозгами ?
Программирование - оно по-любому набор технических приемов, их можно тупо вдолбить, без всякого прокачивания мозгов, и получится программист, вполне, кстати, пользуясь вдолбленными приемами, будет писать среднего или ниже качества код.
Архангельского начитается и вперед :)
← →
Alkid © (2008-04-10 14:10) [33]
> Ты себе можешь представить, что существует масса неплохих
> программистов, которых либо вовсе не обучали программированию,
> либо обучали "не тому" программированию - другие языки,
> другие парадигмы и т.д.?
Самообразование ещё никто не отменял. Хотя, если честно, среди программистов с непрофильным образованием я видел больше плохих программистов, чем хороших.
> Программирование - оно по-любому набор технических приемов,
> их можно тупо вдолбить, без всякого прокачивания мозгов,
> и получится программист, вполне, кстати, пользуясь вдолбленными
> приемами, будет писать среднего или ниже качества код.
Это смотря ещё что считать программированием, а что - нет. Например, есть задача - написать оптимизатор очереди команд. К этому оптимизатору может быть несколько подходов: шаблонный оптимизатор, оптимизатор генерирующий минимальную достаточную последовательность команд, оптимизатор на базе генетических алгоритмов и т.п. Выбрать подход, конкретизировать его в рамках задачи, оценить побочные свойства подхода (его расширяемость, аддитивность, протухаемость, и т.п.), расписать модель классов (процедур/функций/модулей/предикатов и т.п.) их свойства, взаимодейтствия и потом всё это закодировать. Где здесь граница между приминением "набора технических приёмов", котрые можно "тупо вдолбить" и реальной работой инженера? Для меня всё это - программирование, начиная от формализации задачи, кончая заливкой файлов в систему контроля версий.
P.S.
Кстати, замечу между делом, что я в корне не согласен с позицией, что программирование - это нечто такое несерьёзное, чему легко научиться побочно основной (другой) специальности, и вообще сводится к "набору технических приёмов". Как правило так считают взрослые программисты, получившие техническое образование раньше и перепрофилировавшиеся потом в программистов, но по-прежнему считающие свою первую специальность чем-то, несоизмеримо более высоким и важным. Другой стороной этой медали являются стада молодёжи, считающие, что после прочтения книги "С++ для чайников" они уже круты и должны получать не меньше пары тысяч зелени.
Я повидал уже немало таких "программистов" и достаточно поковырялся в их коде, что бы сделать такие выводы. Программирование - это самостоятельная дисциплина, которую надо упорно изучать, что бы добиться в ней успехов. Это упорное изучение не может быть заменено в полной мере упорным изучением других дисциплин, или общим уровнем наглости (это про молодёжь). Я не говорю "математику на свалку", нет. Математика, как и многие другие дисциплины (в т.ч. и гуманитарные) программисту изучать ПОЛЕЗНО, они будут способствовать его развитию. Но они никак не могут заменить изучение своей специальности.
P.P.S. Хорошая статься, немного не по этой теме, но релевантная :)
http://www.williamspublishing.com/21-days.html
← →
Игорь Шевченко © (2008-04-10 14:26) [34]Alkid © (10.04.08 14:10) [33]
> Хотя, если честно, среди программистов с непрофильным образованием
> я видел больше плохих программистов, чем хороших.
А эта...тут такой момент - программированию раньше не обучали. А программисты потом получались. Заметь, получались и хорошие. Значит, не в профиле образования дело. Или под профильным образованием понимаем разное ?
> Кстати, замечу между делом, что я в корне не согласен с
> позицией, что программирование - это нечто такое несерьёзное,
> чему легко научиться побочно основной (другой) специальности,
> и вообще сводится к "набору технических приёмов".
Ты можешь быть не согласен, но от этого мало что изменится :) Ты полагаешь, надо в течение нескольких лет изучать циклы, ветвления и организацию подпрограмм, чтобы обучение было серьезным ? :)
> P.P.S. Хорошая статься, немного не по этой теме, но релевантная
> :)
> http://www.williamspublishing.com/21-days.html
Хорошая статья.
← →
oldman © (2008-04-10 14:58) [35]
> Игорь Шевченко ©
Но некоторые задачи более успешно решаются "в лоб" школьниками с задатками алгоритмизирования на QBasic for DOS, чем заумными дядьками с дипломами по SQL... И код у школьников более читабелен...
Особливо те задачи, где эффектность не влияет на эффективность.
Вы согласны?
← →
DiamondShark © (2008-04-10 15:00) [36]
> Но некоторые задачи более успешно решаются "в лоб" школьниками
> с задатками алгоритмизирования на QBasic for DOS, чем заумными
> дядьками с дипломами по SQL... И код у школьников более
> читабелен...
Можно пример такой задачи увидеть?
← →
oldman © (2008-04-10 15:04) [37]
> DiamondShark © (10.04.08 15:00) [36]
> Можно пример такой задачи увидеть?
Нет.
← →
Alkid © (2008-04-10 15:28) [38]
> А эта...тут такой момент - программированию раньше не обучали.
> А программисты потом получались. Заметь, получались и хорошие.
> Значит, не в профиле образования дело. Или под профильным
> образованием понимаем разное ?
Программированию обучали, пусть и не так, как сейчас. Мой отец, по образованию инженер, учился программировать в институте и потом применял свои знания на практике, но по образованию он - конструктор газодинамических систем, занимался в своё время проектированием систем охлаждения для лазеров.
Кроме того, понятие "хорошего программиста" со временем меняется. Как я могу судить, сейчас "хороших программистов" нигде не готовят. У нас не готовят. Я, интереса ради, изучал курс SICP из Массачусетского Технологического Института - это уже гораздо больше похоже на то, что надо.
Замечу, кстати, что я не отрицаю саму возможность для человека стать хорошим программистом без профильного образования. Безусловно, такие примеры есть. Но, лучше готовить людей по профильным программам обучения, а не готовить, скажем, людей по программе "нефтяные трубопроводы", в надежде, что из них получатся хорошие сантехники или проектировщики систем циркуляции летательных аппаратов.
> Ты можешь быть не согласен, но от этого мало что изменится
> :) Ты полагаешь, надо в течение нескольких лет изучать циклы,
> ветвления и организацию подпрограмм, чтобы обучение было
> серьезным ? :)
Циклы, ветвления и организация подпрограмм - это ДАЛЕКО не всё, что надо знать программисту. :) Но и это ещё не всё. Легко выучить синтаксис языка и понять основы, но научиться хорошо программировать - сложно. Приведу аналогию - правила шахмат обычный человек может усвоить за 10 минут, но это не значит, что он научился ИГРАТЬ в шахматы (т.е. эффективно применять разрешённые ходы фигур). Играть он может учиться потом всю жизнь, открывая для себя что-то новое.
← →
Alkid © (2008-04-10 15:29) [39]
> Но некоторые задачи более успешно решаются "в лоб" школьниками
> с задатками алгоритмизирования на QBasic for DOS, чем заумными
> дядьками с дипломами по SQL... И код у школьников более
> читабелен...
>
> Особливо те задачи, где эффектность не влияет на эффективность.
>
> Вы согласны?
"Навёрнутость" программы не равна её оптимальности.
← →
DiamondShark © (2008-04-10 15:33) [40]
> oldman © (10.04.08 15:04) [37]
>
> > DiamondShark © (10.04.08 15:00) [36]
> > Можно пример такой задачи увидеть?
>
> Нет.
Тогда цак надень и в пепелаце сиди.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 0.011 c