I've been making programs for a long time. I started with Game Maker when I was a kid, eventually I started learning to program in C++ in High School and I learned a lot of core concepts. I was learning C# and XNA for a short while, but I've been working with Unity C# for a couple years now. I'd say I'm maybe an intermediate level programmer, but recently I feel like I'm relying on too much code that other people wrote. Nearly everything I write for Unity depends on the Unity Engine and the System namespaces. A mentor once told me that I didn't need to reinvent the wheel, but I feel like I'm being dressed every morning and driven to work, if you know what I mean. I want to understand, at least to some degree, How Unity reads my code, and how it communicates with my operating system, and how that communicates with my computer. I'm not looking for Masters in Computer Science, but I was hoping that I could read a book or two and understand well enough the work beneath me so I can at least appreciate it more. If you guys could point me in a direction or perhaps recommend some books, I'd appreciate it.