C++ Russia 2018: Илья Шишков, Как научить языку C++: опыт создания курсов на Coursera

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 มิ.ย. 2018
  • Подробнее о конференции C++ Russia: jrg.su/W8skjE
    - -
    . . . В течение последних полутора лет я руковожу созданием специализации на Coursera о современном C++. Специализация будет состоять из пяти курсов, два из которых уже запущены, а ещё один почти готов.
    В своём докладе я хочу рассказать:
    с какими проблемами мы столкнулись в работе над курсами (например, через 3 месяца работы мы выбросили все материалы и начали заново)
    как мы формируем программу курсов и почему именно так (например, почему слово "указатель" не прозвучало в двух наших первых курсах ни разу)
    Кроме того, за время работы над специализацией у нас выработался набор принципов, которые, я уверен, применимы и в повседневной работе:
    в процессе интеграции нового сотрудника в проект
    во время code-review
    при найме Поэтому я не просто хочу рассказать, как мы делаем специализацию, но и попытаюсь переложить полученный опыт на повседневные задачи.
    cppconf.ru
    cpp_russia
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 84

  • @nikitavolkov7127
    @nikitavolkov7127 3 ปีที่แล้ว +20

    Когда он поднял бутылку и сказал - А это наш "новичок"! Я жесть как испугался

    • @RedkeiGost
      @RedkeiGost 2 ปีที่แล้ว +7

      Я испугался на первых минутах, что доклад без звука.

  • @vionel3493
    @vionel3493 5 ปีที่แล้ว +2

    Отличный доклад, спасибо!

  • @slavaivan7011
    @slavaivan7011 3 ปีที่แล้ว +2

    классные спецы! Стремимся к вашему уровню!

  • @Renat_Shaikhetdinov
    @Renat_Shaikhetdinov 3 ปีที่แล้ว

    Доклад супер!

  • @severgun
    @severgun 3 ปีที่แล้ว +1

    Спасибо. Продано.

  • @Alexander_Gurov_RF
    @Alexander_Gurov_RF 6 หลายเดือนก่อน +2

    Есть ещё хороший вариант вместо еретического using namespace std; импортировать те имена, которые нужны.
    Например:
    using std::vector;
    using std::string;
    // etc...
    По сути, именно так это и делается в C#. И углубляться в пространства имён не надо, и проблем не будет.

  • @liftchampion
    @liftchampion 6 ปีที่แล้ว +4

    Были бы все курсы такими

  • @alexeyfalcon4138
    @alexeyfalcon4138 2 ปีที่แล้ว +9

    Я вот хотел бы пройти курс, НО на курсере его НЕТ, где он есть еще знает кто ?

    • @sledleo
      @sledleo 10 หลายเดือนก่อน

      Помянем его.... Яндекс забил на него

  • @MrMaksibon
    @MrMaksibon 6 ปีที่แล้ว +3

    39:25
    такая жиза о боги

  • @GraphiqueA
    @GraphiqueA ปีที่แล้ว +1

    Звук начинается не сразу, а вроде после 00:56.

  • @ted_res
    @ted_res ปีที่แล้ว +2

    Видео и том, что для того, чтобы тебя поняли, надо понятно объяснять.

  • @pave1c
    @pave1c 3 ปีที่แล้ว

    Доклад интересный
    если там задачи становятся большими, жаль что не упоминают/используют Git

  • @sergeyinozemcev1070
    @sergeyinozemcev1070 3 ปีที่แล้ว

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

    • @0imax
      @0imax 3 ปีที่แล้ว +1

      Похоже что вот этот: Jon Kalb “unsigned: A Guideline for Better Code"

  • @Nick-yj8nj
    @Nick-yj8nj ปีที่แล้ว +4

    Курсера закрыта, где сейчас взять эти курсы?

  • @evgeny6544
    @evgeny6544 11 หลายเดือนก่อน

    В 2011 году в Нижнем Новгороде в НИИТ преподаватели из НГТУ им.Р.Е.Алексеева нас так и учили. Говорили, ребята пока просто пишите using namespace std, потом мы вам расскажем зачем это нужно.

  • @vladimirlazarev2267
    @vladimirlazarev2267 3 ปีที่แล้ว

    33:47
    В первом примере типа int более, чем достаточно.

    • @0imax
      @0imax 3 ปีที่แล้ว +1

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

  • @kutmanamangeldiev4967
    @kutmanamangeldiev4967 ปีที่แล้ว +1

    Есть ссылка на курс ?

  • @cabbiestales
    @cabbiestales 5 ปีที่แล้ว +1

    Скажите пожалуйста или помогает изучение Pascal перед C++ ?

    • @wlepnoga
      @wlepnoga 5 ปีที่แล้ว +4

      Нет

    • @user-ek5rv6bu9n
      @user-ek5rv6bu9n 5 ปีที่แล้ว +4

      Да

    • @0imax
      @0imax 3 ปีที่แล้ว +5

      Помогает в принципе знание любого императивного языка программирования. Но если решил изучать С++ то надо сразу изучать С++.

  • @user-iy8gp5ec6c
    @user-iy8gp5ec6c ปีที่แล้ว +3

    Ура! Человек понял дидактические принципы преподавания 2 курса пед колледжа

    • @zyx321123xyz
      @zyx321123xyz ปีที่แล้ว +1

      Проблема многих современных курсов: их создают люди, не имеющие педагогического образования.

  • @alexnagorny7692
    @alexnagorny7692 4 ปีที่แล้ว +9

    Все, убедили. Понес деньги на курсеру ) Жаль, конечно, что этот цикл не включили в новый оптовый пакет курсера+. Так бы хоть как-то была бы возможность сэкономить. Но Илья был настолько убедителен, что отдам ему последнюю рубашку и буду есть доширак, но черный пояс по С++ получу. Тем более, что по каратэ уже есть ))))

    • @setnemo
      @setnemo 3 ปีที่แล้ว

      как у вас успехи? поделитесь что ожидать)

    • @ramilyagafarov5566
      @ramilyagafarov5566 3 ปีที่แล้ว +1

      @@setnemo я например начал в марте с белого, сейчас осталась финальная задача по красному, был перерыв в занятиях на 3 месяца. интересно)

    • @setnemo
      @setnemo 3 ปีที่แล้ว +1

      @@ramilyagafarov5566 спасибо. Я доделал белый, и сейчас желтый доделываю. Уже не так просто, как с белом...

  • @vladk4144
    @vladk4144 3 ปีที่แล้ว

    Стоящий курс? Кто проходил?

  • @sergeyvoloshin1553
    @sergeyvoloshin1553 3 ปีที่แล้ว +2

    "Поискать в яндексе" XD

  • @user-px4tj9cp9u
    @user-px4tj9cp9u 4 ปีที่แล้ว

    С двумя миллиардами все понятно, а с вектором что не так объясните пожалуйста...

    • @0imax
      @0imax 3 ปีที่แล้ว

      Некрокоммент для потомков.
      На 32:43 проблема в переполнении при неявном приведении типов.
      t.size() возвращает беззнаковый тип.
      Далее, чтобы поделить знаковое число на беззнаковое, sum приводится к беззнаковому типу.
      И здесь происходит такое же переполнение, как если бы мы из беззнакового нуля вычли 12 - значения отсчитываются от максимального вниз.
      Поэтому, крайне нежелательно использовать знаковые и беззнаковые типы в одном выражении.
      Если всё же возникает такая необходимость, то нужно их явно преобразовать к одному типу с помощью static_cast.
      Но это не значит, что на этом можно забыть о переполнении: например, максимальное значение unsigned int в 2 раза больше, чем максимальное значениие int, поэтому даже простое присваивание может выйти боком.

  • @sarlevdiz
    @sarlevdiz 6 ปีที่แล้ว +9

    Лучший курс на русском!

  • @Tiolych
    @Tiolych 4 ปีที่แล้ว

    Где их найти эти курсы ? Дайте ссылку !

    • @Tiolych
      @Tiolych 4 ปีที่แล้ว +1

      @@Gillarann Thanx, но это не наш метод. Нам бы, ну знаешь, безденежно, от слова совсем :)

    • @Gillarann
      @Gillarann 4 ปีที่แล้ว

      @@Tiolych ну я попробовал....и на меня в первых 3 видосах вылили столько инфы,аж сложно стало)

    • @Tiolych
      @Tiolych 4 ปีที่แล้ว +1

      @@Gillarann там номер картона просят, чот я очкую.

    • @Gillarann
      @Gillarann 4 ปีที่แล้ว

      @@Tiolych Ну я ввел и все норм было

    • @Tiolych
      @Tiolych 3 ปีที่แล้ว

      @Красный Поршень Ну не мошенники эт точно. Это такой бизнес сейчас, где задача не научить, а просто дать направление. Ну и денег заработать. И от мэилру подобное есть, гикбрэинс... много таких сейчас.

  • @user-hh2qp6ez4d
    @user-hh2qp6ez4d 3 ปีที่แล้ว +4

    Когда я учился в школе, то нас учили логарифму так:"логарифмом называется степень в которую нужно возвести число, чтобы и т.д. Дальше, свойства логарифма и т.д." Я не понимал при этом ничего про логарифмы. И уже когда я окончил школу, то увидел учебник в котором было написано так:" Жил был Непер во времена, когда умножать было сложно. Он заметил, что когда степенные функции умножаются, то их степени складываются. И он придумал логарифм как функцию, обратную степенной, чтобы облегчить процесс умножения." Блинннннн! Я сразу же понял что такое логарифм и зачем он нужен!

    • @finalename7464
      @finalename7464 3 ปีที่แล้ว +1

      Объяснение понятия логарифм через Непера как раз таки совсем непонятно, в отличии от классического.

    • @user-hh2qp6ez4d
      @user-hh2qp6ez4d 3 ปีที่แล้ว +2

      @@finalename7464 Через Непера понятие логарифма не объясняется. Понятие объясняется классически. Непер, это "подводка" к определению логарифма, исторический экскурс. Без него голое определение просто повисает в воздухе, как некая бессмысленная и бесформенная сущность. Не знаю как Вам, а мне понятнее вещи, которые не вырваны из контекста.

    • @finalename7464
      @finalename7464 3 ปีที่แล้ว +1

      @@user-hh2qp6ez4d Ну так контекст логарифма - это уже известная математическая операция - возведение в степень. Непер тут соверешенно не причём и лишь отвлекает. По-моему ваш пример с этим Непером неудачный.

    • @user-hh2qp6ez4d
      @user-hh2qp6ez4d 3 ปีที่แล้ว

      @@finalename7464 Речь идет об обучении. Когда знаешь контекст, тогда действительно понятно. А когда не знаешь и тебе его в процессе обучения не озвучивают? Я именно об этом написал. Давайте я Вам буду долго объяснять техническое устройство, например, адсорбера и ни слова не скажу про автомобили, двигатели внутреннего сгорания и проч. Я Вам гарантирую, ничего кроме недоумения этот адсорбер Вам не доставит.

    • @finalename7464
      @finalename7464 3 ปีที่แล้ว

      @@user-hh2qp6ez4d В смысле, вы не зали контекста? То есть про логарифмы вам в школе начали рассказывать до того, как рассказали про возведение числа в степень?

  • @user-jj5km1cu2n
    @user-jj5km1cu2n 3 ปีที่แล้ว

    А как и где найти их курс?

    • @nikitabelov1478
      @nikitabelov1478 3 ปีที่แล้ว

      На Coursera. Основы разработки на С++

    • @user-jj5km1cu2n
      @user-jj5km1cu2n 3 ปีที่แล้ว

      @@nikitabelov1478 спасибо , нашел торрент

    • @MaksVlasov-p4j
      @MaksVlasov-p4j 3 ปีที่แล้ว

      @@user-jj5km1cu2n привет, можешь поделиться?

    • @user-jj5km1cu2n
      @user-jj5km1cu2n 3 ปีที่แล้ว

      @@MaksVlasov-p4j у меня его нет уже, давненько я его находил

    • @ChimRUS
      @ChimRUS ปีที่แล้ว

      @@user-jj5km1cu2n подскажи где Не обязательно ссылку, название сайта и название темы

  • @egorshatalov9473
    @egorshatalov9473 6 ปีที่แล้ว +2

    Им давно следовало бы выкинуть все записанное и начать делать курс заново)
    К примеру, кто пробовал пройти первую неделю на маке, познал всю прелесть связки эклипс + гдб. Решение этой проблемы наверняка может потянуть на какой-то более высокий "пояс" и специализация дальше уже вряд ли понадобится :D

  • @ilyastrojnov7627
    @ilyastrojnov7627 3 ปีที่แล้ว

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

    • @0imax
      @0imax 3 ปีที่แล้ว

      Ну как курс, пройден?

    • @ilyastrojnov7627
      @ilyastrojnov7627 3 ปีที่แล้ว +1

      @@0imax нет, этот курс выбрал для общего развития, а не от потребности, и раз он перестал радовать, то ушел с него. Подсел на книги, все таки любым онлайн курсам далеко до профессиональной литературы

  • @user-gKjP
    @user-gKjP 5 ปีที่แล้ว +2

    До сих пор переполнение чисел никак не обрабатывается компилятором. Ржу не могу 2019 год

    • @0imax
      @0imax 3 ปีที่แล้ว

      А в каком языке обрабатывается и как?

    • @user-gKjP
      @user-gKjP 3 ปีที่แล้ว

      @@0imax например в Delphi есть опция компилятора. В С# есть и опция и конструкция языка.
      Если у вас числа начали по кругу ходить под повышенной нагрузкой, то это будет нарушением целостности данных.

    • @0imax
      @0imax 3 ปีที่แล้ว +1

      @@user-gKjP не знал, что дедушка Delphi такое умеет)
      А майкрософт молодцы, не стали копировать поведение джавы (там в 0 сбрасывается)

    • @Xman-wn2xf
      @Xman-wn2xf 6 หลายเดือนก่อน

      Что значит "не обрабатывается компилятором"? Кроме как проверки на каждое сложение интов в рантайм пихать а это оверхед огромный. Можно пользоваться -ftrapv флагом компиляции чтобы прога падала на оверфлоу.

  • @user-cy3eu1nq8p
    @user-cy3eu1nq8p 3 ปีที่แล้ว +1

    Могли обрати Code::Blocks він теж багатоплатформовий та безкоштовний. :-)

    • @finalename7464
      @finalename7464 3 ปีที่แล้ว +6

      Русский язык тоже "багатоплатформовий " и всем понятный, включая даже вас, но вы выбрали мову.

    • @cool-story-bob
      @cool-story-bob 3 หลายเดือนก่อน +1

      ​@@finalename7464Оу, вы из отдела контроля языковой полиции? Можете подсказать куда оплатить штраф за нарушение правил пунктуации в комментариях?

  • @artempopov2298
    @artempopov2298 5 ปีที่แล้ว +6

    "С++ для самых маленьких и тупых" no offence

  • @beatsey
    @beatsey 4 ปีที่แล้ว +1

    "Мы учим С++ людей которые знают любой язык программирования". Знаете, для математика это значит, что вы учите тех, кто уже знает все языки, в том числе С++. Не лучше ли сказать учим тех, кто знает какой-то язык программирования?

  • @TheChipburner
    @TheChipburner 3 ปีที่แล้ว +1

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

    • @0imax
      @0imax 3 ปีที่แล้ว +1

      Крик души хейтера ООП :)

    • @TheChipburner
      @TheChipburner 3 ปีที่แล้ว +1

      @@0imax Да просто для написания реального софта кроме ЯП очень много чего надо знать. Лекции по С++ очень копаются в подробностях и льют воду, в то же время не дают понимания подходов к написанию конкретных видов ПО.

    • @0imax
      @0imax 3 ปีที่แล้ว

      @@TheChipburner согласен, для написания промышленного софта надо знать гораздо больше, в том числе принципы построения приложений. Но нельзя давать эти принципы _вместо_ основ языка.

    • @TheChipburner
      @TheChipburner 3 ปีที่แล้ว

      @@0imax Это верно, но основой С++ является С, вот его и надо дать для начала, причем только часто употребимые вещи.

    • @0imax
      @0imax 3 ปีที่แล้ว

      @@TheChipburner именно что "для начала". Но от этого "начала" до принципов построения ПО - целая пропасть.