Alright, let me start off by saying this: I've seen multiple threads comparing creating custom game engines to already created game engines such as Unity3D or UDK, but none of the threads I've found have discussed this issue in terms of pure learning purposes. Instead, they've discussed the advantages and disadvantages of using already created game engines in terms of performance, development time, and customizability. Well, at least for starting out, I'm not worried about those aspects.
So, to reiterate, will designing my own game engine offer a firmer grasp on game programming concepts and knowledge than creating a game engine with an already built engine?
At the moment, I've got an intermediate-level knowledge of C++, no knowledge of DirectX or OpenGL, and an extremely limited knowledge of game engine architecture. However, assume that if I were to creating my own game engine, I'd first become acquainted with these required languages and concepts by reading multiple books.
Thanks in advance.