Если вам захочется почувствовать себя крутым, сломайте какую-нибудь внешнюю зависимость низкого уровня в вашем проекте (например, напишите код, использующий фичи из самой свежей версии важной библиотеки), набирайте попкорн и наблюдайте, как полностью рушится производительность разработчиков в вашей компании.
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
Если вы не хотите использовать не просто функциональный, а function first язык (из чего его функциональность проистекает естественно), при этом прагматичный, с огромной экосистемой, с сообществом дружелюбных помощников, ощутимо меняющий программистское мышление в лучшую сторону...
ни в коем случае не берите F# !!1
ни в коем случае не берите F# !!1
5❤41😁29👍10👌3💯2
Доказательное мнение (вдогонку): на удалёнке люди работают продуктивнее.
Покажите это своему менеджеру (ссылку, а не мем :).
Покажите это своему менеджеру (ссылку, а не мем :).
😁61⚡10🤔4👍1🔥1