C++ and other lectures
8.48K subscribers
39 photos
2 files
210 links
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
Download Telegram
Еще немного подзамочного контента для ценителей. Первые три лекции бакалаврского курса этого года были тут ранее https://t.me/cpp_lects_rus/45 и были приняты неплохо. Продолжаем.

Семинар 4: https://youtu.be/3eeyeEAP4no
Семинар 5: https://youtu.be/SepMv--t6r4
Семинар 6: https://youtu.be/fGruSH0wS20

Звук все также плох. Контент всё также почти не отличается от того, что есть в куда лучшем качестве на youtube в базовом курсе прошлого года. Хотя тут четвертый семинар объективно отличается, но дальше конвергенция берёт своё.

#cpp_graduate
👍40❤‍🔥6🔥5🥰1
Посмотрел выступление Страуструпа на CppCon'22

https://youtu.be/2BuJjaGuInI

Мой таймлайн для этого доклада:
00:00 Вступление: борьба со сложностью, ограниченные среды выполнения, заблуждения о языке
18:10 Основания и принципы языка C++: механизмы абстракции, RAII, сдвиг вычислений в компиляцию,
40:34 C++ Core guidelines
56:28 Обработка ошибок и исключения
01:09:19 Мысли о настоящем и будущем
01:16:55 Ответы на вопросы

Снова подумал что надо бы хоть раз заглянуть в core guidelines. Последний раз заглядывал туда кажется в 2016-м году, увидел там рекомендацию везде использовать array_view, закрыл и больше не открывал. Может быть они и впрямь привели проект в полезное и актуальное состояние, то что я услышал от Страуструпа в этом докладе мне понравилось.

Увы, опять педалируется мысль что можно учить C++ не потратив до этого как минимум год на изучение C. Мне кажется методически это ошибка. У студента с нуля как раз год уходит чтобы понять указатели, массивы, структуры, циклы и рекурсию, выучить какие-нибудь простые алгоритмы и понять как работает архитектура и как используют тулчейны. А уже потом поверх этого можно накладывать ссылки, классы, шаблоны и прочее. Иначе всё смешивается и человек просто ничего не поймёт.

#talks
👍581🥰1😈1
Всем привет. Мне не нравится что комментарии к тематическим постам используются как общий чат. Давайте если кто то очень хочет что то конкретное обсудить и это тут в тему, пишите мне в лс, я создам корневую ветку в порядке очереди.

#official
👍2
Предложили тему про изучение языка C.

У меня есть для этого некоторые материалы.
Слайды к моему курсу по С для первокурсников: http://cs.mipt.ru/wp/?page_id=7775
На слайдах большое количество задач и есть задачник с автоматической проверкой и открытой регистрацией: http://olymp1.vdi.mipt.ru/

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

Кроме того классический список литературы это.

C Programming Language, 2nd Edition: Brian W. Kernighan, Dennis M. Ritchie
Живая классика, должна быть первой книгой студента.

Beginning C: From Novice to Professional: Ivor Horton
C Programming: A Modern Approach, 2nd Edition: K. N. King
Эти две книги — более детальные альтернативы, если изложение K&R кажется слишком сжатым.

Expert C Programming: Deep C Secrets: Peter van der Linden
Очень глубокое погружение. Опасайтесь акул.

C Interfaces and Implementations: Techniques for Creating Reusable Software: Hanson, David
Немного о том как люди виртуозно используют макросы и void*. Один раз надо этому научиться чтобы с одной стороны больше так не делать, а с другой стороны всегда и везде видеть эту альтернативу.

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

TCP/IP Sockets in C: Practical Guide for Programmers: Michael J. Donahoo, Kenneth L. Calvert
Фундаментальный труд по сокетам и сетевому программированию. Выучить до знакомства с boost::asio

Numerical Linear Approximation in C: Nabih Abdelmalek, William A. Malek
Линейная алгебра, линейное программирование и линейное счастье

Algorithms in C: Robert Sedgewick
Книга ученика Дональда Кнута, очень неплохая (её версия на C++ куда хуже, там у меня от его понимания C++ глаза вытекают кровью).

Image Processing in C: Dwayne Phillips
Древняя и наивная но приятная книга про обработку изображений на CPU. Потом легко перекладывается на OpenCL C и на GPU.

И конечно вершина и венец вычматематики (и кстати книга которая на C тоже нравится мне куда больше чем её же версия на C++ по тем же причинам что и Седжвик) это Numerical Recipes in C (коллектив авторов). Это просто надо один раз осилить.

#questions #c_graduate
👍80🔥28❤‍🔥431🤩1🐳1
Посмотрел доклад "What’s New in C++23" - Sy Brand - CppCon 2022

http://youtube.com/watch?v=vbHWDvY59SQ

Мой таймлайн к докладу:

00:00 Вводное безумие (пропустите это)
03:45 Часть про ranges: chunk(_by), repeat_range_n, zip, ranges::to. Также std::print и always_inline.
14:30 Часть про std::optional и std::expected: and_then, or_else
19:45 Краткий рассказ про deducing this
24:06 Вопросы (промежуточные)
26:10 Часть про корутины: std::generator
30:50 Умные указатели: static op(), std::out_ptr, std::to_underlying, etc.
35:12 Move-only functions
37:15 std::unreachable и создание целенаправленного UB
38:30 std::mdspan
41:00 Пример с пересылкой по сети: std::byteswap, if consteval, ospanstream, stacktrace
46:00 Снова ranges: join_with, iota, shift_left
49:15 import std и завершение

При рассказе про deducing this уважаемый докладчик ссылался на крайне интересный доклад Бена Дина: https://youtu.be/jXf--bazhJw
Очень скоро лекция, в которой будет разбор этой техники, также появится в моём магистерском курсе (как только мы с магистрантами этого года дойдём до систематического обсуждения правых ссылок).
Пожалуй deducing this и if consteval это самое интересное и самое перспективное в 23-м стандарте.

#talks
🔥28👍14
Выложил очередную лекцию магистерского курса.

Мы начинаем с проблем void_t и странных правил для шаблонных алиасов. Далее мы долго обсуждаем enable_if. Последняя треть лекции посвящена развитию классического (периода до 2011-го года) метапрограммирования. Это скорее интересно, чем практично, так как всё это уже история. Но без этого дальше будет неясно откуда что берется в современных подходах.

https://youtu.be/jL3CNQr-0Cg

#cpp_postgraduate
🔥38👍171👏1
Выложил очередную лекцию. Она отличается в первую очередь визуальным оформлением: я был вынужден перенести её в другую переговорку (а вовсе не в мрачный подвал как кто-то мог бы подумать).

Начнём с глубокого нырка в константность. Далее речь пойдёт в основном о константных выражениях: constexpr, в меньшей степени — consteval и constinit.

https://youtu.be/jyYys1UcHkM

#cpp_postgraduate
👍43🔥65🐳1
Больше подзамочного контента для моих уважаемых подписчиков. Семинары 7, 8 и 9 базового курса этого года.

Мне кстати очень нравится как мне в этом году удалось изложить наследование и множественное наследование. Хотя вроде бы материал строго тот же.

Семинар 7: https://youtu.be/zgkIiNNLLYM
Семинар 8: https://youtu.be/wb5ML1WajXM
Семинар 9: https://youtu.be/FqQNDyKRkRA

Более ранние выпуски: https://t.me/cpp_lects_rus/51
Ещё более ранние: https://t.me/cpp_lects_rus/45

#cpp_graduate
👍59🔥98🥰1
Всем привет. Я сегодня посмотрел лучшее в этом году видео по C++ (я учитываю только англоязычные). Я не скажу какое до лекции по ranges иначе, боюсь, вы увидите в моём творчестве слишком много ремейков. Но я приглашаю всех в этом чате т.к. год в плане C++ событий заканчивается, написать какое из видео с зарубежных конференций этого 2022 года было самым полезным для вас.

P. S. Если никто не угадает, то до конца года выложу что это за доклад и его таймлайн.

#questions #talks
👍32😁3🤔3🤯2😱2👨‍💻2💋1👀1
Выложил лекцию по выводу типов и правым ссылкам. Благодаря правильной структуре курса (вывод типов после концептов и SFINAE) получилось включить некоторые примеры Йосьюттиса где концепты облегчают множества перегрузок для форвардящих конструкторов. Правда Нико считал что это ночной кошмар, но мне кажется, что правила избегания проблем тут довольно просты и систематичны.

https://youtu.be/zrZdBzXBZtE

#cpp_postgraduate
👍47🔥63
Больше подзамочного контента для моих уважаемых подписчиков. Семинары 10, 11 и 12 базового курса этого года.

Семинары 10 и 11 в один день и одним видео т.к. мы одно занятие пропустили. Благо они посвящены исключениям и как раз получилось полное изложение.
Семинар 12 по проектированию в этот раз пожалуй менее убедительный чем в прошлом году, но я кое-что учёл и пофиксил из комментариев.

Семинары 10, 11: https://youtu.be/gUaDkStyICc
Семинар 12: https://youtu.be/SlYFPGuYIcM

Более ранние выпуски:
7,8,9: https://t.me/cpp_lects_rus/59
4,5,6: https://t.me/cpp_lects_rus/51
1,2,3: https://t.me/cpp_lects_rus/45

#cpp_graduate
👍38🔥158🐳1
Сегодняшний стрим для первого курса по динамическому программированию (и немного по линейному).

https://youtu.be/KQlldBz77u8

Сам стрим был открытый но запись будет под замком т.к. в след. годах надеюсь переделать в лучшем качестве.

#c_graduate
🔥26👍14🥰1
Выложил лекцию по вариабельным шаблонам. Отличия от прошлых лет существенные: даже в базовой части шаблонов и свёрток я теперь копаю куда глубже, беззастенчиво пользуясь тем, что курс магистерский и можно отрываться. Кроме того, у меня появилась возможность рассказать о вариабельных концептах и о раскрытии свёрток в концептах и я этим тоже воспользовался.

https://youtu.be/op7z7R6aBvk

#cpp_postgraduate
🔥38👍11❤‍🔥11
Выложил лямбды. Я в этом году, как мне кажется, смог наконец-то придти к правильной структуре этой лекции, мотивировав через лямбды массу захватывающих вещей.

У меня там к сожалению получились несколько минут (!) непрерывного сообщения откровенной неправды, которую я только после лекции слазил проверить в стандарт. Но я не стал вырезать: я довольно честно так заблуждался много лет (насчет того есть ли в кложуре круглые скобки), позаблуждайтесь со мной в последний раз.

Но многое другое получилось хорошо.

https://youtu.be/j-UyAKux590

#cpp_postgraduate
🔥33👍16
Готовлюсь к лекции по ranges. Есть такой вопрос (а скорее даже опрос) для уважаемых подписчиков этого канала.

Вот есть пример в котором GCC и clang не согласны.

https://godbolt.org/z/1ro9x3nh1

Кто-то, ясное дело, прав, кто-то нет. Мне интересно как бы вы аргументировали кто прав в C++20 и почему.

Также задал вопрос на stackoverflow: https://stackoverflow.com/questions/74668972/c20-move-only-ranges-gcc-vs-clang-on-istream-view-copy

Большая просьба именно проиллюстрировать ход мысли. Куда пойдёте в стандарте, что будете смотреть.

#questions
👀9🤔7
Первая часть лекции про диапазоны.

https://youtu.be/sfweY8osTEs

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

Ну и да в конце первой части я сорву покров мрака с расхождения между компиляторами в трактовке старшинства семантических процессов.

#cpp_postgraduate
34❤‍🔥5💯4👍2🫡1