🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Direction for learning...

Started by
6 comments, last by Noods 22 years, 6 months ago
I have been learning C++ for about a year now, and I am having problems progressing. I have looked through many books/college courses/guides on learning programming, and I have found the curriculum takes you through 3 initial phases. Fundamental C++ Object Oriented C++ DirectX My goal is to learn DirectX, program games, but more importantly be a GOOD programmer. I am confident on my grasp of the C++ fundamentals, but when I look into a DirectX book, I am lost. My research of OOP doesn''t look like it going to fill in the gaps between Fundamental C++ and DirectX. My question is this... After you finish your first book (or 2 or 3 in my case) on Fundamental C++, where do you go from there? Will studying OOP fill in all the gaps? Am I studying in the wrong order? Is my grasp of C++ not up to par? Am I retarded? I have read through every forum I can find, looked through every suggested book I can find, and it feels like I have searched the whole internet for answers. Here is the arsenal I have at my disposal now: First book of C++/Bronson (College course book) How to program C++/Deitel and Deitel 3rd edition Computer game programming with DirectX 8.0/Parberry Sams Teach yourself DirectX 7.0 in 24 hours/Dunlop Tricks of the Windows Game Programming Gurus/Lamothe Here is what I feel I need to know more about, in whatever order: The different platforms (Win32 etc.) Accessing hardware Using the buffer Displaying in different resolutions/color scales(displaying period) The thousands of DirectX variables/functions Making a "Window" and how it works Making SIMPLE graphics and animation Even simple things like making buttons Graphical interfaces, and input/output Assume that I have a good grasp on C++ fundamentals. Where do I go from here? HELP!!!
Advertisement
Hi there, to be a GOOD programmer you need two things... A strong sense of logic and patience. An abundance of the latter will help alot. I tutor a lot of people in programming at college and it seems the ones who do good are the ones who WANT to learn and WANT to be a programmer, not the ones who are learning programming to get a high paying job. You seem like someone who honestly wants to learn. So if you are having trouble, you may need to improve your logical and analytical skills before/while you learn more c++. The best way to do that is to take alot of math courses at a community college or something. Also go to some riddle sites or buy the MENSA book "lateral thinking and logical deduction". Word problems are great logic builders. At some point in every programmers journey there is a CLICK... then every thing seems logical (am i right guys?). For some people it clicks right away, and for others it takes more time, but if you enjoy programming then it will happen. Be persistant, and never give up learning.


- Free Your Mind -
- Free Your Mind -
quote: Original post by brewknowc
At some point in every programmers journey there is a CLICK... then every thing seems logical (am i right guys?). For some people it clicks right away, and for others it takes more time, but if you enjoy programming then it will happen. Be persistant, and never give up learning.


I daresay there are many such clicks in most programmers'' lives. As in, when you get to understand binary, when object oriented programming makes you want to forget everything procedural you''ve ever learned, when you understand how to split up declarations and definitions (okay, maybe not ), and when you understand the architecture of linked lists, and so many more...

Programming is a huge journey that never stops, and game programming is the fastest camel on that journey. Bad analogy.

Later,
zealouselixir.

[twitter]warrenm[/twitter]

Keep in mind, DirectX is COM, not really OOP. A specifically OOP programmer is going to be confused by DX a little at first.


----
Herb M. (mdfmKoRn)
s3202@attbi.com
quote: Original post by mdfmKoRn
Keep in mind, DirectX is COM, not really OOP. A specifically OOP programmer is going to be confused by DX a little at first.

I disagree with that since COM is by no way MS specific.
Using factory classes and COM-like approaches is a very common OOP technique on many platforms.

COM actually is a technique to make things more general and portable. I admit that it *might* be a little confusing first, but keep in mind that with DX8 most of the COM stuff is hidden anyway so you don''t really have to worry about that too much anymore.
"Where to go from here?" That''s a question I''ve often asked myself when starting in programming. Brewknowc is right when he says patience and logical thinking are two key characteristics of a good programmer. I''ve got the logical think down pat, it''s the patience I''m still learning : )

You''re not retarded. Game programming has a whole other aspect to it other than a sound fundamental knowledge of a particular language. The Win32 API took me a while to figure out when I was starting out. Learn Win32 programming on it''s own, kind of like background work. Don''t get discouraged, it''s an unavoidable pain in the ass. You might want to get "Programming Windows, The Definitive Guide to the Win32 API"
by Charles Petzold. It''s a great book for learning the Win32 API.

"Tricks of the Windows Game Programming Gurus" is a good book to get your feet wet in directx programming. But I had a hell of a time working with the MS convention of programming.

Also, learn math and learn lots of it. I didn''t start game programming until I got out of university. I took a number of numerical methods courses, dynamics, statics, robotics, and computer modelling courses. Robotics was amazing in teaching me how 3D math works. This helped me tremendously when I made the leap to game programming.

My suggestion to you is to look at some code and start writing some. Putting a little dot on the screen can be the most satisfying experience you''ll ever have.

Hope I helped.
I think I definatly have the patience, or I would have quit by now. I have the back ground for the logic. I majored in Electronics in high school, and all the concepts of logic between electronics and programming are almost exactly the same. If there is one thing I do have, it is the desire to learn. I find myself sitting at my job every day, pseudo coding in my head for hours, and saying to myself "IF I ONLY HAD THE SYNTAX!!!" So I think what the issue is here is less of the abstract thought processes of programming, and more of learning the executon. In the 24 hours that this has been posted, I have obtained a copy of Hortons Beginning C++. Most of this is a refresher, but I am finding this book is filling in some of the gaps. CLICK! Thanks for all your help, and I have my eyes on this thread if anyone else has any suggestions.

Noods
First, another good book for learning C++ is Thinking in C++ Vol 1&2, by Bruce Eckel. And the best part is that is a completely free download here.
Second, as long as you have a grasp of OOP and C++ fundamentals, DirectX isn''t too bad. You reaaly don''t have to understand COM to understand DirectX. I only have a grasp of what COM is, but I have no trouble with DirectX. Just follow along with the examples in Tricks.....Gurus by LaMothe and you should have no trouble.

quote: Original post by Noods
Here is what I feel I need to know more about, in whatever order:

1 The different platforms (Win32 etc.)
2 Accessing hardware
3 Using the buffer
4 Displaying in different resolutions/color scales(displaying period)
5 The thousands of DirectX variables/functions
6 Making a "Window" and how it works
7 Making SIMPLE graphics and animation
8 Even simple things like making buttons
9 Graphical interfaces, and input/output


As for your list:
1. Don''t try to learn multiple platforms at once. Stick with one until you are compfortable, then you can try learning a different one. You will probably find the transition easier because most of the time it is jsut a matter of semantics.
2. You shouldn''t try to access the hardware directly, that is what DirectX/OpenGL etc... is for.
3. If you mean a display buffer, or back buffer, that is all explained in the Gurus book.
4. Ditto Gurus book.
5. Don''t try to learn it all at once, it is massive. Set your goals to learn one aspect, then you can experiment with that one aspect by playing with setup values, etc...
6. Ditto Gurus book. While he doesn''t go into detail about how the windows work, you don''t really need to know from a strictly game developement point of view. If you still want to learn though, try Teach Yourself Visual C++ by Sams.
7. Ditto Gurus book.
8. In the Sams book, TYVC++, you learn how to make buttons using MFC and doing it all visually. If you want to know how to construct one manually, you will have to find a book about Win32 programming, without MFC.
9. Covered somewhat in the Gurus book.

All in all, with the information covered in Tricks of the Windows Game Programming Gurus, you might want to start there and see what you need after that.


---
Make it work.
Make it right.
Make it fast.
"None of us learn in a vacuum; we all stand on the shoulders of giants such as Wirth and Knuth and thousands of others. Lend your shoulders to building the future!" - Michael Abrash[JavaGaming.org][The Java Tutorial][Slick][LWJGL][LWJGL Tutorials for NeHe][LWJGL Wiki][jMonkey Engine]

This topic is closed to new replies.

Advertisement