Re[4]: Многие думают, что математика и теория вообще не нужн
От: Lloyd Россия  
Дата: 29.06.09 20:26
Оценка:
Здравствуйте, hal9000, Вы писали:

H>Когда чел креативен и у него есть фундаметальные знания и практический опыт, то он сможет продвинутся по иерархии ИТ в качестве специалиста и будет очень ценен.


Тот, кто может делать — делает. Тот, кто не может делать — учит. Тот, кто не может учить — руководит.
(c) Народная мудрость.


Т.о. знания и опыт могут только помешать в продвижении по иерархии.
Re: Многие думают, что математика и теория вообще не нужна!
От: yumi  
Дата: 30.06.09 00:42
Оценка: :)
Здравствуйте, hal9000, Вы писали:

H>Заметил, что большинство ИТ-специалистов и программистов с которыми я общался считают, что математика (в частности дискретная математика, которая играет большую роль в теории алгоритмов), теория алгоритмов (в частности асимптотический анализ, конечные автоматы, классы сложности) вообще не нужны современному программисту.


Повод задуматься о том, что ты не в том кругу/окружении и что может быть, стоит его поменять. Все выше перечисленное, это из части обязательного минимума необходимых знаний.

H>Нужно ли понимание общих теоретических концепций для тру программирования?


Естесственно, я бы еще добавил, что не только понимание, но и умение применять это на практике.
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re[2]: Многие думают, что математика и теория вообще не нужн
От: yumi  
Дата: 30.06.09 00:48
Оценка:
Здравствуйте, Sharowarsheg, Вы писали:

S>Для Тру Программирования нужно сначала понимание предметной области. А потом уже можно думать, нужен ли в этой области асимптотический анализ, и если да, то в каком объеме.


Неправда. Понимание предметной области на втором плане должно быть. Ибо предметных областей у программиста может быть до кучи. А его основная предметная область в виде разделов дискретки и нужна как раз для успешного их применения в остальных предметных областях.
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re[8]: Многие думают, что математика и теория вообще не нужн
От: _d_m_  
Дата: 30.06.09 02:20
Оценка:
Здравствуйте, hal9000, Вы писали:


H>На счёт формулы 1 ошибся, так как "Позднее стала широко применяться в обычных серийных машинах, а в 2008 году была запрещена в Формуле-1.", но суть не меняется. Например, в одном из многочисленных выпусков Top Gear ведущий сначала обсирал машину, как он обычно любит это делать, а потом отключил подобную систему (я не специалист, но насколько знаю, там несколько видов автоматического управления) и показал настоящие возможности машины. Вообщем поищи Top Gear в youtube.


Поэтому и аналогия получилась некудышной.
Re[4]: Многие думают, что математика и теория вообще не нужн
От: FR  
Дата: 30.06.09 04:30
Оценка: +3
Здравствуйте, hal9000, Вы писали:


H>А почему бы и нет! Можно и теорию суперструн изучать, кому что по вкусу. Уверен, что человек осиливший теорию суперструн со всеми выкладками, может стать очень продвинутым программером


Самый корявый говнокод который я видел написан кандидатом физико-математических наук, умнейшим и толковым специалистом в своей области.

Еще раз повторяю способности к математике и программированию совершенно разные способности.
Re[5]: Многие думают, что математика и теория вообще не нужн
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.06.09 06:38
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, hal9000, Вы писали:



H>>А почему бы и нет! Можно и теорию суперструн изучать, кому что по вкусу. Уверен, что человек осиливший теорию суперструн со всеми выкладками, может стать очень продвинутым программером


FR>Самый корявый говнокод который я видел написан кандидатом физико-математических наук, умнейшим и толковым специалистом в своей области.


FR>Еще раз повторяю способности к математике и программированию совершенно разные способности.


Есть разные области математики. Одна область — непрерывная метаематика очень далека от компьютеров и специалист в этой области вряд ли сможет написать хорошую программу.
Другая область — дискретная математика, теория вычислимости, формальные грамматики, теория категорий. Знания этих областей очень пригодились бы любому программисту.
Re[3]: Многие думают, что математика и теория вообще не нужн
От: Sharowarsheg  
Дата: 30.06.09 06:48
Оценка:
Здравствуйте, yumi, Вы писали:

S>>Для Тру Программирования нужно сначала понимание предметной области. А потом уже можно думать, нужен ли в этой области асимптотический анализ, и если да, то в каком объеме.


Y>Неправда. Понимание предметной области на втором плане должно быть. Ибо предметных областей у программиста может быть до кучи. А его основная предметная область в виде разделов дискретки и нужна как раз для успешного их применения в остальных предметных областях.


Это всё хорошо, если предметная область требует хоть сколько-то дискретки.
Re[6]: Многие думают, что математика и теория вообще не нужн
От: FR  
Дата: 30.06.09 06:56
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Есть разные области математики. Одна область — непрерывная метаематика очень далека от компьютеров и специалист в этой области вряд ли сможет написать хорошую программу.

G>Другая область — дискретная математика, теория вычислимости, формальные грамматики, теория категорий. Знания этих областей очень пригодились бы любому программисту.

Конечно они полезны, но не необходимы, и точно не сильно помогут в том о чем писал автор темы:

Для меня это звучит дико, поскольку считаю, что без глубокого понимания теории невозможно писать качественное ПО, с поддержкой масштабирования, с адекватной производительностью и т.д.


Да чтобы не было не поняток я сам на старости лет ковыряю как раз то что ты выше описал.
Re[3]: Многие думают, что математика и теория вообще не нужн
От: Lloyd Россия  
Дата: 30.06.09 07:06
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Смею тебя заверить, Билл Гейтс не был этаким гением программирования.


Те, кто с ним работал, были другого мнения.
Re[4]: Многие думают, что математика и теория вообще не нужн
От: _d_m_  
Дата: 30.06.09 07:13
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, _d_m_, Вы писали:


___>>Смею тебя заверить, Билл Гейтс не был этаким гением программирования.


L>Те, кто с ним работал, были другого мнения.


Он скорее стратег — как Маршал Жуков, но смог бы Жуков взять живым диверсанта ака волкодав Таманцев? Разницу чуствуешь?
Re[9]: Многие думают, что математика и теория вообще не нужн
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.06.09 09:17
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>Вот студенческий код (1 курс второй семестр последняя лабораторная) — код этот взялся не потому, что студент книгку не может осилить, а потому что еще навыки не прокачаны.

А вот лично мне кажется, что такой код — суть неизбежное следствие дурацкого подхода к преподаванию программирования. Когда сначала студенту дают Управляющие Конструкции, потом Готовые Структуры, потом Забудьте Всё Это Потому Что Теперь Объекты.
SICP как раз даёт понимание в структурной форме, чтобы человек видел устройство программы, а не отдельные операторы.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Многие думают, что математика и теория вообще не нужн
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.06.09 09:51
Оценка: 7 (4) +4
Здравствуйте, komaz, Вы писали:

K>Есть, наверное, какой-то перечень фундаментальных знаний, которыми желательно владеть каждому программисту, но туда точно не входят конечные автоматы и умение писать компиляторы)


Это очень глубокий и фундаментальный вопрос, который, на мой взгляд, совершенно внезапно получил актуальность в последние годы. Грубо говоря, надо ли учить даты правления всех этих французских Луёв, если любой идиот со смартфоном ответит на такой вопрос за 30 секунд? Зачем учить где Кордильеры а где Анды, если есть гуглмапс, который еще и встроен в яблофон по дефолту? Получается, все находятся в одинаковых условиях — и заучки, и разгильдяи.

С другой стороны, знания зачастую оказываются несводимыми к словарю "название -> описание".
Во-первых, для того, чтобы хоть что-то прочитать, нужно уметь читать. Скажем, лично нас в университете два первых года собсно и учили читать — потому, что стандартный десятиклассник, к примеру, хоть и знает ограниченно греческий алфавит, но прочесть с листа формулы с участием спиноров просто не сможет.
Во-вторых, даже умея читать (то есть понимая отдельные лексемы), нужно еще и разбираться в применяемых идентификаторах. Ок, все непонятные слова можно рекурсивно смотреть в интернете — но скорость чтения будет весьма низкой.

В-третьих, всё-таки знания — это не плоский текст или картинка, это, прежде всего, некая модель в голове. Ну вот написал я вам уравнение Шредингера. Ну, прочитали вы его. Что, внезапно у вас появилось в голове понимание квантовой механики? Построить корректную модель — вот это и есть получение знаний.
Хрен с ними с квантами, давайте вот о программированиии. Я, допустим, упоминаю в разговоре: "здесь может пригодиться R-дерево". Ок, любой невежда может быстренько сгуглить на тему R-деревьев. Но поможет ли ему это понять, действительно ли оно здесь пригодится, т.е. ответить на вопрос, на который нет готового ответа в сети. Для того, чтобы ответить на этот вопрос, нужно реально понять, как устроено R-дерево, как оно натягивается на существующую проблематику, и т.п.
В итоге, новичка этот вопрос запросто отвлечёт на пару месяцев усиленного изучения. Программеру, который имеет опыт применения R-деревьев, для ответа потребуется секунда. Между этими полюсами лежат разные уровни подготовки профессионала — наличие либо отсутствие в голове готовых "строительных блоков", из которых будет строиться модель.

Ок, теперь вернёмся к компиляторам. Вопрос, в итоге, сводится вот к чему: не окажется ли случайно курс разработки компиляторов полезным для формирования "сторонних умений", которые могут быть применимы к широкому классу задач, не связанных напрямую с компиляцией?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Многие думают, что математика и теория вообще не нужна!
От: chrisevans  
Дата: 30.06.09 09:51
Оценка:
Здравствуйте, hal9000, Вы писали:

H>Здравствуйте.


H>Заметил, что большинство ИТ-специалистов и программистов с которыми я общался считают, что математика (в частности дискретная математика, которая играет большую роль в теории алгоритмов), теория алгоритмов (в частности асимптотический анализ, конечные автоматы, классы сложности) вообще не нужны современному программисту.


H>Для меня это звучит дико, поскольку считаю, что без глубокого понимания теории невозможно писать качественное ПО, с поддержкой масштабирования, с адекватной производительностью и т.д., если только не идёт речь пожизненном написании быдло-сайтиков или криворукого билинга для какой нибудь шаражки.


H>Нужно ли понимание общих теоретических концепций для тру программирования?


Думаю, что вы правы, но считаю, что под "пониманием общих теоретических концепций" нужно подразумевать не только знание математику и теорию алгоритмов. Большая часть споров по поводу вашего вопроса на самом была спором на тему "программист должен знать только один уровень абстракции или несколько?"
Re[10]: Многие думают, что математика и теория вообще не нуж
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.09 10:12
Оценка: -2
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Ikemefula, Вы писали:


I>>Вот студенческий код (1 курс второй семестр последняя лабораторная) — код этот взялся не потому, что студент книгку не может осилить, а потому что еще навыки не прокачаны.

S>А вот лично мне кажется, что такой код — суть неизбежное следствие дурацкого подхода к преподаванию программирования. Когда сначала студенту дают Управляющие Конструкции, потом Готовые Структуры, потом Забудьте Всё Это Потому Что Теперь Объекты.

Я вобще то сказал уже давно, что преподают программуху на данной специальности _очень_ плохо, потому что все основные моменты я лично объяснял повторно.

У чела проблема не с управляющими конструкциями, а с мышлением. С конструкциями проблем нет абсолютно никаких.

Посмотри внимательно на код и посмотри что где делается. После того, как он родил этот алгоритм у него формирутся новое понимание, следующую версию алгоритма он сделает гораздо лучше.

Если ты в целях обучения сообщаешь правильный алгоритм удаления из дерева, то это тоже самое что в школе давать готовые ответы вместо самостоятельных и контрольных работ.

S>SICP как раз даёт понимание в структурной форме, чтобы человек видел устройство программы, а не отдельные операторы.


Т.е. сразу вбить студенту в голову мышление определенного уровня ? Эдак можно и в школе сразу давать математику без арифметики.

Понимание невозможно вложить в голову, это можно сформировать задачами и только задачами. Ничем больше оно не формируется.

Не бывает проблем с конструкциями, бывают преблемы с логическим мышлением.

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

Проходит все потому, что контингент в МИТ это уровня олимпиадников, у которых мышление прокачано очень сильно, а вузах попроще нужно чем то компенсировать.
Re[2]: Многие думают, что математика и теория вообще не нужн
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.06.09 10:25
Оценка: 10 (4) +3 -1
Здравствуйте, Sharowarsheg, Вы писали:

S>Для Тру Программирования нужно сначала понимание предметной области.

А еще сначалее нужно умение быстро понимать предметную область. Потому что то понимание, которое нужно, это совсем-совсем особое понимание. Сколько ни говорил с глубоким специалистом в предметной области (не-программистом, ессно) — столько раз убеждался: головой пользоваться не умеет почти никто. Ну не заморачиваются люди выстраиванием у себя в мозгу сколь-нибудь стройной модели. Две штуки, которые отличаются малозначительным атрибутом, для них "ты чо, это же совсем разные вещи, их никак путать нельзя".
Зато две другие штуки, которые связаны отношением "частное-общее" у них сливаются в одну, которая по-разному себя ведёт в зависимости от контекста.

Такому специалисту никакое понимание предметной области не поможет стать программистом. Так и будет в коде всё, как и в голове:
if (a == 0 and b != 0)
{
  x = b;
    if (a != 0) 
      x = x + a;
} 
else if (a != 0)
{
  x = a;
    if (b != 0)
      x = a + b;
}
else
{
  x = a;
    if (a == 0)
      x = b;
    else 
      x = b + a;
}


Подставьте на место a и b "идентификаторы из предметной области" вроде kolvoDneiOtpuska или urovenVodyVBake и получите реальную программу, написанную таким понимальщиком.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Многие думают, что математика и теория вообще не нужн
От: hal9000  
Дата: 30.06.09 11:27
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>

L>Тот, кто может делать — делает. Тот, кто не может делать — учит. Тот, кто не может учить — руководит.
L>(c) Народная мудрость.


L>Т.о. знания и опыт могут только помешать в продвижении по иерархии.


Эта идеология развита на пост-советском пространстве, поэтому у нас нет (или почти нет) реально продвинутой конторы по разработке ПО.
Re[11]: Многие думают, что математика и теория вообще не нуж
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.06.09 11:32
Оценка:
Здравствуйте, Ikemefula, Вы писали:
I>Я вобще то сказал уже давно, что преподают программуху на данной специальности _очень_ плохо, потому что все основные моменты я лично объяснял повторно.
Правильно.
I>У чела проблема не с управляющими конструкциями, а с мышлением. С конструкциями проблем нет абсолютно никаких.
У чела проблема с тем, что ему не прочитали SICP.
I>Если ты в целях обучения сообщаешь правильный алгоритм удаления из дерева, то это тоже самое что в школе давать готовые ответы вместо самостоятельных и контрольных работ.
SICP — не про ответы. SICP — про вопросы.
I>Т.е. сразу вбить студенту в голову мышление определенного уровня ? Эдак можно и в школе сразу давать математику без арифметики.
I>Понимание невозможно вложить в голову, это можно сформировать задачами и только задачами. Ничем больше оно не формируется.
I>Не бывает проблем с конструкциями, бывают преблемы с логическим мышлением.
I>Сикп это примерно так "бывают R-деревья, делается вот так, вот так и вот так". Нужно вложить в голову более простые вещи, тогда кучка студентов при решении какой то задачи уже сами родят нечто похожее.
Какие конкретно "более простые вещи" ты хочешь рассказать перед SICP?

I>Проходит все потому, что контингент в МИТ это уровня олимпиадников, у которых мышление прокачано очень сильно, а вузах попроще нужно чем то компенсировать.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Многие думают, что математика и теория вообще не нужн
От: hal9000  
Дата: 30.06.09 11:34
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Это очень глубокий и фундаментальный вопрос, который, на мой взгляд, совершенно внезапно получил актуальность в последние годы. Грубо говоря, надо ли учить даты правления всех этих французских Луёв, если любой идиот со смартфоном ответит на такой вопрос за 30 секунд? Зачем учить где Кордильеры а где Анды, если есть гуглмапс, который еще и встроен в яблофон по дефолту? Получается, все находятся в одинаковых условиях — и заучки, и разгильдяи.


S>С другой стороны, знания зачастую оказываются несводимыми к словарю "название -> описание".

S>Во-первых, для того, чтобы хоть что-то прочитать, нужно уметь читать. Скажем, лично нас в университете два первых года собсно и учили читать — потому, что стандартный десятиклассник, к примеру, хоть и знает ограниченно греческий алфавит, но прочесть с листа формулы с участием спиноров просто не сможет.
S>Во-вторых, даже умея читать (то есть понимая отдельные лексемы), нужно еще и разбираться в применяемых идентификаторах. Ок, все непонятные слова можно рекурсивно смотреть в интернете — но скорость чтения будет весьма низкой.

S>В-третьих, всё-таки знания — это не плоский текст или картинка, это, прежде всего, некая модель в голове. Ну вот написал я вам уравнение Шредингера. Ну, прочитали вы его. Что, внезапно у вас появилось в голове понимание квантовой механики? Построить корректную модель — вот это и есть получение знаний.

S>Хрен с ними с квантами, давайте вот о программированиии. Я, допустим, упоминаю в разговоре: "здесь может пригодиться R-дерево". Ок, любой невежда может быстренько сгуглить на тему R-деревьев. Но поможет ли ему это понять, действительно ли оно здесь пригодится, т.е. ответить на вопрос, на который нет готового ответа в сети. Для того, чтобы ответить на этот вопрос, нужно реально понять, как устроено R-дерево, как оно натягивается на существующую проблематику, и т.п.
S>В итоге, новичка этот вопрос запросто отвлечёт на пару месяцев усиленного изучения. Программеру, который имеет опыт применения R-деревьев, для ответа потребуется секунда. Между этими полюсами лежат разные уровни подготовки профессионала — наличие либо отсутствие в голове готовых "строительных блоков", из которых будет строиться модель.

+1 С одной стороны жаль, что мало кто это понимает (например, твой будущий руководитель), с другой стороны хорошо, что это мало кто понимает (например, твои будущие конкуренты).

S>Ок, теперь вернёмся к компиляторам. Вопрос, в итоге, сводится вот к чему: не окажется ли случайно курс разработки компиляторов полезным для формирования "сторонних умений", которые могут быть применимы к широкому классу задач, не связанных напрямую с компиляцией?


Однозначно этот курс окажется полезным! Качество программирования возрастёт в любой области программирования (как минимум бы на уровне небольших кусочков-методов программ).
Re[12]: Многие думают, что математика и теория вообще не нуж
От: hal9000  
Дата: 30.06.09 11:46
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Какие конкретно "более простые вещи" ты хочешь рассказать перед SICP?


Спасибо за эту ветку в треде, теперь буду читать и SICP

P.S. Мне нравится твой ник
Re[12]: Многие думают, что математика и теория вообще не нуж
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.06.09 11:47
Оценка:
Здравствуйте, Sinclair, Вы писали:

I>>У чела проблема не с управляющими конструкциями, а с мышлением. С конструкциями проблем нет абсолютно никаких.

S>У чела проблема с тем, что ему не прочитали SICP.

Т.е. если дать ему SICP то резко вырастет уровень логического мышления ?

I>>Понимание невозможно вложить в голову, это можно сформировать задачами и только задачами. Ничем больше оно не формируется.

I>>Не бывает проблем с конструкциями, бывают преблемы с логическим мышлением.
I>>Сикп это примерно так "бывают R-деревья, делается вот так, вот так и вот так". Нужно вложить в голову более простые вещи, тогда кучка студентов при решении какой то задачи уже сами родят нечто похожее.
S>Какие конкретно "более простые вещи" ты хочешь рассказать перед SICP?

Все предметы обычно изучаются так — сначала даётся нечто конкретное, вроде y=kx+b для прямой а потом дается общее, вроде параметрического уравнения для прямой.

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

Вот после такой подготовки можно давать общую теорию, которая и есть в SICP.

Т.е. сначала человек разбирается с конкретными случаями, которые по ряду причин проще, сли указателями не перегружены, а потом уже может браться за общие, тут можно хоть сикп, хоть не сикп, главное чтото общее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.