Forwarded from Asynchronous Programming
Для того, чтобы писать прикладной код хватит первого столбика, второй полезен, как дополнительные знания, а для бекенда на ноде он обязателен, третий столбик содержит системные вещи, которые нужны для разработки инструментов, платформ и библиотек, четвертый столбик - дополнительные абстракции, которые вы можете добавить по выбору к своим знаниям, особенно, если работаете в специфических проектах, где много функционального и реактивного программирования, пятый столбик - вещи, которые морально устарели и могут рассматриваться как интересный антиквариат
👍18🔥6❤4🤔1
Forwarded from Node.js Ukraine Community
YouTube
✨ Асинхронное программирование на JavaScript и Node.js в 2024 ✨
👉 Описание курса Async 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md
👉 Старый курс по асинхронности: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md
👉 Node.js 2024 описание курса: …
👉 Старый курс по асинхронности: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md
👉 Node.js 2024 описание курса: …
🍾8❤1💋1
💫 JavaScript 2024 українською для початківців 🧑💻 Майже 8 годин 💫 https://youtu.be/FlXsGI7rzWE
YouTube
💫 JavaScript 2024 — 2025 українською для початківців 🧑💻
00:00:00 Ідентифікатори, змінні та константи
01:01:29 Літарали, значення та типи даних
01:21:03 Функції, блоки та область видимості змінних
01:54:12 Умови та розгалудження, оператор if
02:11:43 Цикли for, for..of, for..in
02:31:23 Цикли while, do..while
02:47:03…
01:01:29 Літарали, значення та типи даних
01:21:03 Функції, блоки та область видимості змінних
01:54:12 Умови та розгалудження, оператор if
02:11:43 Цикли for, for..of, for..in
02:31:23 Цикли while, do..while
02:47:03…
👍19🔥7❤4🎄3💩2
Forwarded from HowProgrammingWorks - JavaScript and Node.js Programming
💫
Self Assessment v 1.0 может использоваться, как автоматизированный инструмент для учета, треккинга и анализа микроскилов инженера, для личного удобства и для добавления в cv или профиль в github, linkedin и т.д. После заполнения система генерирует кнопку в html и md со ссылкой на вашу копию репозитория. Инструмент ускоряет проведение собеседований и сертификации как для претендента, так и для интервьюера: можно проверять только часть ключевых знаний, а не весь их объем, а после этого подписать коммит с результатами личным GPG ключем. Если периодически проходить оценивание, или делать это до начала обучения и после него, и хранить ветки или теги с результатами инвенторизации микроскилов по состоянию на определенный момент времени, то очень удобно сравнивать прогресс, который вы сделали за период обучения, чтения книги, работы на проекте и т.д. Сейчас оценивание имеет более 700 микроскилов и будет постоянно расширяться по всем направлениям, языкам и технологиям (например Proxy, Promise, Future, SRP, DI, Boxing, Cohesion, Tail call recursion...) с автоматическим сревнением их с ролями (например Node.js API developer, Node.js gamedev, Frontend react...) робот генерирует отчет через Github Actions CI с рекомендациями, что нужно подтянуть. Скоро появятся новые роли и области знаний, после чего Вы сможете обновить свой репозиторий из исходного для получения нового отчета. https://github.com/HowProgrammingWorks/SelfAssessmentGitHub
GitHub - HowProgrammingWorks/SelfAssessment: Software engineering self assessment
Software engineering self assessment. Contribute to HowProgrammingWorks/SelfAssessment development by creating an account on GitHub.
👍11🔥6❤2🤯1🥴1
❓ Почему читаемость и простота кода стратегически важна для программных систем?
💡 Казалось бы, оптимизация не критична, работает же, и ладно. По потреблению ресурсов это так, ну ест в 10 раз больше памяти и процессора, это часто не критично. Сложно читаемый код связывает ресурсы разработчиков и проект очень быстро увязает в долгих изменениях. Переписать сложно, а добавлять новые возможности выходит все медленнее. В какой-то момент все это схлопывается и код отправляется на свалку.
✅ Семантическая оптимизация, направленная на понятность, упрощение, читаемость, скорость изменений, гибкость кода, оказываются на порядок важнее потребления ресурсов.
👉 Но какие техники программирования к этому ведут? Подробнее будет скоро видео на моем ютюбе: https://youtube.com/@TimurShemsedinov
💡 Казалось бы, оптимизация не критична, работает же, и ладно. По потреблению ресурсов это так, ну ест в 10 раз больше памяти и процессора, это часто не критично. Сложно читаемый код связывает ресурсы разработчиков и проект очень быстро увязает в долгих изменениях. Переписать сложно, а добавлять новые возможности выходит все медленнее. В какой-то момент все это схлопывается и код отправляется на свалку.
✅ Семантическая оптимизация, направленная на понятность, упрощение, читаемость, скорость изменений, гибкость кода, оказываются на порядок важнее потребления ресурсов.
👉 Но какие техники программирования к этому ведут? Подробнее будет скоро видео на моем ютюбе: https://youtube.com/@TimurShemsedinov
❤15👍7🔥3
Forwarded from Node.js Ukraine Community
Что такое семантика кода?
В новом API промисифицированном setInterval возвращает асинхронный итератор, а цикл for await на каждой итерации дает один и тот же объект items. Мы конечно можем использовать shift для того, чтобы модифицировать массив на каждой итерации, но это еще больше запутывает семантику. Идея итерирования сломана.
Другие подобные примеры в курсе Node.js 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md
В новом API промисифицированном setInterval возвращает асинхронный итератор, а цикл for await на каждой итерации дает один и тот же объект items. Мы конечно можем использовать shift для того, чтобы модифицировать массив на каждой итерации, но это еще больше запутывает семантику. Идея итерирования сломана.
Другие подобные примеры в курсе Node.js 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md
👍3❤2🔥1🥰1
Forwarded from HowProgrammingWorks - JavaScript and Node.js Programming
Все время уходил от вопроса, про литературу, которую стоит читать программистам, это потому, что мой список выглядит странно и сложно объяснить, почему не Дядя Боб и не Мартин Фаулер... Они тоже, конечно, полезны, но все же мой список такой:
- Рене Декарт
- Людвиг Витгенштейн
- Ноам Хомский
- Кристофер Александер
- Алан Тьюринг
- Джон фон Нейман
- Норберт Винер
- Виктор Глушков
- Клод Шеннон
- Людвиг фон Берталанфи
- Стаффорд Бир
- Уильям Эшби
- Эдсгер Дейкстра
- Дональд Кнут
Это не так много, и точно более полезно, чем нетфликс и амазон
- Рене Декарт
- Людвиг Витгенштейн
- Ноам Хомский
- Кристофер Александер
- Алан Тьюринг
- Джон фон Нейман
- Норберт Винер
- Виктор Глушков
- Клод Шеннон
- Людвиг фон Берталанфи
- Стаффорд Бир
- Уильям Эшби
- Эдсгер Дейкстра
- Дональд Кнут
Это не так много, и точно более полезно, чем нетфликс и амазон
👍16❤6🗿6🔥2🤨1
Forwarded from HowProgrammingWorks - JavaScript and Node.js Programming
«Преждевременная оптимизация — корень всех зол». Дональд Кнут это ещё в 1974 сказал, но люди сейчас Кнута не читают и с первого месяца обучения до 2-3 лет опыта им очень важно сравнить for/while/do..while/forEach/for..of/for..in/reduce/map для несчастного сложения 5 чисел в массиве, которое вызывается 2 раза в час.
👍16🔥6❤3😁2
Forwarded from HowProgrammingWorks - JavaScript and Node.js Programming
Считаю плохой идеей учиться программированию на базе:
🙅🏻 Алгоритмы - они уже давно есть готовые в языках и платформах, менее 1% программистов будут их реализовывать в работе, а если будут, то их нужно за это наказывать. Вот что действительно нужно, так это краткий обзор алгоритмов и использование структур данных, именно с упором на применение, а не разработку.
🙅🏻 leetcode и аналоги - это задачи которые не должны встречаться в жизни никогда,
🙅🏻 Олимпиадное программирование - это простыни быстрого, нечитаемого кода, условия такие, пишем быстро и write-only, к чему хорошему это может привести?
🙅🏻 System design и highload - большинство людей пишут системы совсем не для миллионов пользователей, а те, кто пишут для миллионов, могут просто посмеяться, как эту тему любят обсуждать на собеседованиях, на курсах, в свободное время между программистами, об этом приятно мечтать, да... но люди пишут на работе обычно апишки, модельки, формочки, бизнес-логику и интеграции. Мы не говорим про 100% людей, но массово именно так.
🙅🏻 Треш-головоломки, типа как сделать
🙅🏻 Алгоритмы - они уже давно есть готовые в языках и платформах, менее 1% программистов будут их реализовывать в работе, а если будут, то их нужно за это наказывать. Вот что действительно нужно, так это краткий обзор алгоритмов и использование структур данных, именно с упором на применение, а не разработку.
🙅🏻 leetcode и аналоги - это задачи которые не должны встречаться в жизни никогда,
🙅🏻 Олимпиадное программирование - это простыни быстрого, нечитаемого кода, условия такие, пишем быстро и write-only, к чему хорошему это может привести?
🙅🏻 System design и highload - большинство людей пишут системы совсем не для миллионов пользователей, а те, кто пишут для миллионов, могут просто посмеяться, как эту тему любят обсуждать на собеседованиях, на курсах, в свободное время между программистами, об этом приятно мечтать, да... но люди пишут на работе обычно апишки, модельки, формочки, бизнес-логику и интеграции. Мы не говорим про 100% людей, но массово именно так.
🙅🏻 Треш-головоломки, типа как сделать
await [promise1, promise2] - я сам их использую но это только для привлечения внимания, они реально возбуждают фантазии программистов, но я всегда делаю оговорку, что так писать нельзя и даже такую задачу ставить нельзя.🏆20❤11👍8👎2