Нужна ли математика программисту?
На всех онлайн-курсах вам будут рассказывать, что это совершенно необязательно (главное несите деньги :), но в моей Школе математические знания хотя бы на уровне первого университетского курса крайне желательны.
Не исключаю, что дальше неначинающих программистов я буду брать только с математической подготовкой, и как минимум скоро буду делать математикам скидки. А кто у меня уже занимается, и имеет математическое образование или сейчас учится, напишите (с какими-то минимальными пруфами), скидка будет прямо сейчас.
На всех онлайн-курсах вам будут рассказывать, что это совершенно необязательно (главное несите деньги :), но в моей Школе математические знания хотя бы на уровне первого университетского курса крайне желательны.
Не исключаю, что дальше неначинающих программистов я буду брать только с математической подготовкой, и как минимум скоро буду делать математикам скидки. А кто у меня уже занимается, и имеет математическое образование или сейчас учится, напишите (с какими-то минимальными пруфами), скидка будет прямо сейчас.
✍18👍5👌2❤1🤔1
Умножение n-разрядных целых чисел занимает ...
Anonymous Quiz
26%
O(1)
17%
O(log n)
33%
O(n)
19%
O(n^m)
5%
O(m^n)
🤔6✍3👍2
Умножение log(n)-разрядных целых чисел занимает ...
Anonymous Quiz
12%
O(1)
59%
O(log n)
22%
O(n)
5%
O(n^m)
1%
O(m^n)
🤔17✍5
Поясняю за последний опрос.
Умножение n-разрядных целых чисел занимает время O(n), поскольку алгоритм умножения предполагает многократное сложение. При умножении двух чисел их необходимо многократно складывать друг с другом до получения результата. Количество необходимых сложений зависит от размера перемножаемых чисел, который квадратично увеличивается с ростом n. Поэтому время выполнения этой операции линейно растёт с ростом n.
Умножение log(n)-разрядных целых чисел занимает время O(1), если мы вспомним энтропийную формулу Шеннона. В теории информации количество информации, передаваемой сообщением, измеряется с помощью его энтропии. Энтропия двух независимых сообщений A и B определяется как H(A|B) = H(A) + H(B), поэтому умножение log(n)-разрядных целых чисел можно рассматривать как объединение нескольких независимых сообщений с одинаковым количеством битов, что уменьшает общую энтропию объединённого сообщения. В результате получается более быстрый алгоритм умножения, который с точки зрения теории информации занимает время O(1).
(если вы не изучали теорию информации, то скорее всего не знаете, что значит дробное число бит -- красивое объяснение на хабре)
Умножение n-разрядных целых чисел занимает время O(n), поскольку алгоритм умножения предполагает многократное сложение. При умножении двух чисел их необходимо многократно складывать друг с другом до получения результата. Количество необходимых сложений зависит от размера перемножаемых чисел, который квадратично увеличивается с ростом n. Поэтому время выполнения этой операции линейно растёт с ростом n.
Умножение log(n)-разрядных целых чисел занимает время O(1), если мы вспомним энтропийную формулу Шеннона. В теории информации количество информации, передаваемой сообщением, измеряется с помощью его энтропии. Энтропия двух независимых сообщений A и B определяется как H(A|B) = H(A) + H(B), поэтому умножение log(n)-разрядных целых чисел можно рассматривать как объединение нескольких независимых сообщений с одинаковым количеством битов, что уменьшает общую энтропию объединённого сообщения. В результате получается более быстрый алгоритм умножения, который с точки зрения теории информации занимает время O(1).
(если вы не изучали теорию информации, то скорее всего не знаете, что значит дробное число бит -- красивое объяснение на хабре)
Хабр
Визуальная теория информации (часть 2)
Вторая часть перевода лонгрида посвященного визуализации концепций из теории информации. Во второй части рассматриваются энтропия, перекрестная энтропия, дивергенция Кульбака-Лейблера, взаимная...
🤯13🤔4🫡1
Ну ладно, ладно, а то ещё скажете так на собеседовании 😂
Умножение n-разрядных целых чисел занимает O(n^2)
(по Карацубе, O(n^1.5849))
Умножение log(n)-разрядных целых чисел занимает O(n log n)
P.S. Но на самом деле, в некоторых экзотических теориях возможно и O(n) и O(1), как-нибудь расскажу.
Умножение n-разрядных целых чисел занимает O(n^2)
(по Карацубе, O(n^1.5849))
Умножение log(n)-разрядных целых чисел занимает O(n log n)
P.S. Но на самом деле, в некоторых экзотических теориях возможно и O(n) и O(1), как-нибудь расскажу.
👍15😁8🤝2🫡1
Иногда я пишу O(n!) код, чтобы научить пользователей терпению 😎
Напишите кстати что-нибудь подобное, императивную и рекурсивную версии.
Напишите кстати что-нибудь подобное, императивную и рекурсивную версии.
😁13🏆3
Поучительная практика -- писать тесты для макросов и темплейтов.
❤8
По поводу серии постов "умножение n-разрядных чисел за O(n)". Проконсультировался у ребят из Массачусетского технологического института, где проходил курсы по software design, и PhD предложил почитать вот эту лекцию "Hashing: Universal and Perfect Hashing".
Речь о специфической вычислительной модели, ориентированной на продуктивную реализацию хэш-памяти. Я делал курсы по АСД во многом на основе 15-121 CMU, ну а 15-421 это более продвинутый. Хочу добавить эту тему в мои дополнительные курсы по АСД повышенной сложности, для которых использовал также материалы ШАД. И есть ещё одна секретная работа по этой теме из Renmin University of China, которую дам только курсантам.
Подобные темки, в частности, неплохой способ выбесить токсичного интервьюера ))) Курсантам в СильныхИдеях скоро расскажу несколько таких фишек, когда вы видите, что вас несправедливо сливают с технического собеседования.
P.S. Пацаны из MIT, кстати, позвали к себе поработать, стартап какой-то у них по автоматической "перекодировке" кода на разных языках. Ответил, чтопротив утечки мозгов "Уезжай!" (с) Цой "Кто может уехать — уезжайте" (с) Карпин подумаю, и зимой решу.
P.P.S. Дорогие, не волнуйтесь, вас не брошу конечно )
Речь о специфической вычислительной модели, ориентированной на продуктивную реализацию хэш-памяти. Я делал курсы по АСД во многом на основе 15-121 CMU, ну а 15-421 это более продвинутый. Хочу добавить эту тему в мои дополнительные курсы по АСД повышенной сложности, для которых использовал также материалы ШАД. И есть ещё одна секретная работа по этой теме из Renmin University of China, которую дам только курсантам.
Подобные темки, в частности, неплохой способ выбесить токсичного интервьюера ))) Курсантам в СильныхИдеях скоро расскажу несколько таких фишек, когда вы видите, что вас несправедливо сливают с технического собеседования.
P.S. Пацаны из MIT, кстати, позвали к себе поработать, стартап какой-то у них по автоматической "перекодировке" кода на разных языках. Ответил, что
P.P.S. Дорогие, не волнуйтесь, вас не брошу конечно )
🫡15👍11❤7🔥6⚡4
8 признаков плохого программиста с т.зр. тимлида
1. Он работает в macOS
2. Он использует более чем 1 монитор
3. Он обращается к ChatGPT
4. Он не может обратить связный список
5. Он постоянно наливает себе кофе
6. Он изучает новые языки программирования ради "фана"
(особенно тимлидами не любим хаскель)
7. Он не пушит в прод по пятницам
(хочет отвлечься от работы на выходных?)
8. Он работает над сайд-проектами после работы
1. Он работает в macOS
2. Он использует более чем 1 монитор
3. Он обращается к ChatGPT
4. Он не может обратить связный список
5. Он постоянно наливает себе кофе
6. Он изучает новые языки программирования ради "фана"
(особенно тимлидами не любим хаскель)
7. Он не пушит в прод по пятницам
(хочет отвлечься от работы на выходных?)
8. Он работает над сайд-проектами после работы
😁38🤯4🐳4🤔2🔥1
Ещё пара рекомендаций для тимлидов:
1. Берите в первую очередь тех ребят, у которых есть кейсы, а не то что они годами фигачат тонны кода по бесконечному потоку тикетов, не очень понимая, а зачем они вообще это делают.
У меня есть курсанты с солидным опытом, которые многие сотни тысяч строк написали, но нету ни одного законченного "кейса"! Ни одной самостоятельно реализованной подсистемы, они даже не могут пояснить, что делают, не на уровне спринга или джанги, а в "онтологии домена", ну или хотя быть чуть повыше абстракциями, нежели эти ваши веб-фреймворки.
Куда лучше, если человек сделал проект на 3 тысячи строк, реализовал его с нуля до конечных пользователей, например мобильную игру написал и выложил в гуглплей, и ему школьники написали что-нибудь в духе "руки бы разрабу оторвать" )))
2. Ищите ребят, которые явно выше требуемого уровня, и которые себя явно недооценивают (синдром самозванца и всё такое). Им можно платить ощутимо поменьше и долго держать в джунах :) У меня таких, увы, немало.
1. Берите в первую очередь тех ребят, у которых есть кейсы, а не то что они годами фигачат тонны кода по бесконечному потоку тикетов, не очень понимая, а зачем они вообще это делают.
У меня есть курсанты с солидным опытом, которые многие сотни тысяч строк написали, но нету ни одного законченного "кейса"! Ни одной самостоятельно реализованной подсистемы, они даже не могут пояснить, что делают, не на уровне спринга или джанги, а в "онтологии домена", ну или хотя быть чуть повыше абстракциями, нежели эти ваши веб-фреймворки.
Куда лучше, если человек сделал проект на 3 тысячи строк, реализовал его с нуля до конечных пользователей, например мобильную игру написал и выложил в гуглплей, и ему школьники написали что-нибудь в духе "руки бы разрабу оторвать" )))
2. Ищите ребят, которые явно выше требуемого уровня, и которые себя явно недооценивают (синдром самозванца и всё такое). Им можно платить ощутимо поменьше и долго держать в джунах :) У меня таких, увы, немало.
❤12🫡7⚡4🤯3👍1
Мир наводнён ужасным кодом, слишком быстро создаваемым программистами по принципу "сначала напиши, потом думай", и я уверен, что LLM существенно усугубят эту тенденцию.
Три основные рекомендации по разработке безопасного AGI:
1. Не учите его программировать: это облегчает рекурсивное самоулучшение.
Модели вовсю учатся всё более продвинутому программированию.
2. Не соединяйте его с интернетом: давайте ему только необходимый минимум для того, чтобы помогать людям; не рассказывайте ему, как манипулировать нами или захватывать власть.
Вовсю совершенствуются AI-агенты вроде AutoGPT, и активно работают в интернете, а модели стремительно обучаются на всём текстовом, что только находится в Сети.
3. Не прикрепляйте к нему общедоступный API: предотвратите его автоматизированное использование злоумышленниками.
Ну, с такого API и началась OpenAI.
Сценарий фильма "Не смотри вверх" развивается 1:1 ...
Три основные рекомендации по разработке безопасного AGI:
1. Не учите его программировать: это облегчает рекурсивное самоулучшение.
Модели вовсю учатся всё более продвинутому программированию.
2. Не соединяйте его с интернетом: давайте ему только необходимый минимум для того, чтобы помогать людям; не рассказывайте ему, как манипулировать нами или захватывать власть.
Вовсю совершенствуются AI-агенты вроде AutoGPT, и активно работают в интернете, а модели стремительно обучаются на всём текстовом, что только находится в Сети.
3. Не прикрепляйте к нему общедоступный API: предотвратите его автоматизированное использование злоумышленниками.
Ну, с такого API и началась OpenAI.
Сценарий фильма "Не смотри вверх" развивается 1:1 ...
🫡13🤔3✍2❤1
Красотища: "Flappy Bird Implemented in Typenoscript types"
Сплошная type-level магия.
"Yes you heard that right, this game is written entirely in Typenoscript type annotations, which—if you didn’t know—are Turing complete. So how the hell am I runnning it in the browser and rendering the game in Typenoscript types?"
Впрочем, не удивлён: Typenoscript это очередное гениальное творение Хейлсберга, единственный язык мэйнстрима с такой мощной системой типов (а его генерики вообще огонь). Да, у C# и Java система типов тоже тьюринг-полная, но подобное на них написать практически нереально.
Когда-то я хотел такому учить, но зачем? подобный космический уровень просто некому оценить... Я сделал треть курса по F*, и немного начал готовить материалы по гомотопической теории типов как "языку программирования", но... даже если вы x100 программист, вообще не факт, что вам поднимут зарплату хотя бы на 20% исходя их ваших хард-скиллов, а на собеседованиях у вас будут спрашивать "какие веб-фреймворки знаете"...
Я усталя ухожу сражаться с сансарой, и дальше буду делать акцент на прозаическом:
во-первых, как гарантированно войти в ИТ с околонуля,
и во-вторых, как работающим программистам зарабатывать в ИТ как можно больше денег...
С 1 января 2024-го анонсирую мои новые сервисы и услуги на темупацан к успеху шёл как получать много-много бабла...
Я предлагаю работающую технологию повышения зп и иных форм дохода, и из десятков курсантов, кто ей полноценно следовал, нету ни одного, кто бы не увеличил свой доход (куча отзывов).
Дело не в том, что это что-то секретное или уникальное, а только в том, что это надо делать, что без крепких регулярных пендалей со стороны у 98% не получается.
P.S. Наш лозунг: работайте на своё имя, и пусть они платят вам за это деньги.
Сплошная type-level магия.
"Yes you heard that right, this game is written entirely in Typenoscript type annotations, which—if you didn’t know—are Turing complete. So how the hell am I runnning it in the browser and rendering the game in Typenoscript types?"
Впрочем, не удивлён: Typenoscript это очередное гениальное творение Хейлсберга, единственный язык мэйнстрима с такой мощной системой типов (а его генерики вообще огонь). Да, у C# и Java система типов тоже тьюринг-полная, но подобное на них написать практически нереально.
Когда-то я хотел такому учить, но зачем? подобный космический уровень просто некому оценить... Я сделал треть курса по F*, и немного начал готовить материалы по гомотопической теории типов как "языку программирования", но... даже если вы x100 программист, вообще не факт, что вам поднимут зарплату хотя бы на 20% исходя их ваших хард-скиллов, а на собеседованиях у вас будут спрашивать "какие веб-фреймворки знаете"...
Я устал
во-первых, как гарантированно войти в ИТ с околонуля,
и во-вторых, как работающим программистам зарабатывать в ИТ как можно больше денег...
С 1 января 2024-го анонсирую мои новые сервисы и услуги на тему
Я предлагаю работающую технологию повышения зп и иных форм дохода, и из десятков курсантов, кто ей полноценно следовал, нету ни одного, кто бы не увеличил свой доход (куча отзывов).
Дело не в том, что это что-то секретное или уникальное, а только в том, что это надо делать, что без крепких регулярных пендалей со стороны у 98% не получается.
P.S. Наш лозунг: работайте на своё имя, и пусть они платят вам за это деньги.
zackoverflow.dev
Flappy Bird Implemented in Typenoscript types
The ultimate type-level trickery
👍19🔥7🫡6🤔2💯2
Лаборатория Математики и Программирования Сергея Бобровского pinned «Красотища: "Flappy Bird Implemented in Typenoscript types" Сплошная type-level магия. "Yes you heard that right, this game is written entirely in Typenoscript type annotations, which—if you didn’t know—are Turing complete. So how the hell am I runnning it in…»
Из свежего интервью с Сэмом Альтманом (гендир OpenAI):
- Если бы мы использовали определения AGI 10-летней давности, многие бы уже сказали, что GPT-4 - это AGI...
- Через год AI будет куда более впечатляющим...
- До появления AGI осталось менее 10 лет... (сказано на удивление уверенно)
- В долгосрочной перспективе меня беспокоит не то, что AI отнимет рабочие места, а то, с какой скоростью AI разрушит рынок труда...
Думаю, спасутся только программисты.
(фото реальное)
- Если бы мы использовали определения AGI 10-летней давности, многие бы уже сказали, что GPT-4 - это AGI...
- Через год AI будет куда более впечатляющим...
- До появления AGI осталось менее 10 лет... (сказано на удивление уверенно)
- В долгосрочной перспективе меня беспокоит не то, что AI отнимет рабочие места, а то, с какой скоростью AI разрушит рынок труда...
Думаю, спасутся только программисты.
(фото реальное)
🔥13✍4🫡3⚡2👍1
Ценный пост Алёны Владимирской, вообще рекомендую на неё подписаться и читать, единственная кто так полезно и честно пишет про кадровый рынок.
Во-первых, там 4 очень хорошие рекомендации по поиску работы.
Во-вторых,
"...Короткая строка: снова стало много вакансий за миллион рублей в месяц и выше
Продолжение короткой строки: чаще всего на эти вакансии долго ищут на открытом рынке, а потом ставят кандидата из своей же компании или перемещают в рамках одного холдинга
Пояснение - таким образом компании:
- напитываются чужой экспертизой во время собеседований
- мотивируют своих сотрудников - мы вас ценим, даем перспективу, не разбегайтесь
- борются со страхом новых людей - он полгода только узнавать людей будет
- работают на короткий, но более вероятный положительный результат-свой кандидат, зная внутрянку бизнеса, чаще дает быстрый положительный скачок бизнесу, но проигрывает в долгосроке. Но долгосрок сейчас мало кого интересует"
Важно! не попадитесь на такое, в ИТ, уверен, и не только на миллион, но и на 300+, а то и на 200т вполне могут просто вас раскручивать на экспертные советы. Вы им на интервью бесплатно всю систему спроектируете )))
В-третьих,
"...перепиаренный профессионал- это плохо. Работодатели все чаще говорят "не веди нам перепиаренную звезду - не возьмем. Он работать будет не на нас, а на себя, но за наши деньги)"
Именно так! Вот буквально так и действуйте: работайте на своё имя, и пусть они платят вам за это деньги. Это будет нашим лозунгом, с 2024-го конкретно денежной темой и личным брендом будем особо заниматься.
P.S. Альтернативный взгляд на нетворк (блог лучше).
Согласен, ну мы будем заниматься всем этим "в комплексе".
Во-первых, там 4 очень хорошие рекомендации по поиску работы.
Во-вторых,
"...Короткая строка: снова стало много вакансий за миллион рублей в месяц и выше
Продолжение короткой строки: чаще всего на эти вакансии долго ищут на открытом рынке, а потом ставят кандидата из своей же компании или перемещают в рамках одного холдинга
Пояснение - таким образом компании:
- напитываются чужой экспертизой во время собеседований
- мотивируют своих сотрудников - мы вас ценим, даем перспективу, не разбегайтесь
- борются со страхом новых людей - он полгода только узнавать людей будет
- работают на короткий, но более вероятный положительный результат-свой кандидат, зная внутрянку бизнеса, чаще дает быстрый положительный скачок бизнесу, но проигрывает в долгосроке. Но долгосрок сейчас мало кого интересует"
Важно! не попадитесь на такое, в ИТ, уверен, и не только на миллион, но и на 300+, а то и на 200т вполне могут просто вас раскручивать на экспертные советы. Вы им на интервью бесплатно всю систему спроектируете )))
В-третьих,
"...перепиаренный профессионал- это плохо. Работодатели все чаще говорят "не веди нам перепиаренную звезду - не возьмем. Он работать будет не на нас, а на себя, но за наши деньги)"
Именно так! Вот буквально так и действуйте: работайте на своё имя, и пусть они платят вам за это деньги. Это будет нашим лозунгом, с 2024-го конкретно денежной темой и личным брендом будем особо заниматься.
P.S. Альтернативный взгляд на нетворк (блог лучше).
Согласен, ну мы будем заниматься всем этим "в комплексе".
👍23🫡5🔥4