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