Best way to learn programming

Hello, for the past few years, I've really been getting into programming.
I understand the basics of Visual basics, and made quite a few very inefficient games with it. (i.e. mario game, with picturebox "enemies" and everything put as timers), After, I played around with C# a bit, and did more or less the same thing that I did with VB.

Recently, I've started C++. I've gone through the C++ reference tutorial thing and understood most of it.

Now, my question is, where do go from here?

Am I even close to being ready for the complex 3D programming of Direct X? Or what about windows forums?

For windows forums, what it be better to use the templates provided with Visual Studio Express? Or lean it the hard way through the command prompt?

What should be my next goals be, and how should I lean? )I.E. Tutorials? Fiddling randomly around?) If my ultamite goal is 3D with Dirext X?

I am patient, and am willing to learn slowly to reach my final objective.
(If it makes a difference, I'm a highschool student)

Thanks for your support.
~Bill
Hey Bill,

There is nothing wrong with going into complex 3D programming (in fact, I have started my journey that way ;-) ). Your few years of programming should be enough to be able to understand the structure.

3D programming is pretty straight forward. But you'll first need some more experience!

But what I can recommend first off is:
- you should get some more experience with C++ (try Qt for example, create a text editor or something, just to get used to inheritance, friendship, templates, function pointers etc; To see what your possibilities with C++ actually are)
- Also for complex 3D programming you should know 'some' math (like: working with matrices (rotations, affine transformations etc)) to make it more efficient ;-)
- E.g write some programs for your everyday use. That will introduce you to new challenges.
- Learn from others. E.g come and help some people in the beginners forum (their problems aren't always as easy as they look) but also write some stuff with your friends (if any are available for this kind of activity)
- And most importantly: Don't give up! :-D

Learning by doing. Extend your horizon.

Buy a book! You can learn everything from the internet, but in my experience it is pretty hard to differ good code writing from some misinterpreted information. I can
The C++ Programming Language: Third Edition by Bjarne Stroustrup with Effective C++ programming: Third Edition by Scott Meyers is what I can recommend for professional c++ programming.

And btw it does not make a difference what age you are!!

Hope that helps. And if you need any further information feel free to contact!
I would seriously not advise that you start off with 3d work. Have you actually programmed with all the stuff you've read about? Used STL stuff at a high level yet? What you deem to be sufficient for your objective in programming will vary... but the more understanding you have, the better, and the less you have, the more confused you will be.
In addition, I'm not sure what language DirectX's API is directed for, but you may want to look for that information.
The C++ Programming Language: Third Edition by Bjarne Stroustrup

This book is extremely high level. Deep understanding of STL workings is necessary. I really wouldn't advise that for anybody without prior reading of other material.
Thx So much for your response. I know what u mean about creating things to face challanges. That's the stuff I did with VB in order to get use to it. At this point, I'm still a bit iffy about Pointers and friendship and the final chapters of C++ tutorial found on this site.

I'll work to get to know those better next. But after that, how did you appoach 3D? I mean I don't really know how to start? Does the books u list cover 3D?

Another thing about buying books is that I'm always scared to spend money on a book that might be too complex for me to comprehend. But I'm assuming that the ones you listed are suitable for the beginner?

I'll look into your books.

Thanks again, for your time and help!
3d libraries are all outside standard C++. You're going to need to investigate those with other books; those are standard. I'd also advise you to start a little smaller. Try something like SDL.
Last edited on
tummychow, that's what I was thinking. So that's why I asked to find out if I was ready. I didn't think I was, so I was trying to find out what I should do next understand the language better.
And Again, I only know the basics. So when I look for books, it's either books for the absolute beginner, teaching variables, such as int, and the hello world thing, or those really complex things that I can't understand yet.

I'm sure there are other semi-beginners, who don't want to keep buying books that talk about "Hello world" but not yet ready for any of the other really highly deep complex books out there.


What should I do to bring my programming ability to the next level?

Thanks so much for your help!
Like you said, you read this tutorial, right? That's core standard C++. There are plenty of books out there on that. This entire website (not the articles subforum) contains an articles section; Grey Wolf has an article on good books to read.
Once you've got that, there's a good book on STL by somebody like Nicolas something. You should probably maintain a solid understanding of the STL interface.
Once you've got that, there are two ways you could go:
1) BOOST! The most amazing C++ extended library. Your uses for it could be none, or thousands, and it's impossible to tell. Boost is considered an excellent library, and lots of its stuff is going into the next standard C++ update (0x). However, that's going to take some time.
2) Jump straight to graphics. This is probably a good idea, if only to get some basic ideas. I was advised to try SDL as an introduction to graphics. You could always try going straight to directx but I can't really say how that would go.
There aren't any good books on boost. It gets updated too fast. But you might find something on a graphics lib if you look around.
Hey, Billins, you answered my question (on this thread: http://cplusplus.com/forum/beginner/21362/), so I'll try to help you with yours. This website would probably be a good place to start: http://www.directxtutorial.com/Tutorial9/tutorials.aspx
I just searched "Direct X 9 tutorials" on google. From what I read on the site, you just need to know C++, and download the Visual C++ 2008 express edition, which can be found here: http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
It's the same thing I'm using right now.

Hoped that helps answer some of your questions. Remember, Googles your best friend. :)
Thanks everyone. I'll try to fully understand the core basics of C++ (including templates and binary trees and function pointers ~ Things I don't get yet) before I tackle, things like STL, GUI, or Win32, and finally directx. That path seems right to u guys.

Kieth, I've got visual C++ express and am starting to learn that now but if u want to just lean C++, Bloodshed Dev C++ is a much better program to use, because of the simplicity I find it's a lot easier to start with.

Anyways, thanks so much for your help everyone. I'll see where my programming takes me!
Topic archived. No new replies allowed.