Ставь китика, если когда-нибудь честно использовал vim + ctags/cscope.
Кто не пробовал, очень рекомендую(это я готовлю большое обновление курса "Ясное легаси", как вникать в доставшиеся вам по наследству огромные кодовые базы lol; 50 конкретных рекомендаций, сгруппированных по 7 разделам; на этой неделе выкачу) .
Кто не пробовал, очень рекомендую
👍47🤔21🐳9❤6❤🔥2
Готовлю расширенную версию СильныхИдей (скоро 100 материалов), дополненную в частности множеством примеров, для всех желающих.
Выкладываться будет, начиная с 1 сентября, для донов в группе для неначинающих (и с 1 сентября стоимость подписки там вырастет, лучше не тяните). Там же продолжу и трек "Элитный Программист".
Краткое описание всех материалов СИ и ЭП и др. (для моих курсантов) выкладываю тут.
"ФБР США потребовалось несколько десятков лет слежки за венгерским математиком Полом Эрдешом, чтобы сделать вывод, что "ему просто очень нравится математика".
Выкладываться будет, начиная с 1 сентября, для донов в группе для неначинающих (и с 1 сентября стоимость подписки там вырастет, лучше не тяните). Там же продолжу и трек "Элитный Программист".
Краткое описание всех материалов СИ и ЭП и др. (для моих курсантов) выкладываю тут.
"ФБР США потребовалось несколько десятков лет слежки за венгерским математиком Полом Эрдешом, чтобы сделать вывод, что "ему просто очень нравится математика".
8🔥45👍14⚡3😁2
Ben Mann, кофаундер Anthropic AI, на днях дал 30% вероятности, что Claude можно зафайнтюнить прямо сейчас так, что она сможет реплицироваться и распространяться самостоятельно, что приведёт к "thousands of deaths or hundreds of billions in damage".
Ну наверное, если LLM сможет разобраться с колмогоровской сложностью (длина самого короткого промпта, который даст эффект). И это новая причина, на которую теперь можно сваливать эпичные сбои вроде вчерашнего. У меня после него ютуб внезапно заработал :) Хотя, уверен, ненадолго, осенью забанят и телеграм, и гугл, и стим, и всё остальное.
В ЦРУ сейчас наверняка массово раздают премии и награды своим агентам влияния: в торе (который и был исходно разработан военными для обмена разведданными) после блокировки ютуба 50% всех пользователей стало из России. И ещё 20% из Ирана.
=
Легендарный кибернетик Грегори Бэйтсон ("Ангелы страшатся", "Групповая динамика шизофрении"...) разработал многократно подтверждённую и в психологии, и в антропологии, и в экологии, и в социологии, и в программировании, концепцию double-bind: когда противоречивые послания и требования могут вызывать патологические вторичные эффекты как у людей (шиза), так и у общества в целом. И микро-, и макро-системы обладают саморегулирующимися свойствами, и вмешательства, не учитывающие вторичные эффекты, могут привести к разрушительным результатам. Эти эффекты могут быть как краткосрочными, так и долгосрочными, и часто они оказываются непредсказуемыми и нежелательными. Он также отмечал, что внимание к этим вторичным эффектам крайне важно для эффективного управления любой системой.
"Наша главная ошибка — это мысль, что мы можем разделить мир на части и считать, что каждая из этих частей существует отдельно. Но на самом деле всё связано, и изменения в одной части системы неизбежно приводят к изменениям в других частях."
Программисты, помните ↑↑↑
Скоро выложу в СильныеИдеи материал ровно об этом, что делать/как предупредить, если ваша система внезапно начала вести себя как-то не так, но вроде бы и норм. Спойлер:Извините, вы обречены .
Ну наверное, если LLM сможет разобраться с колмогоровской сложностью (длина самого короткого промпта, который даст эффект). И это новая причина, на которую теперь можно сваливать эпичные сбои вроде вчерашнего. У меня после него ютуб внезапно заработал :) Хотя, уверен, ненадолго, осенью забанят и телеграм, и гугл, и стим, и всё остальное.
В ЦРУ сейчас наверняка массово раздают премии и награды своим агентам влияния: в торе (который и был исходно разработан военными для обмена разведданными) после блокировки ютуба 50% всех пользователей стало из России. И ещё 20% из Ирана.
=
Легендарный кибернетик Грегори Бэйтсон ("Ангелы страшатся", "Групповая динамика шизофрении"...) разработал многократно подтверждённую и в психологии, и в антропологии, и в экологии, и в социологии, и в программировании, концепцию double-bind: когда противоречивые послания и требования могут вызывать патологические вторичные эффекты как у людей (шиза), так и у общества в целом. И микро-, и макро-системы обладают саморегулирующимися свойствами, и вмешательства, не учитывающие вторичные эффекты, могут привести к разрушительным результатам. Эти эффекты могут быть как краткосрочными, так и долгосрочными, и часто они оказываются непредсказуемыми и нежелательными. Он также отмечал, что внимание к этим вторичным эффектам крайне важно для эффективного управления любой системой.
"Наша главная ошибка — это мысль, что мы можем разделить мир на части и считать, что каждая из этих частей существует отдельно. Но на самом деле всё связано, и изменения в одной части системы неизбежно приводят к изменениям в других частях."
Программисты, помните ↑↑↑
Скоро выложу в СильныеИдеи материал ровно об этом, что делать/как предупредить, если ваша система внезапно начала вести себя как-то не так, но вроде бы и норм. Спойлер:
2👍51🫡9🤔8🔥3
Заканчиваю большое дополнение курса "Ясное легаси", в нём в частности есть раздел "Использование инструментов для навигации по коду". Вот, например, рекомендованная тулза rust-ontologist для визуализации больших кодовых баз на Rust за считанные секунды. Мгновенно всё становится ясным и понятным )))
Или нет.
Или нет.
4😁55👍16✍7🐳2
В Java 9 появилась возможность очень компактно инициализировать Map с помощью Map.of(). На какой размер словаря этот метод рассчитан?
Anonymous Quiz
33%
на любой
34%
на 10 элементов
11%
на 10,000 элементов
14%
на 10,000,000 элементов
8%
на 10,000,000,000 элементов
5🤔41😁18👍5🤓4👌1
MIT выложил на рубут ютуб все лекции курса "The Missing Semester of Your CS Education": Shell Tools and Scripting, Editors, Data Wrangling, Command-line Environment, Version Control (Git), Debugging and Profiling, Metaprogramming, Security and Cryptography...
As computer scientists, we know that computers are great at aiding in repetitive tasks. However, far too often, we forget that this applies just as much to our use of the computer as it does to the computations we want our programs to perform. We have a vast range of tools available at our fingertips that enable us to be more productive and solve more complex problems when working on any computer-related problem. Yet many of us utilize only a small fraction of those tools; we only know enough magical incantations by rote to get by, and blindly copy-paste commands from the internet when we get stuck.
This class is an attempt to address this.
Как думаете, какой редактор там предлагают изучать? :)..... vim .....
As computer scientists, we know that computers are great at aiding in repetitive tasks. However, far too often, we forget that this applies just as much to our use of the computer as it does to the computations we want our programs to perform. We have a vast range of tools available at our fingertips that enable us to be more productive and solve more complex problems when working on any computer-related problem. Yet many of us utilize only a small fraction of those tools; we only know enough magical incantations by rote to get by, and blindly copy-paste commands from the internet when we get stuck.
This class is an attempt to address this.
Как думаете, какой редактор там предлагают изучать? :)
6🏆44👍32🐳6🔥5🤓3
Вкатываемся в понедельник. Мотивирующее от курсантов:
Я начал понимать, что делаю все абсолютно неправильно, и стал перекапывать свою иерархию и еще раз просмотривать непонятные моменты с предыдущих курсов. Отправляю так, чтобы сервер не забанил. Не баньте пожалуйста) Сейчас приведу знания в голове в порядок, и сделаю все ударными темпами...
В рабочих проектах никакой многоуровневой архитектуры не придерживаемся. Есть нагромождение библиотек, от некоторых из которых (сore, utils) зависит почти весь остальной проект...
Начался ад, наш продукт прямо зависит от внешних сервисов, которые не уведомляют своевременно( а то месяцами) об изменениях схем, потому на меня сыпятся баги, которые я не могу отладить порой нормально, потому что у них же технические работы :)
Дали ещё задачу на разработку ещё одного конфига( по итогу у нас будет аппконфиг, локалконфиг, конфиги из бд, и ещё один который должен собрать повторяющуюся часть из трёх ранее) ах да, конфиг для стендов и образов...
Все это выяснилось спустя два дня после начала моей оказывается неправильной работы, тимлид неправильно сформулировал задачу и продумал архитектуру, отчего очередной созвон с главным разработчиком на два часа.
Документаций нет, все из уст в уста, и попробуй понять что эти уста сказали ибо в терминах ты ещё плаваешь.
Дали напутствие додумывать задачи во время чтения ТЗ от аналитиков, ибо они и пишут процессы, но по факту они могут сломать поломать в будущем другие...
Я начал понимать, что делаю все абсолютно неправильно, и стал перекапывать свою иерархию и еще раз просмотривать непонятные моменты с предыдущих курсов. Отправляю так, чтобы сервер не забанил. Не баньте пожалуйста) Сейчас приведу знания в голове в порядок, и сделаю все ударными темпами...
В рабочих проектах никакой многоуровневой архитектуры не придерживаемся. Есть нагромождение библиотек, от некоторых из которых (сore, utils) зависит почти весь остальной проект...
Начался ад, наш продукт прямо зависит от внешних сервисов, которые не уведомляют своевременно( а то месяцами) об изменениях схем, потому на меня сыпятся баги, которые я не могу отладить порой нормально, потому что у них же технические работы :)
Дали ещё задачу на разработку ещё одного конфига( по итогу у нас будет аппконфиг, локалконфиг, конфиги из бд, и ещё один который должен собрать повторяющуюся часть из трёх ранее) ах да, конфиг для стендов и образов...
Все это выяснилось спустя два дня после начала моей оказывается неправильной работы, тимлид неправильно сформулировал задачу и продумал архитектуру, отчего очередной созвон с главным разработчиком на два часа.
Документаций нет, все из уст в уста, и попробуй понять что эти уста сказали ибо в терминах ты ещё плаваешь.
Дали напутствие додумывать задачи во время чтения ТЗ от аналитиков, ибо они и пишут процессы, но по факту они могут сломать поломать в будущем другие...
👍48🤔17😁10💯3❤🔥2
В 98% компаний проблемы с ит случаются из-за занудных или некомпетентных начальников, скучных задач, плохо/никак не организованных рабочих процессов, непродуманных продуктов/сервисов, растущего технического долга и т.п. На долю ошибок в коде приходится от силы 2%. Пофиксить баги -- самая простая часть в айтишке.
🤔50👍23👏5😁2🫡2
vk, как известно, "рубит охваты", мои материалы редко когда хотя бы 10% папищеков показываются :)
Написал несколько постов (совершенно нерекламных), почему программистам полезно понимать, что "монада -- это моноид в категории эндофункторов", и как это применять на практике :) Вот сегодняшний.
Решил показать их всем моим дорогим читателям (типа, "социальная реклама"), но vk уже три раза отказывает в продвижении трёх разных постов по этой темке (ни одного не пропустив!), потому что там где-то мифические "пунктуационные ошибки". Модераторы vk такие умные, что могли бы выигрывать шахматные партии... если бы только знали, как правильно расставить фигуры.
Вот другой пост, где мы начинаем переводить наши моноидальные патчи в категорию эндофункторов. Попробуйте найти, где там пунктуация нарушена :)
А если бы и нарушена, я в своих постах что ли должен писать только скучную вылизанную унылость?
Служба модерации vk напоминает мне королеву, у которой нет королевства: много короны на голове, а толку ноль.
Дуров, верни нормального начальника службы модерации.
Служба модерации vk похожа на сторожевого пса: много лает, но кусать не умеет. Они забанят тебя за отсутствие запятой, но пропустят откровенный спам.
Написал несколько постов (совершенно нерекламных), почему программистам полезно понимать, что "монада -- это моноид в категории эндофункторов", и как это применять на практике :) Вот сегодняшний.
Решил показать их всем моим дорогим читателям (типа, "социальная реклама"), но vk уже три раза отказывает в продвижении трёх разных постов по этой темке (ни одного не пропустив!), потому что там где-то мифические "пунктуационные ошибки". Модераторы vk такие умные, что могли бы выигрывать шахматные партии... если бы только знали, как правильно расставить фигуры.
Вот другой пост, где мы начинаем переводить наши моноидальные патчи в категорию эндофункторов. Попробуйте найти, где там пунктуация нарушена :)
А если бы и нарушена, я в своих постах что ли должен писать только скучную вылизанную унылость?
Служба модерации vk напоминает мне королеву, у которой нет королевства: много короны на голове, а толку ноль.
Дуров, верни нормального начальника службы модерации.
Служба модерации vk похожа на сторожевого пса: много лает, но кусать не умеет. Они забанят тебя за отсутствие запятой, но пропустят откровенный спам.
11👍64💯8🤔2⚡1🙏1
software design -- это искусство принятия правильных решений.
Но ещё больше это искусство не принимать неправильные решения.
Это понимание того, как проектировать систему так, чтобы сделанный выбор можно было безболезненно отменить.
И знать, когда и как вы должны сделать всё правильно с самого начала.
Но ещё больше это искусство не принимать неправильные решения.
Это понимание того, как проектировать систему так, чтобы сделанный выбор можно было безболезненно отменить.
И знать, когда и как вы должны сделать всё правильно с самого начала.
125👍65🏆6🔥1🫡1
Классная опенсорсная штука: ChartDB. Выбираете марку своей СУБД (только нужны последние версии конечно), вам выдаётся SQL скрипт, который ломает всю вашу базу формирует json со структурой вашей базы; вставляете этот json в ChartDB и за 10 секунд получаете красивую диаграмму, которую можно вдобавок вручную править в редакторе.
(можно и локально на работе задеплоить и получить премию:)
(можно и локально на работе задеплоить и получить премию:)
1👍56🔥19⚡4✍1
А разве этот пост у меня не на русском написан? 😎 ну воля ваша, как монополиста. Конечно, я понимаю эти придирки, но принципиально не буду ничего править, потому что мне совершенно пофиг; моя позиция однозначна: я прав, а вк нет 🤘
Пусть получится lose-lose. Не увидят больше 90% подписчиков мои посты.
Готовлю продолжение, скоро будет:
...В событийной архитектуре порядок событий имеет критическое значение, прежде всего в тех случаях, когда действия могут быть взаимоисключающими или зависимыми друг от друга.
Мы можем легко и просто реализовать поддержку последовательных цепочек событий, рассматривая например категорию событий (события как морфизмы, которые трансформируют состояние системы), и эндофункторы (функции, которые принимают состояние системы и возвращают новое состояние). Таким образом, цепочка взаимосвязанных событий может быть представлена как последовательное применение/композиция функций. Например, мы можем всю логику CRUD реализовать в контексте монады Maybe.
Но что с ассоциативностью? Да, мы теперь можем организовать свой код на монадах так, что порядок применения операций в нём будет предсказуем и инвариантен к способу комбинирования (функции будут работать правильно даже при изменении порядка комбинирования). И вроде бы очевидно, что вроде как "моноидальные" патчи в распределённой системе по всему CRUD ну никак не ассоциативны.
И вот что с этим делать...
P.S. В принципе, охват вк на 13 тыс. такой микроскопичный, что практически сравнялся с охватом тг на одну тыщу папищеков ) Поэтому, возможно, буду больше писать не в вк, а в тележку.
Пусть получится lose-lose. Не увидят больше 90% подписчиков мои посты.
Готовлю продолжение, скоро будет:
...В событийной архитектуре порядок событий имеет критическое значение, прежде всего в тех случаях, когда действия могут быть взаимоисключающими или зависимыми друг от друга.
Мы можем легко и просто реализовать поддержку последовательных цепочек событий, рассматривая например категорию событий (события как морфизмы, которые трансформируют состояние системы), и эндофункторы (функции, которые принимают состояние системы и возвращают новое состояние). Таким образом, цепочка взаимосвязанных событий может быть представлена как последовательное применение/композиция функций. Например, мы можем всю логику CRUD реализовать в контексте монады Maybe.
Но что с ассоциативностью? Да, мы теперь можем организовать свой код на монадах так, что порядок применения операций в нём будет предсказуем и инвариантен к способу комбинирования (функции будут работать правильно даже при изменении порядка комбинирования). И вроде бы очевидно, что вроде как "моноидальные" патчи в распределённой системе по всему CRUD ну никак не ассоциативны.
И вот что с этим делать...
P.S. В принципе, охват вк на 13 тыс. такой микроскопичный, что практически сравнялся с охватом тг на одну тыщу папищеков ) Поэтому, возможно, буду больше писать не в вк, а в тележку.
❤52👍33🔥10😁7🤯3
Как издеваться над программистами, делая code review? Набор анти-паттернов.
Особенно хорошо заходит в пятницу к концу рабочего дня.
"...Когда рецензент кода переходит на тёмную сторону, у него появляется огромный выбор способов помешать или отсрочить улучшения кода, досадить авторам исправлений или полностью обескуражить их, и т.д.
Если вы только недавно обратились к тёмной стороне, то, возможно, ещё не знаете всех возможностях. Итак, вот список антипаттернов для проверки кода -- для тех, кто работает на тёмной стороне, и у кого заканчиваются идеи.
Например:
"...При первом ревью кода вносите небольшие и простые изменения, но побольше: названия переменных немного непонятны, в комментариях есть опечатки и т.п.
Подождите, пока разработчик исправит это, а затем сообщите, что в риквесте есть гораздо более фундаментальная проблема, которая требует полного переписывания этой части кода (что означает также отказ от многих мелких исправлений, которые вы уже заставили разработчика сделать).
Ничто так не говорит о том, что "ваш труд никому не нужен, а ваше время не ценится", как то, что заставляет кого-то выполнять много работы, а затем заставляет его её выбросить. Этого может быть достаточно, чтобы разработчик сдался.
Особенно хорошо заходит в пятницу к концу рабочего дня.
"...Когда рецензент кода переходит на тёмную сторону, у него появляется огромный выбор способов помешать или отсрочить улучшения кода, досадить авторам исправлений или полностью обескуражить их, и т.д.
Если вы только недавно обратились к тёмной стороне, то, возможно, ещё не знаете всех возможностях. Итак, вот список антипаттернов для проверки кода -- для тех, кто работает на тёмной стороне, и у кого заканчиваются идеи.
Например:
"...При первом ревью кода вносите небольшие и простые изменения, но побольше: названия переменных немного непонятны, в комментариях есть опечатки и т.п.
Подождите, пока разработчик исправит это, а затем сообщите, что в риквесте есть гораздо более фундаментальная проблема, которая требует полного переписывания этой части кода (что означает также отказ от многих мелких исправлений, которые вы уже заставили разработчика сделать).
Ничто так не говорит о том, что "ваш труд никому не нужен, а ваше время не ценится", как то, что заставляет кого-то выполнять много работы, а затем заставляет его её выбросить. Этого может быть достаточно, чтобы разработчик сдался.
1✍40👍15🤓7🤯6⚡3
В контексте мифического задержания Дурова пошла очередная волна разговоров про "свой мессенджер" (за очередной миллиард рублей из кармана налогоплательщиков). Чтобы в нём зарегистрироваться, потребуется личная явка в МФЦ и нотариально заверенное фото с паспортом и военным билетом. Он будет настолько безопасный, что даже сами создатели не смогут в него войти.
А под капотом у него будет (только это военная тайна) что-то из этого:
-- Rocket.Chat : куча фич: чаты, каналы, видео-/аудио-звонки, множество интеграций... заодно Meteor 3.0 полезно поизучать
-- Mattermost : микросервисный аналог слака
-- Matrix -- децентрализация, федеративные чаты и каналы (неплохой выбор, потому что пользователям можно будет рассказывать сказки про его безопасность, конфиденциальность супер-защищённость за счёт end2end шифрования)
-- Zulip -- интересная фишка, внутри чата можно выделять разные тематические потоки.
и т.п.
Только в их доморощенной версии вы будете неделями смотреть на колёсико "Ожидание одобрения сообщения": каждое "привет" надо будет согласовывать с тремя начальниками и пятью департаментами.
=
Первое правило конспирологии: "Что бы ни случилось, это то, что они задумали с самого начала".
Во-первых, арест Дурова -- вполне может быть операция прикрытия, когда он на самом деле решил перейти на недружественную сторону.
Во-вторых, вы видели хотя бы одно неофициальное фото/видео, как Дуров в аэропорту ходил, как его арестовывали, из зала суда и т.п.?
Всё что нам показали, напоминает недавний фантастический фильм "Атлас" с Дженнифер Лопес. Она весь фильм сидит в каком-то жестяном корыте с рычажками, где её периодически трясёт, а она корчит страдальческие рожи. А всё действо полностью компьютерно сгенерено.
Думайте 😎
А под капотом у него будет (только это военная тайна) что-то из этого:
-- Rocket.Chat : куча фич: чаты, каналы, видео-/аудио-звонки, множество интеграций... заодно Meteor 3.0 полезно поизучать
-- Mattermost : микросервисный аналог слака
-- Matrix -- децентрализация, федеративные чаты и каналы (неплохой выбор, потому что пользователям можно будет рассказывать сказки про его безопасность, конфиденциальность супер-защищённость за счёт end2end шифрования)
-- Zulip -- интересная фишка, внутри чата можно выделять разные тематические потоки.
и т.п.
Только в их доморощенной версии вы будете неделями смотреть на колёсико "Ожидание одобрения сообщения": каждое "привет" надо будет согласовывать с тремя начальниками и пятью департаментами.
=
Первое правило конспирологии: "Что бы ни случилось, это то, что они задумали с самого начала".
Во-первых, арест Дурова -- вполне может быть операция прикрытия, когда он на самом деле решил перейти на недружественную сторону.
Во-вторых, вы видели хотя бы одно неофициальное фото/видео, как Дуров в аэропорту ходил, как его арестовывали, из зала суда и т.п.?
Всё что нам показали, напоминает недавний фантастический фильм "Атлас" с Дженнифер Лопес. Она весь фильм сидит в каком-то жестяном корыте с рычажками, где её периодически трясёт, а она корчит страдальческие рожи. А всё действо полностью компьютерно сгенерено.
Думайте 😎
1🤔56👍14😁7🫡3🤯2
С каждым днём в Сети появляется всё больше контента, сгенерированного AI, и одна из сопутствующих бед в том, что поисковики всё чаще по запросам текста, рисунков, фото (а скоро и видео) выдают искусственные результаты. Например, "похожие" на оригинал фото -- только вылизанные и облагороженные, словно после фотошопа (и постепенно они уходят всё дальше и дальше от оригинала), или цитаты великих, "похожие" на реальные. Кстати, уже для немалого числа известных личностей, и ныне прекрасно здравствующих, по запросам по ним начинают выдаваться "их слова", сгенерённые нейронкой :)
Фанатичные Свидетели AGI-евы, мега-секта которых располагается в Кремниевой Долине, делают сегодня невиданные ранее в мировой истории инвестиции, чтобы ускорить замену реального на фиктивное. В таких условиях ситуация очень скоро может зайти в тупик -- почти наверняка в течение следующих 12 месяцев.
Фанатичные Свидетели AGI-евы, мега-секта которых располагается в Кремниевой Долине, делают сегодня невиданные ранее в мировой истории инвестиции, чтобы ускорить замену реального на фиктивное. В таких условиях ситуация очень скоро может зайти в тупик -- почти наверняка в течение следующих 12 месяцев.
5🤔57👍8🫡4💯3⚡1
С 3-го (ретроградный Меркурий всё "Я календарь переверну...") или 4-го сентября (Марс в Раке:) начинаю выкладывать для донов в этой группе новый уникальный контент: около 100 материалов СильныхИдей (сейчас они доступны только моим курсантам), причём расширенные и дополненные множеством примеров (Java).
Уровень? полезно будет всем, от крепкого джуна до сеньора, особенно тем, кто в университетах не обучался.
Материалы будут выходить минимум 1 раз в неделю, но когда выложу 5-й материал, самый старый удалю, и т.д. То есть всегда будет не более 4-х материалов (чтобы не получалось так, что через полгода стал доном разик, всё выкачал, и слился).
И с того же дня стоимость подписки для новых донов вырастет.
Первые материалы будут такие:
1. Три уровня рассуждений о программной системе.
Вы когда-нибудь задумывались о том, что значит "программа работает неправильно", "программа ошибочна"? Что-то вроде "ну, это когда она вылетает с ошибкой... но если она вроде работает, а может сломаться гипотетически, при определённых условиях... кхм, подождите...".
...Программа ошибочна, если причина, по которой она должна быть правильной, ошибочна.
...Мы перешли от ясного и простого определения проблемы к тому, что выглядит какой-то логической головоломкой, парадоксом или софизмом, и что вообще невозможно использовать :) На самом деле, это определение довольно строгое, и мы разберёмся с ним, освоив несколько понятий из области формальной верификации кода...
2. Три уровня рассуждений о программной системе-2
Вы завершили стадию предварительного планирования, и включились в циклы коротких итераций, как рекомендует agile. У вас есть доска с множеством листков-задачек, пользовательских требований, которые вам просто надо реализовать. И во всей этой гибкой движухе всё более соблазнительно отказаться от ведения отдельного документа по проектированию — в пользу того, чтобы просто начать фигачить модный самодокументирующийся код.
И это ваша роковая ошибка.
Мы рассуждаем о поведении программы на трёх уровнях...
3. Три уровня рассуждений о программной системе-3
Впечатление, что программирование с каждым днём всё больше превращается в запоминание кусков кода со stackoverflow и стандартных функций (а сегодня добавилась ещё и генерация кода LLM-ками) и последующее их комбинирование в надежде "угадать" правильное решение. Сторонники запоминания длиннющих перечней шаблонов проектирования и методов рефакторинга при этом даже не понимают разницу между метриками method-method coupling, method parameter coupling и method invocation coupling, с которых начинается запутывание и рост сложности в любом проекте.
Забудьте об этой тотально ложной парадигме, которую вам навязывает мэйнстрим. Изучая фигню, вы и специалистом станете по фигне, и работу будете искать соответствующую. Пока ещё можно много выиграть, просто изучив общие принципы computer science...
=
Там же продолжу и трек "Элитный Программист" (первая дюжина материалов выложена). Про что он?
...Программирование уже давно не считается профессией для фриков, ботаников и социофобов. Работа программистом стала очень престижной — в частности, потому, что за неё очень хорошо платят. Многие ребята буквально мечтают войти в ИТ и сделать там успешную карьеру. Однако большая засада в том, многие из этих многих, кто пытается это сделать, очень быстро упираются в потолок своей карьеры. Многие даже с трудом находят первую работу.
Если вы один из таких, и чувствуете, что застряли в своей ИТ-карьере, упёршись лбом в стеклянно-бетонный потолок, то самое первое, дорогие, что вам важно понять: это не ваша вина! Против вас ведётся тщательно продуманная и очень хорошо организованная война.
Самая главная причина, по которой люди застревают в своей карьере в сфере ИТ, заключается в том, что такая работа и такая карьера требуют очень хорошей способности концентрироваться. Но в наши дни вокруг вас так много отвлекающих факторов, что порой сосредоточиться очень трудно. И все это скорее специально, чем случайно.
Уровень? полезно будет всем, от крепкого джуна до сеньора, особенно тем, кто в университетах не обучался.
Материалы будут выходить минимум 1 раз в неделю, но когда выложу 5-й материал, самый старый удалю, и т.д. То есть всегда будет не более 4-х материалов (чтобы не получалось так, что через полгода стал доном разик, всё выкачал, и слился).
И с того же дня стоимость подписки для новых донов вырастет.
Первые материалы будут такие:
1. Три уровня рассуждений о программной системе.
Вы когда-нибудь задумывались о том, что значит "программа работает неправильно", "программа ошибочна"? Что-то вроде "ну, это когда она вылетает с ошибкой... но если она вроде работает, а может сломаться гипотетически, при определённых условиях... кхм, подождите...".
...Программа ошибочна, если причина, по которой она должна быть правильной, ошибочна.
...Мы перешли от ясного и простого определения проблемы к тому, что выглядит какой-то логической головоломкой, парадоксом или софизмом, и что вообще невозможно использовать :) На самом деле, это определение довольно строгое, и мы разберёмся с ним, освоив несколько понятий из области формальной верификации кода...
2. Три уровня рассуждений о программной системе-2
Вы завершили стадию предварительного планирования, и включились в циклы коротких итераций, как рекомендует agile. У вас есть доска с множеством листков-задачек, пользовательских требований, которые вам просто надо реализовать. И во всей этой гибкой движухе всё более соблазнительно отказаться от ведения отдельного документа по проектированию — в пользу того, чтобы просто начать фигачить модный самодокументирующийся код.
И это ваша роковая ошибка.
Мы рассуждаем о поведении программы на трёх уровнях...
3. Три уровня рассуждений о программной системе-3
Впечатление, что программирование с каждым днём всё больше превращается в запоминание кусков кода со stackoverflow и стандартных функций (а сегодня добавилась ещё и генерация кода LLM-ками) и последующее их комбинирование в надежде "угадать" правильное решение. Сторонники запоминания длиннющих перечней шаблонов проектирования и методов рефакторинга при этом даже не понимают разницу между метриками method-method coupling, method parameter coupling и method invocation coupling, с которых начинается запутывание и рост сложности в любом проекте.
Забудьте об этой тотально ложной парадигме, которую вам навязывает мэйнстрим. Изучая фигню, вы и специалистом станете по фигне, и работу будете искать соответствующую. Пока ещё можно много выиграть, просто изучив общие принципы computer science...
=
Там же продолжу и трек "Элитный Программист" (первая дюжина материалов выложена). Про что он?
...Программирование уже давно не считается профессией для фриков, ботаников и социофобов. Работа программистом стала очень престижной — в частности, потому, что за неё очень хорошо платят. Многие ребята буквально мечтают войти в ИТ и сделать там успешную карьеру. Однако большая засада в том, многие из этих многих, кто пытается это сделать, очень быстро упираются в потолок своей карьеры. Многие даже с трудом находят первую работу.
Если вы один из таких, и чувствуете, что застряли в своей ИТ-карьере, упёршись лбом в стеклянно-бетонный потолок, то самое первое, дорогие, что вам важно понять: это не ваша вина! Против вас ведётся тщательно продуманная и очень хорошо организованная война.
Самая главная причина, по которой люди застревают в своей карьере в сфере ИТ, заключается в том, что такая работа и такая карьера требуют очень хорошей способности концентрироваться. Но в наши дни вокруг вас так много отвлекающих факторов, что порой сосредоточиться очень трудно. И все это скорее специально, чем случайно.
6👍54❤10✍7😎1
...Существует множество компаний, которые хотят отнять у вас буквально всё ваше внимание. Ваше внимание конвертируется в их прибыль. На эту борьбу работают многие тысячи профессиональных психологов и специалистов по Бигдате и AI. А так как вы противостоите этой профессиональной армии фактически в одиночку, и при этом вы самый обычный гражданский человек, совершенно не обученный военным действиям за своё внимание и свой здоровый ум, то вы обречены проиграть.
Ваше внимание — это очень ограниченный ресурс ума, и вы постоянно проигрываете в битве за него; в результате у вас остаётся мало ресурсов, чтобы сосредоточиться на продуктивной работе. Именно поэтому многие ИТ-специалисты упираются в потолок своей карьеры, дальше которого они не могут продвинуться. Проблема не в том, что им не хватает соображалки, нет: в 90% случаев им не хватает умения длительное время сосредотачиваться на одном главном, и не тратить при этом энергию ума на постоянные отвлечения.
У меня для вас однако хорошая новость: вы можете выиграть эту войну, хотя это и будет нелегко. Но вы сможете победить все отвлекающие факторы и стать чётким, собранным, дисциплинированным и продуктивным разработчиком, которого все жаждут взять на работу. Этому и посвящён трек "Элитный программист", который научит вас, как это сделать.
=
Краткое описание всех материалов СИ, ЭП и курса карьеры (для курсантов) выкладываю тут.
Ваше внимание — это очень ограниченный ресурс ума, и вы постоянно проигрываете в битве за него; в результате у вас остаётся мало ресурсов, чтобы сосредоточиться на продуктивной работе. Именно поэтому многие ИТ-специалисты упираются в потолок своей карьеры, дальше которого они не могут продвинуться. Проблема не в том, что им не хватает соображалки, нет: в 90% случаев им не хватает умения длительное время сосредотачиваться на одном главном, и не тратить при этом энергию ума на постоянные отвлечения.
У меня для вас однако хорошая новость: вы можете выиграть эту войну, хотя это и будет нелегко. Но вы сможете победить все отвлекающие факторы и стать чётким, собранным, дисциплинированным и продуктивным разработчиком, которого все жаждут взять на работу. Этому и посвящён трек "Элитный программист", который научит вас, как это сделать.
=
Краткое описание всех материалов СИ, ЭП и курса карьеры (для курсантов) выкладываю тут.
7❤45👍14⚡7✍1🔥1
Культура ФП на самом деле очень прагматична: сначала вы определяете типы и пишите функции, и только потом формируете более сложные абстракции. На определённом уровне вы просто садитесь за IDE vim и начинаете сразу фигачить достаточно качественный код (потому что, в частности, хорошая система типов сразу сильно ограничивает в написании фигни).
Если же вы используете ООП, то вам сперва придётся достаточно чётко продумывать объектные абстракции и схемы их взаимодействия (что весьма сложно; например, с помощью АТД; у меня отдельный трек ООАП этому посвящён), и только потом писать логику методов.
Вчера я говорил, что "...всё более соблазнительно отказаться от ведения отдельного документа по проектированию — в пользу того, чтобы просто начать фигачить модный самодокументирующийся код. И это ваша роковая ошибка...", но это относится к мэйнстриму конечно. Сегодня тотально учат "ООП" с самого начала, просто как "удобный" скилл кодирования. Правильно же начинать учить ООП с концепции обмена сообщениями (каким ООП и был в оригинале у Алана Кэя), немного затронуть сигма-исчисление (формальная модель ООП Луки Карделли), потом плавно переходить к модели акторов. А в идеале, лучше вообще начинать с разбора вычислительных моделей (декларативная, императивная, объектная...).
Если же вы используете ООП, то вам сперва придётся достаточно чётко продумывать объектные абстракции и схемы их взаимодействия (что весьма сложно; например, с помощью АТД; у меня отдельный трек ООАП этому посвящён), и только потом писать логику методов.
Вчера я говорил, что "...всё более соблазнительно отказаться от ведения отдельного документа по проектированию — в пользу того, чтобы просто начать фигачить модный самодокументирующийся код. И это ваша роковая ошибка...", но это относится к мэйнстриму конечно. Сегодня тотально учат "ООП" с самого начала, просто как "удобный" скилл кодирования. Правильно же начинать учить ООП с концепции обмена сообщениями (каким ООП и был в оригинале у Алана Кэя), немного затронуть сигма-исчисление (формальная модель ООП Луки Карделли), потом плавно переходить к модели акторов. А в идеале, лучше вообще начинать с разбора вычислительных моделей (декларативная, императивная, объектная...).
2🤔37👍33❤8⚡6🫡2