|I still think that using the basic I/O routines first is a better idea, simply because it lets you write far smaller programs, more understandable programs that focus more on the logic than on the output|
I think you are way overselling the difficulty of graphics... as most people generally do.
If a newbie can understand that
cout << "something";
displays some text... then I'm sure they can understand that
draws an image to the screen. It's not exactly rocket science.
Yes, there's some additional set up code involved (such as loading the image, etc), but not really as much as people tend to think. And most of that can just be copy/pasted from examples until they're ready to try and fully understand it.
What's more, there's always
foundation code that a newbie puts in their program "just because". I mean, they all know then need to put #include <iostream> and using namespace std; at the top of their program, but ask them why and most of them won't have a clue. They just accept it as "something that needs to be there".
So instead, just replace those 2 lines of copy/pasta that they don't understand with maybe a dozen lines of copy/pasta that they don't understand. Yes, it makes the code bigger, but so what? Does that really make it any more difficult for them? I don't see why it would.
|Wait I just saw his post history. At that stage, he should definitely NOT dive into GUI development yet.|
Again I think you're selling him short.
Tons of programmers start with VB, which is GUI development. Personally I started with C++ w/MFC, which is GUI development.
In a way, it's actually easier. Code has a clear cause and effect. The user pushes a button, and they get a message. Simple. That's actually how I started. Push buttons and message boxes.
And I'll tell you something else... it's actually pretty easy to make simple games that way (which is what I did). Lots easier than it is to make games in the console.
Besides, when you get into anything nontrivial (ie: anything even remotely approaching what could be considered "fun"), console I/O quickly becomes awkward, clumsy, and difficult.
Consider the classic homework problem where you have to print a triangle like this:
This question is posted on the forums all the time by beginners. And for good reason. It's hard to do
for something that seems really small and simple. It's much easier to just use a graphic lib to draw a freaking triangle. It often can be done with 1 line of code.