Библиотека программиста | программирование, кодинг, разработка
86.8K subscribers
3.26K photos
157 videos
89 files
6.46K links
Все самое полезное для программиста в одном канале.

№4978349570

Список наших каналов: https://t.me/proglibrary/9197
Учиться у нас: https://proglib.io/w/a32a0d94

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Download Telegram
#fundamental #patterns #cheatsheet

📌 Посетитель (англ. visitor) — поведенческий паттерн, позволяющий добавлять в функционал новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться.

Проблема: над каждым объектом некоторой структуры выполняется одна или более операций, но вам требуется определить новую операцию, не изменяя классы объектов.

Решение: разместить новое поведение в отдельном классе, вместо его размножения сразу в нескольких классах. Объекты, с которыми должно было быть связано поведение, не будут выполнять его самостоятельно. Вместо этого вы будете передавать эти объекты в методы посетителя.

Паттерн применяется, когда:
✔️Требуется выполнить какую-то операцию над всеми элементами структуры объектов, например, деревом.
✔️Над объектами сложной структуры объектов необходимо выполнять некоторые не связанные между собой операции, но вы не хотите «засорять» классы такими операциями.
✔️Новое поведение имеет смысл только для некоторых классов из существующей иерархии.
Ближайшие онлайн-мероприятия

Online LoGeek Night Russia, 28 апреля
Адаптивная верстка с Flexbox и Grid, 28 апреля
IT Jam. Frontend, 30 апреля
Как обеспечить команду IT разработчиков крупными заказами с помощью Linkedin на Западе, 30 апреля
Как стать Python-разработчиком, 30 апреля

Персонализированную рассылку мероприятий можно получать в нашем боте: @event_listener_bot
Создавай цифровые решения будущего и получи приз!

Мы объявляем онлайн-хакатон VirusHack от Ростелекома, организованный в партнерстве с Агентством инноваций Москвы и РАЭК. В нем вы прокачаете свои навыки в разработке технологий, которые помогут людям, бизнесу и государству приспосабливаться к нестандартным условиям жизни.

Победитель реализует свой проект при поддержке крупнейших компаний страны!

Призовой фонд хакатона 2 500 000 рублей!

Онлайн-хакатон пройдет с 3 по 5 мая 2020 года — успейте зарегистрироваться на него до 30 апреля 2020-го: https://proglib.io/w/602e358e

Добавляйтесь в чат хакатона: https://bit.ly/2RAQgOx
Все инженеры умеют программировать, но не все программисты могут быть инженерами. Действительно, почему не все программисты могут называться инженерами и какими навыками обладают настоящие инженеры-разработчики?

На AppTractor вышла отличная статья, в которой даны ответы на все вышеперечисленные вопросы.

https://proglib.io/w/4ad32a81
Матричные преобразования для редактирования изображений в C#

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

https://proglib.io/sh/4e7xgV9wIH
​​Чтобы React «заиграл»: 8 инструментов разработки

Если для создания веб-приложений вы избрали React, вам также будут полезны инструменты стилизации, управления состоянием и тестирования. Рассказываем о них в нашей подборке.

https://proglib.io/sh/RJ3banBNLS
​​Анимация графиков в Python за 4 шага

Преобразуем датафрейм в gif-анимацию. Краткий туториал по анимированной визуализации данных с помощью Python и библиотеки moviepy на примере распространения COVID-19.

https://proglib.io/sh/omGfqsSXZ0
Задумываетесь о смене специальности?
11 мая в HTML Academy стартует онлайн-курс «Профессия «Фронтенд-разработчик»:
6 месяцев обучения и живых лекций, 27 часов голосовых консультаций с наставником. В конце – стажировка и гарантированное трудоустройство.

30 апреля, в 13:00 ребята проведут лайв и расскажут:
– Где и как выучиться на фронтендера без лишних трат времени;
– Что надо уметь в 2020 году для приглашения на работу;
– Как написать резюме, пройти собеседование и выполнить тестовое задание.
​​#tools

BuildWith


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

Расширение для Google Chrome
Расширение для Firefox
​​Как правильно использовать анимацию в дизайне интерфейсов

Ключевые принципы создания пользовательских интерфейсов для различных платформ. 28 превосходных анимированных иллюстраций-сравнений: как нужно делать и как делать нельзя.

https://proglib.io/sh/gChnTScdoj
#fundamental #patterns #cheatsheet

📌 Посредник (англ. Mediator) — поведенческий паттерн, позволяющий свести к минимуму связанность множества классов между собой посредством перемещения этих связей в один класс-посредник.

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

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

Паттерн применяется, когда:
✔️Сложно менять некоторые классы из-за того, что они имеют множество хаотичных связей с другими классами.
✔️Нет возможности повторно использовать класс, поскольку он зависит от большого количества других классов.
✔️Приходится создавать множество подклассов компонентов, чтобы использовать одни и те же компоненты в разных контекстах.
​​Наша работа над Proglib. Апрель 2020

В конце каждого месяца мы рассказываем о работе над proglib.io, проведённой за этот период. Лучшие материалы за апрель и описание нововведений: тёмная тема, авторизация через Telegram, интерактивные статьи.

https://proglib.io/sh/NZyIg0UX8P
За два года спрос на профи в Data Science вырос вдвое. По сведениям hh дата-сайентисты получают от 100 тыс. руб./мес. Но обычно знания приходится собирать по крупицам. К счастью, Geekbrains подготовили курс по машинному обучению:

💎 65 часов контента с практикой к каждому занятию,
💎 30 онлайн-уроков с живыми преподавателями,
💎 5 проектов – всё по-взрослому.

Курс длится 5 месяцев, занятия ведут дата-сайентисты, работающие в крупных компаниях. Подробнее: https://proglib.io/w/31fa3dfd
Какие вы цели ставите перед собой в карьерном плане? Есть ли среди них трудоустройство в крупную зарубежную IT-компанию? Или вы столкнулись с проблемой, как и автор статьи, заключающейся в прохождении сложных собеседований, и это стало барьером для вас.

Радует то, что у автора статьи всё получилось, и своим опытом она делится в статье. Обо всех подводных камнях прохождения собеседований в FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные) в статье: https://proglib.io/w/0b3e6144
​​70 YouTube-каналов для фронтенд-разработчика

Подборка YouTube-каналов, плейлистов и подкастов, посвящённых фронтенду: вёрстка, JS, библиотеки и фреймворки, уроки и скринкасты, доклады на конференциях и записи встреч локальных сообществ. Приятного просмотра!

https://proglib.io/sh/jDIsKbMWxa
Имеются монеты достоинством 1, 2, 5, 10, 25, 50 копеек. Нужно представить определенную сумму с помощью наименьшего количества монет. Какой алгоритм предпочтительнее всего использовать?
Anonymous Poll
21%
Динамическое программирование
49%
"Жадный" алгоритм
15%
С помощью чисел Фибоначчи
15%
Ни один из вышеперечисленных
Правильный ответ: "жадный" алгоритм.

Алгоритмы, предназначенные для решения задач оптимизации, обычно представляют собой последовательность шагов, на каждом из которых предоставляется некоторое множество выборов. Определение наилучшего выбора, руководствуясь принципами динамического программирования, во многих задачах оптимизации напоминает стрельбу из пушки по воробьям. Другими словами, для этих задач лучше подходят более простые и эффективные алгоритмы. Поскольку "жадный" алгоритм дает для этого набора монет оптимальное решение, то нет смысла использовать динамическое программирование или числа Фибоначчи.
​​📕 25 лучших книг для программистов

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

https://proglib.io/sh/hwx5MziQen