Sign in to follow this  
BHXSpecter

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


Recommended Posts

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

 

This is a pretty weird statement. Assuming that you actually intend to program a game someday then you can't either pick "programming in general" or "game programming".  Profound knowledge of the (general) programming language of choice is not an alternative to game programming, it is a requirement for game programming. Nowadays there are many ways to "make" a game but if your goal is to "program" games then getting familiar with all aspects of a programming language first is a no-brainer.

Share this post


Link to post
Share on other sites
BHXSpecter    3119

Its all a non-issue.

 

If you've become competent at, say, C++ by writing Direct3D Win32 applications, it will take a few hours at most to learn what you need to write console applications. If you've become proficient at writing console applications, and decide to move into Direct3D Win32 applications, apart from the new APIs, everything else you have learned just carries over.

 

As always, learn what you need to accomplish whatever your goals are at the time, and if your goals change, learn the new stuff you need. Trying to become an "expert" on everything just for the sake of it is a fool's errand.

I completely agree, if we were talking about competent programmers, but this discussion is referring to complete beginners.

Share this post


Link to post
Share on other sites
Aardvajk    13207


I completely agree, if we were talking about competent programmers, but this discussion is referring to complete beginners.

 

I'd maintain its equally true for beginners. If you want to make a simple graphical game, learning SDL or something similar from the get-go is perfectly do-able. The idea that you must start at the command line is not valid. The fact that it is what most of us did is irrelevant.

 

The important part for beginners and vets alike is to have a specific goal, then gather the knowledge to achieve it. If that goal includes getting some graphics on the screen, why not start there? What's the difference between learning the SDL API and learning the standard streams API?

Share this post


Link to post
Share on other sites
blewisjr    752

I did not vote but I really feel like console games will never be a waste of time.  In theory the core concepts of game development cross between all mediums be it text, or graphical.  It is really a great way to get your feet wet.  Look at all these people who want to make MMO games like WoW or whatever as a hobby developer.  This is not really a task that can be completed by one guy.  Now what if you wanted to learn the core concepts behind making an MMO without the huge amount of effort on the content side of things as this is the real problem with the MMO on top of that learning network programming and getting things to work together.  Now lets step back if you really want to make your MMO dreams come true why not step back to the console and create a MUD.  First the content can be rather easily generated.  Next the network code and the interactivity between the server and client is less complex due to the simplicity of telnet protocols.  The MUD is a great first step in getting some experience to the direction in a MMO.  I could even imagine someone with extensive mud development experience would have some great potential portfolio samples for leverage in getting a job on a real MMO team.

 

The general rule of thumb is the console is never a waste of time and you can learn some really valuable lessons from it without the added complexity of rendering engines and graphics issues.

Share this post


Link to post
Share on other sites
Quasimojo    279

I think the fact that the thread is titled...

 

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

 

...yet, the poll question is...

 

"Is programming console programs a waste of time?"

 

...is really twisting up the discussion, here.

 

OP: are you asking about doing your coding in a console window or writing programs/games that *run* in a console window?

Share this post


Link to post
Share on other sites
BHXSpecter    3119


I'd maintain its equally true for beginners. If you want to make a simple graphical game, learning SDL or something similar from the get-go is perfectly do-able. The idea that you must start at the command line is not valid. The fact that it is what most of us did is irrelevant.

Who said they must start at command line? My whole point and stance is that command line isn't a waste to learn. I personally tell people to do console, then 2D, then 3D. I recommend terminal so the beginner can have intimate one on one time with just the language and nothing else to distract them from it. Then I tell them to move onto 2D that way they are familiar with the language and able to focus on learning the API of the library while focusing on their game. Then 3D just because it is the next logical step. 

 
The important part for beginners and vets alike is to have a specific goal, then gather the knowledge to achieve it. If that goal includes getting some graphics on the screen, why not start there? What's the difference between learning the SDL API and learning the standard streams API?

The only difference here is our matter of opinion. For me, learning a programming language is like learning to speak a language. I wouldn't write a Spanish novel without learning the language properly and I don't think a person should jump headlong into making a complex program without learning the language first. You, and others, have made it clear they think otherwise and that is fine as not every method works for everyone.

Share this post


Link to post
Share on other sites
Promit    13246


The only difference here is our matter of opinion. For me, learning a programming language is like learning to speak a language. I wouldn't write a Spanish novel without learning the language properly and I don't think a person should jump headlong into making a complex program without learning the language first. You, and others, have made it clear they think otherwise and that is fine as not every method works for everyone.
Let's say you take years to study Spanish in detail from books and recordings, then go out to Spain (or Mexico or whatever) and attempt to communicate with people. You would find that although by the book you've got everything under your belt, the real world doesn't really work quite the same. There's no substitute for experience on the ground.

Share this post


Link to post
Share on other sites
BHXSpecter    3119


Let's say you take years to study Spanish in detail from books and recordings, then go out to Spain (or Mexico or whatever) and attempt to communicate with people. You would find that although by the book you've got everything under your belt, the real world doesn't really work quite the same. There's no substitute for experience on the ground.

In the US, you don't need to go to Spain nor Mexico, where I lived you could go almost anywhere and find a person that was fluent in Spanish. Now where I live you can find people that are fluent in Spanish, Mandarin, Japanese, and several other languages (college campus). Yes, there is no substitute for experience, but you still have to put in the study as you aren't going to go to Spain/Mexico and suddenly just know how to speak Spanish. I studied it for two years and spoke with my brother-in-law (who is Mexican) until I left my hometown 13 years ago. You have to study in order to have the knowledge, but then you have to put that knowledge into use or else lose it. Sadly, I haven' t spoken Spanish in 13 years and am completely rusty.

Share this post


Link to post
Share on other sites
Aardvajk    13207


With the latter, you don't have to make several threads in For Beginners complaining about your "unresolved external symbol" linker error (after 6 attempts at prodding you into posting the actual error instead of just saying "it doesn't work", of course!) and asking how to "install SDL in visual studio"

 

Yes, that is a very good point.

Share this post


Link to post
Share on other sites
Ectara    3097

After tutoring several students in C++, Java, and x86 ASM, the thought of trying to have them learn GUI programming at the same time terrifies me. These beginners don't understand pointers, they're unsure of how a for loop works, and they think a bit shift is a geological term. I feel that it would take them twice as long to make even a simple "guess the number" or "tic-tac-toe" game if they're thrust into using a GUI immediately for these reasons (off of the top of my head):

  • They now must learn about memory management way early, before they can even get any output drawn (unless they lucked out with a language that has garbage collection).
  • They have to learn not just the core language, but also the API of a graphics library that makes use of more advanced features, and manage linking and dependencies.
  • They are force-fed inheritance lessons for many languages; if I want to watch for input, I have to add an event listener object, and have it inherit from a standard base class? What is "inherit", and what's a "base class"? I didn't even get much more than a "hello, world" yet.
  • Unless they plan to learn how fonts work to print text, there's going to be a lot of taken-for-granted boilerplate code and hidden default values being used. I've experienced that teaching people right away, "Do not pay attention to this. It is magic," only discourages them, thinking that they'll never understand it all, it has a mind of its own, and that they'll never actually need to know it. It's the kind of training that teaches them to start every source file with:
    #include <iostream>
    #include <string>
    #include <windows.h>
    #include <conio.h>
    #include <fstream>
    #include <iomanip>
    
    using namespace std;
    
    whether any of it is actually needed or not, because they had problems once and that made it go away, so they may as well put it everywhere.
     

If you aren't a beginner to programming, but only to game programming, I interpret this thread as not applying to you, as you should already know these basics.
 
<divergence>
Furthermore, to suggest that rather than teach people from the ground up with the terminal/console, or scare them with GUI programming and its requisite complexity, we give them a very high-level scripting language, that may not be beneficial. If they want sounds and pictures now, okay, fine. If they actually want an understanding of how things work, it won't be at all obvious (what's a hash table look-up, and why is my loop slowing to a crawl by not caching the property value?); low-level knowledge spots anti-patterns in high-level code. If you want to start someone on high-level scripting languages, plan on having them go back and learn a low-level language later before they actually start producing their life work, unless you're banking on them striking it rich with their Alice, Scratch, or DesignBlocks skills.

</divergence>

Share this post


Link to post
Share on other sites
Satharis    2444

The only difference here is our matter of opinion. For me, learning a programming language is like learning to speak a language. I wouldn't write a Spanish novel without learning the language properly and I don't think a person should jump headlong into making a complex program without learning the language first. You, and others, have made it clear they think otherwise and that is fine as not every method works for everyone.

Let's say you take years to study Spanish in detail from books and recordings, then go out to Spain (or Mexico or whatever) and attempt to communicate with people. You would find that although by the book you've got everything under your belt, the real world doesn't really work quite the same. There's no substitute for experience on the ground.

The problem is you can learn bad habits from experience and little-no study just as much as you can learn bad habits from all study and no practical experience. Mastering something is almost always part theory and part practice.

I've seen people that have coded for half their life and the sum of that ability is them still thinking its necessary to make games in C for everything and not using any third party libraries, they also develop a sort of "holier than thou" arrogance towards learning anything new even if they're using a more modern language.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this