I am not really sure there are any advantages to starting directly from DirectX or OpenGL unless you really want to know the guts of a game/game engine. If your goal is to make games then the existing engines (like Unreal) are a great place to start and will enable you to be productive very quickly. Using Unreal gives you many thousands of development hours worth of work for free and it allows you to start from a stable and well developed toolset. The initial release of the "Unreal Engine" was 17 years ago in 1998... It is on its fourth version... While I doubt much of the original code is still there, I think it speaks to the level of effort involved.
"On August 17, 2005, Mark Rein, the vice-president of Epic Games, revealed that Unreal Engine 4 had been in development since 2003." .
Unreal Engine 3 was around 2 million lines of code. I bet Unreal Engine 4 has more. Let's assume you can code 50 lines of code per day (which in some estimates is five times more than average). That would mean it would take 40,000 days or 109 years of your time to create something with 2 million lines of code if it took you wrote 50 lines of code a day (and every day at that). If you were some ultra talented programmer who could magically turn out 500 lines a day every single day it would still take 11 years of nonstop time.
The thing to remember is that games are software. I always think it is good to really understand the programming fundamentals. It can be good to focus on the basics of a language (make console applications, ect) to really understand how the language works.
Make sure you understand if statements, loop statements, arrays, data structures (lists, maps, sets, ...), file I/O, functions, and OOP concepts. These things will help you a lot when it comes to programming a game.