Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.3K subscribers
1.19K photos
24 videos
933 links
ЛаМПовое с Бобровским
Download Telegram
Продолжение разбирательств с правильным обучением ООАП
https://vk.com/wall-152484379_2250
Когда проработал два года в Гугле и не выдерживаешь вот это вот всё, ищешь куда бы свалить )))
https://news.ycombinator.com/item?id=20911907
Other than having "Google" on my resume there is nothing special or applicable outside of Google. Most tools are internal, isolated and the choices are restrictive. Management is shitty - micro-management is in full bloom, display lack of management knowledge, skills and there’s plenty of abuse of power. They don’t show their appreciation to what we do. All developers are very competitive. My entire time of over a year in 2 different teams is spent in isolation and self learning without much help or directions. I’m currently actively interviewing outside.
Я решил тут больше не дублировать отдельные ссылки, а раз в неделю, как в рассылке, буду выкладывать подборку материалов за последнее время. А так буду тут отдельно постить разные оригинальные полезняшки.

6-19 ноября 2019 г.

Gradual typing -- склейка между динамически и статически типизированным кодом
https://vk.com/wall-152484379_2282

Про доказательства правильности кода и с какого языка лучше начинать
https://vk.com/wall-152484379_2277

Program Synthesis как парадигама, которая подчинит себе нейронные сети
https://vk.com/wall-152484379_2271

Почему Robert Harper так добивался исключения ООП из Карнеги-Меллона
https://vk.com/wall-152484379_2268

Три части про глубокую работу Deep Work
https://vk.com/wall-152484379_2245
https://vk.com/wall-152484379_2261
https://vk.com/wall-152484379_2263
По оценкам Forrester, к 2024-му году 75% компаний будут инвестировать в переобучение сотрудников на новые скиллы, подразумевающие эксплуатацию AI-технологий. По данным IDC, к 2025-му году 90% корпоративных приложений будут включать встроенную AI-функциональность.
А на следующий год Forrester предсказывает пиковые инвестиции в AI-стартапы, хотя, судя по всему, этот пик будет последним, потому что стартаперская AI-экосистема уже перенасыщена, и теперь все ждут отдачи от инвестиций.
Интересная статья про алгоритм MuZero -- достижение сверхчеловеческого уровня в 57 играх Атари, в шахматах и Го, в условиях, когда правила игр алгоритму не сообщаются.
https://arxiv.org/pdf/1911.08265.pdf
Самые популярные языки программирования по версии TIOBE ноябрь 2019.
Java первая, но к ней вплотную подобрался Си, и возможно в конце года выйдет на первое место!
3-й Python, 4-5 места тасуются между C# и C++, в десятке JavaScript, PHP, SQL.
https://www.tiobe.com/tiobe-index/
TIOBE много ругают что дескать это трэш, но как минимум это достаточно интересный срез ИТ с хорошей историей.

Стабильность Java поддерживается прежде всего мощной экосистемой, активно эксплуатирующей другие отличные языки :) Фреймворки Spring, Vertx, Kafka, Spark в существенной степени завязаны на Scala, + GraalVM + быстро растущий Kotlin.

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

Кто кодит на Си/С++, очень рекомендую присмотреться к Rust.
👍2
Немного странного :)
I. Про gradient hacking -- ситуацию, когда мы создаём нейронные модели, "рассуждающие" на уровне выше человеческого, и у нас есть сильное подозрение, что они нас могут "сознательно" обманывать. Мы их вроде обучаем-обучаем, они показывают высокую достоверность, а на самом деле получается фейк.
У нас есть инструменты проверки обманчивости, но они дорогие, и мы можем применить их только один раз, когда модель уже обучена. Но если она достаточно сообразительна, то сможет сформировать внутри себя фейковую модель, которую и подсунет для финального тестирования.
https://www.lesswrong.com/posts/uXH4r6MmKPedk8rMA
Решения такие:
1) тактическое: стараться создавать такие нейронные модели, которые обучаются как можно меньшим количеством эпох, и как можно большими объёмами данных (в идеале, всей обучающей выборкой), или как минимум, хранить всю историю обучения;
2) стратегическое: переходить к прозрачным символьным технологиям формальных доказательств.

II. "Where Do You Think You’re Going?: Inferring Beliefs about Dynamics from Behavior"
https://papers.nips.cc/paper/7419-where-do-you-think-youre-going-inferring-beliefs-about-dynamics-from-behavior.pdf
Про framework of inverse reinforcement learning, где много цитат из "Гарри Поттера и методов рационального мышления"
Рекомендую ГПиМРМ: https://hpmor.ru
Куда сложнее всего было поступить в 2019-м?
1) ИТМО, математика. 99,8 -- средний балл ЕГЭ поступивших
2) ВШЭ, математика. 98,9
3) МИФИ, математика. 98,8
4) МГИМО экология, и дальше уже пошли гуманитарии :) 98,6
============

Посты за неделю.

Про саморазвитие программиста
https://vk.com/wall-152484379_2303

Последний набор на мои курсы в 2019-м
https://vk.com/wall-152484379_2300

Самый первый принцип ООП
https://vk.com/wall-152484379_2297
+ рассуждения про обучение OOD
https://vk.com/wall-152484379_2294
https://vk.com/wall-152484379_2285
Кобол 1959 вечно жив! :)
via The 18th edition of the BElgian-NEtherlands software eVOLution symposium
http://soft.vub.ac.be/benevol2019/
Самые востребованные профессии в 2025-м году:
1) Программист
2) Инженер
3) 3D-дизайнер
4) Маркетолог
5) Спец по ИТ-безопасности
6) Урбанист
7) Биотехнолог
8) Спец по альтернативной энергетике
9) Технолог автоматизированных систем
10) Спец по пищевой промышленности
по данным Центра "Гуманитарные технологии" при МГУ
За первую половину 2019-го года количество вакансий для айтишников в США выросло на 32%, и сейчас составляет 918,000 незакрытых рабочих мест.
https://www.wsj.com/articles/americas-got-talent-just-not-enough-in-it-11571168626
Сотрудников взять негде: за год на рынок пришли 60 тысяч выпускников университетов по computer science, 20 тысяч разработчиков после онлайн-курсов и 80 тысяч иностранцев по визе H-1B.
"Сегодня каждая компания стала технической, -- заявил Mehul Patel, CEO рекрутингового портала Hired. Будь вы Capital One, или Disney, или American Express, вам надо думать прежде всего о найме грамотных ИТ-инженеров".
Если в 2016-м время поиска программиста под вакансию составляло 55 дней, то сегодня оно возросло до 66 дней. При том, что каждая незакрытая вакансия приносит компании убыток в размере 680 долларов в сутки.
Главная тут беда, отмечают практически все рекрутеры, это низкая вера людей в самих себя :) "Мы можем обучить почти каждого техническим скиллам, но не можем научить людей поверить в свои возможности, в то, что это им вполне по силам, не можем научить проявлять интерес и энергичность и не бояться активно искать хорошую работу".
Новый тренд -- интервью с искусственным интеллектом!
Сеть GPT-2 (unsupervised language model), созданная в OpenAI и обученная на 40 гигабайтах текста,
дала интервью очень солидному изданию Economist.
https://worldin.economist.com/article/17521/edition2020artificial-intelligence-predicts-future

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

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

Что такое GPT-2
https://habr.com/ru/post/440564/
Практически все 100%, кого я консультирую по трудоустройству, имеют неверное представление о процессе найма. Все ошибочно думают, что важны прежде всего хард-скиллы, но на самом деле, совсем нет. Успешность устройства на работу слабо связана с вашими техническими навыками. Конечно, минимальным требованиям надо соответствовать, но ценят в вас ИТ-менеджеры прежде всего не технические скиллы.
Свежее исследование американской ИТ-ассоциации CompTIA.org говорит, что самый важный скилл -- умение самостоятельно решать задачи и проблемы (55% менеджеров оценили важность). Второй 45% -- умение работать в коллективе, третий 34% -- опыт, четвёртый 34% -- глубокие технические знания конкретного фреймворка, и пятый 31% -- умение адекватно общаться с другими.
Демонстрируйте максимальную самостоятельность, умеренную дружелюбность и спокойную адекватность, ведите себя на собеседованиях по взрослому :)
Francois Chollet, создатель фреймворка машинного обучения Keras, опубликовал мощную работу, которая уже разошлась на ссылки в научных кругах -- это методика, как оценивать AI-системы не по качеству решения ими специфичных задач, а сравнивать с универсальным человеческим интеллектом в целом.
https://arxiv.org/abs/1911.01547
Chollet в частности предложил набор из нескольких сотен задачек для такой оценки как человека, так и программы, можно скачать и потестить свой интеллект.
https://github.com/fchollet/ARC
Задачки абстрактные какие-то в духе тетриса, и я честно говоря с ходу ничего не понял 😄
Слава роботам!
Какие хард-навыки станут ключом к работам грядущего десятилетия? Это прежде всего скиллы в сфере машинного обучения и data science, говорит исследование SlashData, в котором было опрошено 20,500 человек из 167 стран.
https://insights.dice.com/2019/11/29/data-scientists-machine-learning-skills-key-future-jobs/
В сфере ML/DS собираются развиваться (или уже активно качают свои навыки) 45% айтишников. 33% отмечают важность проектирования клиентской части, 25% топят за нативную облачную разработку и контейнеры, 24% за эффективное управление проектами, и 23% за DevOps. В опросе явно смешали всех -- и бэк, и фронт, и менеджмент, и администрирование, но в таком случае явное превосходство машинного обучения над всеми другими темами ещё более выразительно.

Из самых важных навыков в цепочке джун -- инженер -- сеньор -- ИТ-директор везде тотально проходит знание SQL и Python, к которому подтягивается R.

Зарплаты в США в этой сфере $7500+ для джунов с опытом 1-2 года, $9000+ для миддлов 3-6 лет, $11700+ для сеньоров 5-8 лет и $14000+ для менеджеров с аналогичным опытом.
То, о чём так долго твердили математики, добирается до мэйнстрима! Про сочетание формальных "прозрачных" подходов с нейросетевыми чёрными ящиками я например тут рассказывал: https://vk.com/wall-152484379_2271
И вот сама Microsoft сообщила об именно такой технологии Neurosymbolic AI (не нейронное, а понятное человеку символьное кодирование смысла), которая уже показывает очень приличные результаты на датасете MathQA / AQuA-RAT из 100,000 профильных задачек.
Статья очень хорошая и понятная, и внутри ещё ссылочки полезные:
https://pureai.com/articles/2019/12/05/neurosymbolic-ai.aspx
Ещё в тему, от Dr. Gulwani ("a programmer’s programmer"):
https://www.microsoft.com/en-us/research/blog/program-synthesis-and-the-art-of-programming-by-intent-with-dr-sumit-gulwani/
===
И ну очень красивая и необычная развлекалка, своеобразная текстовая рогулька, где мир генерится автоматически AI (всё в исходниках):
https://www.aidungeon.io/
Как это устроено внутри:
https://pcc.cs.byu.edu/2019/11/21/ai-dungeon-2-creating-infinitely-generated-text-adventures-with-deep-learning-language-models/

"игрок: я призываю жирафа.
мастер: ты произносишь заклинание так громко, как только можешь, высоко поднимая руки. жирафы появляются из ниоткуда и бегут прямо на тебя. они бегут так быстро, что едва не сбивают тебя с ног. ты тут же ловишь их и связываешь."
В 2017-м Китай тратил 17 млрд. долл. на искусcтвенный интеллект, а в 2020-м потратит уже $70 млрд. Причём китайцы опережают США уже не только по общему объёму AI-исследований, но и по специализированным военным AI-проектам. Однако в ближайшие годы Китай основные средства направит на разработку фундаментальных алгоритмов, робототехнику и интеллектуальные инфраструктуры, а вот США усилит военные акценты.
В США 5 из 10 топовых университетов, где ведутся наиболее мощные разработки по AI, в Китае их три. Ещё по одному в Индии и Канаде.

Amazon выпустила полноценную IDE для ML-проектов с поддержкой полного цикла и ноутбуков
https://aws.amazon.com/sagemaker/

=== материалы Школы за 28 ноября -- 9 декабря 2019 г. ===

Какая сегодня ситуация в суровом энтерпрайзе?
https://vk.com/wall-152484379_2318

Стоит ли сегодня ставить на Rust?
https://vk.com/wall-152484379_2327

Заключительный 6-й уровень аутентичной математики
и про альтернативный путь
https://vk.com/wall-152484379_2338

Алгоритм саморазвития
https://vk.com/wall-152484379_2329
+ и ещё про это же
https://vk.com/wall-152484379_2303
Пятёрка самых быстрорастущих ИТ-профессий 2020-го года по отчёту Мирового экономического форума https://www.weforum.org/reports/the-future-of-jobs
Из-за быстрого развития ИТ работу потеряют 7 миллионов человек, в основном из административного и офисного секторов, и прочие белые воротнички.
А в самом айти быстрее всего увеличивается спрос на такие специальности:
1) Инженер по кибербезопасности. Нюанс в том, что почти на все такие вакансии будет нужен официальный университетский диплом;
2) Инженер по искусственному интеллекту и машинному обучению. Тут рулит прежде всего знание алгоритмов ML и программирования;
3) Data scientist. Ну это понятно :)
4) Фуллстек-разработчик веб-приложений. Это топ в плане доступности для самоучек, причём и оклады тоже очень приличные, и в целом перспективы тут остаются весьма стабильными. Минус, что и проекты обычно довольно рутинные, и придётся зубрить скучные веб-фреймворки;
5) Инженер DevOps.

В целом, эксперты WEF эти специальности даже называют долгосрочно доминирующими трендами, и грани между ними достаточно условные.
Сейчас классические стеки наподобие LAMP быстро становятся легаси, я сам не очень сперва доверял этому тренду (это же Facebook, Wordpress, phpBB и тысячи их), но энтерпрайзных подтверждений всё больше, вот например:
https://habr.com/ru/post/479694/
Куда же это всё идёт? Что грядёт на замену хотя бы классическому веб-мэйнстриму?

во-первых, заканчивается эпоха REST API, да, причём довольно странно: заменой на GraphQL (на хабре как раз об этом);

во-вторых, забываем про классические серверы, включая и виртуалки -- новая волна это serverless (ну это нормально);

в-третьих, забываем про CSS, вместо них будут так называемые design systems, что это:
https://css-tricks.com/who-are-design-systems-for/

в-четвёртых, вместо одностраничников SPA приходят прогрессивные веб-приложения PWA (с качественной поддержкой оффлайна);

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

В чём главная фишка такого стека? В том, что это реальная суперсила :) в одиночку за несколько часов на React/Gatsby например можно сделать то, что ещё 2-3 года назад коллектив пилил неделями. Работающий прототип стартапа можно сегодня собрать за один день!
Andrew Ng прорекламировал новый цикл курсов по ML / TensorFlow, на курсере:
"Courses 1 & 2 of deeplearningai_‘s newest Specialization is now available on Coursera. Training a model is only one step in building a working AI system. These courses teach you how to navigate some key deployment scenarios."
https://www.coursera.org/specializations/tensorflow-data-and-deployment
Этот цикл про то, how to get your machine learning models into the hands of real people on all kinds of devices.
Читал на днях кого-то из гуру по экстремальному программированию XP, и интересную фичу запомнил. Она хорошо известна в программной инженерии, но в форме мягкой рекомендации, а аджайлы по своему хороши тем, что такие рекомендации превращают в жёсткие обязательные требования, от которых уже не отмажешься, и добиваются правильного результата.

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

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

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

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