Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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 раза прочитал не «бабла».


> Ваши мнения, коллеги?

Мое имхо — надо учить думать, проектировать, а языки — это инстументы&#133


 
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]

> счеты

Между прочим у нас в России я частенько вижу как на них считают в маленьких магазинах&#133

Привычка с 4 века до нашей эры видимо осталась&#133


 
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.009 c
4-1189595802
aidyn
2007-09-12 15:16
2008.05.25
Как можно изменить региональные настройки


6-1187289971
WebSqlNeederr
2007-08-16 22:46
2008.05.25
Преобразовать айпи в длинный тип


2-1209022618
Анна
2008-04-24 11:36
2008.05.25
Excel и объединение ячеек по условию


2-1209043999
programmer9090
2008-04-24 17:33
2008.05.25
Иконку на ToolButton


2-1209913873
223001
2008-05-04 19:11
2008.05.25
вопрос на засыпку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский