- Семинар 1, 06.09 (базовые команды линукса, компиляция из командной строки)
- Семинар 2, 08.09 (std::vector)
- Семинар 3, 13.09 (замечания к домашним задачам, функции, ссылки)
- Семинар 4, 15.09 (структуры, перегрузка операторов, лямбда-функции)
- Семинар 5, 20.09 (в основном обсуждение домашек)
- ...
- Семинар 7, 27.09 (разные стандартные итераторы)
- Семинар 8, 29.09 (explicit, static-члены класса, программы из нескольких файлов)
- Семинар 9, 04.10 (юникод, свой класс с операторами)
- Семинар 10, 05.10 (итераторы, iterator_traits)
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 и прочее можно посмотреть здесь.