• Advertisement

Archived

This topic is now archived and is closed to further replies.

What Should I Learn Next?

This topic is 5036 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I''m learning Blitz BASIC. All I really wanted to do was get a general idea of what programing was. I need a "stepping stone language" that wil let me use what I''ve learned....Got a suggetion? (was thinking about VB)

Share this post


Link to post
Share on other sites
Advertisement
Well, when you''re finished with Blitz Basic, you should consider trying an extremely awesome language instead of a "stepping stone" one. Like Python.

Share this post


Link to post
Share on other sites
go buy a book for c++
then prepare for lots of fun surrounded by frustration...
but still worth it

Share this post


Link to post
Share on other sites
Or get a book on Python, and prepare for even more fun without any frustration. It''s your call.

I know this thread will get swarmed with C++ advocates, so I want to stress my point as early as possible.

Share this post


Link to post
Share on other sites
Yup, definitely C++.

When you find yourself in the company of a halfling and an ill-tempered Dragon, remember, you do not have to outrun the Dragon...

Share this post


Link to post
Share on other sites
Since you''re on a game programming website, I assume that is one of your interests - python, lisp, OCaml, ruby, delphi or whatever other languages people like to throw out in threads like these simply can''t compete with C++ in this area. Any of those others would make great second languages though, and I suggest you do pick one after you''ve become reasonably comfortable with C++.



[My site|SGI STL|Bjarne FAQ|C++ FAQ Lite|MSDN|Jargon]
Ripped off from various people

Share this post


Link to post
Share on other sites
quote:
Original post by wild_pointer
Since you're on a game programming website, I assume that is one of your interests - python, lisp, OCaml, ruby, delphi or whatever other languages people like to throw out in threads like these simply can't compete with C++ in this area. Any of those others would make great second languages though, and I suggest you do pick one after you've become reasonably comfortable with C++.

Now that's just misleading. I'm going to make the bold assumption here that Badazz isn't planning to start off making highly graphically intensive 3D simulations. The only thing Python lacks in compared to C++ is speed, and it holds up quite admirably for the 2D games a newbie would start with even in C++.

And on the plus side, Python is cleaner, simpler, more friendly, and more flexible than C++. IMO a perfect language to learn the fundamentals of game programming in.

Why would someone want to struggle against the annoying quirks and idiosyncracies of C++ while they're still trying to figure out the mechanics of putting together a moderately complex 2D game? I know I wish I'd started off with Python; it would have saved me a lot of time and wasted effort.

[edited by - twix on May 6, 2004 10:40:29 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by twix
Now that''s just misleading. I''m going to make the bold assumption here that Badazz isn''t planning to start off making highly graphically intensive 3D simulations. The only thing Python lacks in compared to C++ is speed, and it holds up quite admirably for the 2D games a newbie would start with even in C++.



Oh, comon. I wasn''t even talking about performance. Let''s compare and contrast the resources available for learning C++ and graphics programming in C++ to those available for Python. Yeah. Besides, I seriously doubt you would appreciate Python as you do if you did not first learn C++.

Face it, if you wanna work in games, you need to know C++.




[My site|SGI STL|Bjarne FAQ|C++ FAQ Lite|MSDN|Jargon]
Ripped off from various people

Share this post


Link to post
Share on other sites
IMO you should learn C. It''s less complex than C++, is relatively easy to use, easy to read, and very powerful.

Share this post


Link to post
Share on other sites
quote:
Original post by wild_pointer
Oh, comon. I wasn't even talking about performance. Let's compare and contrast the resources available for learning C++ and graphics programming in C++ to those available for Python. Yeah. Besides, I seriously doubt you would appreciate Python as you do if you did not first learn C++.


Perhaps the lack of books might be a problem for some people. I found that graphics programming is just so extremely simple in pygame that you don't need much to get you up and running. The tutorials at pygame.org were quite adequate for me, even without any prior knowledge of SDL. But of course, my judgement could be skewed since I knew something of game programming at the time I was learning Python.

I mean, honestly, the resources available for learning Blitz Basic are immensely less than those available for C++, and yet many people appreciate it at least as an introductory language for game programming. People don't have complaints about it in terms of ease-of-learning. I'd like to hear some complaints from beginners about Python before I admit that there are too few resources.
quote:

Face it, if you wanna work in games, you need to know C++.


You've got to learn it eventually, but I can't help but think that people should learn how to program before they learn how to program in C++. Seems like a much faster path to overall proficiency to me, especially if they would have learned other languages later anyway.

[edited by - twix on May 6, 2004 11:01:36 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by wild_pointer
Oh, comon. I wasn''t even talking about performance. Let''s compare and contrast the resources available for learning C++ and graphics programming in C++ to those available for Python. Yeah.


Yes, let''s.

learning X

X graphics programming

C++ wins by about a 2:1 ratio, but there is still a LOT of support out there.

quote:
Besides, I seriously doubt you would appreciate Python as you do if you did not first learn C++.


o_O

Ok, let''s hear you reason this one out. I''m intrigued.

Share this post


Link to post
Share on other sites
Ok let''s assume that I don''t know 1 thing about programming because all Basic tought me was that 1) For loops,while wend looops...ect. and 2)It sucks and Is unorganized(according to other people). I don''t want to statrt off with "highly graphical 2d games" just a language that will help me get to that knolege point and maybe have the capablities down the road.

Basically...which one is easier to learn and may lead me to a better more high performance language. I need a language eith a similar syntax to an even better lanuage!

Share this post


Link to post
Share on other sites
Well, if you feel comfortable with basic-style code, why not try Visual Basic? In fact, MS is offering VB.net for free.

VB is pretty good for simple games and very easy to learn, IMO. You could probably make a lot of headway with that, learn about Windows programming and using the API, and afterwards move on to, say, C++.

Share this post


Link to post
Share on other sites
If you want a new language and your really bored, learn assembler, you''ll understand how the computer works, not just if statements

Share this post


Link to post
Share on other sites
For a stepping stone, I also vote for Python.

But forget stepping stones. When you think about it, stepping stones are just an excuse for laziness.

Assembly is the right choice because the world is full of too many "kids" who can only use languages that do all the real work and housekeeping for them. These people have no significant understanding or appreciation of how a computer works, so they cannot possibly make truly good programs.

C++ is a great compromise between what I suggest and where you are. But think of it this way. There are two ways to enter a cold pool. You could take your sweet time and get in inch-by-inch. If you do this, you''ll sustain local suffering for a long amount of time. Or, you could just jump right in. That way, you suffer global suffering for a short amount of time. Have some balls and just jump right in. If you stick with it, I guarantee that you be strongly glad later on.

So, if you''re convinced, first Google to learn what assembly language is. Then, you''ll need to choose an assembler. Assuming that you''re on x86, try the Netwide Assembler. It''s free, available for many x86 platforms and has the cleanest and simplest syntax of any x86 assembler; whatever you do, stay away from MASM (Microsoft Assembler) and, to a lesser extent, TASM (Turbo Assembler). If you''d like a free book to help you along your way, try The Art of Assembly Language.

After you''ve got assembly all figured out, come back here so we can re-ignite the debate over C++ and Python.

Share this post


Link to post
Share on other sites
quote:
Original post by merlin9x9
For a stepping stone, I also vote for Python.

But forget stepping stones . When you think about it, stepping stones are just an excuse for laziness.

Assembly is the right choice because the world is full of too many "kids" who can only use languages that do all the real work and housekeeping for them. These people have no significant understanding or appreciation of how a computer works, so they cannot possibly make truly good programs.

C++ is a great compromise between what I suggest and where you are. But think of it this way. There are two ways to enter a cold pool. You could take your sweet time and get in inch-by-inch. If you do this, you'll sustain local suffering for a long amount of time. Or, you could just jump right in. That way, you suffer global suffering for a short amount of time. Have some balls and just jump right in. If you stick with it, I guarantee that you be strongly glad later on.

So, if you're convinced, first Google to learn what assembly language is. Then, you'll need to choose an assembler. Assuming that you're on x 86, try the Netwide Assembler. It's free, available for many x 86 platforms and has the cleanest and simplest syntax of any x 86 assembler; whatever you do, stay away from MASM (Microsoft Assembler) and, to a lesser extent, TASM (Turbo Assembler). If you'd like a free book to help you along your way, try The Art of Assembly Language.

After you've got assembly all figured out, come back here so we can re-ignite the debate over C++ and Python.



Oh God, this has to be the worst advice in the history of advices.

If you want to learn how to program, pick a language where you can focus on the programming aspect and problem sovling and algorithmic understanding. Good choices could be Scheme for a functional language, C#, Java or Delphi for an OOP language.

Then later you can learn C++ if you need the extra flexibility.

And assembler well...what's the point? (unless you later on absolutely want to learn to code for consoles etc.).




There's no place like 127.0.0.1


[edited by - rohde on May 7, 2004 8:18:38 AM]

Share this post


Link to post
Share on other sites
I''d choose C. It takes some time to learn, but when you have learned it, you can easily learn just about any language(though if learn C, you probably don''t even care for other languages that much. And there''s tons of tutorials and source code for C. Then I''d do some asm, so you get a feeling of how stuff work. Ofcourse some c++ will be nice later on when you feel comfortable with C, but it''s really not that necessary.

Then again it depends on what you want to do with your skill.

Share this post


Link to post
Share on other sites
quote:
Original post by Squirrelion
It takes some time to learn, but when you have learned it, you can easily learn just about any language


That is so very wrong. You can learn the syntax, sure, but you'll never be a good programmer in, say, C++, without a thorough understanding of the language's object system and how to use it as an effective abstraction mechanism. All the C experience in the world isn't going to help you with that. Same applies to Python, which has a very similar object system. And all the C++ and Python experience in the world won't help you adapt to the paradigms of Lisp. You get that through perseverance and intelligence.

It's a big mistake to assume that once you know one language, you know them all.

On the other hand, once you know how to think like a programmer , that skill will be transferable to any language. So if you're planning to learn several, it doesn't matter which you start with, so long as it's a good one. That's why I recommend Python, because it's clean, consistent, and powerful, and will get you to understand the process of programming without you having to struggle with overly complex semantics. C could work as well, since it's an even simpler (but less powerful) language.

I think Python skills are more useful than C skills in learning C++, since Python provides all the features of C++ while C only has a small subset. Learning OOP early on will make C++ easier to grasp, I think. But I might be underestimating the difficulty of pointers, so YMMV.

[edited by - twix on May 7, 2004 10:29:33 AM]

Share this post


Link to post
Share on other sites
If you going to ask on a board for what language to use, your going to get lots of conflicting messages. Which is probably not a bad thing at all. My suggestion is to do your homework, do a little reading and figure out what your sources are. Pick a lanugage that is cheap, convient, and has lots of good resources.

As a "stepping stone," C++, VB, Java, Python, and Assembly are probably all great choices for learning from. Each will have there own quirks and problems. But I suggest you do you own research on each and figure out what each does best for what you want todo.

-Daichi

Share this post


Link to post
Share on other sites
Learn C or Python next.

Visual Basic is only good for writing quick throwaway GUI programs and isn''t used much in the game industry other than for quick throwaway GUI programs.

Assembly won''t teach you how to program and is hard to write well. Learn it after learning a higher level language like C.

Python is a good choice, as it may teach you decent object orientation while only damaging your brain with its syntax. It''s not all that useful as a scripting language on consoles at the moment but it may be quite popular on the next generation of consoles (Xbox 2, PS3, etc). If you choose to learn Python, I''ll have to respectfully request that you NOT become part of the Official Python Groupie Club. This informal club makes it their business to recommend Python as the highest form of programming on every Internet message board that they can find. I hate to disappoint you, but Python doesn''t cure AIDS or cancer and won''t someday be the only programming language in the world.

C is a good choice because it is the de-facto structured programming language, and it''s good to know structured programming even if you use the object oriented paradigm more often. C is the best supported language in the world and one of the simpler ones to learn. You''ll need to know either C or C++ if you want to work on consoles, although C# may become popular with next batch.

Python may be easier to learn but you can live without Python, whereas it''s much harder to live without C. Whatever you choose, don''t get frustrated if you''re having trouble... it may be Blitz BASIC''s fault, not yours.

Share this post


Link to post
Share on other sites
Here''s an idea. Just program in blitz basic for a while. One good way to learn how to program is to, well, write programs.

Share this post


Link to post
Share on other sites
IMHO you should learn turbo pascal. Not normal pascal mind you, it''s a bit bitchy and anal; turbo is more like the languages held in higher regard.

If you can find it for download somewhere, turbo pascal 6.0 (yep - DOS =)) is proberbly the best you can get for a compiler.

There are many tutorials out there on turbo pascal, and I am sorry I can not remember the one I used years ago =( However, turbo pascal is proberbly the best choice you can make for a transition IMHO, as it is easy to go from TP to C (from experiences of myself and others), it is the language commonly used in oldskool high-school IPT, it allows you to learn the fundamentals of non-OOP programming (iteration, data sets, procedures and structures) without being swamped by everything that is C and C++, and many forms of pseudo-code follow a -very- similar structure to TP (and pseduo-code pwns for writing out an algorithms outline).

Yes, the TP I am referring to is DOS, proberbly 16-bit (code wise; however it does have 32bit codes) and now forgotten. But I have never seen a better language to learn the fundamentals of real programming on, which provides everything from file i/o to inline assembly, yet isn''t complex at all.

=)

Share this post


Link to post
Share on other sites
I haven''t used python, so I''m not even going to start with it (heard it wasn''t a bad language but wasn''t as fast, yada yada yada).

AKA has a good suggestion. TP is a great language to know. Not used commercially much anymore (other than Delphi, which is a Borland derivative for Windows programs, and Kylix, which is the same, but for Linux). It will let you get a feel for object-oriented programming, and isn''t too far away in syntext from C/C++.

Assuming you want to head in a more game programming oriented direction, C/C++ should be your destination. As bobstevens said earlier, it is the industry standard. You won''t make it very far without knowing it to some extent.

In the long run, knowing more than one language is definately a good idea. It will give you a feel for the strengths and weaknesses in each language and let you decide which will be best for each program you make.

-Overflowed

PS - As for the suggestion of ASM: You''ll get an amazing grasp for the intricacies of the processor you''re developing for, but good luck writing large-scale programs in it (or cross-platform for that matter). I would suggest learning it as a supplement to other languages (optimizations and such).

Share this post


Link to post
Share on other sites
quote:
Original post by Zahlman
quote:
Original post by wild_pointer
Oh, comon. I wasn''t even talking about performance. Let''s compare and contrast the resources available for learning C++ and graphics programming in C++ to those available for Python. Yeah.


Yes, let''s.

learning X

X graphics programming

C++ wins by about a 2:1 ratio, but there is still a LOT of support out there.

quote:
Besides, I seriously doubt you would appreciate Python as you do if you did not first learn C++.


o_O

Ok, let''s hear you reason this one out. I''m intrigued.


You are an idiot beyond reasoning.

Share this post


Link to post
Share on other sites

  • Advertisement