Which language to learn next...
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]
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]
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]
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.
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.
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)
there IS a community that might help you there though...
Win32 Asm Community
(first board that didnt flame me as a n00b :-D)
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)
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.
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]
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]
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.
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.
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?
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]
“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]
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement