Каким образом стать гуру в Си?
У нас в компании есть команда, которая пишет на C. Они делают прошивки для микроконтроллеров. Книг по C особо нет. Потому что там особо нечего писать. Синтаксис умещается в тонкую книжку. Остальное - специфическая документация для железок. Так что лучше всего вам попасть стажером в компанию, которая пишет что-то для железа. IoT иди вроде того.
Можете купить какой-то простенький микроконтроллер и попробовать его освоить. Может в процессе и пропадет желание писать на C.
Если вы не готовы этому посвящать много времени и сил, учиться паять, пользоваться осциллографом и отказаться от многих современных инструментов разработки, то лучше не надо.
Си не только для железа, а ещё для системных вызовов. 
Главные умения - ручное управление памятью и работа над ошибками.
Знать - libc и заголовочные файлы своей системы.
Нужно освоить сборку - обязательно make(синтаксис Makefile). Есть ещё сборщики - cmake, gmake и новых напридумывали вроде Ninja. Ну и конечно флаги компилятора и линкера.
Из литературы - *nix ситемы оснащены командой man - предоставляющей очень годную документацию(в интернетах есть web-копии).
В освоении лучших практик очень помогает чтение доброкачественного кода, например открыты исходники Plan 9.