Jump to content
  • Advertisement

Archived

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

PlayGGY

Which language to learn next...

This topic is 5330 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

First, a little background. I am sixteen, and have been programming in C++ for almost two years. I now think I have mastered it, with lots of help from you at GameDev (thanks a lot, guys... ). What should I learn that next? Assembly? I have always wanted to understand how C++ works under the hood. Or should I learn C#? It looks really nice, but keep in mind that I do not intend on developing exclusively on Windows forever. What would be most benificial for me to learn next? I am thinking of learning assembly and then C#, because C# shouldn't take very long to learn, but what do you think? I am open to all opinions (well, I did ask here, right? ) -Daniel [edited by - PlayGGY on January 14, 2004 11:57:37 PM]

Share this post


Link to post
Share on other sites
Advertisement
It depends what you plan on doing.

If you are wanting to make highly tuned games or someday migrate to consoles then asm could definatly be a good thing to learn. Of course if you want to make programs for cell phones you probably should learn Java.



Drakonite

[Insert Witty Signature Here]

Share this post


Link to post
Share on other sites
Thanks for the input.

For those of you who know assembly:

Did you learn it for multiple CPUs? I assume it is about the same thing for most of them.

Share this post


Link to post
Share on other sites
No actually i THINK its even different between compilers... (well jsut keywords) and im usre due to different cpu archetecture it would be noticeably different, but by how much i dont know (i wanted to look into asm, but couldnt find any real good resources and kinda got shot down...)

there IS a community that might help you there though...

Win32 Asm Community

(first board that didnt flame me as a n00b :-D)

Share this post


Link to post
Share on other sites
quote:
Original post by PlayGGY
Did you learn it for multiple CPUs? I assume it is about the same thing for most of them.


Take it this way - most (all) programming languages share the same concepts, and yet they each have differences in the way things are done. Assembly languages is the same. They will all have instructions for arithmetic operations, reading/writing to memory, etc, but the details of how they work, how to best arrange them, etc may vary wildly from machine to machine. Then, just like you have different high-level programming paradigms (imperative, functional, logical, structured, object-based, object-oriented), you have different ISA paradigms (the great CISC/RISC debate).

So, just like knowing one language well will give you hints as to how things work in another language (they''re all targetting Van Neumann binary computers, after all), knowing an ASM language well will give you some insight into other ASM languages, but will not make you proficient in them by any stretch of the imagination. Knowing the concepts involved (addressing, stack, etc...) is useful even if you don''t go into the detail needed to be an effective ASM programmer.

I suggest that, rather than, or in addition to your computer''s ASM language, you go and learn languages that do things completely differently from C++, so that you get exposed to another way of thinking, and come back with some understanding of the decisions that have to be taken in language design, and, yes, some idea of what they are doing under the hood (e.g. the 1001 ways a language can do function calls, handle arguments (currying, type inference, closures... hmmm good stuff), how it all boils down to a CALL or a JMP (tail recursion tricks!), that kind of stuff).

And of course, no post of mine could be complete without a plug for python.


“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”
— Brian W. Kernighan (C programming language co-inventor)

Share this post


Link to post
Share on other sites
Yeah, thanks Ademan555, I remember doing a google search, and lots of the info is from 1996 or earlier. Well, probably CPUs haven''t added many new instructions. Tommorow I am probably going to start on assembly, and hope I can find a good tutorial.

Share this post


Link to post
Share on other sites
Fruny, thanks for the long reply.
What you said made me wan to learn assembly even more. I think it will be easier to understand other languages once I understand what they are all doing underneath the surface. And I will have to google some of those paradigms, even thouh a few look nearly identical to another (like functional and sturctured). Thanks for your help!

[edited by - PlayGGY on January 14, 2004 12:55:13 AM]

Share this post


Link to post
Share on other sites
C# isn''t exclusive to Windows.

It''s also a damn fine language. I have a few complaints about the libraries supplied by Microsoft (the System.Net async socket functions seem to be a bit buggy and poorly thought-out), but nothing major, and nothing that can''t be fixed by a patch to their .NET framework.

Share this post


Link to post
Share on other sites
quote:
Original post by glassJAw
C# isn''t exclusive to Windows.

It''s also a damn fine language. I have a few complaints about the libraries supplied by Microsoft (the System.Net async socket functions seem to be a bit buggy and poorly thought-out), but nothing major, and nothing that can''t be fixed by a patch to their .NET framework.


Yeah, but I really doubt it will become big on any other platform. I see it becoming huge on Windows, but nothing else. I am planning on learning it, but I am just wondering what order I should learn things. I don''t see how anyone learned assembly, the resources on the net are pretty sparce (and all of the code looks completely different... some code uses macros that I know isn''t part of assembly, like ''.IF''. The don''t explain where the macros came from though). Does anyone have a good resource?

Share this post


Link to post
Share on other sites
Here's a resource, not related to your C# question in any way () but which you may still find interesting (click on the picture and check out the links on the page).


“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”
— Brian W. Kernighan (C programming language co-inventor)


[edited by - Fruny on January 15, 2004 1:11:49 AM]

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!