Metaeducation
1.74K subscribers
64 photos
4 videos
1 file
221 links
Download Telegram
Forwarded from Asynchronous Programming
Для того, чтобы писать прикладной код хватит первого столбика, второй полезен, как дополнительные знания, а для бекенда на ноде он обязателен, третий столбик содержит системные вещи, которые нужны для разработки инструментов, платформ и библиотек, четвертый столбик - дополнительные абстракции, которые вы можете добавить по выбору к своим знаниям, особенно, если работаете в специфических проектах, где много функционального и реактивного программирования, пятый столбик - вещи, которые морально устарели и могут рассматриваться как интересный антиквариат
👍18🔥64🤔1
Обновленный роадмап
23👍9🥰3
💫 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/SelfAssessment
👍11🔥62🤯1🥴1
Почему читаемость и простота кода стратегически важна для программных систем?

💡 Казалось бы, оптимизация не критична, работает же, и ладно. По потреблению ресурсов это так, ну ест в 10 раз больше памяти и процессора, это часто не критично. Сложно читаемый код связывает ресурсы разработчиков и проект очень быстро увязает в долгих изменениях. Переписать сложно, а добавлять новые возможности выходит все медленнее. В какой-то момент все это схлопывается и код отправляется на свалку.

Семантическая оптимизация, направленная на понятность, упрощение, читаемость, скорость изменений, гибкость кода, оказываются на порядок важнее потребления ресурсов.

👉 Но какие техники программирования к этому ведут? Подробнее будет скоро видео на моем ютюбе: https://youtube.com/@TimurShemsedinov
15👍7🔥3
Что такое семантика кода?

В новом API промисифицированном setInterval возвращает асинхронный итератор, а цикл for await на каждой итерации дает один и тот же объект items. Мы конечно можем использовать shift для того, чтобы модифицировать массив на каждой итерации, но это еще больше запутывает семантику. Идея итерирования сломана.

Другие подобные примеры в курсе Node.js 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md
👍32🔥1🥰1
😁24👍2🤯2👾1
Все время уходил от вопроса, про литературу, которую стоит читать программистам, это потому, что мой список выглядит странно и сложно объяснить, почему не Дядя Боб и не Мартин Фаулер... Они тоже, конечно, полезны, но все же мой список такой:

- Рене Декарт
- Людвиг Витгенштейн
- Ноам Хомский
- Кристофер Александер
- Алан Тьюринг
- Джон фон Нейман
- Норберт Винер
- Виктор Глушков
- Клод Шеннон
- Людвиг фон Берталанфи
- Стаффорд Бир
- Уильям Эшби
- Эдсгер Дейкстра
- Дональд Кнут

Это не так много, и точно более полезно, чем нетфликс и амазон
👍166🗿6🔥2🤨1
«Преждевременная оптимизация — корень всех зол». Дональд Кнут это ещё в 1974 сказал, но люди сейчас Кнута не читают и с первого месяца обучения до 2-3 лет опыта им очень важно сравнить for/while/do..while/forEach/for..of/for..in/reduce/map для несчастного сложения 5 чисел в массиве, которое вызывается 2 раза в час.
👍16🔥63😁2
😁18💯7
Считаю плохой идеей учиться программированию на базе:
🙅🏻 Алгоритмы - они уже давно есть готовые в языках и платформах, менее 1% программистов будут их реализовывать в работе, а если будут, то их нужно за это наказывать. Вот что действительно нужно, так это краткий обзор алгоритмов и использование структур данных, именно с упором на применение, а не разработку.
🙅🏻 leetcode и аналоги - это задачи которые не должны встречаться в жизни никогда,
🙅🏻 Олимпиадное программирование - это простыни быстрого, нечитаемого кода, условия такие, пишем быстро и write-only, к чему хорошему это может привести?
🙅🏻 System design и highload - большинство людей пишут системы совсем не для миллионов пользователей, а те, кто пишут для миллионов, могут просто посмеяться, как эту тему любят обсуждать на собеседованиях, на курсах, в свободное время между программистами, об этом приятно мечтать, да... но люди пишут на работе обычно апишки, модельки, формочки, бизнес-логику и интеграции. Мы не говорим про 100% людей, но массово именно так.
🙅🏻 Треш-головоломки, типа как сделать await [promise1, promise2] - я сам их использую но это только для привлечения внимания, они реально возбуждают фантазии программистов, но я всегда делаю оговорку, что так писать нельзя и даже такую задачу ставить нельзя.
🏆2011👍8👎2