Совместные занятия программированием новости
20 subscribers
3 photos
18 links
основная информация https://t.me/programming_together/10
Download Telegram
В нашем дискорде увидел ссылку на проект, который помогает начинающим влиться в опен сорс и решил продублировать здесь https://github.com/MunGell/awesome-for-beginners.
В списке присутствуют вполне популярные проекты, даже такие, как react https://github.com/reactjs/reactjs.org/labels/good%20first%20issue и vue https://github.com/vuejs/vue/labels/good%20first%20issue. А так же в списке есть проекты, связанные с этими популярными фреймворками.

Кроме того, что репо содержит много проектов у которых есть таскки с тегом "good first issue", так там ещё и есть ссылка на ещё один репо Awesome for non-programmers list https://github.com/szabgab/awesome-for-non-programmers. В этих проектах можно начинать проявлять активность даже без навыков программирования, то есть в самом начале обучения.

Давно присматривался к тому, где попроще попробовать что-то покоммитить в опен сорс, но пока что так и не начал и это всё выглядит действительно очень полезным для старта.
Скорее всего после завершения совместных занятий по ноде, буду смотреть по поводу активности именно в эту сторону.
Похоже нашёл решение для того, чтобы ведущим было удобнее создавать расписание текущих занятий, а участникам было удобнее следить за расписанием актуальных занятий.
В дискрорде есть функция "мероприятия", если прям сейчас зайти на сервер https://discord.gg/7dHv9TJxB8, то можно увидеть в самом вверху вкладку с мероприятиями. На мероприятие можно подписаться в дискорде, а так же, в выпадающем меню мероприятия можно делать синхронизацию с гугл календарём.
Пока что это выглядит самым удобным и самым простым в реализации вариантом.
Выдал роли "ведущий" текущим ведущим по js и react, при желании можно пробовать создавать мероприятия. Эту же роль в будущем смогу выдавать и остальным ведущим. Чтобы создать мероприятие, необходимо кликнуть на выпадающее меню в левом верхнем углу и выбрать "создать мероприятие"
Предварительная рецензия по книге Чарльза Петцольда "Код: тайный язык информатики".

Сейчас прочитано примерно пол книги или чуть больше и если попробовать сейчас одной фразой выразить смысл книги, то эта книга о том, как построить релейный компьютер.
Здесь наверное могут возникнуть сразу же два вопроса: что значит релейный и чем он отличается от других?
Релейный - это значит, что при построении акцент идёт на такой элемент как реле. Если сейчас в основе компьютера лежат транзисторы, ранее были лампы, то ещё раньше были реле.
В чём же тогда отличие? Вся прелесть в том, что глобальных архитектурных отличий как раз и нет. Книга рассказывает как из реле собрать логические вентили, сумматор, триггер, память и дальше по курсу будет даже процессор, просто занимать такой компьютер будет гораздо больше места.
Но выбор реле даёт и свои плюсы, с одной стороны, нам лучше удаётся понять историю становления первых компьютеров и что было до них. С другой стороны, есть понимание, что всё, что мы рассматриваем, можно собрать из батарейки, проволоки и электромагнитной катушки, которую в свою очередь можно собрать из куска той же проволоки и простого гвоздя. И это всё даёт такое сильное чувство, что все рассматриваемые примеры из книги очень просто собрать прям здесь и прям сейчас, были бы детали, что читать становится от такого куда интереснее.

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

Какой уровень сложности у книги и кому она может подойти? Книга подходит даже для детей, здесь и рассказывается всё с самых основ, так, что предварительные знания в целом совсем не нужны и одновременно книга остаётся довольно увлекательной в свой повествовании, несмотря на обилие технической информации.
Возможно, книга будет в целом скучновата для тех, кто в целом уже знаком с устройством памяти и процессора. Мне пару раз было скучно, особенно там, где рассказывают и разбирают системы счисления с основанием, отличным от десяти, ведь мне это всё уже вполне знакомо, но это точно не вина книги.
Обычно техническая литература или не читается от корки до корки или её читать тяжело в таком стиле. Эту же книгу довольно легко читать в стиле от корки до корки.

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

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

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

Что успели реализовать сейчас?
Простой вариант рисовалки
https://discord.com/channels/827923097289621544/828672824633458749/973314102875263007
Ещё один простой вариант рисовалки
https://github.com/bo-mila/canban
Простой вариант совместной рисовалки(несколько пользователей одновременно)
https://replit.com/@testishe1/UnacceptableLovableDeletions#index.js
Обсуждение нашей активности в дискорде пока что ведём здесь
https://discord.gg/h9gZ6GaQsj

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

Допрошли наконец лекции по ноде, могу поздравить всех кто ходил и присутствовал на занятиях. Теперь можно присматривать какую-то новую активность. Какая именно она будет и в каком направлении пока точно не знаю.

По рисовалке сейчас такой результат
https://replit.com/@testishe1/UnacceptableLovableDeletions#index.js
Присутствует функционал комнат и одновременного рисования. Подключиться можно в главную комнату автоматически или в любую другую по ссылке. Можно рисовать и стирать линии различной толщины, а так же подгружается история комнаты при первом подключении в неё.
Что дальше делать с рисовалкой, тоже не знаю, как это обычно и бывает, стало скучновато. Были идеи попробовать упаковать в андроид приложение и попробовать выгрузить в плей маркет, такого опыта ещё не было, а там может быть и продолжать что-то делать с ней будет интереснее, но это как руки дойдут.

Можете тоже делиться кто чем сейчас занимается в изучении.
Рецензия на книгу Рашида Тарика "Создаем нейронную сеть".

Начать наверное нужно с того, какую книгу я искал и что хотел найти, чтобы было более понятно по каким критериям я для себя оценивал эту книгу.
Хотелось понять про самые основные и базовые принципы построения нейронных сетей и понять природу зарождения и становления этого феномена. Следуя из этого желания сразу же хотелось видеть как можно меньше специальных библиотек и инструментов. Мне не хотелось разбираться в том, какие сейчас есть самые крутые и актуальные библиотеки и инструменты. И мне было совсем не страшно, если мне не расскажут про современный рабочий процесс и какая сейчас работа с нейросетями ждёт на рынке труда.
В книге из библиотек используется numpy для упрощения работы с матрицами и некоторыми операциями над массивами, что не страшно. Так же используются библиотеки, предоставляющие доступ к некоторым уже написанным математическим функциям, например к функции сигмоиде, что тоже не страшно. И наконец используется библиотека для визуализации цифровых данных, что скорее даже хорошо, так как написание этого функционала самому, уже выходило бы за рамки темы. Из инструментов используется jupyter notebook, что скорее тоже даже удобно, тем более, что весь код будет запускаться и в любом доступном редакторе.

Следующей интересующей темой была тема становления и развития нейросетей, а так же развитие проблем, которые можно решать с помощью них. От самым простых проблем, которые можно объяснить даже на пальцах и дальше размеренными шагами от задачи к задаче. Здесь книга тоже начинается хорошо, сначала мы рассматриваем пример обучаемого предиктора по переводу километров в мили, а так же разбираем устройство обучаемого классификатора, который принимает предмет и учитывая его ширину и высоту, распределяет его между предметами двух групп. И это всё является очень хорошим началом.
Но вот дальше мы практически сразу же переходим к устройству нейросети для распознаванию чисел по их рисунку и практически всю книгу мы занимаемся в той или иной степенью именной этой задачей. Даже популярную задачу по тренировке нейросети для вентиля XOR упоминаем лишь совсем вскользь.
Сам переход мне не показался сложным, а из-за различных дополнительных экспериментов с этим примером и из-за того, что всё объясняется очень подробно. Но хотелось всё таки больше промежуточных примеров, чтобы более ясно составить в голове этот мостик между задачами из обычного программирования, предикторами и классификаторами к нейросетям. Возможно, хотелось даже увидеть несколько промежуточных вариантов, так называемых франкентштейнов, которые уже начинают быть нейросетью, но ещё полностью ей не являются. И эту тему книга удовлетворила уже не полностью.

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

В общих чертах книга была не сложной, не большой по объёму, понравилась как введение для начинающих и её вполне можно советовать.

В конце прикладываю ссылку на пример нейросети из книги, которая должна угадывать числа.
https://github.com/makeyourownneuralnetwork/makeyourownneuralnetwork/blob/master/part2_neural_network_mnist_data.ipynb
Где обучаться фронтенду новичкам?

Мы здесь иногда запускаем совместные занятия, но так как я обычно запускаю занятия по той теме, которую сам планирую изучить, то двигаюсь всё дальше и дальше. Но есть среди нас и новички, которым интересно изучение с самого старта. Поэтому решил порекомендовать бесплатную программу от ребят из MetaLamp.

Программа позиционируется как программа для фронтенд react разработчика, с большим упором именно на нативный js. Состоит в основном из агрегации ссылок на различные ресурсы, но получилась довольно целостной. Присутствует несколько практических заданий, для которых организаторы даже делают ревью до успешной их сдачи. В конце обучения обещают помочь с трудоустройством, но по этому поводу ни чего сказать не могу.
Ещё у них имеется чатик в телеге, где можно не только задавать вопросы, но и развита культура написания отчётов об обучения. Отчёты пишутся совсем не обязательно и в свободной форме, но такую практику считаю очень положительной.

Ссылка на их программу в более новом и красивом оформлении.
https://coda.io/@metalamp/education/front-end-2

Ссылка на программу в старом оформлении, но там присутствуют комментарии в каждом разделе, возможно кому-то будет интересно.
https://rizzoma.com/topic/d5c429337bcaa70548fb5aeedee6d92b/0_b_8ndo_78h6s/


Их телеграмм чатик.
https://t.me/fsd_frontend_1step_edu

Ещё у них есть программа бэкенд по haskell.
https://coda.io/@metalamp/education/back-end-3

И конечно можно пробовать у нас в чатике искать ребят для кооперации и совместных занятий в онлайне.
Начали занятия по английскому. Занимаемся сейчас по учебнику Outcomes Pre-Intermediate_Students_Book.
Расписание: ЧТ в 19:00, СБ и ВС в 11:00 по мск.
Занимаемся здесь: https://discord.gg/cnXKmcjfDX
Можете заходить и подключаться.
Задача на знание алгоритмов и структур данных. Нужно решить меньше, чем за квадратичную сложность
https://www.codewars.com/kata/52c31f8e6605bcc646000082
Набираю группу для изучения haskell. Планирую двигаться с нуля по этой программе
https://coda.io/@metalamp/education/back-end-3
Для начала примерно два раза в неделю на выходных, но там как договоримся. Занятия как обычно онлайн в дискорде.
Совместные занятия по языку haskell успешно начались. На этих выходных успешно провели уже два занятия. Пока что проходим этот курс https://stepik.org/course/75/. Решил в расписание добавить ещё и среду.
Итоговое расписание: сб, вс, ср в 19:00 по мск.
Занимаемся здесь: https://discord.gg/4qyrupgkcm.
Как читать книги на английском?
Как читать книги на английском?

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

И чем же всё-таки пользоваться? Оказалось, что подобные комбайны могут представлять собой самые обычные читалки, которые не позиционируют себя как приложения для чтения книг на иностранном языке, но позволяют удобно это делать. Разница лишь в том, что перевод и словарик будет делегироваться другим приложениям прям изнутри читалки, пользуясь любимым словариком и любимым переводчиком.

Покажу на своём примере. Я использую читалку ReadEra, если мы выделим какое-либо слово, то мы получаем меню(скрин 1), из которого мы можем открыть словарик и добавить слово в список слов к изучению(скрин 2) или можем открыть переводчик и посмотреть примеры использования этого слова(скрин 3). И что самое удобное, словарик и читалку мы можем выбирать сами. После выделения слова и открытия меню(скрин 1), необходимо нажать кнопку "ещё", затем "настройки" и там уже можно будет выбрать и подключить необходимое. Таким образом обычная читалка превращается в удобный вам агрегатор всего.
Остаётся только выбрать книгу. Если с выбором книги есть проблемы, то есть разные подборки с сортировкой по уровню сложности, например https://adme.media/zhizn-nauka/100-knig-na-anglijskom-ot-prostogo-k-slozhnomu-1019810/. Скачать же саму книгу можно здесь @libgen_scihub_2_bot.
Добавил возможность создания событий в дискорде, теперь это могут делать все участники. Событие можно создать, если кликнуть на кнопку настроек сервере в самом вверху.
С помощью списка событий можно смотреть расписание ближайших занятий, а также можно подписаться на нужное, чтобы получить уведомление в момент начала занятия.
Нашёл интересный вариант подачи материала. Серия книг "Занимательная манга".

https://dmkpress.com/catalog/manga/
Есть выпуски и про машинное обучение и базы данных. И много на разные математические темы.

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

Из главных плюсов можно отметить то, что авторы совсем не боятся давать сложные определения и сложные формулы, показывают в итоге всё как есть.
Из главного плюса вытекает же и главный минус. Так как авторы не боятся давать материал на высоком техническом уровне, а часть текста всё-таки уходит на повествование некой истории, то не остаётся места для хорошего моста, который обеспечит плавный переход.
Многие формулы объясняются слишком кратко, не рассказывается как мы к ним пришли, а практически сразу же всё вываливается на голову. Поэтому совсем новичку может быть сложно.
Но сложность может ещё и отличаться от выпуска к выпуску. Например, "Занимательная манга. Машинное обучение" требует какого-то предварительного знакомства с темой, и уровень подготовки не хуже первого курса технического вуза. А вот выпуск "Занимательная манга. Статистика" уже менее требователен к читателю и даже может выступать в роли некой подготовки перед прочтением машинного обучения.

Статья на хабре, где можно почитать про эту мангу
https://habr.com/ru/post/169461/
Где можно скачать не все, но большую часть выпусков
http://ddgroupclub.win/viewtopic.php?t=101953
Вы устраиваетесь на работу, вам предложили на выбор:
1. $40000 за первый год и прибавка $8000 каждый следующий год;
2. $20000 за первые полгода и прибавка $2000 каждые следующие полгода.
Какой вариант выгоднее?

Решение https://www.youtube.com/watch?v=ohjt2PJZ-Ns
Два бесплатных курса по машинному обучению, которые сейчас идут.
Школа глубокого обучения МФТИ
https://t.me/deep_learning_school_news
Курс обработки естественного языка от портала ods.ai
https://t.me/+AciH2MVMv_RiMGQy