I dont agree with that assertion. One of the first projects I ever did was a text based adventure written using (of all things), MSDOS batch script. (It is SUPER weaksauce.)
The fundamentals of program flow can be taught using something boring, or it can be taught using something fun. Writing a simple game is something that is fun. One of the more ambitious projects I did was made using inline assembler in qbasic to make a high speed capable PONG clone. (Because QBasic graphics routines make the pitchdrop experiment look like a cheetah on speed.)
The basic things, like checking for object collision, were simple and easy to program, and using best practices by using modular programming, I was able to draw easily to the screen using my homebrew VGA memory window manipuation graphics routines.
These days, QBasic is worthless for any application, even teaching programming. It is simply not useful these days. However, you can use C++ and the console APIs, and do many of the same things-- all that's missing is a handy execution environment to develop in.
The same basic thing is true on linux/osx/bsd flavor platforms, with (n)curses. Curses is just a console application API, just like win32 console apis on windows. Learning to call these apis, and how to make use of them in novel and fun ways, is how you learn to program, and making a game that way is an EXCELLENT way to learn.
Again, because of the difficulty in unlearning something learned incorrectly/improperly, I strongly suggest using the "Hard" language first when learning to program, as it will actively prevent you from doing things the wrong way in many cases. (not always though.) Attempting to do it the "wrong way" will give you a face first taste of why best practices are best practices.
Writing an ASCII version of centipede, or Snake, or even just PONG bouncing around a filled bullet char between two bars made of ascii char #253's, will teach him about loops, conditionals, variables, flags, data types, and a lot of other fun, basic things-- and do so in a way that isn't dryer than a nun's you know what.
I think it is wrong to say you cant make a game easily without a dedicated easybutton, like game maker. That's lugging around a whole boatload of crap, for no benefit. It's the same reason why .net is the "Bullshit way", and NOT the "windows way". Just like VisualBasic was the Bullshit Way back in the 90s. .net is the new visual basic. Same shit, different day. If you are making a simple hello world console application, WHY THE HELL does it need the .net framework (Multiple versions!) installed to run? IT DOESN'T, and the resulting program is lugging around epic amounts of baggage, for no benefit. The program just poops "Hello world!" through stdout. Oh-- it's because you wrote it with MS visual studio, as a .net application. That's why. (How is lugging around several hundred megabytes of interpreter, NEEDLESSLY, in any sense a best practice? Really? The OS ITSELF, WITHOUT THE FRAMEWORKS, has the APIs needed to do the job! USE THEM! They are lighter weight, already present, FASTER, and guaranteed to be in the system anyway.)
So no. I say start with C, with the console API of your choice. You don't need more than that to do an ASCII based game. Make learning not only efficient, but also fun.