ifsmirnov / hse-cpp-2017

C++ course in HSE, group 173-2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Семинары по С++ в ВШЭ, группа 173-2

Что было на семинарах

Полезные ссылки

cppreference.com. За любыми справками по языку я рекомендую обращаться сюда. Там есть документация с примерами к большинству классов и функций языка C++, а также описание разных идиом и техник программирования на этом языке. Значительная часть материалов доступна на русском языке.

gcc.godbolt.org – здесь можно посмотреть, в какой ассемблерный код тот или иной компилятор транслирует ваш C++-код. Иногда может помочь разобраться, что же за фигню творит оптимизатор.

stackoverflow.com – здесь можно находить ответы на разные вопросы по C++ и не только и задавать свои (впрочем, с большой вероятностью ваш вопрос уже был задан и даже получил ответ).

Викиучебник по Vim – пока не попробуешь, не узнаешь, что vim тебе нравится.

За что я игнорю задачи без предупреждения

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

  • неучтённые предупреждения компилятора, в частности:

    • сравнение знаковых и беззнаковых типов
    • отсутствие возвращаемого значения у функции

    Добавьте -Wall -Wextra во флаги компилятора! Если не знаете, как это сделать в вашей среде, спросите у меня или у товарищей.

  • магические константы в коде (int min = 1e9, int a[100])

  • передача структур не по константной ссылке, когда это нужно сделать по смыслу

  • тело if/for на одной строке с заголовком

  • отсутствие пустой строки перед объявлением функции

  • длинные (>30 cтрок) куски кода, не разделённые пустыми строками

  • использование заголовков из C (stdio.h и подобные)

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

Как со мной связаться

Мне можно с любыми вопросами писать вконтакте и в телеграме. В крайнем случае можно на почту – ifsmirnov at yandex.ru.

Здесь можно (анонимно) оставить любой отзыв о занятиях.

Пара слов о моём рабочем окружении

Вот что я использую на семинарах:

  • tmux – разделять терминал по вертикали и управлять терминалом на проекторе со своего ноутбука;
  • zsh – шелл, умеющий гораздо больше, чем bash;
  • vim + YouCompleteMe (отличный плагин для автодополнения и подсветки ошибок).

.vimrc, .tmux.conf и прочее можно посмотреть здесь.

About

C++ course in HSE, group 173-2