the biggest influence in getting a good design is experience. Someone who has been there before, and knows what to expect.
This suggests you can start anywhere with Pong.
But herein lies my problem. I haven't been anywhere, I haven't done anything, I have no experience. (Discounting having a graphical user interface which codes on your behalf, leaving you clueless as to how it solved that problem.)
Whether you burn through a codeacademy course in an hour or so, or whether you buy an impressive-looking thick book that will take you weeks to read; (at least in my experience) all you will learn is stuff about variables, mathematical operators and functions / classes. You will be able to print text to the command line, and do some number punching on a calculator behind the scene.
At the very high level of abstraction, a game is a program that produces output. To be precise, mostly graphical output.
None of these things, designed to outfit beginners with what they need to know before chucking them out there and saying 'go program now', even begin to address graphics.
If you bought a really thick book, you might know how to save a high-score to an external file for use next time you run the game, but not if you changed your mind about which language to learn after buying the book (Usually because you're advised strongly to start with a simpler language, but occasionally because you're told that of the options available, despite all the sales-hype for why this is the book you should buy, this is not a language worth bothering with.)
So unless you only want to print keyboard characters to the command line, you have zero experience of the tools or code you will need to tackle even the most basic task, but the advice boils down to, you have everything you need now, go read the API. And the API is like a huge reference book with no search function, and tells you a lot of technical information that is indecipherable to a beginner for the most part, and seems to lack any layman's definition of what the thing actually does. Now maybe I'm missing an obvious trick here, but it seems like I took one swimming lesson and I'm now expected to be confident enough to jump into the pacific ocean without any water-wings, and if you find you are unable to do that, your only recourse is to buy more books in the hope that they will be better than the last, sight-unseen, or trawl through forums asking questions of people that seem so simple it makes you wince to ask them. Even if you ask an experienced programmer how they learnt, they can only reply that they just started writing code, and more code, and more code, until they got 'experience'. This doesn't explain anything, although it sounds like it should.
Yes Frob; in reply to what you just posted before I hit post, we could all do text-based games. We could do that in BASIC as well. I was designing stuff like this when I was 10. Moving through mazes and answering choice gates. The only difference is learning how to do that in OOP. Nothing from that experience helps me move beyond that. In a sense you are still using a GUI because you couldn't put anything on the screen other than ASCII characters that the language already knows how to output to a command line prompt. You can't draw a single pixel, except in letter-graphics.
Text based 'ski' game where you have two bars indicating the edge of the board and a mark in the middle the player moves.
I have no idea how to do this btw. Maybe I have misunderstood your suggestion. Do you mean a progressive print-line execution where you can move a character left or right or just continue forwards, without using any appearance of animation or requiring the screen to be overwritten with blank pixels each time ?