I was wondering how I could start to program. I have looked up some information on the topic and it seems that C++ would be the most usefull to learn. However as it seems a complex thing to learn I was wondering if there was another language to learn first that would make it easier.

Also are there and good free compiling programs that you guys would reccomend. I see that you guys already have a thread on some good books I could look at, But is there any good web scources to use?

I know its alot of questions, but in a summary how do begin learning C++


Programming is a big field. Should you learn C++? It depends. Most people end up specializing. A big fork in the road is interpreted languages (Python, Perl) versus compiled languages (C, C++, Java). It's obviously useful to know both. Then there's web-based languages (PHP, Flex) versus non-web-based languages. And there's all of the niches among all of them (video games, sound systems, embedded programming, etc.), so learning the language isn't the important part, but rather getting to know all the "helper" libraries and plug-ins out there, plus knowing the configuration files and stuff like that.

For a nice generic hybrid language to learn, C++ is a good choice IMO. A lot of people think you need to learn C first to appreciate C++. Java is a cool language, but it's huge. C# is getting more and more popular too.

As far as free compilers, g++ is a free C++ compiler. NetBeans is a free IDE that uses g++. Code Blocks does too. One the Microsoft side, Visual Studio Express is a free IDE. Another free IDE is Eclipse.

Your best first stop is www.cplusplus.com. It has all of the C++ libraries and functions, plus tutorials and stuff. www.cprogramming.com is a good one too for that. For a good batch of extra functions, try www.boost.org.

I would suggest you download MS Visual C++ Express, and google "C++ Hello World". And In my opinion, to learn a language other the c++ first is not a good idea. It just seems to me, that ever since I learned c++, it is now easy to pick up any other language I want. A lot of languages do a big load of the dirty work for you instead of giving you full control, and so you dont really grasp a true understanding of what is going on. If you can learn c++ and its concepts, you can tackle a lot more then if you were to learn something like c# first. My two cents anyways.

I first dabbled in java years ago and I found that hard to learn (to be honest I've forgotten most of it), however I'm now learning C++ which is more interesting than java probably because of the quirks and the little things you can do with it.

In my opinion C++ is probably your best language to start with; a nice free compiler is cygwin with Netbeans [download options], just make sure you choose the C/C++ Netbean to download. If you're learning on a Windows machine.

If you're learning on a Linux system then gcc is very good.

Edit: If you do use cygwin, you need to choose these options: cygwin.dll, gcc, g++, gdb & make from the cygwin setup and then add C:\cygwin\bin to Windows environmental variables. (read the manual)

I am just learning C++, but knew other programming languages beforehand. I am finding that prior knowledge invaluable.

If you are new to programming of any type, then I suggest you start with some simple languages to learn programing concepts. Definitions of variables, loops, code formatting are important. Spend a month or so playing around with BASIC or Scratch.

Then learn a language that is object oriented. Object Oriented Programming (OOP) is the standard. I learned javascript I did before C++ and found it was extremely helpful in understanding data structures.

The classes in C++ are difficult enough (IMHO) without adding the stuff it has in common with other languages on top of that.

As Vernon said, programming is a big field. There are different languages because each satisfies a different need. I took up C++ because I want to write some programs that have gaming features, C++ is the language used to write games.