Еще немного про SOLID, OOP и принципы, в продолжение https://t.me/dumch_code/40
За время работы в ООП-парадигме сформировалась цепочка нейронов, ответственная за получение боли от несовершенства наследования.
Куда включить глинтвейн б/а? В безалкогольные напитки или в глинтвейны?
На фотографиях два решения:
1. “отнаследовались“ от глинтвейнов, соблюли Locality of Behaviour (LoB). Но Liskov Substitution нарушен — там, где ожидается б/а напиток, глинтвейн б/а не подойдет.
2. “отнаследовались“ от алкогольных и б/а напитков, связали общим mark-интерфейсом Глинтвейн, но искать сложнее (нарушили LoB).
За время работы в ООП-парадигме сформировалась цепочка нейронов, ответственная за получение боли от несовершенства наследования.
Куда включить глинтвейн б/а? В безалкогольные напитки или в глинтвейны?
На фотографиях два решения:
1. “отнаследовались“ от глинтвейнов, соблюли Locality of Behaviour (LoB). Но Liskov Substitution нарушен — там, где ожидается б/а напиток, глинтвейн б/а не подойдет.
2. “отнаследовались“ от алкогольных и б/а напитков, связали общим mark-интерфейсом Глинтвейн, но искать сложнее (нарушили LoB).
Если кто-то смотрит видео в ускоренном режиме, можно ускориться еще сильнее.
Есть приложения, позволяющие пропускать тишину — проигрывать ее с более высокой скоростью.
Раньше пользовался SkipSilence, но Google Chrome его удалил. Нашлась алтернатива: Jump Cutter.
• работает на youtube, vk, rutube, yandex, сoursera, twitch, «и (почти) на всех сайтах» (c);
• можно задавать margin для тишины, чтобы иметь минимальную паузу между предложениями;
• можно пользоваться через firefox на телефоне.
Есть приложения, позволяющие пропускать тишину — проигрывать ее с более высокой скоростью.
Раньше пользовался SkipSilence, но Google Chrome его удалил. Нашлась алтернатива: Jump Cutter.
• работает на youtube, vk, rutube, yandex, сoursera, twitch, «и (почти) на всех сайтах» (c);
• можно задавать margin для тишины, чтобы иметь минимальную паузу между предложениями;
• можно пользоваться через firefox на телефоне.
Google
Jump Cutter - Chrome Web Store
Watch videos up to 2x faster by automatically skipping long pauses between sentences
Иногда что-то считается невозможным, пока не доказано обратное.
Пока в 1953 Эдмунд Хилари и его товарищ с неблагозвучным именем не покорили Эверест, затея считалась безумной. Теперь это несложная задача даже для ребенка.
До 1954 года считалось, что физически невозможно пробежать милю быстрее, чем за 4 минуты. После рекорда Роджера Баннистера только ленивый бежал медленнее.
В 2025-ом t.me/yetanotherqa дала таблетки нашему коту. Я убедился, что это возможно, и теперь даю ему их самостоятельно уже третий день подряд.
Пока в 1953 Эдмунд Хилари и его товарищ с неблагозвучным именем не покорили Эверест, затея считалась безумной. Теперь это несложная задача даже для ребенка.
До 1954 года считалось, что физически невозможно пробежать милю быстрее, чем за 4 минуты. После рекорда Роджера Баннистера только ленивый бежал медленнее.
В 2025-ом t.me/yetanotherqa дала таблетки нашему коту. Я убедился, что это возможно, и теперь даю ему их самостоятельно уже третий день подряд.
О навыках в современном мире
1. Когда-то существовали профессии вроде лифтера. Всё, что нужно было делать — пускать людей в лифт и отвозить их на нужный этаж.
2. Когда-то считалось, что основная задача программиста — получить алгоритм и перевести его в код. Увы, тут как с кнопками лифта — легко автоматизируется.
3. На днях ChatGpt обесценил навыки графического дизайна: можно набросать корявый скетч и получить картинку в заданном стиле.
4. Знание иностранного языка всё еще ценится. Но уже существуют мгновенные переводы видео. И не так сложно представить, что появятся фильтры на Zoom/Google meet, позволяющие говорить с иностранцем на своем языке так, чтобы всем казалось, что разговор ведется на родном языке.
Всё, что не является основой, будет автоматизировано. Возвращаясь к примерам выше:
1. Важно понимать, на какой этаж хочешь попасть, а не уметь отправить лифт на этот этаж.
2. Важно понимать, что ты хочешь запрограммировать (какую архитектуру построить, как масштабировать проект), а не уметь реализовать алгоритм.
3. Важно чувство вкуса и видение того, что ты хочешь нарисовать, а не навык рисования.
4. Важно то, что ты хочешь сказать, а не умение это сказать на каком-то языке.
Программисту нужно не умение на TypeScript или Java щелкать литкод-задачки, а понимание базы (асимптотика, операционные системы, сети, структуры данных, базы данных). Кто-то может возмутиться: ведь без знаний всего этого успешно работал последние n-лет в таком-то стеке. Я отвечу, что вас уже сегодня с ChatGpt может заменить любой сообразительный человек, даже кодить неумеющий.
Что касается английского языка — ценность всё еще есть. Можно больше улавливать из статей, книг и фильмов, чем в переводе. Бывает особенно приятно понять шутку, основанную на игре слов, возможной только в конкретном языке. Но вот вопрос: стал бы я изучать язык только ради этого? Наверное, нет.
1. Когда-то существовали профессии вроде лифтера. Всё, что нужно было делать — пускать людей в лифт и отвозить их на нужный этаж.
2. Когда-то считалось, что основная задача программиста — получить алгоритм и перевести его в код. Увы, тут как с кнопками лифта — легко автоматизируется.
3. На днях ChatGpt обесценил навыки графического дизайна: можно набросать корявый скетч и получить картинку в заданном стиле.
4. Знание иностранного языка всё еще ценится. Но уже существуют мгновенные переводы видео. И не так сложно представить, что появятся фильтры на Zoom/Google meet, позволяющие говорить с иностранцем на своем языке так, чтобы всем казалось, что разговор ведется на родном языке.
Всё, что не является основой, будет автоматизировано. Возвращаясь к примерам выше:
1. Важно понимать, на какой этаж хочешь попасть, а не уметь отправить лифт на этот этаж.
2. Важно понимать, что ты хочешь запрограммировать (какую архитектуру построить, как масштабировать проект), а не уметь реализовать алгоритм.
3. Важно чувство вкуса и видение того, что ты хочешь нарисовать, а не навык рисования.
4. Важно то, что ты хочешь сказать, а не умение это сказать на каком-то языке.
Программисту нужно не умение на TypeScript или Java щелкать литкод-задачки, а понимание базы (асимптотика, операционные системы, сети, структуры данных, базы данных). Кто-то может возмутиться: ведь без знаний всего этого успешно работал последние n-лет в таком-то стеке. Я отвечу, что вас уже сегодня с ChatGpt может заменить любой сообразительный человек, даже кодить неумеющий.
Что касается английского языка — ценность всё еще есть. Можно больше улавливать из статей, книг и фильмов, чем в переводе. Бывает особенно приятно понять шутку, основанную на игре слов, возможной только в конкретном языке. Но вот вопрос: стал бы я изучать язык только ради этого? Наверное, нет.
И еще один пост про замеры нагрузок в VR (больше скринов в комментариях).
Arken Age (steam, youtube) обогнала даже Бэтмена в минимизации физических затрат.
‣ Вешал по 1кг на руки;
‣ Почти всегда использовать оружие ближнего боя (физически более затратно, чем стрелять);
‣ Плавал физическим движением рук, а не джойстиком;
‣ Поднимал предметы с пола, нагибаясь за ними или приседая (без телекинеза).
Игру все же порекомендую за уникальный игровой опыт: открытый мир, большое пространство для исследований, гибкий крафтинг, десятки способов вести сражения.
Arken Age (steam, youtube) обогнала даже Бэтмена в минимизации физических затрат.
‣ Вешал по 1кг на руки;
‣ Почти всегда использовать оружие ближнего боя (физически более затратно, чем стрелять);
‣ Плавал физическим движением рук, а не джойстиком;
‣ Поднимал предметы с пола, нагибаясь за ними или приседая (без телекинеза).
Игру все же порекомендую за уникальный игровой опыт: открытый мир, большое пространство для исследований, гибкий крафтинг, десятки способов вести сражения.
Написал заметку по боксу в VR https://habr.com/ru/articles/900156/
Хабр
Бокс в VR: Руководство по выживанию
Когда-то я думал, что бокс в VR — просто игра. Оказалось, она хочет меня убить. Статья о том, как: не приобрести проблемы с сердцем, но получить профилактику сердечно-сосудистых заболеваний; не...
https://t.me/bbbreaking/204566
В интересном мире мы жили бы, если бы такое (дока с cia.gov) могло быть правдой.
Любопытно, что инопланетяне ищут вдохновение для дизайна кораблей в американских фильмах.
Как такое могло оказаться в архивах американских спецслужб? Могу предложить, что это дезинформация со стороны разведки СССР.
В интересном мире мы жили бы, если бы такое (дока с cia.gov) могло быть правдой.
Любопытно, что инопланетяне ищут вдохновение для дизайна кораблей в американских фильмах.
Как такое могло оказаться в архивах американских спецслужб? Могу предложить, что это дезинформация со стороны разведки СССР.
Telegram
Раньше всех. Ну почти.
❗️Советские солдаты погибли после встречи с инопланетным НЛО, говорится в рассекреченном документе, опубликованном на сайте ЦРУ, передает Fox News.
В документе говорится, что советские солдаты якобы сбили НЛО, пролетавший над военной базой. Сообщается…
В документе говорится, что советские солдаты якобы сбили НЛО, пролетавший над военной базой. Сообщается…
Оказывается, ИИ свойственны людские когнитивные искажения. Только сформированы они не эволюционно-психологически, а статистически.
Примеры.
‣ Эвристика доступности: вероятность выдачи факта пропорциональна его частоте в корпусе. Упоминаемые в медиа темы генерируются чаще, чем редкие академические работы.
‣ Эффект фрейминга: малейшая смена формулировки запроса («почему Х плох» vs «почему Х хорош») меняет сэмплирование токенов и ведёт к радикально иным ответам.
‣ Эффект присоединения к большинству: RLHF подталкивают модель к “популярным” мнениям, усиливая консенсус и подавляя нишевые взгляды.
Но чего я не ожидал, Эффект якоря (эвристика привязки) проявляется 1 в 1, как у людей. Примеры в скринах.
1. Если дать перемножить одни и те же числа и первым числом поставить большое, то и результат будет больше. И наоборот.
2. Называя цену в запросе, я формирую якорь у ИИ.
Примеры.
‣ Эвристика доступности: вероятность выдачи факта пропорциональна его частоте в корпусе. Упоминаемые в медиа темы генерируются чаще, чем редкие академические работы.
‣ Эффект фрейминга: малейшая смена формулировки запроса («почему Х плох» vs «почему Х хорош») меняет сэмплирование токенов и ведёт к радикально иным ответам.
‣ Эффект присоединения к большинству: RLHF подталкивают модель к “популярным” мнениям, усиливая консенсус и подавляя нишевые взгляды.
Но чего я не ожидал, Эффект якоря (эвристика привязки) проявляется 1 в 1, как у людей. Примеры в скринах.
1. Если дать перемножить одни и те же числа и первым числом поставить большое, то и результат будет больше. И наоборот.
2. Называя цену в запросе, я формирую якорь у ИИ.
Dumch API
О навыках в современном мире 1. Когда-то существовали профессии вроде лифтера. Всё, что нужно было делать — пускать людей в лифт и отвозить их на нужный этаж. 2. Когда-то считалось, что основная задача программиста — получить алгоритм и перевести его в код.…
Раскрыл тему в контексте разработки ПО: что происходит с появлением LLM, куда идёт индустрия, какие навыки развивать, если хочется быть программистом.
https://habr.com/ru/articles/904754/
https://habr.com/ru/articles/904754/
Хабр
Халява уходит из программирования
Для меня халява — это гарантированный результат за вложенные усилия. Логика повествования требует такого определения, дальше всё будет ясно. Халяве учили и учат в школе. Сделай домашнее по алгебре,...
О SCRUM и альтернативном подходе.
Основная проблема SCRUM в продуктовой разработке — фокус на процесс, а не на продукт.
Если на фичу нужны 3 недели, разработка займёт 3 недели. Тут не помогут:
‣ Фиксированные по времени спринты и burndown chart;
‣ Искусственные встречи: ежедневные стендапы, ретро, груминги и планирования.
‣ Оценка задач через покер по Фибоначчи с запретом брать в спринт что-то более 8 SP.
Наоборот, время на разработку увеличится из-за отвлечения на церемонии. А еще и фичу порежут, если в очередной спринт не поместится целиком.
Не лучше было бы забыть о спринте и сделать хорошо? Важен ведь не инкремент продукта в течение недели (длины спринта). Важно, что увидит 👀 пользователь и как это повлияет на метрики.
Почему бы не определять спринт только целью, отказавшись от времени?
Знаю разработчика, который ушел в менеджмент и организовал всё именно так. Получилось похоже на Scrumban.
В команде 10-12 человек, из них создаются 3 виртуальные команды.
Каждая виртуальная команда работает над своим спринтом. Цель спринта — фича. Спринт остается открытым, пока фича не готова к релизу.
Если в рамках спринта разработчик закончил свою работу, допускается его перевод в другую виртуальную команду, на устранение техдолга или багов.
Вместо ежедневных стендапов для всех — частные стендапы для виртуальных команд.
Вместо регулярных грумингов и покера — встреча аналитика и разработчика, где вместе разбирают и оценивают задачу.
Во всех непонятных ситуациях менеджер принимает решение, что делать.
Минусы:
- Менеджеру приходится заниматься менеджментом.
- Система зависит от менеджера.
Плюсы подхода:
+ Меньше простоя.
+ Быстрее time-to-market.
+ Отсутствие иллюзии контроля сроков разработки.
Последний пункт про то, что в SCRUM якобы можно координировать команды спринтами. За 10 лет опыта (аутсорс разработка, Yandex, SberDevice, австралийский стартап) не помню ни одного случая, чтобы за спринт сделали все задачи спринта.
Основная проблема SCRUM в продуктовой разработке — фокус на процесс, а не на продукт.
Если на фичу нужны 3 недели, разработка займёт 3 недели. Тут не помогут:
‣ Фиксированные по времени спринты и burndown chart;
‣ Искусственные встречи: ежедневные стендапы, ретро, груминги и планирования.
‣ Оценка задач через покер по Фибоначчи с запретом брать в спринт что-то более 8 SP.
Наоборот, время на разработку увеличится из-за отвлечения на церемонии. А еще и фичу порежут, если в очередной спринт не поместится целиком.
Не лучше было бы забыть о спринте и сделать хорошо? Важен ведь не инкремент продукта в течение недели (длины спринта). Важно, что увидит 👀 пользователь и как это повлияет на метрики.
Почему бы не определять спринт только целью, отказавшись от времени?
Знаю разработчика, который ушел в менеджмент и организовал всё именно так. Получилось похоже на Scrumban.
В команде 10-12 человек, из них создаются 3 виртуальные команды.
Каждая виртуальная команда работает над своим спринтом. Цель спринта — фича. Спринт остается открытым, пока фича не готова к релизу.
Если в рамках спринта разработчик закончил свою работу, допускается его перевод в другую виртуальную команду, на устранение техдолга или багов.
Вместо ежедневных стендапов для всех — частные стендапы для виртуальных команд.
Вместо регулярных грумингов и покера — встреча аналитика и разработчика, где вместе разбирают и оценивают задачу.
Во всех непонятных ситуациях менеджер принимает решение, что делать.
Минусы:
- Менеджеру приходится заниматься менеджментом.
- Система зависит от менеджера.
Плюсы подхода:
+ Меньше простоя.
+ Быстрее time-to-market.
+ Отсутствие иллюзии контроля сроков разработки.
Последний пункт про то, что в SCRUM якобы можно координировать команды спринтами. За 10 лет опыта (аутсорс разработка, Yandex, SberDevice, австралийский стартап) не помню ни одного случая, чтобы за спринт сделали все задачи спринта.
This media is not supported in your browser
VIEW IN TELEGRAM
Сам никогда не разрабатывал 3d-игры, но возможность из скетча получить 3D-модель или полноценную карту выглядит очень круто.
Да и Unreal Engine стал менее страшен для незнающих C++. Знаю, что можно собирать игры через «блюпринты», но как программист понимаю ограничения визуальных инструментов.
Да и Unreal Engine стал менее страшен для незнающих C++. Знаю, что можно собирать игры через «блюпринты», но как программист понимаю ограничения визуальных инструментов.
Dumch API
Иногда посещают тревожные мысли, что с развитием ИИ моя профессия останется невостребованной. Пугает как потеря дохода, так и необходимость заняться чем-то другим. Помню, как повеселила идея, что люди специально пишут плохой код, чтобы обучать нейросети…
Дописал третью завершающую часть в цикле «Заговора разработчиков».
Хабр
Заговор разработчиков против корпораций: работа с командой
‣ Почему для перехода в другую компанию нужно тренировать навыки, никак не относящиеся к работе? ‣ Почему вместо работы мы ходим на встречи, а вместо принятия рисков занимаемся гаданием? ‣ Почему нам...
Размышление о карьере разработчика ПО
Гипотетический пример. Двадцатилетний Вася в 2018 году выходит на работу джуном.
В 2020 Вася заканчивает ВУЗ и выходит на должность Middle Developer.
В 2021 удачно проходит собеседование и устраивается сеньором, на вырост.
После 2022 рынок меняется:
‣ Кризис и волны сокращений от FAANG и компаний поменьше.
‣ На рынок выходят новые разработчики с IT-курсов и вузов (следствие бума IT).
‣ LLM упрощает автоматизацию.
Возвращаемся к Васе. На сегодняшнем рынке, находясь уже на позиции Senior, Васе сложно расти дальше. Эйджизм уже работает против него — в тимлиды повысили разработчика постарше. Но пугает другое.
Кажется, что IT-пузырь уже некуда надувать. Смотря на карьеры людей постарше, вижу, как некогда престижные профессии перестали давать повышенный доход. Примеры: инженеры в нефтегазовой сфере в 90-е и 2000-е, юристы и экономисты в 2000-е.
Если Вася захочет всю жизнь работать программистом, то рост его доходов будет выглядеть, как на картинке выше. Цифры тут не важны, я взял наобум, важно поведение графиков.
Гипотетический пример. Двадцатилетний Вася в 2018 году выходит на работу джуном.
В 2020 Вася заканчивает ВУЗ и выходит на должность Middle Developer.
В 2021 удачно проходит собеседование и устраивается сеньором, на вырост.
После 2022 рынок меняется:
‣ Кризис и волны сокращений от FAANG и компаний поменьше.
‣ На рынок выходят новые разработчики с IT-курсов и вузов (следствие бума IT).
‣ LLM упрощает автоматизацию.
Возвращаемся к Васе. На сегодняшнем рынке, находясь уже на позиции Senior, Васе сложно расти дальше. Эйджизм уже работает против него — в тимлиды повысили разработчика постарше. Но пугает другое.
Кажется, что IT-пузырь уже некуда надувать. Смотря на карьеры людей постарше, вижу, как некогда престижные профессии перестали давать повышенный доход. Примеры: инженеры в нефтегазовой сфере в 90-е и 2000-е, юристы и экономисты в 2000-е.
Если Вася захочет всю жизнь работать программистом, то рост его доходов будет выглядеть, как на картинке выше. Цифры тут не важны, я взял наобум, важно поведение графиков.
Dumch API
Размышление о карьере разработчика ПО Гипотетический пример. Двадцатилетний Вася в 2018 году выходит на работу джуном. В 2020 Вася заканчивает ВУЗ и выходит на должность Middle Developer. В 2021 удачно проходит собеседование и устраивается сеньором, на…
Пока Вася боится за свою карьеру, на его страхах уже зарабатывают.
Как думаете, есть смысл в таких курсах?
Как думаете, есть смысл в таких курсах?