HowProgrammingWorks - JavaScript and Node.js Programming
6.34K 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
Для подписчиков на Patreon начиная с $10 есть плейлист из 32 видео по 2 часа (это более 60 часов), который пополняется каждую неделю новым выпуском созвонов сообщества с ответами на вопросы и обсуждениями: https://www.patreon.com/tshemsedinov
Интересная разница между твиттером и линкедином
Это у меня дети 6-14 лет делают, может и вам будет полезно
В конце каждого года Метархия будет определять деятелей ИТ, которые существенно набросили в этом году, поставили под сомнение общепринятые идеи, показали очевидные заблуждения и повлияли на переосмысление программной инженерии.

- За оскорбление чувств фанатиков
- За оскорбление чувств вайтишников
- За оскорбление чувств инфоменьшинств
- За оскорбление чувств вендоров
- За оскорбление чувств говнокодеров

Предлагайте свои номинации и выдвигайте претендентов.
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.

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

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