I will give you simplest answer possible. If you goal is develop a game, I would recommend using an existing engine that seems to suit your taste or has been used to develop similar games to your idea. All engine generally have a showcase page where they show off the creations that have been made. If your goal is to better understand the underlying mechanics of a game engine or you really have an interest in engine design pick a library and begin designing an engine.
The Quarry Works Creed
We who shape mere stone must always envision cathedrals
You kind of have to find your own path. People can give you advice all day long, but at the end of the day you have to live with your decisions. Probably the best thing to do is do both. Or at least explore both. Try finding out what it takes to put together your own engine and try some commercial game engines. Experience will teach you a whole lot about what you prefer.
I would really recommend a game engine like Unity for someone just starting out because it's difficult but it's also easier in some ways. I've dabbled in Unity. I'm currently learning Unreal engine. I've built a very basic game engine in DX11 and converted it to OpenGL 4.5. Doing your own game engine is a path few choose to take these days. To a certain extent you are re-inventing the wheel. But some of us like building our own log cabins. :-) The important thing is you work at it pretty much every day and keep learning. It's going to take years regardless of which path you take.
You might check out
" rel="external">my YouTube videos on HLSL. You can skip to the second video as the first gets into mostly XNA and the differences of HLSL for XNA as opposed to DX11. Those videos explain a lot about how 3D games draw to the screen. Drawing to the screen is just a small part of making video games, but it's an important part. That should give you some taste for what it's like to build your own 3D engine. My website has Visual Studio DX11 and OGL 4.5 source code you can download and see what a very basic game engine in C++ is like when you build it pretty much from scratch.
It's very different from learning an engine. For me, I like learning the craft and how things work at the lowest level. So, I focus more on C++ and doing things from scratch. But I'm also learning Unreal engine right now to be able to put things together quickly and such. There's really no reason you can't learn both.
The answer is simple: Don't start from scratch. Use a good engine.
The games nowadays are way more complex than Pongs and Marios 30 years ago. So if you want to make a true game, don't try to rebuild the wheels. Let engine cover those endless tech details, focus on new design and make your time count.