Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

А вы боитесь математики и Computer Science?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

По мотивам: dou.ua/forums/topic/6090

А вы боитесь матана, теории алгоритмов, теории вероятностей и т.д.?
Интересны аргументы за и против.
Я — за то, чтобы этими знаниями владеть. Хотя и далеко не сразу к этому пришёл.

P.S.:
На конференции IT Jam в прошлом году кто-то сказал, что примерно 40% украинских программистов — самоучки.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Найкращі коментарі пропустити

А вы боитесь матана, теории алгоритмов, теории вероятностей и т.д.?

Какие-то трусливые девелоперы пошли, всего боятся: матана, ЦПП...

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

если есть задачи, требующие матан — то его нужно знать и не бояться). Если выполняешь задачи, не требующие матана, то быстро забудешь его без практики, даже если знаешь. Очевидно же.
Вы же не спрашиваете у лора как лечить зубы. Для этого есть стоматолог. Но «общая база знаний» есть у обоих.

Так а що означає «боятися»? Шкільні-студентські роки давно позаду, ніхто не стане Вас закривати на 2 години в аудиторії без доступу до жодних джерел інформації та білетом на 10 задач + 3 теореми і не погрожуватиме вигнати з роботи, якщо не справитесь. Ну а з приводу робочих задач, то у середньостатистичному проекті можливість щось порахувати (так щоб з папером і ручкою) випадає не так уже й часто і в більшості випадків вирішується на рівні «підставив у формулу з вікіпедії» + «виконав перетворення на рівні 5-го класу». Чисто моя суб’єктивна думка: власники бізнесу розуміють, що програміст то програміст, а математик — математик. І якщо коли на проекті виникне складна математична задача, то просто наймуть професійного математика, чи в штат, чи консультантом, і він все зарішає швидко та якісно. Коротше, я за розподіл праці :)

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

Що правда, то правда: все чим ми не користуємось вилітає з голови моментально, по собі знаю. З іншого боку: раз вилетіло, значить не користувались, а значить не так уже й треба було :) . Я просто не розумію цей матажіотаж (ну не перший же і точно не останній топік з такими питаннями :) ) : ну ок, хтось там програміст і не знає математики, але ж ніхто його й не заставляє займатись математикою. Суперматематизованих проектів типу Wolfram Mathematica одиниці і ті, хто туди йде, знають на що підписуються. В решті випадків будуть (в кращому разі) вкраплення якихось математичних підзадач і все. Просто я впевнений, що в таких випадках власнику бізнесу куди простіше найняти консультантом професійного математика з відповідною спеціалізацією і той все порішає, а потім пояснить на пальцях, що оці два числа треба додати, а отут на корінь з два поділити. Принаймні, це виглядає логічніше, ніж посадити програмістів, умовно кажучи, брати інтеграли, а потім рік ловити баги, бо хтось умудрився «взяти» розбіжний. Тобто я про те, що замість переживати з приводу вивченої/не вивченої математики, краще зберігати спокій і якісно робити свою роботу, а як на проекті виникне потреба в специфічних знаннях з математики-фізики-хімії-біології-чого там ще, то вже якось знайдеться бюджет на консультанта-професіонала в цій області. Я думаю, всі розуміють, що це куди дешевше ніж робити з програмістів універсальних солдат, а потім по півроку розгрібати універсальний бардак :)

Боюсь биологии и астрономии, химии, политологии, философии, филологии, истории Украины, социологии и охраны труда, а еще программистов самоучек.

а еще программистов самоучек.
Покусали в детстве?

Потихоньку кусают мозг в данное время.

А вы знаете, что бывает с человеком, которого укусил
программист? Он сам становится программистом, и пакет Касперского,
и труды Кнута, даже перезагрузка не помагает, такому человеку остается
одна дорога — в лидеры рынка.
Так в праве ли вы осуждать программистов — самоучек? Возможно
они просто были укушенны.

Нужно было своевременно провести курс лечебных прививок.

А вы боитесь матана, теории алгоритмов, теории вероятностей и т.д.?
Учил, решал, сдавал на отлично. Да — посложнее C++ будет (даже с STL), иногда голова пухнет конкретно. Но ничего особо страшного нет. Это ж не трупы потрошить.
Жалко другое — все это кроме ВУЗа нигде больше не пригодилось и теперь уже только смутно вспоминается. Поэтому учить это нужно только если серьезно собрались в науку. Ну или что бы «потренировать мозги».

эх, а для меня С++ наамного тяжелее матана чего-то(

Як нормальний прогєр може боятися таку примітивщину? Я про університетський рівень. Якщо далі в матіку лізти — там вже цікавіше.

Вопрос не вполне ясный: это про предметную область или собственно программирование. Математика и программирование это из разных опер. В предметной области она может и нужна, математика. В программировании, пока не ставится цель доказать, что на области определения входных значений (числовых) данная программа выдает эти и только эти выходные значения (числовые), математики никакой нет. Любая программа, на самом деле, это конечно, функция, но я абсолютно уверен, что Вы даже не знаете, с какой стороны к этому подойти.

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

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

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

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

Согласно последнему опросу на ДОУ, основное и самое страшное в ВУЗах с Computer Science — это UML. А математика сегодня вторична.

У нас в универе давали паскаль — умл — ооп именно последовательно и в таком порядке, как тут не испугаться?

С высоты опыта тут можно отметить несколько моментов:
1. От матана до практики — как от земли до неба. Да, матан даёт понимание самых базовых понятий, вроде производной, асимптотики и ортонормированного базиса. Но применением математики на практике занимаются совсем другие дисциплины, например численные методы, ЦОС и теория управления, и они оперируют совсем другими понятиями, вроде сходимости, устойчивости и обусловленности, ну и вычислительная сложность конечно же.
С одним голым матаном, шансы решить сложную практическую вычислительную задачу близки к нулю. Но, с другой стороны, не зная матана не удастся понять о чём говорят Матвеев с Флетчером и Тихонов с Арсениным.
2. Способность понимать, и даже разрабатывать математические методы — да, расширяет твои возможности и непомерно увеличивает ЧСВ, но, в реальной бодишопной жизни толку от неё не много, а иногда даже вред, когда тебя за вумные словечки ненавидит и руководство и вся команда.
3. Знание математики не делает тебя ближе к деньгам. Деньги сейчас платят за спринг с хайбернейтом, и за постановку птичек в плане, а за то, что твой мега эффективный алгоритм сокращаем эмиссию цэодва — тебе скажут спасибо тихоокеанские моржи, вот к ним и обращайся.
4. Знание математической подоплёки происходящего может быть критическим скиллом на этапе синтеза идеи проекта, и на этапе воплощения критических алгоритмов. Но, как показывает история, это всё происходит на этапах жизни проекта, на которых разработчики сами платят з то чтобы в нём работать. Да, это конечно приятно, что ты именно тот самый Вася, который сделал вот ту уникальную фиговину, но деньги всё равно будут получать зажратые багфиксеры на поздних этапах жизни проекта, а гениаальные зачинщики к тому моменту уже как правило где=то в другом месте.

5. Но есть и минимальная математическая культура, в отсутствии которой можно сильно подмочить репутацию в глазах сотрудников: Если Вася не может ответить какая асимптотика у его алгоритма, то, прости Вася, тебя все будут считать дебилом, се ля ви.

Знание математики не делает тебя ближе к деньгам.

...но возвышает в глазах Бога.

есть и минимальная математическая культура, в отсутствии которой можно сильно подмочить репутацию в глазах сотрудников

Враньё, вот ректор МГУ Садовничий не умеет брать процент и ничего с его репутацией не случилось
www.youtube.com/watch?v=cOdBAAmyN9s

Математики бояться — в программисты не ходить.

какая разница как называется этот пост. суть от этого не меняется.

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

Не так давно встретил историю, которая очень понравилась.

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

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

Получается тезис можно изменить на: «Низковалифицорованным программистам матан не нужен». Правда, им много что не нужно...

Хочу посмотреть на блог человека, кот алгоритмы яндексу делает

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

учился я на мехмате МГУ, кандидатскую защищал по 05.13.11, работаю в Яндексе, занимаюсь качеством поиска (чем-то средним между программированием, матстатистикой и лингвистикой). До этого несколько лет делал компьютерные игры (в Nival Interactive и в паре куда менее известных компаний),
ЖЖ

Вот теперь давайте про выпускника нашего какого-нить политеха, пусть он его обскачет в матане.

как дядьки в свое время выучившие ассемблер, не сподобились выучить хотя бы Си

Не выучили за ненадобностью. Вы крестиком почему не сподобились вышивать?

Так и они. Создание алгоритмов — это отдельная специализация, и как видно из примера — с программированием связана весьма условно.

не выучили за ненадобностью. Вы крестиком почему не сподобились вышивать?

Так и они. Создание алгоритмов — это отдельная специализация, и как видно из примера — с программированием связана весьма условно.

Тогда бы они не знали ассемблера. Тем более эту специализацию надо было где то выучить. Сложно представить чтобы на этой специальности не заставляли эти алгоритмы реализовывать.

Вот теперь давайте про выпускника нашего какого-нить политеха, пусть он его обскачет в матане.

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


занимаюсь качеством поиска (чем-то средним между программированием, матстатистикой и лингвистикой). До этого несколько лет делал компьютерные игры (в Nival Interactive и в паре куда менее известных компаний), хорошие.

1 Программирование он знает.

2 В матане он шарит.

3 Работает он в Яндексе, что по моему престижно.

Такое интересное совпадение — человек, знающий матан и программирование, работает на явно неплохой работе.

Тогда бы они не знали ассемблера. Т

А что его знать? Это что, редукция волной функции что-ли?
Знать железо, иметь навыки, чутье — да, это опыт, стаж.
Ассемблер же знать — не велика сложность.

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

Тем более эту специализацию надо было где то выучить.

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

Опять таки это никак не показывает, что программисту матан не нужен, даже наоборот.

Как это — не показывает?
Недоучка-математик — кому нужен? А если он потратил время на это недообучение вместо программирования?

Нельзя объять необъятное, изучение любой вещи — это затраты времени.

работает на явно неплохой работе.

которую сложно назвать программированием. Как сам он признает.
И эту неплохую работу после 2ух курсов матана в обычном украинском ВУЗе — не получишь.
Смотрите на каком факультете он учился и в каком ВУЗе. Много гениев способны добрать три года математики самостоятельно, вместо мех-мата?
Но я не против, пусть кто хочет, попробует конкурировать в математики с такими.

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

1 Программирование он знает.

Кстати, неизвестно еще на каком уровне. Конечно лучше третьекурсника пхписта.
Но в той же Nival Interactive он мог заниматься тем же, чем и те мужики — оптимизацией алгоритмов, и возможно писал прототипы на ЯП. Вполне уважаемая мной и сложная работа. Но рабочий код, а тем более созданием законченного продукта — занимались более сугубые программисты.

Разделение труда знаете ли — великая вещь в коллективной работе.

Создание алгоритмов — это отдельная специализация

Именно в этом направлении можно искать идеи, чтобы сделать нечто такое, чего другие пока не сделали (или сделали намного хуже). Можно придумать и создать какой-то новый сервис, и сделать это в современном мире, где всё или почти всё уже придумали и сделали.

Грубо говоря, конечно. Естественно, знаний об алгоритмах будет недостаточно.

Именно в этом направлении можно искать идеи,

Идеи для чего? Для успешного программного продукта? Ничуть.

Хоть пусть сортировка пузырьком будет в нем — успех врядли будет опеределяться выбором какого-то алгоритма.

Можно придумать и создать какой-то новый сервис

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

сделать это в современном мире, где всё или почти всё уже придумали и сделали.

И для этого нужна совсем не математика. А знание азов микро и макроэкономики, социологии, и нутром чуять — что такое бизнес и рынок.

Либо, играть в лотерею, стрелять наобум, как подавляющее число наших стартаперов и делает. И естественно — пролетает полностью. И знание математики им никак не поможет.

екологию, валеологию, педагогику (не актуальна, разве что история педагогики да и то курс лекций или практических занятий 8 штук и досвидос), економику и правоведение (либо адаптированные их варианты, которые бы были направлены на раскрытие их особенностей для ИТ отрасли), социологию, историю украинской и мировой культуры, философию. А СевНТУ гуманитарии вообще обнаглели и утверждают что должны быть чуть ли не уроки по музыке и писанию стихов!!! Хотя кому скучно тот пишет и на досуге такое:

Рідному факультету
Проходять, мов за склом, стрімкі роки життя.
Лишають по собі у памяті розмиви.
Легким чарівним сном постануть з небуття

Миттєвості моїх студентських днів щасливих.

Хтось любить гори й ліс, когось покличе степ,
Чи обізвуть гаї заспівом соловїним.
А я туди, де зріс — на рідний факультет -

Крізь спогади свої, хвилюючись, порину.

Я повернусь туди, де здобував знання,
Де розум мій міцнів і гартувалось тіло.
І щиро усміхнусь своїм викладачам,

Чиї слова теплом мене крізь роки гріли.

Почую голоси своїх товаришів,
Їм в очі загляну і подумки зрадію.
Я буду вдячний їм за мить, якою жив,

І втіленні в життя мої буденні мрії.

Тож слався у віках наш рідний факультет!
Крокуй в життя людей поважно й величаво!
Засяй в своїх зірках, невпинно йди вперед!

Нехай по всій землі тобі лунає: «Слава!»

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

Глупость.

Умение быть разработчиком ПО на сегодняшнй день — это на 60% коммуникативные навыки, и ещё на 20% — психологические.

А чё ее(математики) бояться-то? В универе даже любил матан-алгебру-функан-теорвер.
Закончил мехмат. Читал, прости Господи, Фихтенгольца перед сном. И ниче, не жалуюсь.
Правда в программировании мне математика, по большому счету, понадобилась только при написании дипломных работ. И то, профессура смотрела на меня как на ума лишенного: мол, нахер ты нам показываешь свою софтину? теорию давай!!1. Все!
Сейчас же в повседневной работе матан мне не нужен. Бывает, радуюсь, когда приходится составлять систему уравнений. А хотелось бы большего...
Но все же я склонен считать, что математика развивает логику мышления и заставляет мозги работать в нужном направлении.

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

А может ваши мозги УЖЕ работали в нужном направлении — «любил», а не ПОСЛЕ из-за математики?

Слышали такое: «После того НЕ означает вследствие того.»?

Мне тут аналогия пришла такая:

Занятие математикой для мышления программиста, это как занятие плаванием ради успехов в велосипедных соревнованиях. Конечно результаты повысятся, в сравнении с тем кто вообще ничем не занимается(ну, или шахматами). Но не логичней ли наяривать на велике каждый день — если хочешь быть призером Тур де Франс? Конечно, и плавание, и йога между усиленными тренировками на велике — будут помогать. Но что будет первичным, главным вкладом?

А может ваши мозги УЖЕ работали в нужном направлении — «любил», а не ПОСЛЕ из-за математики?
Работали. но вряд ли они начали работать от ОБЖ или социологии.
Слышали такое: «После того НЕ означает вследствие того.»?
Ясный пень! Я и не говорил, что ЛЮБОЙ, кто сдаст матан на 5, станет ахеренным программером. У меня есть знакомые, которые знали, например, численные методы, но при этом плевались даже при виде файла *.cpp. Кто осмелится утверждать, что у них думалка не работает?
Занятие математикой для мышления программиста, это как занятие плаванием ради успехов в велосипедных соревнованиях. Конечно результаты повысятся, в сравнении с тем кто вообще ничем не занимается(ну, или шахматами). Но не логичней ли наяривать на велике каждый день — если хочешь быть призером Тур де Франс?
С чего вы решили, что я на досуге читаю книги про дифуры? Я свои скилы прокачиваю несколько другими книгами.
А вот общая физ-подготовка очень даже влияет на то, окажусь ли я среди призеров Тур де Франс, да и вообще, смогу ли я проехать 4000км.

но вряд ли они начали работать от ОБЖ или социологии.

Но вы же не пробовали :)

Кто осмелится утверждать, что у них думалка не работает?

Я и не утверждал такого.

Вопрос сугубо прагматичный — на кой черт мозгам программиста — матан? Если его мыслительная работа — совсем другого вида, чем работа математика? Иногда только, как в любом инженерном ремесле, что-то нужно из математики.

А вот общая физ-подготовка очень даже влияет на то, окажусь ли я среди призеров Тур де Франс

Конечно влияет.

В данном обсуждении — любой постоянный напряг мозга — влияет.

да и вообще, смогу ли я проехать 4000км.

Но куда больше повлияет если вы на велике проедете вначале 10000 км. А не общая физ подготовка.

Присоединяюст но я бы немного изменил последнюю фразы

Но все же я склонен считать, что математика развивает логическое мышление (особенно булева алгебра и логика высказываний) и заставляет мозги работать (но тот же LISP заставляет их работать не меньше, хотя для кодинга Java он никак не пригодился)

Мне так же вышка немного для дипломов, чуть больше для диссертации нужна была

Вот примеры где без математики/ алгоритмов /структур данных — не обойтись.
Описываю только, то с чем сталкивался лично:
1. Разработка 3D движков для моделирование объектов и физики деформации.
2. Разработка семмантических поисковых систем
3. Machine learning systems
Могу точно сказать за себя- очень жалею что в универе не уделял достаточно внимания математике/CS.

Завалил собеседование в микрософт кор тим на последнем этапе именно не ответив на вопрос по теории вероятнотности. Так сказать — кусаю локти ))))

1. Разработка 3D движков для моделирование объектов и физики деформации.

Сколько процентов программистов, задействовано в такой разработке?

2. Разработка семмантических поисковых систем

Сколько процентов программистов, задействовано в такой разработке скажем в Яндексе?

Завалил собеседование в микрософт кор тим на последнем этапе именно не ответив на вопрос по теории вероятнотности. Так сказать — кусаю локти

Тут согласен, если на собеседовании в компанию мечты что-то спрашивают — это что-то нужно учить.

Сколько процентов программистов, задействовано в такой разработке?
Не могу утверждать, т.к. не владею достоверной информацией.
Подозреваю, что процент будет очень небольшим по отношению к общему количеству разработчиков
Сколько процентов программистов, задействовано в такой разработке скажем в Яндексе?
Опять же, в процентном отношении- значение стремится к нулю
Тут согласен, если на собеседовании в компанию мечты что-то спрашивают — это что-то нужно учить.
Готовился 4 месяца, когда узнал что есть шанс, но увы :( поздно спохватился.

Подозреваю, что процент будет очень небольшим по отношению к общему количеству разработчиков

Вот и я так подозреваю.

Опять же, в процентном отношении- значение стремится к нулю

К нему самому. Забыл фамилию одного с главных алгоритмщиков Яндекса.
Видел пару его выступлений, и бложек у него есть.
Так он любит повторять — программировать не умею и сейчас. Питон конечно как-то осилил... А в Яндекс взяли — потому что один из лучших выпускников Бауманки, и несколько лет работал в НИИ какой-то по физике.

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

Готовился 4 месяца, когда узнал что есть шанс, но увы :( поздно спохватился.

Тут да. думаю в IBM с Ораклами тоже, курс математики Стенфорда или MITа — очень в плюс.

2. Разработка семмантических поисковых систем

Сколько процентов программистов, задействовано в такой разработке скажем в Яндексе?

Ага, и сколько они получают в процентном соотношении относительно остальных?

А сколько миллиардеров в мире, и сколько в процентном отношении они имеют активов и пассивов относительно остальных?

А топ-менеджеров сколько в компании, и сколько они получают в процентном отношении относительно остальных?

Касательно же Яндекса — так извините, кто Бауманку не закончил, тот уже опоздал на эти должности. Самотужки — шишь ты так осилишь математику, чтобы конкурировать с выпускником Бауманки. И можешь только облизываться насчет должности «проектировщика семантических поисковых систем»

На Западе как понимаю тоже не выйдет конкурировать с выпускником Стэнфорда, МИТа и прочих кембриджей. Как бы ты ни грыз матан в своем местячковом политехе.

Виктор Иванович Иваненко, читавший нам теор.принятия решений и управления, говорит, что математика — единственная наука, которую нельзя выучить без «поводыря». К слову, локти кусаю, что этот самый «матан» в его подаче не учил, когда нужно было.

А вот тут соглашусь.
Никто так не вправит мозги — как настоящий Учитель.

И без разницы чему он учил, математике, пению, медитации или метанию копья.

Да. Но на каком-то этапе, на высоком уровне развития, придётся развиваться по большей части самостоятельно.

По большей части или полностью, — здесь я уже не могу судить.

А сколько миллиардеров в мире, и сколько в процентном отношении они имеют активов и пассивов относительно остальных?

Вот когда вопрос будет стоять — «что нужно учить чтобы стать миллиардером», вот тогда об этом и будем рассуждать. О программистах говорим.

Касательно же Яндекса — так извините, кто Бауманку не закончил, тот уже опоздал на эти должности. Самотужки — шишь ты так осилишь математику, чтобы конкурировать с выпускником Бауманки.

Т. е. программисту нужно не просто знать матан, но знать его на уровне Бауманки?

Т. е. программисту нужно не просто знать матан, но знать его на уровне Бауманки?

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

О программистах говорим.

На такую должность без Бауманки — никак.
Так что бросайте программирование, и вперед учиться.

Для такой должности знание программирования — никак не критично, и не решающе.

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

давайте я поясню почему я так написал, чтобы вы не считали меня троллем, а тем более толстым.

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

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

Ну хотя б сериалы «Air Crash Investigation» посмотреть вдумчиво — должен.

человек утверждает, что системы подобного рода разрабатывают математики, а не инженеры-программисты

Ну дык, вот это то и спорно. Должность скорее похожа на квалифицированого программиста и более подходящее название — инженер-программист или математик-программист.

Давайте тогда определимся кто тогда программист вообще.

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

Вообще то хотелось бы все таки посмотреть на тот самый пост человека, кот разрабатывает алгоритмы для яндекса.

Давайте тогда определимся кто тогда программист вообще.

Не так давно встретил историю, которая очень понравилась. Потому что я в жизни был знаком и с теми, и тем более со вторыми:

Работа у нас странная: вроде программисты, но компьютером не пользуемся. Мы составляем алгоритмы распознавания различных сигналов — например, лиц на фотографии. Только работаем в другой сфере и в основном с военными: скорость, точность, безглючность. Основные инструменты — карандаш, бумага, математика и «морской бой» с коллегой, то есть тестирование алгоритмов в разных ситуациях. Со стороны выглядит дико: большой кабинет, два мужика полдня пьют чай. Из языков программирования знаем только ассемблер. С начальством хорошие и доверительные отношения: знают, что работаем мы хорошо и максимально быстро, а брака не было уже лет пять.

К нашим алгоритмам нужен дружественный интерфейс. Для этого к нам присоединяют обычного программиста: менюшки, ввод/вывод базы данных, туда-сюда. Реакция на нас всегда одна: «Сидят, ничего не делают».

Первый разрыв шаблона у человека случается, когда он видит в ведомости суммы нашей зарплаты: раза в три выше, чем у него. Втрой разрыв происходит, когда он видит наш свободный график. Ему не знакомы наши двух-трёхсуточные авралы в поиске «мерцающих» дефектов. Третий разрыв шаблона: мы не родственники директора. Четвёртый: почему его увольняют с испытательного срока, ведь он тоже решил «работать, как эти», а мы продолжаем сидеть и пить чай?

Уже третий программист за пять месяцев.
ithappens.ru/story/8009

Я — из вторых. Программист одним словом.
Но так как давно уважаю специалистов- математиков, пианистов, ядреных физиков, врачей, юристов и мостостроителей, ....

у меня, как у тех нестреляных программистов из истории — проблем не возникало.

какая разница как называется этот пост. суть от этого не меняется.

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

Завалил собеседование в микрософт кор тим на последнем этапе именно не ответив на вопрос по теории вероятнотности. Так сказать — кусаю локти ))))

Думаю скорее всего, даже почти уверен, что вы его завалили не по этой причине.

1. Это не только дивжки, это весь гемйдев, и не только 3д, но и 2д.
Поиск столкновений объектов, поиск путей, пиксельные и вертексные шейдеры.

Даже вычисление — в какую сторону нужно повернуть персонажа в зависимости от того, куда пользователь указывает мышкой — это синусы, косинусы, операции над векторами.

Это не только дивжки, это весь гемйдев, и не только 3д, но и 2д.
Поиск столкновений объектов, поиск путей, пиксельные и вертексные шейдеры.
Был и я в геймдеве... Ничего такого не писал, выбрал из библиотек, кое-что там в ассемблере подправил, добавил чуток специализированного кеширования, да и вся работа с рендерингом.
в какую сторону нужно повернуть персонажа в зависимости от того, куда пользователь указывает мышкой — это синусы, косинусы, операции над векторами.
Надо же, до сих пор нет для этого библиотек, все это самому писать?
Вы уверены что в геймдеве движки 3D под каждую игрушку пишутся новые, или только свои используются?
И до сих пор нет отдельных математических библиотек, чтобы все эти косинусы с синусами считать?

Компьютерные игры это творчество, универсальный движков нету. И библиотек на все случаи жизни тоже.

Конечно, можно взять исходный код 3Д шутера от первого лица, где нужно убивать инопланетных монстров из балстера, заменить модели игрока и монстров, на модели террористов и контртеррористов, бластер на АК47, текстуру светящегося синего снаряда бластера, на мелкую белую точку — автоматной пули. Поменять высоту прыжка и скорость передвижения игрока. Наклепать пару уровней «в городе», вместо космической станции, и новая игра готова. Но так все игры не делаются.

К примеру, что если я хочу не с видом от первого лица, а с камерой из-за спины? А что я хочу что бы она по особому поворачивалась? И не по центру, а с правого плеча, или переключаясь с правого на левое в зависимости от положения игрока? А если я хочу вид сверху, а мышкой указывать — куда персонаж должен смотреть и целится?

Каждая новая игра — это всегда что то новое. Например вчера в игре можно было только бегать и стрелять, а сегодня можно ещё и на машине ездить. А завтра ещё и на самолете. И все это на одной сцене. Сегодня нужно было считать пули как просто лучи из дула, а сегодня нужно делать пули которые визуально заметные, и в полете на расстоянии падают.

Конечно, никто не изобретает формулы с нуля, используют примеры, статьи, готовые библиотеки если есть. Но нужно ещё все это скомпоновать правильно. Математические библиотеки, дают только базовые операции. Нужно знать как применить эти библиотеки.

И понятие движок — очень расплывчатое, в одном случае это только граф сцены и классы утилиты — для вывода всякой графики и загрузки текстур. А в другом это исходные коды здоровой готовой игры.

К примеру говорят, движок quake3 — по сути это исходники игры quake3,
и есть кучу игр на этом «движке», и это значит что люди брали эти исходники, разбирались — как они работают, дописывали код нужны им, что то модифицировали — и получали новую игру. Я не думаю, что в таком случае, можно было обойтись без математики.
Даже вот есть игра — Call Of Duty:Modern Warfare 3 — один из модных шутеров.
Эта игра, это все тот же Quake3 (id Tech 3), который был переработан много раз.
По сути вся серия Call Of Duty, начиная с первой версии, это исходники предыдущей игры — с модификациями (улучшение графики, добавление новой механики игровой), и новым контентом (модели, текстуры, звуки). Я думаю тут тоже требуются люди знающие математику и движок первоначальны изнутри, что бы поддерживать его.

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

Есть конечно Unreal Engine, там уже есть какой то middleware — но даже там требуется править код, если нужно получить что-то больше чем очередной Unreal Tournament с новыми текстурами, моделями и уровнями.

Да и вообще, если брать здоровые серьезные игровые движки и всякие библиотеки, с ними нужно ещё разбиратся как они работают.

Или вот полно всяких движков 2д на флеше, на хтмл5, на чем угодно.
На деле они все просто — класс Sprite, класс Scene — с о списком Sprite,
код загрузки текстур, код анимации для спрайтов, может ещё код для проверки колизии прямоугольник-окружность. Может где то загрузка карты из квадративков-тайлов.
Конечно можно туда и физику интегрировать (библиотеку), и ещё всякого по готовым примерам.

Но хоть что то нужно то понимать. И что если пример не найдется?

К примеру говорят, движок quake3 — по сути это исходники игры quake3,

и есть кучу игр на этом «движке», и это значит что люди брали эти исходники, разбирались — как они работают, дописывали код нужны им, что то модифицировали — и получали новую игру. Я не думаю, что в таком случае, можно было обойтись без математики.

А вот я как раз так и думаю. Даже создание такого движка подозреваю — задача не ахти сложная по математике. Скорее по хорошему знанию численных методов.

Остальные ваши рассуждения вызывают только улыбку :)

Рассуждения человека далекого от программирования, поэтому программы вызывают такой восторг и священный ужас :)

А вот я как раз так и думаю. Даже создание такого движка подозреваю — задача не ахти сложная по математике. Скорее по хорошему знанию численных методов.

Тот минимум что нужен, наверно хорошо описывает термин — аналитическая геометрия.

Но на этом не заканчивается. Вообще когда писался Quake1/2/3 — в интернете ещё нельзя было на каждом углу скачать физ дивжок, или какой нибудь конструктор 3Д игр.

habrahabr.ru/post/131931 — вот пример, вот откуда вообще такая статья появляется, если математика там не нужна.

Тот минимум что нужен, наверно хорошо описывает термин — аналитическая геометрия.

Если планируете писать такие библиотеки — то да.

В другой теме я высказывался что программист тем выше уровнем, чем лучше понимает предметную область. Досконально знать ее не нужно, уже потому что велики затраты на ее освоение.
Так что если программист будет заниматься финансово-экономическим ПО — ему стоит прочесть пару книжек и по экономике, и по бухгалтерии.
Если управленческим — то что легкое из MBA,

и т.д.

То есть вопрос о математике тут — всего лишь вопрос о предметной области.

Но вот же странно — большинство программистов мира будут писать именно «склады», но им суют математику, как будто они сплошь будут писать 3D рендеринг.

если математика там не нужна.

Цитата из статьи:

«Внутренняя кухня» механизма кватернионов не очень понятна и не интересна мне. И, возможно, не будет интересна и вам, если только вы не математик. И я советую вам найти библиотеки, которые работают с кватернионами, чтобы облегчить вам решение ваших задач с их помощью.

Вообще когда писался Quake1/2/3 — в интернете ещё нельзя было на каждом углу скачать физ дивжок

За Кармака не скажу, не помню. Но не удивлюсь, если большинство «кармаков» мира — вполне не гнушаются брать консультации у математиков. Уже потому что им и так работы хватает.
У того же Кармака последнее творение:

id Tech 6 — игровой движок следующего поколения, В движке используется технология «Sparse Voxel Octree»

Читаем про него:

Sparse Voxel Octree (SVO, рус. Разреженное воксельное октодерево) — программная технология, позволяющая делать эффективную детализацию визуализируемых объектов и эффективную обработку облаков точек.

SVO — регулярная иерархическая структура данных, в основе которой лежит регулярная трёхмерная сетка. Первый узел дерева — корень, является кубом, содержащим весь объект целиком. Каждый узел или имеет 8 потомков или не имеет никаких потомков. Эти 8 потомков формируют 2×2×2 регулярных подразбиения родительского узла. Узел с потомками называют внутренним узлом, узел без потомков называют листом. В результате всех подразбиений получается регулярная трёхмерная сетка вокселей, однако, не все воксели содержат части объекта, поэтому в созданном дереве такие воксели не будут содержаться, то есть дерево будет разреженным. Для того, чтобы каждый раз не обрабатывать пустой воксел — вместо сетки используется октодерево, оно также имеет информацию об индексации вокселей и позволяет оптимальным образом находить соседей вокселя и другую информацию.

Много тут математики? Сплошное проектирование по разным критериям оптимальности.

А проектированию математика — НИКАК не учит.

Многие фичи в современных 3Д движках требуют шейдеров — а шейдеры это вектора и матрици. Можно копировать готовый шейдер чужой и его везде использовать, но что бы вот сделать id Tech 6, и добавить в него фичи — которые ни у кого нету, которые дадут ещё боле красивую картинку, нужно писать свои шейдеры с нуля, или даже не в движке, а в конкретной игре добавить забавный эффект.
И пример простого шейдера — это шейдер в который передается вектор — направление освещения, и его цвет через RGBA, и для каждой точки на поверхности треугольника, на освное нормалей — вычисляется цвет.

Как можно нормально работать вот с такими шейдерами, не понмиая, что такое вектор, что такое матрица, что такое интерполяция (которая применяется к 3 нормалям на вершинах треугольника, что бы получить нормаль каждой точки) и нормаль? И как на что нужно умножить, что бы получить нужное освещение? Разве это не математика? Ок, это не матан, но это геометрия.

Вот ещё
en.wikipedia.org/...bient_occlusion
и риалтайм реализация от программиста из Crytek
en.wikipedia.org/...bient_Occlusion
Вот как человек мог написал SSAO алгоритм, и шейдеры,

не понимая сути AO хотя бы приблизительно?

Многие фичи в современных 3Д движках требуют шейдеров — а шейдеры это вектора и матрици.

Сколько процентов программистов пишут эти фичи?

Да, как-то и мне пришлось писать утилиту оптимизации палитр, используя бикубические уравнения. Открыл справочник да и написал в коде на языке программирования.

Это — я математику знаю?

Разве это не математика? Ок, это не матан, но это геометрия.

а 2 + 2 — разве не математика???

Так почти каждый человек в мире — математик!

Так почти каждый человек в мире — математик!

Так о чем вообще тема тогда?
Или под математикой тут в заголовке и везде подразумевается именно математический анализ?

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

Или под математикой тут в заголовке и везде подразумевается именно математический анализ?

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

там не только аналитическая геометрия нужна, но и линейная алгебра. в любом случае в универе эти 2 предмета без проблем заходят после школьного курса. там в принципе ничего сложного нет.
для реалистичной физики почти все используют хавок.
ru.wikipedia.org/wiki/Havok

посмотрите на список игр

Почти все?) Может половина — там рядом ссылка на PhysX, там тоже большой список. Но это не все движки. Есть ещё кучу — токомак, Newton Game Dynamics, ODE (если он ещё жив), Bullet, несколько 2д-шных. Чего их так много? Одного мало? Какой из них брать?)

там в принципе ничего сложного нет.

То есть это не математика? И вообще все и так знают?

Да, блин, вот я дурак.

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

опять же не исключено, что при разработке приглашают специалиста математика или же имеют штатного. я вот еще будучи студентом первокурсником читал какой-то геймерский журнал — так там было интервью с каким-то руководителем из GSC — так он говорил, что при разработки игр они приглашают профессора с какой-то кафедры КНУ

Я не говорю что есть проблема изучить, я говорю что это математика, и она нужна, об этом топик, и вроде как тут рассказывают, что математика не нужна, потому что есть на все готовые библиотеки.

ну если рассуждать по-вашему то всё надо. и теоретическая физика и химия и экономика и банковское дело.

Математика конечно нужна, если программист будет писать программы решающие — математические задачи.

А если не будет писать такие задачи — то не нужна. Или нужна, но уж точно не линейная алгебра.

и она нужна, об этом топик,

Топик о том — нужна в каком месте.

Туалетная бумага ведь нужна? Нужна. Чтобы в принтер ее пихать?

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

То не линейная алгебра? Название не корректно?

линейная алгебра для разработчиков игр.

На сарае x* написано, а там дрова.

Из комментариев: «Это основа для 9-10 классников ... а вот разработчику реальной игры — вряд ли.» — согласен.

Я выше давал ссылку на хабр

Так там в конце он и пишет: «Внутренняя кухня» механизма кватернионов не очень понятна и не интересна мне. И, возможно, не будет интересна и вам, если только вы не математик.

Ту математику что описана в статье — незачем учить 2 года.

Там же, в комментах:

берётся книга, например «Интерактивная компьютерная графика. Вводный курс на базе OpenGL» Эдварда Эйнджела, где всё это расписано (есть раздел по математике)

Вообще когда писался Quake1/2/3 — в интернете ещё нельзя было на каждом углу скачать физ дивжок, или какой нибудь конструктор 3Д игр.

А ещё была такая игра Heretic. Достаточно богатый и очень быстрый движок для своего времени.

Heretic — написан на основе Doom) Что заметно даже визуально.

В Doom 2 нет возможности смотреть и целиться вверх-вниз. В Heretic это есть.

Это уже радикальная разница.

Это не радикальная разница. Изменение направления камеры да, усовершенствование. Но не принципиальное. Модель мира осталась неизменной, как ее называли 2,5D.

То есть нельзя было зайти «под» то что выше. Кармак умница, придумал как сделать плоский мир на вид — трехмерным.

в геймдеве самые низкие зарплаты по отрасли.

В какой отрасли? В отрасли бодишопов?

Назовете числа, и дадите ссылки?

к сожалению не смог нагуглить сводную таблицу по отраслям.

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

Даже вычисление — в какую сторону нужно повернуть персонажа в зависимости от того, куда пользователь указывает мышкой — это синусы, косинусы, операции над векторами.
Ну допустим, я использую SGI’шную либу для работы с кватернионами для поворота в пространстве (C++ boost’овская какая-то очень уж корявая и недоделанная), забыв про синусы-косинусы, одновременно со временем забыв и про сущность кватернионов. Но объекты вращаются как надо :)

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

Но с другой стороны, откуда я узнаю, что можно применить кватернионы?)
Ну вот я не в чем не разбираюсь, у меня есть класс Model (и его инстанс с конкретной моделькой загруженной) — он рисует солдата,
как параметр принимает Matrix — который задает ориентацию модели.
У Matrix — есть уже готовый метод RotateX, RotateY, RotateZ — углы в радианах.

И вот я делаю переменную, soldierDirection — куда он смотрит/целится в горизонтальной плоскости, задаю самым тупым способом — углом, и вот мне нужно что бы солдат поворачивался в сторону курсора — и тут мне нужно считать — насколько угл поменялся.

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

И вообще, вот я услышал про них, и решил открыть вики — я все сразу понял))

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

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

Ну, не совсем так. Просто лепить не получится.
Проблема в геймдеве, в его программерской части, в следующем:
Железо, утрировано, одинаково.
Игрушка же должна выделяться среди конкурентов, в частности какими-то фичами, тем же 3D видом, или падающими пулями, а не просто лучами.
Физическая модель — давно известна и описана, это все ньютонова механика.
А вот как ее закодировать, чтобы не тормозило, — вопрос. И в этом то, умении так кодировать всем известные алгоритмы — и есть талант программиста геймдевщика.
Я когда-то серьезно ковырял код Вольвшейтна 2D. И был поражен как его качеством, так и хитростями сугубо программерскими, и отличнейшего знания железа.
Такие хитрости можно увидеть на конкурсах, что проводится и доныне.

ru.wikipedia.org/wiki/Демка

Недавно был, ссылки не сохранил.

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

Именно так, а не разве что. Ознакомиться вначале с тем что уже сделано другими, а не изобретать велосипед.

Любой препод расскажет о важности задачи коммивояжера

Вопрос — а не дешевле ли будет нанять этого препода если вдруг понадобится лихой алгоритм?

Второе.

И сколько человеко-дней было потрачено на разработку этих алгоритмов? А сколько на остальную часть проекта?

То есть — неэффективно учить программистов тому, чем они бОльшую часть времени НЕ будут заниматься.

А для этих 10-15% лучше пригласить специалистов.

Например — нужно ли обучать несколько лет банковскому делу программистов пишущих банковское ПО?

Да, для сложного математического ПО я бы первым делом нанял бы математиков.

И я — тоже.

На первом курсе это понял, когда препод по математике, с нас, будущих ИТшников посмеялся:
Позвали тут с вашей кафедры, виснет у них программа.
Я посмотрел алгоритм — ребята, так у вас ряд то несходящийся!
Ой, отвечают... а не могли бы нам помочь, мы вот такое делаем...
Отчего ж, — посидел часок, и написал им сходящийся ряд.

Так что никуды вы программисты без нас математиков!

Согласен с преподом с тех пор!

а не дешевле ли будет нанять этого препода если вдруг понадобится лихой алгоритм?

Скажите это вашему руководителю, когда он вам даст задачу запилить лихой алгоритм. :-)

Много было руководителей.
Не помню, чтобы им был нужен — лихой алгоритм.
Им, руководителям вообще до лампочки, какой там алгоритм.

Способность запилить да, на собеседовании может пригодится. Когда стажа нет, что еще спрашивать?

А вот там где действительно нужны лихие алгоритмы — руководителям и не нужно будет говорить — кому какую работу поручать: какую аналитику, какую программисту, а какую уборщице. Они там смышленые какие-то в этих вопросах, руководители.

Советую программистам все — таки учить математику особенно дискретку.

1. Сколько лет профессионально программируете?

2. В какой предметной области?

Хорошо.

ИМХО, есть люди математически одаренные. Встречаются такие и среди программистов.

Есть — музыкально одаренные, тоже встречал среди программистов.

Считать ли тогда музицирование — обязательным? Встречал неоднократно исследования, что у музицирующих людей (в качестве хобби) — активны бОльшие части мозга. Причем немало те самые — лобные участки. Были как-то и исследования что болезнью Альцгеймера такие люди гораздо реже болеют.

Так может — музыка, самое абстрактное из чувственных искусств?

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

математику не обязательно знать на очень глубоком уровне

В том и вопрос — что считать неглубоким уровнем для — программиста.

2 года матана

вот-вот. И на кой черт?

Речь не о том что вообще без математики.
Без нее вообще — странно будет выглядеть любая инженерная дисциплина.

Вопрос — что за хр*нь преподается ИЗ математики обычно :)

Вообще переделал бы программу.

Вот я с математики бы и начал.
Скольких программистов перевидел — пользы от нее — единицам.

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

Физика кстати — это сугубая математика.

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

Это точно.

В чем проблема математика заменить на другого математика ?

Найти другого хорошего математика и хорошего программиста (2 в 1).

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

Сталкивался и я с этим же явлением.

Поэтому выше и говорил:

Математика никак не учит ни проектированию, ни моделированию: «раскладыванию по полочкам» (тут правда не нужно путать математику как дисциплину, и великих и не очень математиков как талантливых людей)

А в том же ООП тебе сразу нужно ответить на вопросы: какую роль будет играть этот объект? Какое поведение должно быть ему присуще, а какое нужно вынести из него?

У меня подозрение что функциональщики так клянут ООП потому что они математики по своей натуре, и категорически против проектирования как такового. Оно их приводит в ступор (в среднем конечно, а не каждого). Если посмотреть суровым взглядом математика на ту же книгу Буча — там минимум половина текста — болтология, философия.
Функциональщики-"математики", ИМХО, исходят из веры что качественное описание системы ничего не стоит, а нужно только количественное. Ну или — вторично, несущественно.
А ведь выделение абстракций, иерархий, связей с их направлениями — сугубо качественное. Нет количественных оценок — во сколько раз в ед.абстракции лучше эта абстракция чем та? Эта модель адекватна рассматриваемому феномену — в каких единицах, метриках?

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

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

А вы боитесь матана, теории алгоритмов, теории вероятностей и т.д.?

Нет, потому что я с ними много лет не сталкивался, и уже смутно помню что оно такое.
Мне сложно бояться льва, например. Или гремучую змею.

Так и с матаном и остальной частью списка.

Я — за то, чтобы этими знаниями владеть.

Наверное и владение способами выживания в джунглях — полезно.

Интересны аргументы за и против.

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

против — большинству никакой пользы они не приносят. Формируют мышление — байка. Нужны будут в работе потом — ну может 1-2%, что-то из.

Правда это скорей логика.
Отож бо воно і є. Логіка.
Просто логика с математикой очень тесно связаны.
Логика вообще-то связана с любой деятельностью по передаче структурированной информации от субъекта субъекту.
Логика — никак не есть прерогатива математики. Просто математика — и есть такая деятельность.
математику я считаю на каком — то уровне полезно давать просто как упражнение для ума в конце концов.
А почему не игру в Го?
Почему не апории Зенона?

Так в Го тоже нужно просчитывать.

А в бридж и преферанс — еще и вероятности считать.

Так что нужно ввести в образовательный курс. Очень развивают и логику, и работу с неполной информацией.

Читаю ваши комментарии и аплодирую стоя ))) Уже долгое время наблюдаю рост числа адептов математики ради математики (они наверное и спят с ней) ))

Математика таки формирует мышление, приучает раскладывать все по полочкам.
Я к похожему выводу пришёл и с этой подачи резко полюбил математику. Вот теперь решил засесть за изучение. Повторить школьную и копать дискретную.

Вот теперь решил засесть за изучение. Повторить школьную и копать дискретную.

Не научитесь :D

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

Именно первого и не дает математика никак. Причем она и правила то эти дает — специализированные. Чтобы их применять на практике — не один год нужно изучать, и практиковаться.

Не научитесь

А я всё же попробую.

нужно изучать методики абстрагирования

Из каких источников?

А я всё же попробую.

Да попробуйте конечно.

Как я говорю — напишите свою цель, заклейте в конверт, и напишите — распечатать в 202Х году.

Из каких источников?

Все что касается моделирования, и проектирования.

Философию же предлагать технарям некошерно, хотя там как раз немало умов именно тем и занимались. Онтология впрочем и информатике стала приживаться. Что — естественно.

Частный случай выделения абстракций — юриспруденция.

На худой конец — физика. Но это еще пару лет, к паре лет изучения математики. Учиться просто обычный программный код когда будете — вот вопрос :D

Но не — математика. Математик работает с чистыми, идеальными объектами. Он их — создает, а не «моделирует»

А вот программист как раз постоянно занят — моделированием. И чем выше рангом — тем больше.

Частные случаи моделирования, в применении к программированию, в ОО парадигме описаны.

Начиная с Гради Буча.

В конце можно и Эванса с его DDD — там уже уровень выше, чем парадигма ЯП.

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

Программирование — эта инженерная дисциплина.

Очень развивает мышление, если им заниматься.

А как насчёт этого курса? В контексте ваших советов.
“Model Thinking” (University of Michigan)

rutracker.org/...c.php?t=4066557

По описанию и содержанию — стоит потратить на него время

Если специальность computer science, то без «матана» не обойтись. Теоретические основы информатики построены на математических моделях. Т.к. университет все-таки призван скорее подготовить более «крутого» специалиста, с заделом на науку, то и подготовка должна быть фундаментальной. Само собой, писать шикарнейшие программы на Java можно без «матана». В 95% случаев «матан» не нужен вообще. Но кто виноват, что 95% наших драгоценных МАГИСТРОВ работают в посредственных проектах? Основной прогресс только «матаном» и делается.

А вот то что криво все это преподают — другой вопрос.

ну я тут уже как то рассказывал. Русский коллега помогал знакомой разбиратся с лабами по математике и по приколу провел опрос о критерии компланарности векторов в нашей команде.
Ни один выпускник месных вузов ответа не знал даже близко. (все CS месных и европейских универов ) разной свежести — от полугода до 10 после выпуска.
Выявить хотя бы одного человека без экс-совкового матфака в анамнезе который знал бы ответ в результате эксперемента не удалось. Опрошено было человек 20.

Вывод — в работе основной массе програмистов математика вааще не нужна.

ну в геймдеве вон математика нужна. Хрен сделаеш какую нибуть систему частич без нее. А в типичном бизнесс програмировании...да как то не очень то

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

Программисты старой закалки до сих пор так его и называют — матобеспечение. Родился и устоялся термин оттого, что программы создавались для поддержки научной деятельности, что большей частью состоит в моделировании и избавлении от рутины аналитических вычислений. Спасибо Биллу Гейтсу и IBM, в 90х самым большим потребителем ПО стал бизнес, и ему матан нужен в гораздо менее скромных объемах.

Случай из жизни: спрашивал когда-то на собеседованиях кандидатов в джуны-трейни написать на С фукцию решающую квадратное уравнение (8 клас, первая четверть). Вообще изначально хотел выяснить понимают ли люди что такое указатель, как вернуть пару значений из функции, обрабатывают ли какие-то ошибки. На деле выяснил совсем другое :)

Однажды услышал от одного кадра, с парой лет опыта кстати, фразу «ой! только давайте без математики»!

А у вас в предметной области владение математекой важно?

Да нет, не более чем в програмировании вообще.
Какой блин математикой? из школьной программы?

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

Да кто ж спорит что можно и забыть и не вспомнить сразу. У меня у самого со времён 8 класа лет прошло столько что старшно даже думать, и я не уверен что напишу из головы эту формулу без ошибки. НО

1. Всегда можно пререспросить насчет формулы. Я ведь не память по формулам проверяю а умение програмировать, и за одно умение выяснять детали задачи.

2. Я хоть и помню эту формулу так +/- но припоминаю что решений то у квадратного уравнения 2, и что бывают случаи когда оно в действительных числах не решается... И могу хоть попытатся её вспомнить...

А такая реакция человека с техническим образованием.. ну как бы удивляет сильно.

Если забыл, то она элементарно выводится.

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

Не боюсь а обожаю! Сейчас вот, хотя надобности нет читаю книгу Краснова по интегральным уравнениям Вольтерра и Фредгольма — просто потому что нравится

А вы думаете что самоучки не знают

матана, теории алгоритмов, теории вероятностей и т.д.?

только потому что они не заканчивали тех. вузы?

если только в той области, где они работают, не прописано чёрным по белому, что вот эти дисиплины нужно знать.

Я сильно подозреваю, что подавляющее большинство ограничивается только знаниями языка программирования и фреймворков.

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

да я видел кучу народу которые без понятие об математике на шарпе писали

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

дискретка если еще и полезна — то вышка — вообще впустую потраченное время.

то вышка — вообще впустую потраченное время.

А вот и не в пустую :)
В общем то согласен, но...
При необходимости вы будете знать по каким словам гуглить и не зависнете при словах «Метод Монте-Карло» (реально видел испуганное лицо «синьора»).

Еще от него (матана) польза похожа не ЦПП: помогает отсеивать «случайных людей».

ну вот у меня было очень много вышки в вузе. не используемые знания очень быстро забываются. недавно спросил у одногруппника, который 5 лет назад сдал на отлично функциональный анализ Богданскому что такое компакт и предкомпакт — он уже не помнит этого просто потому, что уже года 3 или 4 просто не сталкивался с этим словом.

что такое компакт и предкомпакт — он уже не помнит этого просто потому, что уже года 3 или 4 просто не сталкивался с этим словом.

Согласен. Никто и не просит доказывать теоремы наизусть. Главное чтобы после слова «компакт» не добавлял автоматом «диск» :)

с таким же успехом можно в принципе создавать темы Боитесь ли вы учить Банковское дело, Право, чилийскую поэзию в оригинале, теорию гравитационного поля, зоологию беcпозвоночных, {подставить что угодно}.
Обычно это учат те, кому это приходится в дальнейшем использовать, а у нас повальное высшее образование и каждый, кто получил бесполезные знания, которым не может найти применение пытается кичиться этими знаниями и при каждой возможности тыкать людям в лицо, что если он этого не знает — то он обезьяна, обученная нажимать на клавиши.

я вот учил квантовую оптику один семестр. очень познавательно. стоит создать тему «Боитесь ли вы изучать теоретическую физику»?

Был один «специалист» который истерику устроил, что над ним издеваются, когда я посоветовал ему применить метод «отжига».

то вышка — вообще впустую потраченное время.

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

как насчет того, что мне такая задача в принципе не попадется?
как насчет того, что вам попадется задача в предметной области с которой вы даже не знакомы?

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

Вторая задача была не из предметной области, но про нее также рассказывали в классическом смысле, а не в рамках 3д графики.

как насчет того, что мне такая задача в принципе не попадется?

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

как насчет того, что вам попадется задача в предметной области с которой вы даже не знакомы?

те же тензоры, у меня друг занимается биоинформатикой(не моя предметка), но один раз за пивом, когда он описал проблему, с которой боролся уже месяц (получает ph.d), я опять по наитию подсказал ему про них, вышло так. Через 3 месяца его статья прошла на конференцию первого класса, почему он не знал о них? Я не знаю, может просто упустил при обучении...

Каждый раз радуюсь возможности применить :)

Увы крайне редко приходится

Увы крайне редко приходится

Ээээ?!

ДубльГИС — это ж вроде карты и тд? Должно быть самое оно.

Не так то уж и много на самом деле, обычная геометрия. Во всяком случае из того, что мне попадалось:)

«Математику уже затем учить следует, что она ум в порядок приводит» © М.В. Ломоносов.

Дело не только в том, используются ли непосредственно математические вычисления в конкретно взятом проекте. Это качество мышления и подхода к решению задач.

А вы боитесь матана, теории алгоритмов, теории вероятностей и т.д.?

Это качество мышления и подхода к решению задач.

И без знания правил интегрирования/дифференцирования функций тут никак?

Давайте таки мухи отдельно, котлеты отдельно.

Надо начинать с того что значить «бояться» матана, и прочего :) Не знать или не помнить правил интегрирования — значить ли это что этого нужно бояться?

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

Впрочем такой склад мышления может сформироваться и вообще без изучения всего вышеперечисленного.

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

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

Наоборот, душа радуется, когда в проекте есть возможность прменить какой-нибудь «матан». Только вот случается это крайне редко.

Надо сразу спрашивать «А вы боитесь думать?». Включать мозг, даже иногда — занятие как ни крути — опасное: мысли в голову приходят...

«Нужна ли программисту математика?»: lurkmore.to/...767#mws_f6zXmgb

tl;drПодытоживая вышесказанное, следует отметить, что всеразличный матан не является панацеей и волшебной таблеткой для верхней головы, увы нет. Это не более, чем мозговая клизьма, способная стремительным домкратом прочистить от говен фимозги подрастающих погромистов. Другое дело, что в некоторых случаях против ФГМ нужна не клизма, а сразу живительная эвтаназия.

Типа зацепка для оправдания, чтобы не изучать матан. :-)

А про панацею речи не шло.

Там же, про матан хорошо написано:

Вообще говоря, сам матан в том виде, в котором его изучают в российских вузах (а именно, теория пределов, дифференциальное и интегральное исчисления), был достаточно полезной наукой вплоть до конца 19-го века. Потом появилась эта ваша общая топология, которая перевела половину математики на новые рельсы и отправила старый материал на свалку. Поэтому взятие интегралов стало нужно лишь инженерам, к радости которых в 20-ом веке появились компутеры, а вычислительные задачи стали решать не ручками, а численно (то есть с использованием численных методов).
К сожалению, в этой стране об этом не в курсе, поэтому всё так же с упоением рассказывают о крутости символьных манипуляций (то есть Calculus’а). Это бессмысленно даже не из-за того, что это можно делать с помощью компьютера, а из-за того, что большинство интегралов (пример) и дифференциальных уравнений, встречающихся на практике, невозможно решить аналитически.
Таким образом, математики занимаются вообще другими вещами и вычисляют не пределы, а кольца когомологий, прикладники в гробу видали все эти изъебы с карандашом и бумажкой, а умение брать тройные интегралы в настоящее время актуально только для того, чтобы решать матановые капчи.

lurkmore.to/Матан

А вы боитесь матана, теории алгоритмов, теории вероятностей и т.д.?

Какие-то трусливые девелоперы пошли, всего боятся: матана, ЦПП...

Кстати да. Вопрос то реально не в том что ктото чегото боиться. Вопрос в том что никто этого не изучает, потому что оно нафиг не уперлось.

>Вопрос в том что никто этого не изучает, потому что оно нафиг не уперлось.

Дня четыре назад применял фазовый вокодер с раскручиванием фазы (банальный, на самом-то деле аппарат, но звучит зато страшно). Смотрю на ваш пост со скепсисом.

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

Оно уперлось, даже в лидерах рынка есть такие отделы, где математика нужна, как воздух,

Ну, пусть туда идут люди которым эта самая математика нравится, работа мечты, фигли.

Отделов где матан нафиг не нужен — значительно больше.

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

Очевидный фикс же.

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

З.Ы. Под «вы» имею в виду не конкретно вас, а всех хомячков, которые считают, что матан не нужен вообще, т.к. с ним не работают, ибо он, как и цс, не нужен, только на т.н. обезьньих должностях.

Зависит от предметной области. Геймдевам, ИМХО, полезнее линейная алгебра.

Дабы тешить свое ЧСВ, вы можете называть кого угодно, как угодно, суть от этого не изменится.

А основательная проблема всех этих споров в том, что четких свидетильств о кореляции между уровнем знания матана и зп — нету.

На доу да не только, уже несколько лет все что я видел только какието примеры высосаные из пальца, и посылы аля «а вот мне тензоры пригодились, я крут, а вы обезьяны».

Видно что вы человек с явно завышенным ЧСВ и, возможно, даже немного обиженный этими самыми «хомячками», как вы их называете ) Разработчик должен уметь использовать тот или иной инструмент (включая математику, и да, это всего лишь инструмент — не более), находить наиболее правильное решение той или иной задачи. Разработчик должен думать над архитектурой, над тем, как эффективно использовать вместе несколько разных технологий, подходов и тд и тп... Поэтому, пускай математики занимаются математикой, а разработчики — разработкой. P.S Это равносильно тому, что втирать архитектору, что он должен знать математику от и до, иначе он «хомяк» ))) P.S А я знаю чем вас так обидели «хомячки». Ишь какие, занимаются творческой работой, не удосуживаются потратить годы на изучение математики, а зарабатывают больше вас, угадал? )

Почему боятся?!? Даже те кто знают не используют, так как нет необходимости. Если я неправ, называйте страницу фихтенгольца, которая помогла решить вам конкретную задачу (ее желательно вкратце описать, а также указать сколько по вашему в процентном отношении программистов столкнулись с необходимостью решать подобную задачу). И обоснуйте почему я должен убить минимум полгода-год на трехтомник Фихтенгольца и пару решебников Бермана, Кудрявцева? Ради чего? ЧСВ?

называйте страницу фихтенголь...
Это вы сейчас зачем сказали?
И обоснуйте почему я должен
Лично мне на вас на...все равно. :)
было бы всеравно не отвечал бы на пост ... .... Пишешь все боятся матана а сам понятия не имеешь что такое

фихтенголь...

.

если я ничего не путаю — то у нас Фихтенгольца даже в рекомендованной литературе не было :) хотя могу путать :)

С 2000 по 2012 вышло очень много адаптированых для студентов различных специальностей «Учебник для вузов», «Краткий курс математического анализа», " Краткий курс в современном изложении«, «Высшая математика для чайников», «Высшая математика для начинающих физиков и техников» и т.д., так что вполне возможно что ваш преподаватель решил не утруждать ваш мозг прочтеним Фихтенгольца или чего-то типа Смирнова. Ну а если решали только Запорожца то вообще все просто у вас было, но в принципе этого достаточно, не вижу необходимости пхать в мозг программистов ротор, дивергенции, градиеты, или элементы топологии. Но на физмате фихтенгольц у нас был типа основным при сдаче экзаменов в течении трех лет, На 4-5 курсе был вообще вынос мозга, и не дай бог было пропустить хоть одну пару догнать что пропустил было очень сложно, на сборы чехлов уходило куча времени :( Хотя для студентов технического вуза не физмата довелось решать десятки контрольных, так как они даже упрощенный курс не тянули. Хотя в том же ХНУРЕ и ДонНТУ встречал людей с очень высоким уровнем знаний. Так что при желании можно запросто выходить за пределы курса, но опять же надо понимать насколько все-таки это нужно.

ну я учился на специальности, где было много математики.

2 семестра линейки и аналитической геометрии, 2 семестра комбинаторного анализа, 2 семестра дискретки, семестр алгоритмов структур данных, семестр мат логики, семестр теории алгоритмов, 2 семестра мат анализа, семестр ТФКП, 2 семестра диффуров, 2 семестра матфизики, семестр тензорного анализа, семестр функана, семестр теорвера, семестр мат статистики, семестр случайных процессов, семестр спец глав математики, 2 семестра мат методов защиты информации и это всё до бакалавра и то, что я вспомнил. так что ваш подкол явно не по адресу

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

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

Автор: Дороговцев А. Я.

Название: Математический анализ: Краткий курс в современном изложении — если это, то глубже все-таки фихтенгольц, хотя сейчас допускаю что могут давать и еще более кратко по тому же Боссу например :)

Ок. И к чему мы пришли?

Человек, который требовал (или очень грубо просил) обоснований зачем ему учить матан, подозрительно много знает учебников по этому самому матану.

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

А пришли к тому что я учил матан и достаточно глубоко, но за уже 7 лет комерческого кодинга он мне не понадобился ни разу! Так что я не считаю необходимым как впрочем и достаточным условием для программиста обязательность знания матанализа, П.С. не путать программиста с прикладным математиком использующим компьютерные вычислительные средства в своей работе :)

У Богданского не очень был матанализ. Еще хуже у джава-придурка из Квазар-Микро Чертова. Лучший Матанализ был у Клименко, он читал почти по Лорану Шварцу.

Дороговцева в КПИ не читали, а читали в Шевченко, его кванторное изложение очень полезное для формирования математиков.


У Богданского не очень был матанализ.
Вы имеете ввиду сами его лекции или его книжечку с лекциями?

Дороговцева в КПИ не читали
Неправда, Кадобянский читал свой курс очень близко к курсу Дороговцева-старшего.
Супер.
N лет назад мне от этого списка захотелось бы закопаться в песок. А сейчас — наоборот, по-доброму завидую.

Удалось изменить ощущения. И теперь я могу это воспринимать и наслаждаться множеством «открытий чУдных». Лишь бы хватило времени...

наверное, я был среди тех студентов «тех ВУЗа других специальностей». а про вынос мозга на 4-5 курсе и речи не шло, на спецпердметы те, кто не ходил получали 4, если совсем тупой — 3, остальные автоматом пятерки..

было бы всеравно не отвечал бы на пост

Так на пост мне не насрать :) Пост — это информация, она имеет цену.

Пишешь все боятся матана а сам понятия не имеешь что такое

фихтенголь...

От шо за манера — делать утверждения без оснований?
Трехтомник Фихтенгольца типо считается самым понятным по матану, я как-то сдал матан по кудрявцеву ... не таки по дороговцеву. Хотя снова не так, правильно так:

Учил по дороговцеву, а сдал по корнам :)

Да можно было и по Мышкису что еще проще :) А фихтенгольц для меня лично показался «понятным» из-за полноты изложения, а вот всякие сокращенные версии явно не добавляют в понимании :( Я вообще удивлялся как студенты не физмата хоть что-то понимают ведь то что нам углубленно читали 3 года им впихивали в сокращенном варианте за один семестр. Смирнова читал так для себя, хотя решебники брали и Виленкина и Демидовича, Заопрожец помогал когда я с радостью стал забывать матан, но попросили порешать контрольные :)

Да-да, мы помним, API социалок важнее.

Ах-ах-ах. В твоем случае надо до защиты диплома дожить а потом пытаться что-то квакать. А если типа умный жду страницу с Фихтенгольца и пример задачи.

Это хамство такое, или мне показалось?

Да-да, мы помним, API социалок важнее.

Это хамство такое или мне показалось?

Докажи обратное,я найду тот пост и удалю.

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

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

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

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

А ваш коммент про востребованность, и «первичность» знания апи социалок, лиш очень ярко отражает печальный тренд — работодатели и сотрудники сейчас в основном заинтересованны лиш в как можно более простой, не качественной работе.

Что значит простой и некачественной? «пользователей Facebook в 2012г. превысит 1 млрд человек» — ах да простая, некачественная, никому не нужная формошлепщина :) WordPress, WebSphere, FaceBook, Tweeter, Google+, Google Maps ... — все говно для формошлепов, знать которое не надо, так как это некачественные простые продукты и конечно же приложение без интеграции с ними будет намного популярнее! Лучше знать алгоритм быстрой сортировки, чем уметь правильно строить запросы на SQL. Лучше выпустить свои карты для оплаты, чем использовать Visa, PayPal, WebMoney, Liqpay ... Лучше читать Таненбаума, Кнута, Вирта — это поможет сделать реально востребованный продукт миллиардам людей, которым насрать насколько упорядоченным был массив перед сортировкой и какова сложность использованного алгоритма, и сэкономили ли мы 0.005 секунды при поиске медианы в матрице. Хочешь овсянки с молоком — не будь лохом не ходи в супер маркет, заведи корову, изучи ее анатомию, научись доить, выпасай ее каждый день будь настоящим овсянкоедом, а не готовоскупщиком :)

Не, предпосыл не правельный :-)
Воспользоватся гугл мапс апи — особого ума не надо. Можете вы, а может и старшекласник, который иммет некоторое поверхностное представление о вебе и жабаскрипте.
Вот другое дело, если вам нужно создать какойнить аналог гугл мапс.

Школьник этого точно не сможет зделать, насчет вас ( да и меня) имеються сомнения :-)

Я смогу так как доводилось делать под андроид карты на flashbuilder (ну вот так захотел заказчик так как существующие карты его чем-то не устроили) да и игровых проектов несколько было, например для той же войны племен когда-то делал карту, но вот вопрос нужно ли это 99 из 100 программистов, которые пойдут первым путем не только потому что ума не надо, а потому что это значительно ускоряет разработку, и позволяет использовать надежный, отлаженный, готовый механизм не нагружающий собственные сервера?

Лучше знать алгоритм быстрой сортировки, чем уметь правильно строить запросы на SQL

Лучше читать Таненбаума, Кнута, Вирта

Для SQL надо читать какого-нить Дейта, например. Это не далеко ушло от указанной троицы...

ru.wikipedia.org/wiki/Дейта этого что ли? ;)

www.books.ru/...-na-sql-740484 и www.ozon.ru/...ail/id/7246798 сравните отзывы и подумайте что будет интересенее 9 из 10 начинающих в SQL а кому хватит и этого для большинства работ java2s.com/...ogSQLServer.htm

Для большинства начинающих хватит: www.ozon.ru/...ail/id/1635141 , причем выше крыши, причем можно даже всю не читать. А можно вообще без этого всего, ибо rails и прочие джанги успешно маскируют эти скучные вещи :)

Но для того чтобы «правильно строить запросы», стоит разобраться зачем в аббревиатуре RDBMS буква «R». Я, кстати, скорее про www.williamspublishing.com/...459-0788-8.html

Ну хоть не Кнута и Вирта с Таненбаумом ;) Собственно я о том, что качественная литература еще не значит актуальная. И даже если это актуально для одного человека,а то не значит что для всех. Так вот товарищ ... доказывал что это (Кнута и Вирта с Таненбаумом) должны читать все , остальные быдлокодеры, а я сравнил актуальность этого чтива с актуальностью знания апи социалок, и омг ЧСВ задротов, не способных воспринимать реалии как должное и адаптироваться к происходящему, было задето, и давай меня троллить, ну и такие же умники поквакать в унисон :)

В плане «что читать» — дело вкуса. Например, у Кнута, кроме «Искусства программирования», которое именно «читать», а не «смотреть когда надо», я бы точно не рекомендовал, есть еще и «Конкретная математика», с которой, возможно, ознакомится стоит, не must read, но почему бы и нет.

«Алгоритмы и структуры данных» Вирта — вполне занимательное техническое чтиво, книг с таким названием много, есть с примерами из разных ЯП, хотя бы пролистать одну из них, чтобы знать где в случае чего искать помощь лишним не будет.

Танненбаум — тут вообще все просто — если интересны темы, на которые он пишет «Операционные системы», «Компьютерные сети», что-то кажется еще про распределенные вычисления было у него — почитать стоит, если нет — то нафиг надо, получить хорошую оценку по соответствующим предметам можно меньшей кровью.

«Знание API социалок», как на мою ИМХУ, звучит как-то фигово. С социалками никогда не работал, с RPC’шными API сталикваюсь постоянно: чего там нужно именно «знать» — не совсем понимаю. Опыт работы с соответствующими протоколами и библиотеками? — Полезно, хотя ничего сложного в этом нет, примеры и библиотеки легко гуглятся, несколько сложнее придется, если что-то идет не так, но в конечном счете все решаемо. Но, еще раз, это вопрос опыта: сталкивались с этим — будет немного легче, нет — будет немного сложнее. «Знать» конкретные вызовы на память — это вообще несерьезно.

Если бы все так отвечали то не было бы и постов про апи социалок :)

Разница в том, какие заказы более денежные, взбивание яиц или изготовление миксеров. И какие специалисты более ценны, незаменимы и высоко оплачиваемы. :-)

Например миксер экономит мне 10 минут в неделю, приблизительно 5 часов в год, за 3-4 года в 15-20 часов*25$ в час=375-500$ долларов я неявно завработаю на миксере, а человек его продавший максимум 50$. Например продажа фреша приносит мне в день 100 грн дохода за год пускай 30 000 грн, а сколько производитель скоковыжималки заработает на ней 500-1000 грн! И таких примеров думаю можно набрать много. Но ЧСВшники в свое время вынужденные читать литературу (которую я кстати тоже читал) никак не могут смириться с тем что сейчас в этом потребность существенно ниже и навязывают здесь свое мнение обзывая всех формошлепщиками, недоучками, быдлокодерами. А я с радостью забыл те времена, когда надо было на ZXSpectrum строчить машинный код с журнала моделист-конструктор, чтобы поиграть в loderuner, сосредоточившись на действительно создании игр а не выдрачивании машинного кода!

Это чисто медицинский симптом: Как у человека превращающегося в зомби (в труп) снижается температура тела, так и украинского программиста наблюдаются определённые симптомы в процессе превращения в индийского программиста. :)

Какие-то трусливые девелоперы пошли, всего боятся: матана, ЦПП...
Какие-то трусливые мужики пошли, всего боятся: проституток, ЗПП...

Теория алгоритмов и теория вероятностей — это какаято незначительная часть всякого матана...

Математический анализ программисту не нужен, идите в анус.

и после этого, некоторые люди пытаються доказать свое происхождение не от обезьяны...

Что несешь, вообще окуеть, зачем ВСЕМ программистам знать что такое ротор или тензор?

(не всем)
— Почему вы не наняли специально обученную обезьяну?

— Он дешевле.

— Почему вы не наняли специально обученную обезьяну?

— Он дешевле.

Ля-ля.

И все же:

зачем ВСЕМ программистам знать что такое ротор или тензор?

Вас ведь не про цену спрашивали и не про человека, а про __необходимость__ знания матана (не матиматики, а именно матана).

В приложениях очень часто может потребоваться использование разнообразных вычислительных методов, так что без знания математического анализа (пределы, дифференциалы, интегралы) и вычислительной математики может быть довольно туго. Но основанием вычислительной математики есть высшая алгебра (матрицы, детерминанты) — так что ее тоже полезно знать. Однако чаще всего «по жизни» если чего-нибудь «такого» и потребуется, так это — основ дискретной математики.

В 90% достаточно статеек на хабре или англоязычных «хабрах». Вот только чтобы понять как оно работает, а не просто скопировать код, матан и нужен. Хотя тупое копирование кода, без понимания, тоже часто решает текущие проблемы, откладывая будущие проблемы на потом.

В 90% достаточно статеек на хабре или англоязычных «хабрах». Вот только чтобы понять как оно работает, а не просто скопировать код, матан и нужен. Хотя тупое копирование кода, без понимания, тоже часто решает текущие проблемы, откладывая будущие проблемы на потом.

+100500

Я б даже сказал не «тупое копирование кода», а «тупое копирование алгоритма».

Однако чаще всего «по жизни» если чего-нибудь «такого» и потребуется, так это — основ дискретной математики.

Согласен на 101%

В приложениях очень часто может потребоваться использование разнообразных вычислительных методов

«очень часто может», так «очень часто» или «может»?
Где матан в:
— корпоративном портале;
— твиттер клиенте под андроид
— веб-морде для почты;
— мультимедиа библиотеке (если и проигрывает музыку, то через стандартную либу);
— файловом менеджере;

— мега-распределенной системе вычислений (суть в системе, а не в конкретных вычислениях).

ее тоже полезно знать.

Полезно и нужно — это разные понятия (уже наверное 10-му это рассказываю, БЛ...). Полезно знать экономику, физику, графический дизайн и тд. А нужно ли?

Знание матана нужны очень узкому кругу специальностей (ДСП и тд)

php-шнику тоже матан не нужен.

Знание матана(и нетолько) нужны очень узкому кругу проектов на рынке Украины.

очень узкому кругу проэктов на рынке Украины.

Нет:

нужны очень узкому кругу специальностей

Не согласны, так расскажите где нужен __матан__ в БэнкОфАмерика и тд, я там список привел выше. По списку:

в

— твиттер клиенте под андроид

сделанном в Украине не надо, а вот в штатовской версии так-то и так-то.

я уже ответил, где и что используется.

не хотите, не учите. кто вас заставляет? в принцепе почти любую задачу можно решить без знания математики.

не хотите, не учите. кто вас заставляет?

Сейчас никто, а до этого Лидия Ивановна Якут.

Я не просил меня уговаривать. Я попросил вас обосновать свое утверждение, которое на мой взгляд не есть верным (я привел примеры: dou.ua/...ic/6101/#230413 ). Это к слову про знание дискретки :)

в принцепе почти любую задачу можно решить без знания математики.

Тогда к чему утверждения:

и после этого, некоторые люди пытаються доказать свое происхождение не от обезьяны...

В приложениях очень часто может потребоваться

?

Коментар порушує правила спільноти і видалений модераторами.

habrahabr.ru/post/148839
«Экспериментальное определение характеристик кэш-памяти» — это та задача без которой не может прожить ни один программист. Это очень узкая специализация, те же кэши оптимизируют обычно сначала по количеству промахов, и только потом по скорости доступа.

И снова вопрос: Какой матан там используется? Дифуры? Компланчик?

Ну как? Как можно назвать себя програмистом? если не можешь определить характиристики кэш-памяти по второй производной?

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

в принцепе почти любую задачу можно решить без знания математики.

NewType ниже ответил

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

и матан им не нужен.

почти любую задачу можно решить без знания математики.

Разница будет в том, насколько качественным будет решение.

почти любую задачу можно решить без знания математики.

Разница будет в том, насколько качественным будет решение.

Давайте таки различать математику и ЦС.

P.S. Поправьте тему, шоб получить более полезные результаты.

>мультимедиа библиотеке (если и проигрывает музыку, то через стандартную либу);

Стандартная либа? ORLY?

Стандартная либа? ORLY?

Сторонняя либа.

А как насчет angry birds? Готовая либа физики, ой, а она же тормозит и с багами, кто же нам напишет простую физику не бажную, для нашей простой аркады под телефончик. И уж точно не призывать насиловать людей, которые вам ничего не делали.

И что, программисты по умолчанию должны формулы расчетов траэкторий объектов помнить ?

А что разве кто то вообще должен по умолчанию что-то помнить?

А как насчет angry birds?

А как частный пример доказывает общность?

Это единственная игра с физикой в мире?

Это единственная игра с физикой в мире?

А если нет, то что?
Правильный вопрос: Все программисты пишут графические (физические) движки для игр?

Еще раз:

А как частный пример доказывает общность?

Физические движки пишут не все, но не всегда удобно брать готовые движки, идеального движка нету, и если вдруг нужно будет что-то дописать, или исправить — кто это будет делать? Мало того, что бы использовать нормально движок, или даже сравнить и выбрать какой то движок — нужно понимать на что они способны и как сделаны.

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

Согласен, но вы XNA видели? Там есть приличная библиотека операций над матрицами. Так что можно ваять 3D без понимания сути дела (тем более, что названия методов там не Add или Multiple, а Move, Rotate etc.

Что бы применить этот Move и Rotate — все равно нужно матрицы понимать, сделаешь не в том порядке, получишь непонятную штуку.

А ещё там есть — Vector3, а у него методы — Cross,Dot, Normalize — вот что они делают? Скажем нам нужно кликая мышкой по экрану в координате Х,У, определить — по какому треугольнику в каком объекте — пользователь кликает, и в какую точку на самом треугольнике, вот как это все сделать при помощи всех этих Cross, Dot, Normalize у векторов и Move, Rotate у матриц? Конечно, в интернете полно примеров как их сделать, но примеры общие, их нужно ещё адаптировать под то что у тебя есть, под свой язык, и свою платформу. А что если нужно ещё это оптимизировать? Под какой то частный случай, для которого тот пример который ты нашел — делает лишнюю работу?

Те классы в XNA — они конечно удобные, но они не избавляют от необходимости хоть чуть чуть знать математику. Хотя в принципе можно и не знать, но быть способным быстро в ней разобраться)) Моя мысль не о том — что каждый обязан знать, моя мысль о том, что без математики не обойтись. В геймдеве точно.

Скажем нам нужно кликая мышкой по экрану в координате Х,У, определить — по какому треугольнику в каком объекте — пользователь кликает

Для этого в бэкбуфер или в текстуру рендерится теневая сцена как обычный flat color, без шейдинга, в которой цвет пикселя по X,Y соответствует порядковому номеру треугольника.

Это не единственный вариант, можно решит эту проблему математически — берется X,Y на экране, projection и view матрицы, и в обратную строну перегоняем координаты с экранных в мировые, получаем луч. Потом уже смотрим пересекается ли луч с боундингбоксами разных обьектов, если с каким то пересекается — перебираем его треугольники — и смотрим с каким пересекается.

Тут же сразу есть алгоритм для Ray-Triangle пересечения — алгоритмом — www.cs.virginia.edu/...ntersection.pdf там же и математика. Хотя есть и пример на Си, можно его тупо скопировать, и не вникать в алгоритм, тут не поспоришь.

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

Хотя первый — очень простой, и математики — минимум, согласен.

берется X,Y на экране, projection и view матрицы, и в обратную строну перегоняем координаты с экранных в мировые, получаем луч.

Есть готовые:
OpenGL — gluUnProject()

DirectX — Unproject()

Тут же сразу есть алгоритм для Ray-Triangle пересечения — алгоритмом — www.cs.virginia.edu/...ntersection.pdf там же и математика. Хотя есть и пример на Си, можно его тупо скопировать, и не вникать в алгоритм, тут не поспоришь.

А если треугольников 200,000 в одной сцене? Будем считать очень долго. Таким алгоритмом не отсеешь лишние треугольники, разве что только те, что за пределами вьюпорта.

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

А часто ли это надо? Обычно первого треугольника (объекта) достаточно. Ведь цель этого, либо подсветить выбранный объект, либо сделать его полупрозрачным, либо потянуть его для вращения, либо приложить силу и разрушить :)

Но если мы уж затронули графические

А я то думал что мы говорим о дискретке:

А как частный пример доказывает общность?

Так себе аргумент. Там физика чуть ли не школьная (ну первый курс максимум). Кстати, в World of Goo — где физическая модель посложнее будет, тоже всё жиждеться на трёх простейших законах.

Ну так дело не знание физики, а именно математика, что бы реализовать симуляцию этих законов. При этом, что бы оно не тормозило, и что бы объекты быстро двигающиеся к примеру не проваливались/не пролетали сквозь стены.

А ещё, хоть это не матан (но математика), но нужно ещё писать код для проверки коллизии. Что бы определить — в какой точке тело описанное окружностью, сталкивается с многоугольником.

Я извиняюсь, но там всё настолько примитивно, что достаточно знаний на уровне 11 класса школы, в частности тригонометрии (а вы думали почему птицы круглые — элементарно же проверять, с чем они столкнулись) и на уровне первого курса любого айти — факультета — механики. Это я, естественно про энгри бёрдс, боюсь представить что там, наприиер, с Портал.

Ну если бы все так хорошо знали математику на уровне 11 класса школы, или первого курса — наверно и темы такой не было бы как эта? И в энгрибердс есть прямоугольники и многоугольники, и они тоже могут сталкиваться друг с дружкой)

Многоугольники? Что то не помню. Прямоугольники и треугольники есть, но с ними работать не сильно сложнее, чем с кругом. А вот куда в энгри бёрдс можно приткнуть матан, я не знаю.

Вообще, тема о математике и информатике, а не только о матане.

Если что.

Вообще, тема о математике и информатике, а не только о матане.

Так а зачем вы его вписали? Если что.

P.S. Это к тому почему программисту надо знать психологию (восприятия, кажись так называетсо)

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

Но здравомыслящие люди понимают, что чем больше дополнительных знаний они имеют по CS, математике и т.п. тем в более выгодном положении они находятся. Очевидно же.

Если эти знания не применимы на текущем месте работе, вполне вероятно что они позволят в будущем найти более интересную/высокооплачиваемую работу.

Если знания не применять, они теряются. В сухом остатке будут разве что какие-нить воспоминания о том чего гуглить. И то не у всех: память странная штука

Знания теряются, идеи остаются.
Это как, допустим, вы учили в университете криптографию, потом не использовали её n лет.

Попалась задача, где нужно работать с криптографией, и не смотря на то, что вы не помните всех подробностей, вы понимаете что такое поточное\блочное и ассинхронное шифрование. Зачем нужны сертификаты, MACи и т.п. Имея эту базу, вам будет намного проще сориентироваться и решить эту задачу. Более того, еще до начала решения задачи у вас в голове будет некоторое понятие о том, можно ли её вообще решить в текущей постановке с использованием определенного подхода.

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

С другой стороны — набивать в себя знаний только потому что вроде как каждый должен это знать, «на ДОУ так сказали» — я бы не стал. Может получиться не более стройная картина мира, а более вязкая каша в голове. Два противоположных примера: в школе/универе есть тенденция забывать все выученное за пределами аудитории: там была математика, а тут теория поля, — названия разные, значить математику мы из мозга достаем, засовываем туда теорию поля, и... «черт, нифига непонятно». Обратный пример: изучение новых ЯП, не раз слышал жалобы «у меня тут питон с пхп перемешались, я терь ни на том, ни на том писать не могу быстро, сложно переключиться».

Ну и плюс к тому: ориентироваться на знания которые вроде бы как бы есть, но на самом деле давно и успешно забыты, как на «перейду на новую работу и буду использовать, или свою компанию создам» — тоже не стоит, это в большинстве случаев таки самообман. Придется «вспомнить все», долго и мучительно или быстро и мучительно, но точно не «сел и сразу начал делать».

Набивать в себя знания не получится, это должно нравиться.

Обратный пример: изучение новых ЯП, не раз слышал жалобы «у меня тут питон с пхп перемешались, я терь ни на том, ни на том писать не могу быстро, сложно переключиться».

Эта проблема не критична, мозг перестраивается через 15-30 минут при условии хорошего владения языком. Едва ли вам очень мешают знания русского при разговоре на английском.

Ну и плюс к тому: ориентироваться на знания которые вроде бы как бы есть, но на самом деле давно и успешно забыты, как на «перейду на новую работу и буду использовать, или свою компанию создам» — тоже не стоит, это в большинстве случаев таки самообман. Придется «вспомнить все», долго и мучительно или быстро и мучительно, но точно не «сел и сразу начал делать».

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

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

Хорошо сформулировали.

Я ещё думаю, что такой подход и понимание можно расширить на самые широкие сферы разных задач.

Поэтому я так заинтересовался математикой и информатикой.

Матан хорошо прочищает мозги.

Не знаю, не пробовал.

Ну дык попробуй, что это за девелопер такой, который кокс не нюхал.

Стыдитесь!

Я и так не сеньор в 23 года, куда уж дальше.

Нинужно, лучше *морфизмы ворочать, а не этой хyйней страдать.

Підписатись на коментарі