Is working in terminal/console really a waste of time?

Started by
64 comments, last by Satharis 9 years, 10 months ago

I started writing programs in the console in C++ as well. Do I feel like it was a waste of time? Not exactly. I think starting with console programs helped me to grasp the fundamentals of programming, but I do wish I had worked with something more graphical.

The console helped me learn the basics like if, else, classes, and such. But it took me a LONG time. I couldn't grasp the concept well because there wasn't much there for me to work with. Without my good friend YouTube, I don't think I would have learned. I wish it was explained to me how other stuff works, like in order to start making basic games you should look into OpenGL\DirectX and libraries associated with it.

I didn't really begin to grasp everything until I switched to C# for a while messing around with the XNA Game Studio. It was TREMENDOUSLY helpful. Because everything was right there and I could finally see how things worked. Do I think learning how to program in the console is a complete waste of time? Not at all. But if you're looking to go into game programming, it may be more beneficial to start with something else.

You have no idea how excited I was when I re-made Pong in C# with XNA. It was an amazing feeling, like something was actually coming together. It was the simplest of games and it was a wonderful start. Then I moved back to C++ with the SDL library and I felt even better. I wish I had started with making a simple Pong clone in the first place.

I see a LOT more use for the console now that I've actually learned quite a bit. But starting out with it, I thought the console wasn't all that helpful. I think what actually made me like it was making a simple text adventure game. That was the kind of idea I needed to like the console. Because up until then I couldn't think of much use for it. All I could think was what in the world was it good for? Although now I think the console is pretty amazing. This is my long answer, I wish the poll had a third option.

Also, I think it may be important to mention, that I didn't have a teacher, and that may skew my view a bit. YouTube was my teacher. I was learning on my own.

Advertisement
The reason I would recommend starting with the bare minimum is that it allows the beginner to focus on learning the core concepts first. In most languages, a beginner who starts with graphical libraries has to deal with more mystery boilerplate code at the start, and that this could result in a way of thinking where such code is accepted more readily. I believe that programmers starting with such a mentality are at risk of avoiding understanding such code and instead developing programming techniques where such code is copied from another source and tweaked until it acts as required.

Notice that I didn't mention the console specifically. I don't think that the console has any magical abilities, but rather it is the presence or absence of "ignore this for now" supporting code (or at least minimising such code). If the language they are using has built in, simple support for graphics then I don't think there is the same risk, such as many of the old Basic dialects or perhaps if they're learning Javascript in a web browser.

I could be wrong, but that is what I think.

I've always felt that learning C and then C++ at the command line was an excellent start, since you are then far more aware of the process of compiling translation units, linking them together etc. I feel had I started with IDEs, I may never have gotten a grasp on exactly what the IDE was doing for me behind the scenes, which has often been useful knowledge when things go wrong.

But what is a "waste of time" anyway? Sounds like the kind of blanket opinion that gets thrown around without a solid basis.

I've always felt that learning C and then C++ at the command line was an excellent start, since you are then far more aware of the process of compiling translation units, linking them together etc. I feel had I started with IDEs, I may never have gotten a grasp on exactly what the IDE was doing for me behind the scenes, which has often been useful knowledge when things go wrong.

But what is a "waste of time" anyway? Sounds like the kind of blanket opinion that gets thrown around without a solid basis.

I think the OP is talking about something completely different: writing a console-mode program, which may (or may not) be done using an IDE.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Kicking this over to General.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

I wouldn't call it a 'complete waste of time', but I do believe it's an entirely unnecessary step. It isn't that hard to work with pixels instead of ascii characters, and making a graphical ascii game, one is going to spend a lot of time looking at ascii charts picking out things to represent monsters or what have you, and honestly, that really is knowledge that's mostly not ever going to be used ever again.

Anyone willing to explain that viewpoint?


It’s not something I would ever recommend.
While it is not necessarily a waste of time, it is an inefficient use of time considering all the alternatives.

If you want an easy way to draw better-looking graphics, mIRC Script and Q-BASIC are better alternatives, and even C# is beginner-friendly.
If you want a simple no-cruft way to explore loops and logic, mIRC Script’s syntax is quite similar to C but the compiler is much more beginner-friendly and most of the environment is already prepared for you so all you have to do is open the code window and code. No main loops, terminal creation, key-scanning/reading, etc.
If you want to learn more specifically about game programming rather than programming in general, modding a game is much more valuable.


Terminal window coding in preparation of learning game programming is only a way to trim cruft and focus on more digestible bits here-and-there, but the problem is that it doesn’t serve any one dish better than the alternatives do. Even as a complete package, most alternatives trump it, as they overall offer basically everything terminal programming does and more. Modding will still hold your hand over looping and logic but also give you a more motivating experience related to actual games.


It may not be useless, but there is no reason to ever do it.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid


If you want to learn more specifically about game programming rather than programming in general, modding a game is much more valuable.

This group right here is where most of the facepalm moments come from in the "For Beginners" section of this site, though. I think this group, more than any other, needs the console programming time to get past the CS101 problems.

Hazard Pay :: FPS/RTS in SharpDX (gathering dust, retained for... historical purposes)
DeviantArt :: Because right-brain needs love too (also pretty neglected these days)

Terminal window coding in preparation of learning game programming is only a way to trim cruft and focus on more digestible bits here-and-there, but the problem is that it doesn’t serve any one dish better than the alternatives do. Even as a complete package, most alternatives trump it, as they overall offer basically everything terminal programming does and more. Modding will still hold your hand over looping and logic but also give you a more motivating experience related to actual games.


It may not be useless, but there is no reason to ever do it.

I agree with you but there are some alarm bells going off, I fear your advice may be misunderstood.

Notice what I highlighted. If the person is learning game programming, then yeah, I completely agree. But it seems to me like this advice already assumes the person knows a language already. If a person wants to learn a new language, say C++, then I feel that they should get some console/terminal experience before they move on.

Better learn how to #include and cout before you try linking graphics libraries and allocating memory.

Game programming has nothing to do with graphics, sound hardware or anything. You could make a chess program and move the pieces on a real board, for example.

My first ever game was made on an electric typewriter, by sheer lack of a real computer (mind you, this was the pre- home computer era). I would draw cave-like structures on paper and hold a key on repeat while twisting and turning the paper-feed barrel to steer through the 'level'. It wasn't a whole lot of fun, but it was a game. As far as I'm concerned, limitation will only sparkle your imagination and perserverance.

So yes, I think the console is a fine place to start. You learn how to program, and that's just enough at that point. If you cannot enjoy that, you might not really be interested in programming.

This topic is closed to new replies.

Advertisement