Forwarded from Node.js Ukraine Community
What is important for you in AI? (Multiselect)
Anonymous Poll
70%
🚀 Speedup development
53%
🏆 Improve quality
32%
🫰 Cost effective
8%
⛔ I do not use it
Чтобы признать, что ты не можешь решить задачу, нужно уже обладать уровнем, достаточным для ее решения.
Если уровня понимания сложности не хватает, то задача обычно решается криво, но человеку кажется, что все хорошо. Если понимание сложности задачи есть, то чаще всего проблема не в нехватке знаний или опыта. Обычно не хватает другого: времени, внимания, сосредоточенности, упорства, чтобы дойти до сути и не свернуть раньше времени, учловий работы, чтобы не дергали (ну сам себе не создал таких условий).
Так что, берите тех людей, которые говорят, что "не могут" и помогайте, их предел обычно ближе к реальности. А вот уверенность тех, кто сразу заявляет, что все элементарно, означает, что они не видят глубины.
Если уровня понимания сложности не хватает, то задача обычно решается криво, но человеку кажется, что все хорошо. Если понимание сложности задачи есть, то чаще всего проблема не в нехватке знаний или опыта. Обычно не хватает другого: времени, внимания, сосредоточенности, упорства, чтобы дойти до сути и не свернуть раньше времени, учловий работы, чтобы не дергали (ну сам себе не создал таких условий).
Так что, берите тех людей, которые говорят, что "не могут" и помогайте, их предел обычно ближе к реальности. А вот уверенность тех, кто сразу заявляет, что все элементарно, означает, что они не видят глубины.
💯25❤11👎4🤝4🎉1
Node.js Ukraine Community
Photo
This media is not supported in your browser
VIEW IN TELEGRAM
Axios Supply Chain Attack
кто там не слушался? я уже 6-7 лет говорю, что нужно выкидывать бяку, быстро переходим на fetch api, undici, node.js built-in api
https://thehackernews.com/2026/03/axios-supply-chain-attack-pushes-cross.html
кто там не слушался? я уже 6-7 лет говорю, что нужно выкидывать бяку, быстро переходим на fetch api, undici, node.js built-in api
https://thehackernews.com/2026/03/axios-supply-chain-attack-pushes-cross.html
💯19😁11❤5🍾3🤷♂1🤝1
Как вы развиваетесь?
Anonymous Poll
24%
Курсы, менторы, митапы, конференции
49%
Читаю статьи, книги, смотрю доклады
50%
Сам изучаю и экспериментирую
5%
Я член сообщества, в котором все есть
65%
Учусь на работе, на проекте, на практике
23%
Читаю и изучаю чужие исходники
20%
Почти не занимаюсь развитием
❤3👍3🔥3👨💻1
На хорошем собеседовании человеку должны разрешать спросить у AI, смотреть документацию, гуглить, да любые инструменты, которые он использует в ежедневной работе. Собеседование должно проверять не память и даже не экспертизу, а эффективность. Способность решать задачи, принимать решения, отличать рабочее решение от маразма и не плодить говнокод.
Многие думают, что если дать кандидату доступ ко всему, то он сразу покажет высокий уровень. Нет. Наоборот, очень быстро становится видно, кто умеет думать, а кто просто выучил слова. Человек может идеально рассказать про event loop, garbage collection, паттерны и другие вещи, но в реальном коде не способен принять ни одного зрелого решения.
Мне на собеседовании важно не только как человек отвечает, но и что он считает хорошим и плохим. Его субъективная позиция, даже эмоциональная реакция на конкретные решения. Именно это он потом будет приносить в работу каждый день: вкус и отношение к качеству, склонность к оверинжинирингу или упрощению, к структуре или к имитации деятельности.
Что реально нужно?
- Насмотренность, кругозор, проактивность.
- Доброжелательность, а не токсичность в работе.
- Умение писать простой, понятный, надежный код.
- Умение быстро освоить любые знания и инструменты.
- Парадигмы, понимание модулности, декомпозиция, зацепление и связность.
- Умение изолировать то, что должно меняться независимо.
- Способность донести мысль в понятной форме.
- Принятие ответственности, а не перекладывание ее.
Проблема почти всегда не в инструментах. Один и тот же язык, один и тот же фреймворк, один и тот же стек дают у разных людей совершенно разный результат. Один делает продукт, который можно развивать годами. Другой делает хрупкую конструкцию, которая рассыпается от любого изменения. Дело в инженерном подходе.
То же самое с оптимизацией. Прикладному разработчику не нужно играть в исследователя виртуальной машины. Его задача в том, чтобы решать проблемы предметной области, вникать в задачу. В прикладной разработке стремление к низкоуровневому коду часто просто маскирует нежелание разбираться в реальной сложности продукта.
Тезис простой: на собеседованиях надо проверять мышление, вкус, зрелость решений и способность добиваться результата с любыми доступными инструментами. В обучении надо больше учиться чтению кода и анализу (в том числе после AI), на код-ревью, рефакторинг, контракты и поддерживаемость, на коммуникацию с коллегами и заказчиками.
Многие думают, что если дать кандидату доступ ко всему, то он сразу покажет высокий уровень. Нет. Наоборот, очень быстро становится видно, кто умеет думать, а кто просто выучил слова. Человек может идеально рассказать про event loop, garbage collection, паттерны и другие вещи, но в реальном коде не способен принять ни одного зрелого решения.
Мне на собеседовании важно не только как человек отвечает, но и что он считает хорошим и плохим. Его субъективная позиция, даже эмоциональная реакция на конкретные решения. Именно это он потом будет приносить в работу каждый день: вкус и отношение к качеству, склонность к оверинжинирингу или упрощению, к структуре или к имитации деятельности.
Что реально нужно?
- Насмотренность, кругозор, проактивность.
- Доброжелательность, а не токсичность в работе.
- Умение писать простой, понятный, надежный код.
- Умение быстро освоить любые знания и инструменты.
- Парадигмы, понимание модулности, декомпозиция, зацепление и связность.
- Умение изолировать то, что должно меняться независимо.
- Способность донести мысль в понятной форме.
- Принятие ответственности, а не перекладывание ее.
Проблема почти всегда не в инструментах. Один и тот же язык, один и тот же фреймворк, один и тот же стек дают у разных людей совершенно разный результат. Один делает продукт, который можно развивать годами. Другой делает хрупкую конструкцию, которая рассыпается от любого изменения. Дело в инженерном подходе.
То же самое с оптимизацией. Прикладному разработчику не нужно играть в исследователя виртуальной машины. Его задача в том, чтобы решать проблемы предметной области, вникать в задачу. В прикладной разработке стремление к низкоуровневому коду часто просто маскирует нежелание разбираться в реальной сложности продукта.
Тезис простой: на собеседованиях надо проверять мышление, вкус, зрелость решений и способность добиваться результата с любыми доступными инструментами. В обучении надо больше учиться чтению кода и анализу (в том числе после AI), на код-ревью, рефакторинг, контракты и поддерживаемость, на коммуникацию с коллегами и заказчиками.
👍62💯13❤10🔥6🤷♂1
Сейчас нет проблемы в доступе к знаниям, всего полно, нет времени на это.
Курсы, менторы, митапы, конференции - не меняют поведение без внедрения в реальную работу. Курсы не успевают разрабатывать, AI слишком быстро гонит всех вперед, на конференциях рассказывают то же, что и 5-10 лет назад, это бессмысленно.
Статьи и книги уже безвозвратно отстали. Вчера видел в книжном магазине: HTML, CSS (книга по верстке, бывает же…), Java, Python, ASP .NET (он что, жив еще?). Ладно, есть хорошие и толстые книжки, у меня на полке стоит Дональд Кнут, SICP, весь Робер Мартин и Эрик Эванс… не, не хотите почитать Фаулера или Клепмана?
Сам изучаю и экспериментирую - это долгий путь, я первые 10 лет такой писал такой ужасный код... Потому, что его никто не видел и я не смотрел чужой код, просто варился в собственных мыслях. Все это не работает в одиночку, ложные выводы, на практике работает и вроде так и должно быть, сравнить не с чем, изобретение велосипедов.
Учусь на работе, на проекте, на практике - да, да, конечно, поступил на работу и там вам дадут поучиться, будете писать сервисы, контроллеры, формочки, модельки, апишки и понеслись месяцы однотипной рутины, при чем, всегда на вчера и вздохнуть некогда. Работа учит делать как принято в компании и как быстрее.
Кто выбрал “Читаю и изучаю чужие исходники” - я вам не верю, вы не читаете даже то, что вам генерирует AI, и что пишут коллеги в проекте, а тут чужие исходники, да-да-да…
Курсы, менторы, митапы, конференции - не меняют поведение без внедрения в реальную работу. Курсы не успевают разрабатывать, AI слишком быстро гонит всех вперед, на конференциях рассказывают то же, что и 5-10 лет назад, это бессмысленно.
Статьи и книги уже безвозвратно отстали. Вчера видел в книжном магазине: HTML, CSS (книга по верстке, бывает же…), Java, Python, ASP .NET (он что, жив еще?). Ладно, есть хорошие и толстые книжки, у меня на полке стоит Дональд Кнут, SICP, весь Робер Мартин и Эрик Эванс… не, не хотите почитать Фаулера или Клепмана?
Сам изучаю и экспериментирую - это долгий путь, я первые 10 лет такой писал такой ужасный код... Потому, что его никто не видел и я не смотрел чужой код, просто варился в собственных мыслях. Все это не работает в одиночку, ложные выводы, на практике работает и вроде так и должно быть, сравнить не с чем, изобретение велосипедов.
Учусь на работе, на проекте, на практике - да, да, конечно, поступил на работу и там вам дадут поучиться, будете писать сервисы, контроллеры, формочки, модельки, апишки и понеслись месяцы однотипной рутины, при чем, всегда на вчера и вздохнуть некогда. Работа учит делать как принято в компании и как быстрее.
Кто выбрал “Читаю и изучаю чужие исходники” - я вам не верю, вы не читаете даже то, что вам генерирует AI, и что пишут коллеги в проекте, а тут чужие исходники, да-да-да…
😁24❤16💯11👍7👎1🔥1🎉1👨💻1
На чем можно сэкономить время, чтобы быстрее учиться и что скорее всего никогда не понадобится в реальном продуктовом коде:
- Алгоритмы, задачи с литкода и кодеварс - это встроено в платформу, можно быстро найти, AI это напишет без проблем, это справочные данные, не нужно их зубрить.
- Всякие учебные задачи, типа todo листа, калькулятора, крестики-нолики - они настолько далеки от практики, что просто отвлекают и забирают внимание.
- Задачи на системный дизайн и высокие нагрузки - вы не проектируете гугл или амазон, у 99% разработчиков никогда не будет миллионов пользователей или распределенных высоконагруженных систем.
- Микрооптимизация, выжимание производительности - что быстрее object[key] или obejct.key и Object.assign - это поправит AI по скилу, написанному экспертом, или вы хотите стать таким экспертом?
- Не старайтесь изучить внутреннее устройство event loop, garbage collection, goroutine scheduler, это спрашивают на собесах, но не нужно в работе - собесы и найм сломан, туда бесполезно соваться.
- Алгоритмы, задачи с литкода и кодеварс - это встроено в платформу, можно быстро найти, AI это напишет без проблем, это справочные данные, не нужно их зубрить.
- Всякие учебные задачи, типа todo листа, калькулятора, крестики-нолики - они настолько далеки от практики, что просто отвлекают и забирают внимание.
- Задачи на системный дизайн и высокие нагрузки - вы не проектируете гугл или амазон, у 99% разработчиков никогда не будет миллионов пользователей или распределенных высоконагруженных систем.
- Микрооптимизация, выжимание производительности - что быстрее object[key] или obejct.key и Object.assign - это поправит AI по скилу, написанному экспертом, или вы хотите стать таким экспертом?
- Не старайтесь изучить внутреннее устройство event loop, garbage collection, goroutine scheduler, это спрашивают на собесах, но не нужно в работе - собесы и найм сломан, туда бесполезно соваться.
❤26🤣9🤯7💯7👍6👎2
В чем заключается эффективность инженера в 2026 году? Если помнить API и паттерны на память это не главное, если инструменты и AI доступны всем, знания доступны как никогда, но на их овладение нет ни времени ни внимания.
Тогда что главное?
Сила инженера сейчас в другом. В способности формировать мировоззрение и видение, задавать направление своим мыслям и тому же AI.
Как-то меня спросили после лекции "Где вы берете столько разнообразных слов и идей. Потому что я что не напишу - все контролер получается. А у вас все разное."
В чем секрет? Объемное видение формируется из мировоззрения, а нарабатывается годами на практических задачах. Например:
- У меня есть бэкграунд кибернетики и обработки сигналов, системного программирования, научной деятельности, у каждого было свое окружение и точка старта, у кого-то геймдев, у кого-то сайты или системы отчетности, обратитесь к этому первому опыту, где сформировались первые идеи
- Еще есть семья, которая на вас повлияла, вот у меня семья архитекторов и художников сформировала направленность на эстетические решения, а первый наставник по программированию заложил интерес к технике и педагогике, и как это соединить
- Вспомните, что вы можете взять от старших коллег, я в первые 10 лет набирался от коллег не столько как программировать (ни кто мой код не смотрел, кстати и к сожалению), а научился я тому, как работать с людьми, с заказчиками, как формировать задачу, как обсуждать пути решения...
- В большом государственном ИТ я узнал, как работать с рисками, как видеть цену ошибки, находить узкие места (и не в технологиях, а в человеческом взаимодействии) и как усиливать людей, как отвадить их от ложных мыслей так, чтобы они сами увидели проблему, а не повелительно им что-то прилетело (вынуждены работают).
- AI сейчас генерирует тонны кода, и что кто это будет читать, кто за это будет отвечать или ориентироваться в этом? Держать AI в русле вашего мнения, а не нести вас неизвестно куда – вот что важно сейчас. AI должен снимать рутину, а не заменять ваше мышление.
– Раньше инженерное мышление ожидалось от синьоров, теперь оно должно быть у всех инженеров. Поскольку код, знания и доступ к инструментам стали дешевле, дорожает только ясность мнений и качество решений.
Я, конечно, могу выдать вам еще список в 30 книг и 200 часов лекций, но вы и так знаете, где оно все есть и как найти, думаю над альтернативным форматом, который не отнимает столько времени. Предлагайте в комментариях.
Тогда что главное?
Сила инженера сейчас в другом. В способности формировать мировоззрение и видение, задавать направление своим мыслям и тому же AI.
Как-то меня спросили после лекции "Где вы берете столько разнообразных слов и идей. Потому что я что не напишу - все контролер получается. А у вас все разное."
В чем секрет? Объемное видение формируется из мировоззрения, а нарабатывается годами на практических задачах. Например:
- У меня есть бэкграунд кибернетики и обработки сигналов, системного программирования, научной деятельности, у каждого было свое окружение и точка старта, у кого-то геймдев, у кого-то сайты или системы отчетности, обратитесь к этому первому опыту, где сформировались первые идеи
- Еще есть семья, которая на вас повлияла, вот у меня семья архитекторов и художников сформировала направленность на эстетические решения, а первый наставник по программированию заложил интерес к технике и педагогике, и как это соединить
- Вспомните, что вы можете взять от старших коллег, я в первые 10 лет набирался от коллег не столько как программировать (ни кто мой код не смотрел, кстати и к сожалению), а научился я тому, как работать с людьми, с заказчиками, как формировать задачу, как обсуждать пути решения...
- В большом государственном ИТ я узнал, как работать с рисками, как видеть цену ошибки, находить узкие места (и не в технологиях, а в человеческом взаимодействии) и как усиливать людей, как отвадить их от ложных мыслей так, чтобы они сами увидели проблему, а не повелительно им что-то прилетело (вынуждены работают).
- AI сейчас генерирует тонны кода, и что кто это будет читать, кто за это будет отвечать или ориентироваться в этом? Держать AI в русле вашего мнения, а не нести вас неизвестно куда – вот что важно сейчас. AI должен снимать рутину, а не заменять ваше мышление.
– Раньше инженерное мышление ожидалось от синьоров, теперь оно должно быть у всех инженеров. Поскольку код, знания и доступ к инструментам стали дешевле, дорожает только ясность мнений и качество решений.
Я, конечно, могу выдать вам еще список в 30 книг и 200 часов лекций, но вы и так знаете, где оно все есть и как найти, думаю над альтернативным форматом, который не отнимает столько времени. Предлагайте в комментариях.
👍20❤9💯7🔥2🤝2
Вот собрал тут что важно по хардскилам, вместо ваших алгоритмов, литкода, высоконагруженных кабанчиков и карго-культа микрооптимизации:
- Data structures (just how to use)
- Type systems: nominal, structural, variance...
- Modularity system (in your language)
- Polymorphism (Ad-hoc, Subtype, Parametric, etc...)
- Structural composition, aggregation, delegation
- Functional composition, pure functions
- Abstraction layers separation
- Dispatch and Dynamic dispatch
- Referential transparency
- Law of Demeter
- Referential transparency
- Abstract data types (ADT)
- Hidden and explicit state
- Lazy evaluation
- Declarative vs imperative style
- Recursion versus loops
- Generics (generic programming)
- Separation of concerns
- Isolation, interfaces, architectural boundaries
- Dependency injection and Inversion of control
- Coupling and cohesion
- Mutable vs immutable data
- Idempotent operations
- Naming conventions
- Error handling
- Refactoring, code review process
- Tests (unittesting, coverage, end-to-end...)
- Multiparadigm programming
- Metaprogramming (codegeneration and dynamic)
- Platform-agnostic, framework-agnostic approach
- Domain-Specific Language (DSL), Interpreter, AST
- Contract programming
- Concurrency and Asynchronous programming
- Separation of system and applied code
- Language and semantics
- AI-assisted engineering
Но все это тоже должно занимать в голове не более 30% от развития инженера, as of 2026. Про 70% напишу еще чуть позже
Repo: https://github.com/tshemsedinov/Programming-Knowledge
- Data structures (just how to use)
- Type systems: nominal, structural, variance...
- Modularity system (in your language)
- Polymorphism (Ad-hoc, Subtype, Parametric, etc...)
- Structural composition, aggregation, delegation
- Functional composition, pure functions
- Abstraction layers separation
- Dispatch and Dynamic dispatch
- Referential transparency
- Law of Demeter
- Referential transparency
- Abstract data types (ADT)
- Hidden and explicit state
- Lazy evaluation
- Declarative vs imperative style
- Recursion versus loops
- Generics (generic programming)
- Separation of concerns
- Isolation, interfaces, architectural boundaries
- Dependency injection and Inversion of control
- Coupling and cohesion
- Mutable vs immutable data
- Idempotent operations
- Naming conventions
- Error handling
- Refactoring, code review process
- Tests (unittesting, coverage, end-to-end...)
- Multiparadigm programming
- Metaprogramming (codegeneration and dynamic)
- Platform-agnostic, framework-agnostic approach
- Domain-Specific Language (DSL), Interpreter, AST
- Contract programming
- Concurrency and Asynchronous programming
- Separation of system and applied code
- Language and semantics
- AI-assisted engineering
Но все это тоже должно занимать в голове не более 30% от развития инженера, as of 2026. Про 70% напишу еще чуть позже
Repo: https://github.com/tshemsedinov/Programming-Knowledge
GitHub
GitHub - tshemsedinov/Programming-Knowledge: Essential Knowledge for Programmers in 2026
Essential Knowledge for Programmers in 2026. Contribute to tshemsedinov/Programming-Knowledge development by creating an account on GitHub.
👍38🔥8❤6😢1💯1
Суббота 18 апреля в 18-00 (Time zone: UTC +3 Eastern European Summer Time)
https://www.youtube.com/live/mSVCQ0VzIAo
https://www.youtube.com/live/mSVCQ0VzIAo
YouTube
🚀 Мидлу некогда развиваться в IT, AI наступает, кризис — Илья Климов, Тимур Шемсединов
Подробнее про новый формат: https://tg.pulse.is/next_tick_bot?start=69ce57941f15eb55e90ea47a&source_channel=timur_yt_tshemsedinov
🔥13👍6❤5👎1
Напоминаю: сегодня в 18-00 стрим, где мы разберем, как в 2026 году оставаться актуальным и развиваться профессионально несмотря на AI, увольнения в IT, экономический кризис, тотальное ускорение и нестабильность во всем мире. Что делать обычному инженеру, потому что просто быть уже маловато, как это было на растущем рынке. Просто фронтенд или просто бэкенд это все мало, даже фулстек не может позволить себе расслабиться.
https://www.youtube.com/live/mSVCQ0VzIAo
https://www.youtube.com/live/mSVCQ0VzIAo
👍19❤7🔥2🎉1💯1
- Что делать Роберту мартину, когда его окружили AI агенты?
- Да ладно, Дяде Бобу, у него все ок, что нам делать?
- Заходить по ссылке в описании - https://tg.pulse.is/next_tick_bot?start=69ce57941f15eb55e90ea47a&source_channel=timur_tg_howprogworks
- Да ладно, Дяде Бобу, у него все ок, что нам делать?
- Заходить по ссылке в описании - https://tg.pulse.is/next_tick_bot?start=69ce57941f15eb55e90ea47a&source_channel=timur_tg_howprogworks
😁10🔥5❤3
Главный архитектор делает ревью главному фасаду
https://youtube.com/@TimurShemsedinov
https://github.com/tshemsedinov
https://x.com/tshemsedinov
https://t.me/HowProgrammingWorks
https://youtube.com/@TimurShemsedinov
https://github.com/tshemsedinov
https://x.com/tshemsedinov
https://t.me/HowProgrammingWorks
❤23😁14👍6🎉3💯1🤣1
Спасибо ИИ, что теперь есть кому читать мои Design docs, ADR, RFC и другие md файлы, концептуальный код, сложные ТЗ и примеры кода, такого благодарного читателя сложно было представить.
😁80👍9❤6💯2🤩1
Из всех моих курсов по петтернам, по Node.js, по асинхронному программированию, по архитектуре, люди научились не паттернам и не ноде, а натренировались по декомпозиции, рефакторингу, управлять распределением ответственности, зацеплением, структурной композицией и делегированием, состоянием, изоляцией, тем, что вообще массово люди плохо умеют. А сами паттерны мы используем каждый день ну 5-10 может, но не 23 как в GoF и не сотню, если считать вместе с архитектурными и другими non-GoF, остальные нужны раз в 2 года или вообще раз в жизни. Ценность этих курсов не в заучивании паттернов и api ноды. Это все только повод для инженерного мышления. Тут новый формат и мы уже почти набрали группы, скоро закрываем набор: https://tg.pulse.is/next_tick_bot?start=69ce57941f15eb55e90ea47a&source_channel=timur_tg_howprogworks
👍7❤3🤝1
Очень интересно, что после наших бреинштормов с Ильей выяснилось, что ключевые способности, благодаря которым люди строят карьеру, не могут быть отнесены ни к хардскилам, ни к софтскилам, нет слова, чтобы это назвать. Это не знания технологий и архитекты, а то, как быть инженером и архитектором. Без хард и софт скилов нельзя конечно, но можно быть с ними и без работы.
🤣19❤6💯5🤷♂4👍1🤯1
Я заставляю AI уменьшать сложность и объем кода. Мне говорят "Завтра этот код будет вычитывать и править ошибки нейронка." Мол не нужно тратить силы на уменьшение сложности.
Так вот: завтра эта нейронка превратит 100 строк в 1000, послезавтра в 10000, а потом ты не сможешь заплатить за нее, или она сама не поймет это ни за какие деньги, сложность накапливается. Человек способен написать код, который не поймет через 2 месяца, нейронка способна написать код, который не сможет поправить через 5 минут. Тратьте больше усилий на уменьшение accidental complexity (на борьбу с оверинженерингом) и на сокрытие сложности.
Так вот: завтра эта нейронка превратит 100 строк в 1000, послезавтра в 10000, а потом ты не сможешь заплатить за нее, или она сама не поймет это ни за какие деньги, сложность накапливается. Человек способен написать код, который не поймет через 2 месяца, нейронка способна написать код, который не сможет поправить через 5 минут. Тратьте больше усилий на уменьшение accidental complexity (на борьбу с оверинженерингом) и на сокрытие сложности.
👍50🔥9❤4🤩1🫡1