Assuming you are in the US, you need Calculus I-III, Differential Equations, Linear Algebra, Phsyics I-II, Boolean Logic, probably an introduction to electrical engineering, statistics, possible a signal processing class, microprocessor design, circuit design, assembly (perhaps a couple of different processors), C, C++, and maybe some other stuff I've forgotten. That will give you the fundamentals for a computer engineering degree. Then you can specialize and go deeper into whatever interests you.
While it will probably sound somewhat "elitist", computer engineering isn't something you "just pick up". Yes, there are a number of areas of knowledge that you can pick up on your own, microcontrollers, assembly, C, even signal processing, and math, but you won't pick up the rigor that comes with an engineering program. "Engineer" is a licensed profession in just about every state. While a lot of them exempt computer engineers from taking the PE exam and being licensed, you still have to be careful about professionally calling yourself an "engineer".
I don't want to diswade you from pursueing the knowledge, even if it is independent and not as part of a degree program. Make sure you understand digital logic. Know what is special about NAND and NOR gates. Teach yourself assembler for a couple of microcontroller platforms: AVR and PIC32 would be my suggestions, though Intel 8051 assembler wouldn't be bad either. It's ok to jump ahead and write C for an Arduino, but you need to understand what is happening underneath the covers and behind the curtain. Understand why the performance limitation are what they are. Learn why the order of variables in a structure matters, especially in a microcontroller. Learn how a memory management unit works and how virtual memory functions at the architecture level. Caching, TLBs, pipelining, etc.
I really think that if more programmer/developers understood how computers worked, we might just have less bloatware floating around.
In some sense, computer science/computer engineering make up the theoretical/applied pair that exist for the other hard sciences, though computer science can be a little more implemenation focused than other theoretical sciences.