Quote:Original post by themagicalrock From what you all have said, I have decided to start by learning C++, because you have been saying it is crucial to get into the career. Thank you all for the opinions.
Huh? Ugh...
I mentioned formal programming education, which will give you, among many things, ability to learn languages effectively. Among them, C++.
To get into industry (any kind), you need a degree, as high as feasible. And if getting into industry is your only goal - go for degree. Try languages on the side and learn programming as part of degree (bonus points for extra work on the side, extra bonus points for C++ work). But degree is what will matter.
Starting with C++ *is* the worst idea. But somewhere along the path you'll very likely need to learn it. C++ will give you the ability to prove solid understanding of lower level details, and understanding of programming. It's the very reason why it's poor beginner's language.
Quote:Starting with C++ *is* the worst idea. But somewhere along the path you'll very likely need to learn it. C++ will give you the ability to prove solid understanding of lower level details, and understanding of programming. It's the very reason why it's poor beginner's language.
I disagree with this. I started with C++. Well actually I taught myself Basic on a TRS 80 as a young kid but I didn't get too deep into that. C++ is hard but if you get the right books and make sure you understand what you are doing before you move on. I think learning visual basic is a waste of time. By learning VB you will pick up poor programming practices like not having to declare your variables and such. That's just my 2 cents.
The problem with learning to program with C++ is that you have to worry about learning to program AND learning the various pieces of insanity which is the C++ language.
While it is doable it is not a sane way to go about things; I'm willing to bet many of the C++ experts around here didn't start with C++, and while I'm not an expert by any means I started with BASIC, moved to 68K assembly on my Atari, had a short stint with Java back when it first appeared before even getting to C++. Now I know how to use a number of languages to varying degrees and find most langauges easy to pick up (with the exception of damned functional programming... stupid paradigm change...).
"Bad habbits" can be unlearnt and they are just as easy to pick up with C++ as they are with Visual Basic, normal Basic, Python, C#, Lua or a multitude of other languages because while learning a language is pretty easy once you know how to program being able to work within a language effectively requires different thought processes for different languages; programming C# as you would C++ is not good at all.
Btw, you DONT have to know C++ to a 'guru' level to get into the games industry; solid understanding yes, but not a 'guru' by any means.
Now, while I wouldn't advise starting with VB.Net as such (I honestly believe C# or Python would be better) it not a terrible place to start either... better than C++ at any rate [smile]
I'll give you my advice coming from a top-down perspective.
I started working with the easy stuff first. I first did web application development (PHP/Perl). Then, I started using java and .NET(VB&C#). Now, I use c++.
If you go this route, I would recommend using a "scripting" language like perl or php first. It will give you instant gratification and won't force everything on you at once. The difference between them is that perl is for general programming, while PHP was built for programming web applications. If you have no interest in website stuff, go with perl.
The two best books I've found to start on these are: "Learning Perl" by Randal L. Schwartz (O'reilly) "PHP for the world wide web" by Larry Ullman (Peachpit press)
Now, you have two options: start with c++ or go with Java or .Net. If you go the .Net or Java route, be prepared to have to learn a lot, then unlearn things when you get to c++. They might have development kits that correct your syntax and make it easy to use "objects", but it'll be very hard to understand all the new concepts and why/how they're better. IMO, c++ is the best harcore language to start with because it doesn't force you to use concepts like inheritance, classes, polymorphism, windows management, etc. You can create very nice, simple programs in c++.
The best book I've found on c++ is: "c++ programming" by Larry Ullman & Andreas signer (Peachpit press)
Remember that even at this stage, the most you'll be getting is command-line terminal output for your programs/games. I'd reccomend focusing on organizing your program's data and logistics, rather than graphical output at this stage. The book I reccomended you will slowly introduce you to object-oriented programming. This is paramount for code organization, and reduction of code. Once you have a solid grasp on object-oriented progrmming, then I'd reccomend using a c++ library that will let you output simple graphics like ascii characters on a screen.
After this, you can start using the real fun stuff by importing openGL/DirecX/Ogre3D/Havok libraries into your c++ program and calling their input/output functions with c++.
Hope this helps.
[Edit] Python is also a good scripting language to start out with, though I don't know any good books on it.
i think the main problem with starting out in c++ is that it is (mainly) object orientated programming (OOP) and this would be difficult place to start, i would recomend starting with basic C, and then moving onto c++ (ps dont use borland its annoying and out-of-date)
VB might be a good place for beginners to start learnign a codeing language but again this is out of date (becoming), i started in VB but that was 6years ago (in college) and now at uni they dive you straight into c, upgrading to C++ and to c~ and others and i have found this a good stratedgy to follow, as my course leaders are finely in-tune to the industry.
Learn an estoric language, im thinking bF or LOL. When noone but you understands what you are doing, it makes you look smarter, and gives you an undisputable amount of job security.
Quote:I started with C++. Well actually I taught myself Basic on a TRS 80 as a young kid but I didn't get too deep into that
Quote:Original post by phantom
and while I'm not an expert by any means I started with BASIC, moved to 68K assembly on my Atari, had a short stint with Java back when it first appeared before even getting to C++.
Funny, I started with ZX Spectrum BASIC, made one game, and later three in C64 BASIC. Logo was promoted in those times as well, since it taught the core concepts well, such as loops and sequential actions.
It would seem, that fewer people can claim programming exposure through C++ than the hype would indicate.
IMHO, scripting languages today are the proper first contact when going the self-learning route. Lua and PHP would IMHO both work, Python as well, but that one has a few functional concepts, which could be more difficult concepts than pure imperative programming.
To be honest I started with C++. I mean from as far back as simple Hello World. Its not hard if you have time and patience, but there are 1 or 2 little syntax tricks. But still, I recommend learning a scripting language first, like Python.