What to learn?
Ok, I think this thread might be helpful to everybody new to programming. I know the basics of programming, but now I want to go into the depth of one language; I''m starting out.
What the language needs to be capable of is the following:
-Teach you good programming structure.
-Make you think logically (might be the same as structure)
-It must NOT make it very dificult to learn new languages (new langs. like for example C#, C++, Java)
So what do you think? Actually I was looking into the mentioned languages (C#, C++ or Java), but I don''t know which to choose. So which would be better when following the demands above?
Another question which should NOT affect the choice I make:
What language will get you the best salary.
Thanks in advance,
C++, C# and Java are basically the same. And they all have their evil spots that are confusing.
quote:Original post by SumDude
C++, C# and Java are basically the same. And they all have their evil spots that are confusing.
Do you mind answering on my question? Your reply was just a comment. And c++ is much heavier than Java I know.
PLz read the demands I need for the language...
The main problem I see with your requirements is that some of them could be considered mutually exclusive. For example, you want a language that teaches good structure but it also logical. What is logical?
C++ has great structure with its classes, but is it a logical way of thinking to seperate form from function? Some would say yes and some would say no.
Your third requirement requests that the language not make it difficult to learn other languages. Unless you are learning a language like BrainF*ck or Perl, most modern programming languages make it easy to pick up other languages. Actually, it''s not so much the language as it is the understanding of the theory behing the programming. It''s kind of like driving a car: there are a lot of different kinds out there that operate in lots of different ways under the hood... but on the surface they are all fairly similar. You learn to drive an automatic transmission and it''s just a little transition to learn to drive a manual.
If you learn C, C++ is a fairly significant leap, but not that difficult of one. So, that requirement could be considered mostly irrelevant. If you know how to program, learning the language is simple.
If you are choosing between C#, C++ or Java... my personal choice would be to choose C++ simply because it is so ubiquitous. Almost every programming book out there for game development is in C++. There are lots of books out there for the other languages you mentioned, but they arent nearly as widespread. Nearly every DirectX book that I''ve ever seen is for C++.
If you learn C++ very well, you will have a solid grasp on Object Oriented Programming and will be able to quickly move to other languages when the need arises.
As for salary, C++ wins hands down. Java is still mostly used for Internet based stuff like browser games and file sharing programs(like Limewire). C# is gaining in popularity, although I don''t use it so I can''t say too much about it. Most of the want ads for programmers are looking for C/C++ experience.
Hope this helps answer your questions...
Phosphorous
C++ has great structure with its classes, but is it a logical way of thinking to seperate form from function? Some would say yes and some would say no.
Your third requirement requests that the language not make it difficult to learn other languages. Unless you are learning a language like BrainF*ck or Perl, most modern programming languages make it easy to pick up other languages. Actually, it''s not so much the language as it is the understanding of the theory behing the programming. It''s kind of like driving a car: there are a lot of different kinds out there that operate in lots of different ways under the hood... but on the surface they are all fairly similar. You learn to drive an automatic transmission and it''s just a little transition to learn to drive a manual.
If you learn C, C++ is a fairly significant leap, but not that difficult of one. So, that requirement could be considered mostly irrelevant. If you know how to program, learning the language is simple.
If you are choosing between C#, C++ or Java... my personal choice would be to choose C++ simply because it is so ubiquitous. Almost every programming book out there for game development is in C++. There are lots of books out there for the other languages you mentioned, but they arent nearly as widespread. Nearly every DirectX book that I''ve ever seen is for C++.
If you learn C++ very well, you will have a solid grasp on Object Oriented Programming and will be able to quickly move to other languages when the need arises.
As for salary, C++ wins hands down. Java is still mostly used for Internet based stuff like browser games and file sharing programs(like Limewire). C# is gaining in popularity, although I don''t use it so I can''t say too much about it. Most of the want ads for programmers are looking for C/C++ experience.
Hope this helps answer your questions...
Phosphorous
C++ is the best way to learn how to program.
My progression was:
BASIC -> PASCAL -> C++ -> a hundred other languages
As much as I love BASIC and PASCAL, C++ is the standard.
-- Steve --
[edited by - spg on June 3, 2003 10:50:56 AM]
My progression was:
BASIC -> PASCAL -> C++ -> a hundred other languages
As much as I love BASIC and PASCAL, C++ is the standard.
-- Steve --
[edited by - spg on June 3, 2003 10:50:56 AM]
Phosphorous. You say that C++ is learning you a great deal about OOP. But what about Java? It''s about the most object-oriented lang out there. Wouldn''t that teach you to structure a program more modernly and correctly?
AS when it comes to logical, I mean good strcute and being able to think out great solutions.
AS when it comes to logical, I mean good strcute and being able to think out great solutions.
quote:Original post by Bongfilur
Phosphorous. You say that C++ is learning you a great deal about OOP. But what about Java? It''s about the most object-oriented lang out there. Wouldn''t that teach you to structure a program more modernly and correctly?
Nope. The language is not going to teach you anything about OO.
There''s an old saying: The determined programmer can write a FORTRAN program in any language.
It means that no language is going to stop you from writing bad and messy code if that''s what you''re inclined to write.
You''ll need a good book on software engineering for this. Try ''Code Complete.''
quote:
AS when it comes to logical, I mean good strcute and being able to think out great solutions.
Again, no language will teach you this. I would recommend you buy a book on algorithms or algirithm analysis once you''ve learned basic programming skills.
The book ''Introduction to Algorithms'' by by Cormen, Leiserson and Rivest (Commonly known as ''CLR'' by computer scientists) is a great book. Make sure you''re solid on your programming and mathematics before tackling it, though.
As for languages, I recommend that you start with C++, since it''s the industry standard right now. Once you''re comfortable with that, consider taking a look at LISP and perhaps Prolog to get familiar with alternative programming methods.
Yes, Java is great for OOP, but you have to weigh it against what you want to use it for. You can build just about kind of program in Java. I don''t know the specifics as to why most people don''t program many games in Java, but I don''t see many out there. C++ just seems to be the best choice if you want to tap into the game dev community resources (tutorials, books... etc).
C++ and java are extremely similar in their approach to OOP, so learning one is just like learning the other.
Either have strict syntax guidelines, which force you to have good form (at least in that respect). Again, it''s a bit of trade off with certain languages. A language like pascal/delphi make to define each section of your program, which has the effect of providing more structured code.
However, one of the greatest strengths of C/C++ is it''s flexibility (with inheritance, polymorphism, overloaded operators and such). One could argue that such things make the language LESS structured. Sometimes, the more structured a language is, the more constrained it is.
As an overall solution, C++ is the way to go. Just like anything, there are a time and a place to use different languages, but if you know C++ there is very little that you won''t be able to program. I find the open-ended nature of C++ to be extremely condusive to thinking our great solutions.
C++ and java are extremely similar in their approach to OOP, so learning one is just like learning the other.
Either have strict syntax guidelines, which force you to have good form (at least in that respect). Again, it''s a bit of trade off with certain languages. A language like pascal/delphi make to define each section of your program, which has the effect of providing more structured code.
However, one of the greatest strengths of C/C++ is it''s flexibility (with inheritance, polymorphism, overloaded operators and such). One could argue that such things make the language LESS structured. Sometimes, the more structured a language is, the more constrained it is.
As an overall solution, C++ is the way to go. Just like anything, there are a time and a place to use different languages, but if you know C++ there is very little that you won''t be able to program. I find the open-ended nature of C++ to be extremely condusive to thinking our great solutions.
CheeseGrater,
Those are excellent points that you make about the language not teaching you the theory behind the code. However, I would say that you have to learn basic OOP principles if you are going to learn how to program in an OO language. You dont necessarily have to learn them well, but you are forced to learn them at some level.
The books you list are great resources... every would-be programmer should own them
Those are excellent points that you make about the language not teaching you the theory behind the code. However, I would say that you have to learn basic OOP principles if you are going to learn how to program in an OO language. You dont necessarily have to learn them well, but you are forced to learn them at some level.
The books you list are great resources... every would-be programmer should own them
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement