Регулярно читаю подобное:
В будущем нам не понадобятся программисты, только люди, способные описать компьютеру, что именно он хочет сделать, не допуская двусмысленности, не предвидя возможных «слепых зон» и не охватывая все возможные крайние случаи.
Подождите, а разве это не программисты и есть?
Ну вот вы непрограммист, всё описали, как считаете, правильно. На самом деле конечно накосячив кучу непоняток в ТЗ; и опытные постановщики с хорошей практикой программирования на такое с ходу не способны. Ладно когда проект небольшой, а если достаточно крупный? Ведь почему отказались от модели Водопада? Ровно поэтому. Такое ТЗ сделать сложнее, чем сам код написать.
Ок, AI вам выдал 128 файлов и несколько инструкций по запуску. Вы запускаете maven или make из командной строки (ага, щас:)... сюрприз 100500 ошибок сборки.
Но даже если повезло, и нечто запустилось, вы решаете тут подправить, там добавить... Внезапно заканчивается окно контекста и AI понёс пургу. Сейчас надеются на окна в миллионы токенов, но если заказчики выкатят хотелку, которая подразумевает существенную переделку/расширение архитектуры?
Честно, я не представляю, как такое возможно в принципе. Как ассистент, AI однозначно удобен, но не более. На уровне целого проекта... Не знаю, ну я бы делал так, что максимально брал стандарты вроде Capability Maturity Model Карнеги-Меллона + всяческие rfc, и очень-очень формально расписывал по ним каждый шаг взаимодействия.
В будущем нам не понадобятся программисты, только люди, способные описать компьютеру, что именно он хочет сделать, не допуская двусмысленности, не предвидя возможных «слепых зон» и не охватывая все возможные крайние случаи.
Подождите, а разве это не программисты и есть?
Ну вот вы непрограммист, всё описали, как считаете, правильно. На самом деле конечно накосячив кучу непоняток в ТЗ; и опытные постановщики с хорошей практикой программирования на такое с ходу не способны. Ладно когда проект небольшой, а если достаточно крупный? Ведь почему отказались от модели Водопада? Ровно поэтому. Такое ТЗ сделать сложнее, чем сам код написать.
Ок, AI вам выдал 128 файлов и несколько инструкций по запуску. Вы запускаете maven или make из командной строки (ага, щас:)... сюрприз 100500 ошибок сборки.
Но даже если повезло, и нечто запустилось, вы решаете тут подправить, там добавить... Внезапно заканчивается окно контекста и AI понёс пургу. Сейчас надеются на окна в миллионы токенов, но если заказчики выкатят хотелку, которая подразумевает существенную переделку/расширение архитектуры?
Честно, я не представляю, как такое возможно в принципе. Как ассистент, AI однозначно удобен, но не более. На уровне целого проекта... Не знаю, ну я бы делал так, что максимально брал стандарты вроде Capability Maturity Model Карнеги-Меллона + всяческие rfc, и очень-очень формально расписывал по ним каждый шаг взаимодействия.
3✍48💯13👍11❤6🔥3
Сильная идея: форкнуть известный язык )))
Крик души: Rewriting Rust!
Процесс Rust RFC -- это кладбище хороших идей. Сколько из них хоть когда-нибудь попадёт в настоящий язык? Сопрограммы -- этому RFC уже 7 лет. Не заблуждайтесь -- сопрограммы реализованы в компиляторе. Они просто недоступны для нас, рядовых исполнителей. Если бы сопрограммы были детьми, они бы уже учились в начальной школе.
Проще всего кстати добавлять новые фичи в Python, у меня лет 10 назад была статья, как за один час добавить в питончик оператор repeat :)
Для прокачки личного бренда, да и для стартапа может быть здорово реализовывать риквесты, которых долго ждут популярные языки и стандартные библиотеки.
Навскидку:
JEPS 405 - расширенный паттерн-матчинг для более выразительных и более сильных запросов
JEPS 423 - поддержка векторных вычислений AVX
я говорил об этом: И вот если формализовать модель векторного стриминга AVX, и под неё разработать суперкомпилятор Си, и получить космическую оптимизацию...
C# 8478 -- прозаически хочут параметры с readonly :)
сверим часы: C# постепенно превращается в F#
А экзистенциальные типы C# 1328 публика ждёт с 2018-го.
Крик души: Rewriting Rust!
Процесс Rust RFC -- это кладбище хороших идей. Сколько из них хоть когда-нибудь попадёт в настоящий язык? Сопрограммы -- этому RFC уже 7 лет. Не заблуждайтесь -- сопрограммы реализованы в компиляторе. Они просто недоступны для нас, рядовых исполнителей. Если бы сопрограммы были детьми, они бы уже учились в начальной школе.
Проще всего кстати добавлять новые фичи в Python, у меня лет 10 назад была статья, как за один час добавить в питончик оператор repeat :)
Для прокачки личного бренда, да и для стартапа может быть здорово реализовывать риквесты, которых долго ждут популярные языки и стандартные библиотеки.
Навскидку:
JEPS 405 - расширенный паттерн-матчинг для более выразительных и более сильных запросов
JEPS 423 - поддержка векторных вычислений AVX
я говорил об этом: И вот если формализовать модель векторного стриминга AVX, и под неё разработать суперкомпилятор Си, и получить космическую оптимизацию...
C# 8478 -- прозаически хочут параметры с readonly :)
сверим часы: C# постепенно превращается в F#
А экзистенциальные типы C# 1328 публика ждёт с 2018-го.
5👍51🏆4✍1😎1
Если вам захочется почувствовать себя крутым, сломайте какую-нибудь внешнюю зависимость низкого уровня в вашем проекте (например, напишите код, использующий фичи из самой свежей версии важной библиотеки), набирайте попкорн и наблюдайте, как полностью рушится производительность разработчиков в вашей компании.
2😎39😁26👍4🐳4🤔3
Продолжаю работу с курсантами.
Реализовать интеграционное тестирование оказалось намного сложнее, чем в гайдах по документации. Теперь понял, в чём конкретно надо разбираться в веб фреймворках - где и что подкрутить, чтобы всё заработало :)
Но из хороших новостей, я пока читал ваши статьи про интеграционное тестирование, увидел упоминание про контрактное программирование с ассертами, и так углубился, что какое то озарение пришло того, о чём был первый курс по ООАП. Пост + предусловия, атомарные операции АТД, использование ассертов для валидации инвариантов. Я по началу вообще не понял зачем они нужны :)
Дня 3 в общем переписывал импортную функциональност на работе, потел думал какие типы данных выудить, какими операциями они описываются(самое тяжелое). Расставлял ассерты для подтверждения инвариантов, делал атомарные операции и старался, чтобы они не зависели от последовательности вызовов. Короче мозг кипел на 100%, но начало получаться. От этого аж прямо драйв. Использовал в частности Chain of Responsibility, чтобы просто флоу настраивать, а не последовательность вызовов.
До меня как то во время курса мало доходит, но когда носишь ваши идеи и думаешь о них, через некоторое время наступает озарение. Но ассерты вообще мощь!
...Во второй половине курса меня не покидало ощущение, что материал усваивается поверхностно, не было ощущения закипания мозга, которое было ранее на 28и задачах. Постоянно искались какие-то оправдания сделать все на скорую руку, участилась копипаста. Затем окончательно меня добил пост для донов из «Начинающих программистов». Проанализировав изменения в собственных подходах к выполнению задач пришел к выводу, что моим false friend’ом, костылем, подпоркой стала ChatGPT. Сам не заметил как стал злоупотреблять данным инструментом, буквально «тупея» на глазах. Когда не работает «S2 по Канеману», тогда и не рождаются новые уровни понимания.
Упомянутый пост -- это вот про что:
Вы изучили лучшие методы обучения, опробовали их на практике и…
Ничего.
Вы всё ещё чувствуете себя так, словно:
- Вы не можете эффективно решать задачи.
- Вы забываете всё, что раньше учили.
- Ваше понимание программирования остаётся поверхностным.
Итак, давайте разберемся, почему это так.
Но для этого мне нужно изложить одну из самых важных идей в обучении.
(на мой взгляд, наверное, самую важную, без преувеличения)...
В паблике для начинающих дополнительно рассказываю донам про разные методики самообучения и тайм-менеджмента, ориентированные на айтишку.
Начинаю там также мини-сериал про карьеру:
"...Вам рассказывают из каждого видео-утюга, что вы должны хотеть, и какие возможности у вас есть. Но для меня это странно, потому что я уверен, что те, кто вам об этом говорит, на самом деле знают об этом очень мало. Когда дело доходит до карьеры, у вас появляется куча советников, которые могут вести стрим продолжительностью от 15 минут и далее до многих часов. Он в основном бессвязный, с кучей непрошеных советов, и вы начинаете слушать его фоном почти всё время, потому что совершенно очевидно, что "эксперт" понятия не имеет, о чём говорит, и всё, что он вам рассказывает, устарело лет на 45. Однако вы нередко принимаете важные карьерные решения на основе того, что рассказывают эти люди. Довольно странно."
C завтрашнего дня стоимость подписки для новых донов в паблике для начинающих вырастет.
Реализовать интеграционное тестирование оказалось намного сложнее, чем в гайдах по документации. Теперь понял, в чём конкретно надо разбираться в веб фреймворках - где и что подкрутить, чтобы всё заработало :)
Но из хороших новостей, я пока читал ваши статьи про интеграционное тестирование, увидел упоминание про контрактное программирование с ассертами, и так углубился, что какое то озарение пришло того, о чём был первый курс по ООАП. Пост + предусловия, атомарные операции АТД, использование ассертов для валидации инвариантов. Я по началу вообще не понял зачем они нужны :)
Дня 3 в общем переписывал импортную функциональност на работе, потел думал какие типы данных выудить, какими операциями они описываются(самое тяжелое). Расставлял ассерты для подтверждения инвариантов, делал атомарные операции и старался, чтобы они не зависели от последовательности вызовов. Короче мозг кипел на 100%, но начало получаться. От этого аж прямо драйв. Использовал в частности Chain of Responsibility, чтобы просто флоу настраивать, а не последовательность вызовов.
До меня как то во время курса мало доходит, но когда носишь ваши идеи и думаешь о них, через некоторое время наступает озарение. Но ассерты вообще мощь!
...Во второй половине курса меня не покидало ощущение, что материал усваивается поверхностно, не было ощущения закипания мозга, которое было ранее на 28и задачах. Постоянно искались какие-то оправдания сделать все на скорую руку, участилась копипаста. Затем окончательно меня добил пост для донов из «Начинающих программистов». Проанализировав изменения в собственных подходах к выполнению задач пришел к выводу, что моим false friend’ом, костылем, подпоркой стала ChatGPT. Сам не заметил как стал злоупотреблять данным инструментом, буквально «тупея» на глазах. Когда не работает «S2 по Канеману», тогда и не рождаются новые уровни понимания.
Упомянутый пост -- это вот про что:
Вы изучили лучшие методы обучения, опробовали их на практике и…
Ничего.
Вы всё ещё чувствуете себя так, словно:
- Вы не можете эффективно решать задачи.
- Вы забываете всё, что раньше учили.
- Ваше понимание программирования остаётся поверхностным.
Итак, давайте разберемся, почему это так.
Но для этого мне нужно изложить одну из самых важных идей в обучении.
(на мой взгляд, наверное, самую важную, без преувеличения)...
В паблике для начинающих дополнительно рассказываю донам про разные методики самообучения и тайм-менеджмента, ориентированные на айтишку.
Начинаю там также мини-сериал про карьеру:
"...Вам рассказывают из каждого видео-утюга, что вы должны хотеть, и какие возможности у вас есть. Но для меня это странно, потому что я уверен, что те, кто вам об этом говорит, на самом деле знают об этом очень мало. Когда дело доходит до карьеры, у вас появляется куча советников, которые могут вести стрим продолжительностью от 15 минут и далее до многих часов. Он в основном бессвязный, с кучей непрошеных советов, и вы начинаете слушать его фоном почти всё время, потому что совершенно очевидно, что "эксперт" понятия не имеет, о чём говорит, и всё, что он вам рассказывает, устарело лет на 45. Однако вы нередко принимаете важные карьерные решения на основе того, что рассказывают эти люди. Довольно странно."
C завтрашнего дня стоимость подписки для новых донов в паблике для начинающих вырастет.
2✍45👍11❤3🤔3
Лучший стек 2024:
-- фреймворк: .NET
-- бэкенд: F#
-- асинхронщина: F#
-- фоновые/плановые задачи: F#
-- кэширование: F#
-- СУБД: PostrgeSQL
-- хостинг: где угодно (бессерверные контейнеры)
-- фронтенд (на самом деле SSR :) => HTML + Tailwind, и немного добавляем HTMX;
-- мобильные клиенты: просто берём веб-UI.
-- фреймворк: .NET
-- бэкенд: F#
-- асинхронщина: F#
-- фоновые/плановые задачи: F#
-- кэширование: F#
-- СУБД: PostrgeSQL
-- хостинг: где угодно (бессерверные контейнеры)
-- фронтенд (на самом деле SSR :) => HTML + Tailwind, и немного добавляем HTMX;
-- мобильные клиенты: просто берём веб-UI.
1🤔57👍20✍9⚡2💯1
До какой степени повышать уровень абстракций в своём коде?
Например, в самом низу уровень абстракции обычно повышают функции, поскольку меняют низкоуровневый язык кодирования на немного более читабельный, скрывая/убирая детали реализации.
Чем "выше" абстракции, тем меньше они про структуру программы (как, например, паттерны проектирования), и тем больше про бизнес-логику.
В конечном итоге, максимальный уровень абстракций выразится в полноценном DSL для вашей предметной области (тысячекратная компактность кода через метапрограммирование и DSL по Алану Кэю).
В прикладном плане, проще всего это сегодня делать на F#. Вы можете нагуглить реально полезные статьи "как делать DSL на F#" аж 10-летней давности! А из свежего, в F# 5 после реализации в этом году FS-1056, появились overloads of custom keywords in computation expressions -- ровно для продуктивного создания DSL.
Например, в самом низу уровень абстракции обычно повышают функции, поскольку меняют низкоуровневый язык кодирования на немного более читабельный, скрывая/убирая детали реализации.
Чем "выше" абстракции, тем меньше они про структуру программы (как, например, паттерны проектирования), и тем больше про бизнес-логику.
В конечном итоге, максимальный уровень абстракций выразится в полноценном DSL для вашей предметной области (тысячекратная компактность кода через метапрограммирование и DSL по Алану Кэю).
В прикладном плане, проще всего это сегодня делать на F#. Вы можете нагуглить реально полезные статьи "как делать DSL на F#" аж 10-летней давности! А из свежего, в F# 5 после реализации в этом году FS-1056, появились overloads of custom keywords in computation expressions -- ровно для продуктивного создания DSL.
3✍49❤8👍7
Не люблю ругаться на конкретные ит-компании, всегда вхожу в положение, в ситуацию, время трудное. Права вообще никогда не качаю, с техподдержкой всегда общаюсь доброжелательно, и в целом стараюсь относиться позитивно. Но иногда степень пробивания дна превосходит все мыслимые пределы 🙈
Я говорил про трэш-слияние моего хостинг-провайдера с новым (даже извиниться не удосужились за сворованное у меня время). Потом пост написал, почему любые обновления (программистские, технические, административные, организационные...) -- зло, и их желательно максимально избегать.
Но блин от нас зависит максимум 2%. Лет 15 я хостился на Зеноне, изредка бывали проблемы с доступом, но критического никогда ничего не случалось, поэтому даже мыслей не было уйти от них. И вот 19 марта их купил Русоникс -- и началось вот это всё отстойное. Я думал, на переезде всё закончится, ага. Похоже это только начало.
Сегодня я не могу просто даже войти в личный кабинет! Я не могу обновить сайт, я не могу обновить скрипты, я не могу в базе что-то подправить. Это ппц.
Техподдержка заявила, эээ ммм нуу вот такое у нас массовое явление, проблемы с входом в лк, обещают починить в течение дня. А на Зеноне ведь хостились десятки тысяч сайтов, немало очень известных, и теперь они все на паузе. Это реальные ощутимые финансовые потери, и никто их ни мне, ни другим не компенсирует.
Ещё одна подобная засада, и переезжаю нафиг на другого провайдера (из единичных оставшихся). Как хорошо было раньше, когда множество интернет-провайдеров, множество хостинг-провайдеров, реальная конкуренция и борьба за качество. А сейчас единообразное дно.
UPD. не работало 8-11, сейчас вроде пофиксили.
UPD2. Говорят, сегодня была эпическая атака кулхацкеров на много чего, возможно зацепило. Ну я уже много лет регулярно делаю сэйвы на несколько флешек, и всем рекомендую.
Я говорил про трэш-слияние моего хостинг-провайдера с новым (даже извиниться не удосужились за сворованное у меня время). Потом пост написал, почему любые обновления (программистские, технические, административные, организационные...) -- зло, и их желательно максимально избегать.
Но блин от нас зависит максимум 2%. Лет 15 я хостился на Зеноне, изредка бывали проблемы с доступом, но критического никогда ничего не случалось, поэтому даже мыслей не было уйти от них. И вот 19 марта их купил Русоникс -- и началось вот это всё отстойное. Я думал, на переезде всё закончится, ага. Похоже это только начало.
Сегодня я не могу просто даже войти в личный кабинет! Я не могу обновить сайт, я не могу обновить скрипты, я не могу в базе что-то подправить. Это ппц.
Техподдержка заявила, эээ ммм нуу вот такое у нас массовое явление, проблемы с входом в лк, обещают починить в течение дня. А на Зеноне ведь хостились десятки тысяч сайтов, немало очень известных, и теперь они все на паузе. Это реальные ощутимые финансовые потери, и никто их ни мне, ни другим не компенсирует.
Ещё одна подобная засада, и переезжаю нафиг на другого провайдера (из единичных оставшихся). Как хорошо было раньше, когда множество интернет-провайдеров, множество хостинг-провайдеров, реальная конкуренция и борьба за качество. А сейчас единообразное дно.
UPD. не работало 8-11, сейчас вроде пофиксили.
UPD2. Говорят, сегодня была эпическая атака кулхацкеров на много чего, возможно зацепило. Ну я уже много лет регулярно делаю сэйвы на несколько флешек, и всем рекомендую.
4✍42👍16🤯8🫡8🤔7
Вдогонку: отрубился кабельный интернет. Я и роутер перегружал, и провода передёргивал, и драйверы переустановил, и сетевую плату посмотрел (хоть пыль сдул:) -- вроде всё норм. Решил, ну блин сдохла плата (если не материнка...). Перешёл на запасной вайфай соседского другого провайдера через репитер (беру только тп-линки). А оказалось, винда тайно поставила свежее обновление KB5044273, которое, пока с ним не перегрузишь, намертво отрубает езернет!
Ну сам виноват, давно надо было сервис windows update прибить.
Ничто так не укрепляет уверенность в своих технических навыках, как обязательный квест: попросить ChatGPT пояснить, как вернуть компьютер в чувство после очередного обновления Windows.
РКН, забань наконец весь микрософт.
Ну сам виноват, давно надо было сервис windows update прибить.
Ничто так не укрепляет уверенность в своих технических навыках, как обязательный квест: попросить ChatGPT пояснить, как вернуть компьютер в чувство после очередного обновления Windows.
РКН, забань наконец весь микрософт.
4😁66🔥9👍8✍3
В Шанхае заработала клиника для тех, у кого проблемы с математикой. Китайские учёные отмечают, что проблемы с математикой часто коррелируют с пониженной активностью теменной доли мозга (что нередко бывает при шизофрении). Лечить таких людей будут комплексным подходом (в том числе с помощью психиатров и специальных препаратов), все места быстро разобрали.
Я сторонник альтернативного подхода: надо большепринуждать заниматься всяческими рациональными/формальными темками.
Я сторонник альтернативного подхода: надо больше
4🤯39👍21😁13🔥6⚡4
Существует прямая зависимость (по мнению ваших начальников) между тем, насколько громко работает ваша клавиатура, и тем, насколько хорошо вы умеете кодировать. Без шуток.
Неплохо также научиться 10-пальцевому методу (на русском), и когда мимо проходит начальник, очень быстро и громко фигачитькод комментарии в коде. Реально работает, проверяйте. Боссы вас будут считать одним из наиболее продуктивных программистов.
P.S. Спрашивают, а какие это? Ну прежде всего механические конечно, Cherry MX или Kailh, можно также задавать звук нажатия для мультимедийных клавиатур, и по-моему даже, для обычных (скриптом AutoHotKey например)
Неплохо также научиться 10-пальцевому методу (на русском), и когда мимо проходит начальник, очень быстро и громко фигачить
P.S. Спрашивают, а какие это? Ну прежде всего механические конечно, Cherry MX или Kailh, можно также задавать звук нажатия для мультимедийных клавиатур, и по-моему даже, для обычных (скриптом AutoHotKey например)
4😁66🔥14✍7❤3🤯3
Что вы преимущественно слушаете, когда программируете?
Anonymous Poll
60%
тишину, шум дождя/прибоя, спокойную музыку
26%
активную музыку
14%
офисную возню и голоса коллег
1😎26✍13❤3👌1
Вообще-то Нобель завещал "математикам премию не давать" 😬
Впрочем, математики физиков троллили давным-давно. Про возможную оптимизацию алгебры Клини для регэкспов я недавно рассказывал 🤘
Впрочем, математики физиков троллили давным-давно. Про возможную оптимизацию алгебры Клини для регэкспов я недавно рассказывал 🤘
3👍42🤔13🔥5✍3