Archived

This topic is now archived and is closed to further replies.

c++ from pupil to master

This topic is 5127 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello, Can you tell me how many books you read on c++ before the material began to seem redundant and you realized that you had mastered the lanuage''s nuances? I''ve just finnished my second book, "Practical c++", and I think I have the fundamentals down. Nothing was too difficult to comprehend, so far, everything is moving along smoothly. I can program a mean employee payrole console app. I''m wondering...should I look for a "heftier" book on c++, if one exists (open to suggestions)? or should I move on to the OpenGL books I''ve been eagerly awaiting? OR should I spend some time learning different programming designs and models? OR are there many things that I yet don''t know about c++ that I should get aquainted with (whatever they may be)??? S

Share this post


Link to post
Share on other sites
You should do what you are interested in. Eventually you will need more experience in all of it. If what want is to program games, get one of the books that teach opengl while showing some game programming too. But eventually you should get some heavier books for your reference. Some examples... The C++ Language (Stroustrup), Design Patterns( Gamma), The Art of Programming 1-3 (Knuth), Effective C++ (Meyer), Code Complete( McConnel), a good book on the theory of programming languages and the list goes on...

edit:
forgot a parenthesis

[edited by - lucinpub on November 30, 2003 2:35:53 AM]

Share this post


Link to post
Share on other sites
I would pick up some books on different algorithms and data structures. It is important to understand how to create or use different things such as binary searches, sorts, stacks, queues, lists, double lists, priority queues, and trees.

When it comes to C++, I would say that you should make sure you have templates, inheritance, and virtual functions down to a good understanding. You might want to look into different OOP tricks like Singletons. All of this stuff helps out in the long run.

Knowing how to use C++ and OOP well will help out alot when you move on to specific applications of programming. Until then, I would just try to do some basic things in a variety of focuses such as graphics, networking, GUI, and even some database stuff. It might be a waste of time to shoot for anything too big. Just try to create simple things you know you can complete in about a week or two.

Share this post


Link to post
Share on other sites
http://cpptips.hyperformix.com/cpptips.html

I recommend you write a text based game to solidify your OO knowledge. You can expect to sink a year into opengl. By that time you would forget OO if it wasn''t solidified in your mind first. It''s like learning english lang. first then branching into specific topic that has its own vocabulary(used together with english). The game logic and gfx will depend on OO.

It took me about 4 months to understand OO, design patterns + principles + uml. I read number of articles until I developed knowledge boundary around OO topics. I still have to go over some design patterns and I feel that will be an iterative approach specific to the situation. Overall, I think the open/close and abstract interfaces + polymorphism has been two major eye openers along with finite state machines and object encapsulation + coupling. The other one being header file management to reduce compiling times by using forward declarations as much as possible. Vc6 flies thru C files but chokes on C++ ones.

Share this post


Link to post
Share on other sites
I can''t agree with lucinpub enough! After many years of working with computer graphics, I''ve come to realize that you''ll never know everything. It''s all about choosing the things that interest you the most.

-John

Share this post


Link to post
Share on other sites
Personaly, I learned C++ to a satesfactory level, and then went straight on to DirectDraw, and then Direct3d.

It might not have been the best way of learning, but I found that since I was able to find a way of applying any new knowledge I got on the spot, it was much more fun, and thus, I got more from each thing I learned.

Share this post


Link to post
Share on other sites
Read "Effective C++", "More Effective C++", "Modern C++ Design", and all the back issues of DDJ you can get your hands on, to become a better C++ programmer. However, I''m sure you have enough proficiency to get started with OpenGL right now. So it''s really your call.

Share this post


Link to post
Share on other sites
If you really want to learn programming, learn another language. Learning C++'s finer nuances won't help you *that* much, and you're probably ready to write OpenGL right now. But if you're interested in brushing up your programming skills, just start coding something in another language.

The best would be to try some pretty different language, like Scheme or Common Lisp. (Scheme being easier to learn, and cleaner, so I'd recommend it)

[edited by - civguy on December 3, 2003 3:49:25 AM]

Share this post


Link to post
Share on other sites
Been learning c++ for 6 years now and still don''t feel like a master. I got off to a bad start with a book which didn''t really understand object orientation and was C with a bit extra.

C++ Language 3rd edition: Bjarne Stroustrup - horse''s mouth, well written and steady, reliable.
Effective C++ : Scott Meyers - good writer with clear understanding of conceptual problems people may have. Also technically astute and helpful (CD is far cheaper than both books together)
Exceptional C++ : Herb Sutter(both books) - Read his online articles and Guru of The Week stuff extensively
Design Patterns: Eric Gamma et al - just so you know what people are talking about
Refactoring: Martin Fowler - not C++ but helped me enormously with thinking about restructuring and improving design mistakes.
Efective STL: Scott Meyers - know the tools available - in this case the Standard C++ Library

Heftier books just make my hands hurt holding them and are overwhelming. All of the above are of managable size (except perhaps Bjarne''s but that''s okay!

Share this post


Link to post
Share on other sites