If you're new to gamedev I'd suggest a library like SDL or SFML if you're using C++, or a similar library in another language. They take care of the basics that you don't necessarily need to worry about like creating a window and abstracting away basic rendering and input, then you can worry about just making a framework for your game code and treat SDL/SFML as just a library.
Yeah, that's the whole strategic purpose of using a game engine or even a custom collection of the lesser abstract libraries. One way or another, the game developer will have to extend the framework which they chose by creating game source code (the game coding framework itself) upon which they make versions of game (version 1.0, 1.1, 2.0, 2.1, 2.5, 3.0, etc.). As the game developer becomes more sophisticated, then the need for Source Control or Version Control software increases, which is the efficient way of managing development and keeping documentation (a sort of map of the lay-out) so good coding doesn't get lost in the processes but reused as Game Source Code.