Коллекция Papers We Love — нескучно читаем лучшие статьи о Computer Science
2026-02-21 05:41 Diff

#статьи

  • 21 сен 2021
  • 0

Этот проект объединяет увлечённых компьютерными науками людей со всей планеты — вместе они собрали такую библиотеку статей, какая вам и не снилась!

Альберто Блинчиков для Skillbox Media

Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.

Papers We Love (PWL) — это публичный репозиторий на GitHub со статьями из области компьютерных наук (Computer Science). А ещё это сообщество людей, которые любят читать и обсуждать такие статьи.

Проект объединил более 40 городов на четырёх континентах. Участники регулярно встречаются офлайн и проводят конференции. Записи выступлений выкладываются на YouTube-канале проекта, а новости — в Twitter, Slack-сообществе и на официальном сайте.

Проект основал Зишан Лакхани (Zeeshan Lakhani) в 2013 году. Сейчас Зишан — директор по стратегическому развитию в компании BlockFi, а тогда был обычным веб-разработчиком.

Предположительно, всё началось в Нью-Йорке. Зишан с коллегами развлекались тем, что обсуждали интересные статьи. А чтобы не терять самые классные — выкладывали их в репозиторий.

Всего за год репозиторий стал популярным и набрал больше 11 тысяч звёзд. К слову, сейчас там более 400 ссылок на статьи, а рейтинг — почти 50 тысяч звёзд. Реп уже форкнули (скопировали к себе) более четырёх тысяч человек!

Можно просто читать статьи, можно добавлять новые материалы, а можно собрать единомышленников в своём городе и открыть новое отделение PWL. Впрочем, обо всём по порядку.

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

Публикации сгруппированы по темам: от affective_programming («эмоциональное программирование») до virtual_machines («виртуальные машины»). В каждой тематической папке лежит файл README.md со ссылками на документы:

Файл README.md в папке comp_sci_fundamentals_and_history. Скриншот: Екатерина Степанова / github.com/papers-we-love / Skillbox Media

Просто кликните на ссылку с названием документа и наслаждайтесь чтением :-)

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

А вот тем, кто хочет забрать всё и быстро, участники проекта предлагают готовый скрипт. Он парсит файлы README.md, находит в них ссылки на PDF и скачивает документы.

Уже всё перечитали? А может, вам понравилась статья, которой ещё нет в PWL? Хотите поделиться ею с сообществом? Не проблема — авторы даже будут благодарны вам за такой вклад. Правда, придётся выполнить ряд условий.

Вам нужно будет зарегистрироваться в Git (разработчики наверняка и так уже там) и создать в репозитории проекта pull request (запрос на добавление):

Кнопка для создания запроса на добавление. Скриншот: Екатерина Степанова / github.com/papers-we-love / Skillbox Media

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

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

В PWL есть группы по интересам — здесь их называют chapters («отделения», «подразделения», «филиалы»). Встречи для очного обсуждения статей проходят в сообществах по городам.

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

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

В обсуждениях и публикациях языки программирования иногда сравнивают по степени их выразительности (expressiveness). Само это слово — выразительность — кажется интуитивно понятным, поэтому его обычно не поясняют. По сути же, выразительность определяется тем, что и как на языке можно запрограммировать.

Маттиас Фелляйзен поступил как и положено учёному. Он не только ввёл формальное определение выразительности языков, но и разработал алгоритм, который позволяет предсказать, более или менее выразительным станет язык после добавления в него новой функциональности.

Посмотрите на YouTube доклад по этой статье — один из самых популярных на канале PWL и совсем не скучный.

Биткоин, блокчейн — странные понятия: кажется, про них слышали все, но вот толком объяснить, что это такое, почти никто не может.

Зато про них рассказывает тот, кто их придумал, — Сатоси Накамото. Он объясняет и что такое «цифровая монета», и как верифицируются транзакции, и почему злоумышленнику наверняка не хватит электронных мощностей, чтобы взломать ваш электронный кошелёк.

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

В разное время «накамотой» называли то японско-американского физика Дориана Накамото (Dorian Nakamoto), то эксперта по криптовалюте Ника Сабо (Nick Szabo), то австралийского программиста Крейга Райта (Craig Wright) — ладно, последний сам себя так называл :-)

Но самая изобретательная теория гласит, что Сатоси Накамото — это аббревиатура из названий компаний Samsung-Toshiba-Nakamichi-Motorola. А придумали этого персонажа, чтобы всех обмануть. Как и зачем — история умалчивает.

Электронные документы, деньги, история ваших перемещений и даже переписка в соцсетях — всё это приходится где-то хранить. Данных становится так много, что без качественного прорыва в технологиях хранить всё важное подолгу скоро уже не получится.

Учёные из исследовательской группы Mocrosoft и Вашингтонского университета считают, что будущее за ДНК-хранилищами: в единице хранения размером с крупицу соли помещается около 200 МБ. А храниться такие данные могут до 500 лет. Подробнее о том, как работает этот механизм, об экспериментах и их результатах читайте в PDF с сайта Вашингтонского университета.

Эта статья замечательна всем.

Во-первых, написал её тот самый Дейкстра — нидерландский учёный-информатик, один из разработчиков концепции структурного программирования и автор многих классических алгоритмов. Один из них даже назван его именем.

Во-вторых, она считается первым исследованием в области параллельных алгоритмов, а проблема, которая в ней поднимается, до сих пор актуальна.

В-третьих, там всего-то страница текста и никакой сложной математики.

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

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

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

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

«Геймификация — как шоколад, переедать его вредно. А образование похоже на арахисовое масло — полезное, но многие его не любят. Если игра будет проявляться во всём и станет обязательной, то участники скоро возненавидят её правила так же, как ученики не любят школьные. Вы получите не вкусный и полезный продукт, а что-то вроде брокколи в шоколаде».

Джоуи Ли и Джессика Хаммер

В PWL серьёзно относятся не только к выбору материалов, но и к качеству чтения. Нельзя, говорят, такое читать просто как новости или худлит. Впрочем, после знакомства с разделом выше вы и сами наверняка об этом догадались.

В репозитории проекта есть несколько ссылок на ресурсы, которые помогут справиться с научной статьёй. Они универсальные — подойдут не только для CS-статей, но и для любых других сложных публикаций.

Вот несколько советов оттуда:

  1. Начните с введения и заключения. Так вы сразу уловите суть проблемы и предлагаемый метод решения.
  2. Не пытайтесь понять каждое слово — можно убить уйму времени, раз за разом перечитывая одно предложение. Иногда лучше пропустить фразу, которая сбивает с толку. Очень может быть, что и без неё вы легко уловите смысл абзаца в целом.
  3. Сравните статью с теми, которые вы уже прочитали по этой же теме. Пройдите по ссылкам в тексте, узнайте чуть больше об авторах связанных публикаций. Так вы составите более полное представление о проблеме и при желании сможете критиковать содержимое аргументированно, а не в стиле «не читал, но осуждаю» :-)

Если каждый день читать по одной статье из собрания Papers We Love, то на полтора года, вам, пожалуй, хватит. А если делать перерывы на выходные, то и на все два, — если за это время репозиторий не вырастет ещё вдвое.

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

Например, зацените публикации в области Computer Science, которые заслужили больше всего наград, или узнайте больше о распределённых системах.

Чего ещё интересного почитать в Papers We Love? Например, взгляните на подборку Педру Тавареша (Pedro Tavareλ) — организатора филиала PWL в Порту, Португалия.

Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу