Forwarded from Timur Shemsedinov
YouTube
JavaScript семинар #2 по курсу HowProgrammingWorks
Github автора: https://github.com/tshemsedinov
Github курса: https://github.com/HowProgrammingWorks
Канал курса в телеграме: https://t.me/HowProgrammingWorks
Группа в телеграме: https://t.me/metaedu
Оглавление курса: https://github.com/HowProgrammingWorks/Index
Github курса: https://github.com/HowProgrammingWorks
Канал курса в телеграме: https://t.me/HowProgrammingWorks
Группа в телеграме: https://t.me/metaedu
Оглавление курса: https://github.com/HowProgrammingWorks/Index
Я поставил себе цель, чтобы все идиоты мира подписались на ютюб Вавилена Пожарского, если вы знаете идиота, то прешлите ему это сообщение. Зарание извините меня, что сообщение попало именно к вам. Ищите его по фото и урокам говнокода на JavaScript https://t.co/JgBKlT7maK
Витгенштейн учит нас, что языки это игра, в которой мы сами назначаем правила и смыслы, это верно и для языков программирования. Почти все в программировании - чистый волюнтаризм, творчество и наша воля, нет ни какой научно обоснованной теории, что считать правильным, а что нет.
На фото: Ахматова сравнивает распечатку SectorLISP (436 байтов вклюяая сборщик мусора) с романом Андерса Хейлсберга «Сто лет компиляции»
https://twitter.com/tshemsedinov/status/1475602298587987975?t=FZpUjnb8cvj_5r1-yvi1Jw
На фото: Ахматова сравнивает распечатку SectorLISP (436 байтов вклюяая сборщик мусора) с романом Андерса Хейлсберга «Сто лет компиляции»
https://twitter.com/tshemsedinov/status/1475602298587987975?t=FZpUjnb8cvj_5r1-yvi1Jw
Forwarded from Metarhia/NodeUA - Node.js Ukraine Community
YouTube
🎧 Новогодняя встреча Metarhia #37 (2021-12-30): внедрения, планы и новые люди
Github Метархии: https://github.com/metarhia
Github курса: https://github.com/HowProgrammingWorks
Фронтенд библиотека: https://github.com/metarhia/swayer
Контакты: https://github.com/HowProgrammingWorks/Index/blob/master/Links.md
Github курса: https://github.com/HowProgrammingWorks
Фронтенд библиотека: https://github.com/metarhia/swayer
Контакты: https://github.com/HowProgrammingWorks/Index/blob/master/Links.md
Forwarded from Metarhia/NodeUA - Node.js Ukraine Community
Желаю вам в новом году посмотреть на свой код, как бы, чужими глазами
Расскажу, как я придумал учить начинающих программировать: исходим из того, что главные навыки это чтение кода и написание такого кода, который хорошо читается, это основной критерий качества, а значит и учить нужно не столько писать, как читать и исправлять.
После лекций у студентов всегда есть репозиторий с примерами кода, чтобы почитать, но вместо заданий я даю им специально заготовленные куски рабочего говнокода, который нужно отрефакторить, и это вообще первая активность в курсе - исправить код повышая его читабельность.
Если давать традиционные задания (написать функцию по сигнатуре, алгоритм, класс), то они пишут говнокод и потом его защищают, а тут у них задача найти проблемы и исправить, не переписать с нуля, а исправить в несколько шагов, тут включается критический подход.
И потом я подбрасываю им примеров, как я делаю ревью и предлагаю исправления, так студенты исправляют по много итераций, не теряя критичного настроя. Наставник заходит и подсказывает, но не делает работу за них, а наталкивает на решение.
Следующее задание - уже написать код, и обменяться между студентами для перекрестного ревью. Конечно перед этим линтеры, нужно добиться того, что бы коллега понимал выраженную тобой мысль, а не придирался к синтаксису.
Переходим к упражнением на снижение зацепления между несколькими абстракциями, потом между модулями, потом оптимизация зацепления типов, т.е. сделать так, чтобы нужно было как можно меньше знать про структуры данных одной части программы из другой ее части.
Ну и снижение языкового фанатизма достигается параллельным изучением с самого начала трех языков и переводами с одного на другой. Между JavaScript и Python переводить очень просто, ну C++ посложнее, но эти три языка, какие бы они ни были, нельзя не включить в курс.
Снижение фреймворкового фанатизма - запрет для начинающих использовать библиотеки и фреймворки, и максимально нативное только писать, без зависимостей.
Снижение парадигмального фанатизма - заставлять комбинировать процедурное, функциональное, ООП, реактивное и автоматное программирование, показать: как эта комбинация позволяет упростить паттерны и принципы из GoF и SOLID.
Еще важная часть курса - антипаттерны, рефакторинг, ревью кода. Сначала обзор, а потом все на реальных кейсах.
Я уже собираюсь переписывать свои лекции и примеры кода. Те, что сейчас - не годятся, сильно сложно.
После лекций у студентов всегда есть репозиторий с примерами кода, чтобы почитать, но вместо заданий я даю им специально заготовленные куски рабочего говнокода, который нужно отрефакторить, и это вообще первая активность в курсе - исправить код повышая его читабельность.
Если давать традиционные задания (написать функцию по сигнатуре, алгоритм, класс), то они пишут говнокод и потом его защищают, а тут у них задача найти проблемы и исправить, не переписать с нуля, а исправить в несколько шагов, тут включается критический подход.
И потом я подбрасываю им примеров, как я делаю ревью и предлагаю исправления, так студенты исправляют по много итераций, не теряя критичного настроя. Наставник заходит и подсказывает, но не делает работу за них, а наталкивает на решение.
Следующее задание - уже написать код, и обменяться между студентами для перекрестного ревью. Конечно перед этим линтеры, нужно добиться того, что бы коллега понимал выраженную тобой мысль, а не придирался к синтаксису.
Переходим к упражнением на снижение зацепления между несколькими абстракциями, потом между модулями, потом оптимизация зацепления типов, т.е. сделать так, чтобы нужно было как можно меньше знать про структуры данных одной части программы из другой ее части.
Ну и снижение языкового фанатизма достигается параллельным изучением с самого начала трех языков и переводами с одного на другой. Между JavaScript и Python переводить очень просто, ну C++ посложнее, но эти три языка, какие бы они ни были, нельзя не включить в курс.
Снижение фреймворкового фанатизма - запрет для начинающих использовать библиотеки и фреймворки, и максимально нативное только писать, без зависимостей.
Снижение парадигмального фанатизма - заставлять комбинировать процедурное, функциональное, ООП, реактивное и автоматное программирование, показать: как эта комбинация позволяет упростить паттерны и принципы из GoF и SOLID.
Еще важная часть курса - антипаттерны, рефакторинг, ревью кода. Сначала обзор, а потом все на реальных кейсах.
Я уже собираюсь переписывать свои лекции и примеры кода. Те, что сейчас - не годятся, сильно сложно.
Forwarded from Metaeducation
Пример пошагового исправления кода. Это одно из заданий для студентов нового курса.
Исходники тут https://github.com/HowProgrammingWorks/Exams/tree/master/Example
Исходники тут https://github.com/HowProgrammingWorks/Exams/tree/master/Example
Forwarded from Metarhia/NodeUA - Node.js Ukraine Community
Совещание #38: Курс JavaScript и Node.js, масштабирование сервера, организация сообщества Metarhia
1:30 Обновление курса программной инженерии
5:33 Создание юрлица для продуктовой разработки на Метархии
9:23 Примеры кода из обновленного открытого курса
31:58 Архитектура и масштабирование приложений на технологическом стеке Метархия
57:02 Про R&D для поддержки проектов и развития техстека Метархия
58:50 Организация сообщества Метархия
1:09:17 Кейсы внедрения Метархии
https://youtu.be/C3PPhW_0nuU
1:30 Обновление курса программной инженерии
5:33 Создание юрлица для продуктовой разработки на Метархии
9:23 Примеры кода из обновленного открытого курса
31:58 Архитектура и масштабирование приложений на технологическом стеке Метархия
57:02 Про R&D для поддержки проектов и развития техстека Метархия
58:50 Организация сообщества Метархия
1:09:17 Кейсы внедрения Метархии
https://youtu.be/C3PPhW_0nuU
YouTube
🎧 Совещание #38: Курс JavaScript и Node.js, масштабирование сервера, организация сообщества Metarhia
1:30 Обновление курса программной инженерии
5:33 Создание юрлица для продуктовой разработки на Метархии
9:23 Примеры кода из обновленного открытого курса
31:58 Архитектура и масштабирование приложений на технологическом стеке Метархия
57:02 Про R&D для поддержки…
5:33 Создание юрлица для продуктовой разработки на Метархии
9:23 Примеры кода из обновленного открытого курса
31:58 Архитектура и масштабирование приложений на технологическом стеке Метархия
57:02 Про R&D для поддержки…
Новости! Обновленный курс будет в виде книги в MD формате с автоматической сборкой в PDF.
Рабочее название: «Multi-paradigm and Meta-programming in the Software Engineering»
т.е. «Мультипарадигменное и метапрограммирование для программной инженерии»
Языки: английский и русский (если кто хочет делать переводы, то присоединяйтесь)
https://github.com/HowProgrammingWorks/Book
Оглавление пока сырое и не полное, это просто пример сборки в PDF, как будет готово оглавление, то я его опубликую, но можете уже делать предложения через issue, pull-request или просто в разделе https://github.com/HowProgrammingWorks/Book/discussions
Видео я буду продолжать записывать и делать на них ссылки из книги.
Кто хочет поддержать проект, то есть патреон: https://www.patreon.com/tshemsedinov
Рабочее название: «Multi-paradigm and Meta-programming in the Software Engineering»
т.е. «Мультипарадигменное и метапрограммирование для программной инженерии»
Языки: английский и русский (если кто хочет делать переводы, то присоединяйтесь)
https://github.com/HowProgrammingWorks/Book
Оглавление пока сырое и не полное, это просто пример сборки в PDF, как будет готово оглавление, то я его опубликую, но можете уже делать предложения через issue, pull-request или просто в разделе https://github.com/HowProgrammingWorks/Book/discussions
Видео я буду продолжать записывать и делать на них ссылки из книги.
Кто хочет поддержать проект, то есть патреон: https://www.patreon.com/tshemsedinov
Задачи на исправления javascript кода, многим лучше начинать с форматированного варианта, а то за проблемами форматирования сложно увидеть еще несколько слоев проблем. Я исправил репозиторий, но неотформатированные оставил в папке /NotFormatted/
https://github.com/HowProgrammingWorks/Exams
https://github.com/HowProgrammingWorks/Exams
Forwarded from Timur Shemsedinov
Регистрация проектов, компаний и стартапов, которые используют Метархию или хотят на нее перейти
https://forms.gle/mhhiyqP4qtpuwPJZA
https://forms.gle/mhhiyqP4qtpuwPJZA
Google Docs
Metarhia tech stack Project registry