Apr. 2nd, 2018

vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
< ---------- начало перепоста ------------ >

Какой математике учить программистов


Меня спросил Борис Штейнберг, какой математике нужно было бы учить программистов. Я очень на скорую руку написал ему ответ -- но, возможно, помощь зала тоже поможет Борису (он университетский профессор, и ему эти ответы на вопрос нужны для дела, он не абстрактно интересуется -- он пишет учебные планы). Так что комментируйте, не стесняйтесь.

1. Я сужу по тому, сколько программистов вокруг меня вдруг добровольно начинали грызть какую-то математику, которой их не научили в вузе -- какая это математика? Так что это не "что я думаю", а что людям в жизни не хватает и они потом сами учат после вуза: этой математике и нужно учить в вузе.

2. Логика в количестве, но не старинная, а современная. То, что иногда называют "формальная философия": когда говоришь текстом, а потом вдруг формулами пишешь формальную структуру, которая проговаривалась текстом. Фишка в том, что эта логика оказывается не булевской, а как показано E.T.Jaynes, она извод байесовщины. Вот курс, который затрагивает самые азы этого всего, но без тяжёлой математики. По факту его по моим намёткам сделала Пион Гайбарян, и вот его онтика: https://thpectrum.livejournal.com/8785.html и отдельно развёрнут онтический минимум про байесовщину: https://thpectrum.livejournal.com/9338.html. Книжку E.T.Jaynes про байесовскую вероятность как логику науки смотри тут: http://b-ok.org/book/539703/d8b66c

Вот и нужно учить "по тяжёлой" математике и рассуждениям из этой книжки E.T.Jaynes, а ещё нужно добавить сюда понимание математики, достаточное для уверенной ориентации в вероятностных языках программирования (это я тоже отношу к логике): http://probabilistic-programming.org/

3. Программы = алгоритмы + данные. С этими "данными" завал: работа с типами почти нигде не обсуждается, алгебры данных как-то ускользают от внимания. Когда я показал книжку по моделированию данных Криса Партриджа А.Г.Кушниренко, он заметил, что "в другой терминологии это известно любому третьекурснику мехмата". Что ставит задачу: основы алгоритмики выучиваются к третьему классу начальной школы, а основы работы с данными -- вообще не трогаются, а как-то проходят мимо. Все эти выводимые типы, связь типов и операций с ними. Я не очень понимаю, какой раздел математики должен это обслуживать.

Сюда же я отнёс бы обсуждение собственно математики в программировании при дизайне каких-то DSL или даже языков программирования. Например, вот обсуждение дизайна работы с линейной алгеброй в Julia: https://www.slideshare.net/acidflask/designing-linear-algebra-into-julia (видео рассказа -- https://www.youtube.com/watch?v=C2RO34b_oPM). Очень поучительная презентация, там три тезиса (на примере работы с векторами и матрицами -- и не только в Julia): Claim 1. Julia's generic function system (multimethods/ multiple dispatch) is ergonomically designed to capture mathematical abstraction. Claim 2. We're only just learning how to explain abstractions clearly to a computer. Claim 3. The future of high performance lies in composable abstraction.

Что из математики нужно, чтобы программисты могли разобраться, о чём идёт речь в подобных работах? Им же нужно постоянно работать с сочинением разных языков! И опять мы упираемся в современную логику и онтологию ("онтологику" -- где онтологии могут быть представлены, например, наборами многомерных векторов -- как в word embeddings, а не только логиками первого порядка), формальную прагматику (и, замечу, что в последнее время идёт сильнейший уход от семантики в прагматику и по факту игнорирование синтаксиса. Поэтому sic! формальная прагматика).

3. Численные методы в количестве: линейная алгебра, матан и обязательно линейная и нелинейная оптимизация. Без этого трудно будет с современными изводами глубокого обучения в частности и машинного обучения в целом (все эти Autodiff, дифференцируемые алгоритмы и т.д.). Дженсен Хуанг говорит, что современный исходный код -- это данные, а вот "компиляторами" для него служат разные нейронные сетки, автоэнкодеры, эволюционные оптимизации и т.д.. Вот с этими алгоритмами нужно разбираться. Математика эволюции (а она там есть в количестве) -- этому нужно тоже учить, без эволюционных алгоритмов сегодня никуда.

4. А ещё люди массово пытаются понять теорию категорий -- и огромные флеймы на тему "это не нужно для программирования, только мешает" против "это и есть суть программирования, это просто удобный мат.язык для размышлений о программировании". При этом баланс в дискуссии стремительно съезжает в ту сторону, что не просто теория категорий нужна, но и какие-то основы гомотопической теории типов (как они сами там говорят -- того места, откуда выросла когда-то и сама теория категорий, и которое затем породит много чего ещё подобного. Заодно там сразу ещё и выход на всякие coq, agda и прочие "автоматические доказательства").

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

Вместо знания доказательств нужно требовать умения решать задачи по изучаемой теме. Но даже и тут по-другому: не собственно решать задачи в голове, а с соответствующими современными инструментами -- с использованием какой-то алгебраической/логической системы (типа Mathematica или аналогичной), системы вероятностного программирования, системы численного программирования и т.д.. Математика изменилась, и инструмент математика сегодня -- компьютер, а не ручка-бумажка. Идея может быть от человека, а рутинные вычисления должны быть переданы компьютеру. Я знаю, это предмет отчаянных споров сегодня, но добывать огонь трением не комильфо, делать математику руками неправильно в 21 веке. Да, множество листочков, где нужно решать множество задач (4тысячи задач Демидовича -- хороший ориентир), и можно (и нужно) использовать компьютерные системы для рутинной работы, а голову для нерутинной. Да, эта мысль тяжело заходит классическим людям, и очень мало опыта того, как делать подобные курсы. Но это нужно делать. Доказывать должны компьютеры, а вот что именно доказывать -- это нужно придумывать, вот этому нужно учить. Да, холивар тут неизбежен, я понимаю.

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

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

Вот ещё ответ Сергея Абрамова на этот вопрос Бориса Штейнберга -- и он совершенно другой: https://www.facebook.com/sergei.abramov.96/posts/10215640452860742 (а ещё мне там не нравится военная метафора про "спецназ". Ага, "научная рота", "программистская гвардия", "генерал-программисты". Как будто других метафор нет в милитаризующейся стремительно стране).

Ну, и ещё можно пообсуждать то, что "вопрос бессмысленный, ибо нет уже просто программистов -- все они абсолютно разные, и всех поэтому нужно учить по-разному, а ещё есть data scientists, data engineers и что мы с ними будем в плане математики делать?". Но я это обсуждать не буду: на не очень внятный вопрос я даю не очень внятный ответ, так что в этом плане мы с Борисом квиты.
< ---------- конец перепоста ------------- >
В п.2 [profile] ailev несколько перебарщивает. Возможно кому-то байесовская надстройка более по душе - ну организм так устроен. Но есть и другие организмы. Помню был хайп про объектное программирование. Казалось, функционалов таки задолбают в ноль. Ан нет, уж очень ненулевое множество тех, кому функциональное удобнее.

А в п.7. недобор - навыки прикладного программирования-моделирования нужно получить еще в пору учебы, когда есть наставник, потому что внятного "справочника" все еще нет. Вот есть например "Справочник по элементарной математике" Выгодского - он вполне заменит всю неполносреднюю школьную математику. Если кто составит такой же "для программистов", то пожалуй можно будет.
Впрочем в обоих (мы точно про математику говорим ? - ВК :-) пп.3. [profile] ailev сам называет некоторые отрасли "традиционной", которые полагает необходимым освоить в период учебы.
vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
< ---------- начало перепоста ------------ >

Скажу слово.



Я в России строил всю жизнь, и делал множество СТУ (Специальные Технические Условия) на противопожарные системы торговых центров, примерно на 22 центра. Везде "консультационные договоры" от 1,5 млн рублей и выше, обычно в районе 4-х. Везде свои консультанты, которые являются родственниками главы местного МЧС. Нигде нет трубы с напором воды из города, дают 100 мм, из неё кое-как вода льётся, из-за чего необходимо строить огромные бассейны для запасов воды для спринклерных и дренчерных систем пожаротушения (дренчер создаёт непроходимую для огня стену воды, спринклер её разбрызгивает кругом), инвесторы изо всех сил стараются за деньги эти системы исключить. Главный вопрос в ходе проектирования пожарных систем — "как избавиться от спринклерной системы". А ведь именно эта система, а не сигнализация, ДЕЛАЕТ ПОЖАР ПРАКТИЧЕСКИ НЕВОЗМОЖНЫМ, когда с потолка потоком льётся вода. Нормы соблюсти невозможно, они все супротив друг друга работают. Количество датчиков все стараются минимизировать, системы поставить подешевле, на производителей систем и подрядчиков огромное давление по стоимости, сравните стоимость датчиков "Рубеж" c такими же от "Honeywell". Экспертиза проекта везде за взятки, экспертов там толковых нет, поскольку им платят копейки. На небоскрёбы норм нет. На большие торговые центры норм нет. На атриумы норм нет. На стеклянные кровли, на генераторы и хранилища дизельного топлива внутри дата-центров, на временную электрику и пожаротушение во время строительства — нет. Вы понимаете, эти люди просто не умеют написать технические правила как нужно строить, которые есть во всём мире, если это не Зимбабве или Малави. Все инспекции, это просто визиты за деньгами, с вымогательством, а никакие не проверки. Когда у тебя большой торговый центр, чекисты присылают тебе своего штатного сотрудника на 30% акций, ты ему платишь, он отдаёт наверх половину, тот снова половину, и так до самого Светлейшего. То же самое во всех надзорных органах, в центрах сертификации, в Экспертизах, в ГАИ, МВД, везде. Насквозь гнилая система, и построили её по образцу воровских общаков, надёжно себя зарекомендовавших. Бесжалостный, тупой алгоритм, вовлекающих всех в круговорот теневых "услуг", размер экономики которого давно сравнялся и превзошёл "белую" экономику России.

В США система пожаротушения строится вдоль улиц отдельно от систем водопровода. В ней давление 6 атмосфер, 84 PSI, расход воды 20 тонн в минуту, специальные толстостенные трубы, открытые гидранты для подключения пожарных рукавов и заправки пожарных машин. Первое что видишь возле школы своих детей, и возле своего дома - огромный красный или жёлтый гидрант на газоне, между тротуаром и дорогой. Нормы строжайшие, не обойти, не перепрыгнуть. Редкое здание не оборудовано спринклерной системой, а уж тем более то, где люди собираются толпами, такого вообще ни разу не видел. Пожарные помпы спринклерных систем работают от автономных дизельных двигателей со своими танками с горючим, поскольку при пожаре первым делом электрика в здании вырубается. Нет дизельных помп - стоят ATS и генераторы на все основные системы здания. В светильниках указателей выходов - батареи, поэтому они всегда светятся. В каждой комнате есть минимум один никогда не отключаемый обычный светильник, в нём тоже своя аварийная батарея. Ситуация пропадания света исключена нормами проектирования. В любом проекте жирной пунктирной линией показаны пути эвакуации людей, и расстояние до выхода, которое жёстко нормируется, его нельзя обойти. Почти все электроцепи в жилых домах с 2017 года оснащаются микропроцессорной защитой AFCI, которая чувствует горящую дугу короткого замыкания, и отключает электропитание, эти микропроцессоры внедряются всё больше с каждой ревизией кода NFPA NEC. Очень жёсткие нормы по автоматическим системам вентиляторов дымоудаления, которые выбрасывают ядовитые газы на улицу при пожаре. В ресторанах над плитами — стандартные системы Ansul, они выключают при пожаре контакторы электрики, включают мощные вытяжки дыма, стартуют спринклерную систему, заливают всё водой, и врубают ревуны сирен, чтобы все убегали. Внутри каждой розетки стены пожарного отсека приклеиваются специальные красные противопожарные маты в форме коробочки, чтобы огонь через розетку не прошёл. То же самое вокруг встраиваемых светильников в потолке. Пенные системы для тушения горючего, которые способны за одну минуту наполнить ангар пеной до самой кровли. Специальные яркие мигалки-маяки повсюду на стенах для глухих людей, что не слышат сирен. Кнопки открывания автоматических дверей для людей на колясках. Идеальная исполнительная документация на здания в электронных архивах, в BlueBeam, SharePoint. Ответственность по страховкам многомиллионная, в долларах, и по людям и по имуществу (Тулеев упырь обещал по миллиону рублей, это жалкие 15 тысяч долларов, его грёбаные очки стоят дороже). Страховые компании повсеместно требуют Third Party Inspections. Отзыв лицензии на раз-два. Никаких липовых контор прокладок за 30 тыщ рублей, если отозвали лицензию, конец бизнеса и банкротство. Эксперты в Экспертизе все с личными лицензиями Профессиональных Инженеров, на которую учиться нужно после института ещё 5 лет, два дичайших по сложности экзамена сдавать. У всех людей по 30 стволов дома, автоматы, пулемёты, если такое случится, никто не будет жирного уёбка слушать про самопиар, это просто даже представить невозможно. Инженер Кольт сделал людей равными.



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


Для специалистов, вот все коды США по борьбе с пожарами. Миллионы людей спасёт тот, кто переведёт их на русский язык, начиная с NFPA 70, National Electric Code, который с 1893 года каждые два года оптимизируют и дополняют тысячи профессиональных инженеров, NFPA 13 "Спринклерные системы" и NFPA 25 "Инспекция, тестирование и эксплуатация водяных систем защиты от огня". Может наконец займутся делом на кафедрах английского языка в многочисленных политехах страны, где будущих инженеров готовят. Дайте каждому своему студенту по странице, пусть сделает за вечер, заодно и думать начнёт. Наверное, соберусь когда-нибудь и сам начну переводить, а пока читайте на английском.

https://www.nfpa.org/…/All-Code…/List-of-Codes-and-Standards

Кому нужен PDF - в личку.


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


Скиньте ваши кошельки Bitcoin, PayPal, Яндекс, какие-то ещё, никто не знает куда вам деньги переводить. Напишите кто вы, и какая у вас ситуация по кредитам и так далее. Многие хотят помочь, но неизвестно, как это сделать.


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


Люди в МЧС, у которых ещё есть мозги: проверьте, в каких зданиях нет спринклерных систем, сделайте с этим хоть что-то. Нанесите их на карту, опубликуйте, сделайте рейтинг опасности пребывания по понятной десятибалльной шкале. Школы, театры, вокзалы, университетские корпуса, торговлю, церкви, больницы. Отправьте ваших инженеров на три года работать в самых современных компаниях-подрядчиках по всему миру, проходить обучение и сдавать экзамены на Professional Engineer of Fire Protection, организуйте трансфер технологий, кодов, материалов, методик сертификации, методов проектирования. Да хотя бы втупую купите и переведите на русский язык штук триста современных проектов разных зданий, и чертежи, и спецификации из Германии, Англии, США, Франции. Или киньте клич, вам их русские инженеры наприсылают из разных стран забесплатно. Это же so easy.


И проверьте кто был арендатором в этом грёбаном кино. "Формула Кино" или кто ещё. У них должен быть согласованный вами проект. Посмотрите, в нём вообще система дымоудаления есть или нет?


< ---------- конец перепоста ------------- >
vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
Губернатор Кемеровской области Аман Тулеев подал в отставку. Об этом в воскресенье, 1 апреля, сообщает РИА Новости со ссылкой на региональную администрацию.

«Аман Тулеев подал заявление об отставке по собственному желанию с должности губернатора Кемеровской области», — говорится в сообщении агентства.

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

29 марта РБК писал, что решение об отставке Тулеева было принято до трагедии в торговом центре «Зимняя вишня», но показательное увольнение в ближайшее время не планируется. Агентство отмечало, что в данный момент это выглядело бы как решение, принятое под давлением.

73-летний Тулеев возглавлял область с 1997 года. Требования его отставки усиливались из-за состояния здоровья губернатора, которому трудно стоять без посторонней помощи, и его реплик в адрес участников митинга после пожара в ТЦ. Он назвал родственников погибших «бузотерами».

Во время встречи с жителями области Владимир Путин, отвечая на вопрос об отставке Тулеева, заявил, что это «не делается для красного словца на фоне трагедии». Он отметил, что для начала нужно выяснить, кто виноват в случившемся.

Тут все прекрасно.
1 апреля, не иначе. Не в понедельник, как бы выйдя на работу, не в марте, по свежим следам - как бы приняв ответственность.

Симптоматично, что начальственной мразоте не хочется, что бы "выглядело бы как решение, принятое под давлением". Это же быдло о себе и возомнить может, вот и Великий Утес, хоть и косноязычно, но то же самое гнет.

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

Profile

vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
vlkamov

June 2025

S M T W T F S
1 2 3 4 5 67
8 9 10 11 121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 13th, 2025 05:00 pm
Powered by Dreamwidth Studios