Ontol: подборка видео-лекций и каналов для продвинутых программистов
Недавно на HackerNews обсуждали видео и каналы, где можно пойчиться продвинутому программированию. Под катом — подборка из 30 полезняшек.
В перерывах между полетами на реактивном ранце и переводами материалов Y Combinator, я делаю проект «Ontol» — такое место в сети, где максимальная концентрация полезного, апгрейдящего мировоззрение материала (ценного на горизонте 10+ лет, например, такого), которым можно делиться бесплатно в 1 клик. (канал в телеграм: t.me/ontol)
Вот мои предыдущие бесплатные образовательные подборки:
Simple Made Easy 2012 (Rich Hickey)
Рич Хики, создатель языка программирования Clojure, обсуждает «простоту», почему она важна и как добиться её в дизайне, как распознать ее отсутствие в инструментах, языковых конструкциях и библиотеках.
The Mess We’re In (Joe Armstrong)
Джо Армстронг — один из создателей Erlang. Он работал в лаборатории компьютерных наук Эрикссон в 1986 году и был частью команды, которая разработала и внедрила первую версию Erlang. Он написал несколько книг про Erlang, в том числе «Programming Erlang Software for a Concurrent World». Джо имеет докторскую степень в области компьютерных наук Королевского технологического института в Стокгольме, Швеция.
The Unreasonable Effectiveness of Multiple Dispatch (Karpinski)
Если вы знакомы с Julia и ее экосистемой, вы, возможно, заметили кое-что прекрасное, но немного озадачивающее: кажется, существует необычно большое количество повторного использования кода между пакетами по сравнению с другими, казалось бы, похожими языками. Это совместное использование кода имеет две формы:
- Совместное использование базовых типов в большом количестве пакетов, обеспечивающих разную функциональность;
- Совместное использование общих алгоритмов, которые работают с различными реализациями общих абстракций.
Почему общий код в Julia «просто работает»? Почему кажется, что пакеты Julia разделяют типы с таким незначительным трением? Предполагается, что оба вида повторного использования являются естественными преимуществами объектно-ориентированных языков на основе классов. В конце концов, наследование и инкапсуляция — два из четырех столпов ООП. Еще более загадочным является то, что Julia не имеет инкапсуляции и вообще не позволяет наследовать от конкретных типов. Тем не менее, широко распространены оба вида повторного использования кода. Что происходит? В этом выступлении я утверждаю, что оба вида совместного использования напрямую связаны с парадигмой множественного диспетчерского программирования Julia.
Low Level JavaScript
Low Level JavaScript — это канал YouTube, который глубоко погружается в суть низкоуровневого программирования — возится с единицами и нулями —, но все это делается на чистом JavaScript.
Пример лекции:
David Beazley
Дэвид Бизли — автор книг Python Cookbook и Python Essential Reference. Вот его канал.
Пример лекции:
Jacob Sorber
Якоб Сорбер освещает темы, полезные как для новичков, так и для продвинутых: network programming, threads, processes, operating systems, embedded systems и других.
Пример лекции:
Computerphile
Канал Computerphile — младший брат Numberphile. Про всякие компьютерные штуки.
Пример лекции:
Category Theory (Bartosz Milewski)
Серия «Теория категорий» Бартоша Милевски открывает новый взгляд на программирование в целом.
Пример лекции:
Build a 65c02-based computer from scratch (Ben Eater)
Разбираемся, как работают компьютеры. В этих лекциях Ben Eater создет и программирет базовый компьютер с классическим микропроцессором 6502.
Пример лекции:
Building an 8-bit breadboard computer! (Ben Eater)
Попытка построить еще один 8-битный компьютер с нуля.
Пример лекции:
How to Become a Good Backend Engineer (Hussein Nasser)
Прокачиваем Backend.
Пример лекции:
Semicolon&Sons
Хардкорные скринкасты для программистов, которые создают собственный бизнес.
Пример лекции:
Andrew Kelley
Эндрю создает язык системного программирования Zig. Но он также останавливается на других общих проблемах системного программирования, которые не зависят от языка. Перееехал с YouTube на Vimeo из-за бесящей рекламы.
Пример видео:
Jon Gjengset
Мы создаем библиотеки и инструменты на языке программирования Rust. У Джона Дженгсета лучший канал про Rust для учеников среднего и продвинутого уровней. Также он соавтор/создатель «Missing Semester»
Пример лекции:
George Hotz | Programming | Livecoding SLAM | twitchslam | Part1
8-часовой прямой эфир. Изучение контрактов на блокчейн и обнаружение ошибки безопасности в одном из них.
Jordan Harrod
Аспирантка Гарварда и Массачусетского технологического института, изучает интерфейсы мозг-машина и машинное обучение для медицины (анестезия) и рассказывает про взаимодействие человека с ИИ и алгоритмами.
Пример видео:
ACM SIGPLAN
Видео с технических выступлений на крупных исследовательских конференциях по программированию. Это тот канал, на котором можно получить самые «продвинутые навыки программирования».
Пример видео:
Fun Fun Function
Канал, где можно узнать и про софт скилы и про трансдьюсеры.
Пример лекции:
GOTO Conferences
Канал от сообщества GOTO
Пример видео:
Javidx9
Для тех, кто занимается программированием игр. Видео от Javidx9 четкие, лаконичные и насыщенные примерами.
Пример видео:
TechLead
Уволенный из Google и Facebook техлид за стаканчиком кофе делится мудростью.
TheCherno
Канал от бывшего разработчика из EA. Видео в основном посвящены C ++ и разработке игровых движков.
Пример видео:
DefogTech
Темы канала: Java concurrency, distributed systems, system design, microservice.
Пример видео:
Simons Institute video archive
.Больше теории, чем программирования, но много концепций SOTA.
Пример видео:
Cᐩᐩ Weekly With Jason Turner
Советы и новости про C++. И живое программирование.
Пример видео:
CppCon 2020
CppCon — это ежегодная недельная встреча всего сообщества C ++. Канал конференции.
Пример видео:
NDC London 2020
Канал крупнейшей в Европе конфы по .NET & Agile development
Пример видео: