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