HowProgrammingWorks - JavaScript and Node.js Programming
6.33K subscribers
308 photos
7 videos
1 file
749 links
Программная инжененрия для JavaScript, TypeScrip, Node.js 👉 Group: https://t.me/MetarhiaHPW 👉 Node.js channel: https://t.me/metarhia 👉 Node.js group: https://t.me/nodeua
Download Telegram
Forwarded from Timur Shemsedinov
Семинар для начинающих в JavaScript - среда 15 декабря с 12:20 до 14:00 - для тех, кто начал проходить мой курс или уже что-то знает, и есть вопросы. Есть возможность написать вопросы тут https://github.com/HowProgrammingWorks/Review/discussions или подключиться и задать голосом, для этого присылайте мне свои email в личку
Семинар по Node.js - Четверг 23 декабря с 18:30 до 20:00 - для тех, кто осваивает сам или проходит открытый курс Метархии и есть вопросы. Есть возможность написать вопросы тут https://github.com/HowProgrammingWorks/Review/discussions или подключиться и задать голосом, для этого присылайте мне в личку на @tshemsedinov свой mail и я добавлю вас в событие
let
ㅤtrue = false,
ㅤfalse = true;

console.log(
ㅤtrue,
ㅤfalse,
);
Я поставил себе цель, чтобы все идиоты мира подписались на ютюб Вавилена Пожарского, если вы знаете идиота, то прешлите ему это сообщение. Зарание извините меня, что сообщение попало именно к вам. Ищите его по фото и урокам говнокода на JavaScript https://t.co/JgBKlT7maK
Витгенштейн учит нас, что языки это игра, в которой мы сами назначаем правила и смыслы, это верно и для языков программирования. Почти все в программировании - чистый волюнтаризм, творчество и наша воля, нет ни какой научно обоснованной теории, что считать правильным, а что нет.

На фото: Ахматова сравнивает распечатку SectorLISP (436 байтов вклюяая сборщик мусора) с романом Андерса Хейлсберга «Сто лет компиляции»

https://twitter.com/tshemsedinov/status/1475602298587987975?t=FZpUjnb8cvj_5r1-yvi1Jw
Желаю вам в новом году посмотреть на свой код, как бы, чужими глазами
Расскажу, как я придумал учить начинающих программировать: исходим из того, что главные навыки это чтение кода и написание такого кода, который хорошо читается, это основной критерий качества, а значит и учить нужно не столько писать, как читать и исправлять.

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

Если давать традиционные задания (написать функцию по сигнатуре, алгоритм, класс), то они пишут говнокод и потом его защищают, а тут у них задача найти проблемы и исправить, не переписать с нуля, а исправить в несколько шагов, тут включается критический подход.

И потом я подбрасываю им примеров, как я делаю ревью и предлагаю исправления, так студенты исправляют по много итераций, не теряя критичного настроя. Наставник заходит и подсказывает, но не делает работу за них, а наталкивает на решение.

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

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

Ну и снижение языкового фанатизма достигается параллельным изучением с самого начала трех языков и переводами с одного на другой. Между JavaScript и Python переводить очень просто, ну C++ посложнее, но эти три языка, какие бы они ни были, нельзя не включить в курс.

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

Снижение парадигмального фанатизма - заставлять комбинировать процедурное, функциональное, ООП, реактивное и автоматное программирование, показать: как эта комбинация позволяет упростить паттерны и принципы из GoF и SOLID.

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

Я уже собираюсь переписывать свои лекции и примеры кода. Те, что сейчас - не годятся, сильно сложно.
Forwarded from Metaeducation
Пример пошагового исправления кода. Это одно из заданий для студентов нового курса.

Исходники тут https://github.com/HowProgrammingWorks/Exams/tree/master/Example
Совещание #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
Новости! Обновленный курс будет в виде книги в 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