Что лучше для новичка в программировании C или C++?
Ассемблер - для новичка нужен не он, а базовое понимание что такое машинные коды, чтобы иметь представление чем отличаются платформы на аппаратном уровне. Будет полезно понимание регистров и разрядности. Понимать размерность и архитектуру памяти.
Учить Си - сейчас не нужно. Во-первых на чистом С вам, как новичку, писать не придется, а как опытному программисту - выучите потом.
Учить С++ - полезно, чтобы вы могли написать что-то. Популярный язык для embedded.
Но еще важнее для системного программиста - технологии.
Возьмите ардуино и сделайте свое устройство, например простейшую управляемую розетку. Чтобы работала по usb, затем добавьте по wifi, придумайте веб-морду с API, вот уже и системно-запрограммированный готовый продукт, а вы будет знакомы с технологиями.
Изучить язык дело достаточно быстрое. А вот знание железа, протоколов, технологий как раз то, что требуется и для того, чтобы писать системное ПО и чтобы его настраивать. Лучше начать с изучения технологий, в книгах, где они описаны будут примеры. Вот на них и научитесь... 
Поставьте себе реальные цели - изучение языка слишком абстрактно.. ну знаешь, ну и что? а зачем? что умеешь?