By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
461,947 Members | 734 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 461,947 IT Pros & Developers. It's quick & easy.

Hitting a wall: What should I learn next?

P: 18
The title sounds pretty vague, but I think it's actually as specific as I can get... I seem to have hit a wall in my learning. I understand all beginner level coding very well. Then, when I delve into sockets, gui's, DirectX, windows.h, etc it is so confusing that I've never made any progress whatsoever. I have a good understanding of logic, pointers (including making linked lists), classes (though my abilities with inheritance and polymorphism are fairly limited to basics), iostream, and other things. So I can do something fun like parse an html file for data I want. However, when I go look at a library for connecting to the web and downloading the file ...well... the syntax doesn't look like anything I'm used to. That's true with every advanced concept from implementing Allegro to SDL to APIs.

Do I probably need to learn something about the Component Object Model?
Or templates? I don't know enough to know what causes my universal stumbling block.

Is there a good book I could buy that starts after the beginner point that a few beginning college classes would teach but is still easy to understand for someone with only my foundations?
Oct 19 '07 #1
Share this Question
Share on Google+
7 Replies

sicarie
Expert Mod 2.5K+
P: 4,677
Have you learned the STL yet? Going through that and knowing not only what is in there, but when to use each will save you a bundle of time when you are able to apply it.

I'd also recommend the tutorials on Cplusplus.com, and though you'll probably be over most of them, there might be one or two in there that are useful.
Oct 19 '07 #2

Expert 10K+
P: 11,448
Maybe Bjarne Stroustrup's (the inventor of C++) canonical book "The C++ Programming
Language" can be a nice challenge? Reading (and understanding) it from cover to
cover makes you quite a proficient C++ programmer.

kind regards,

Jos
Oct 19 '07 #3

Expert 100+
P: 671
Spending more time with C++ and advanced C++ books won't really help at this stage. That's because the problem isn't knowing the basics of C++ anymore. You've just never used it a practical level that real world applications require. Moreover, you are missing a lot of the paradigms and concepts that real world applications use. There's no easy way to jump this wall, and you will have to grind your way initially.

I know precisely what you mean by "the syntax looks completely different". But it's really based on building blocks you've seen before. You need to actively take a step back and see why the code is written the way it is. If you can't figure it out, you can always ask us.

I guess, for the sake of an example, you should post or refer us to code that you consider very unfamiliar. We can show you how that code can be broken down into familiar building blocks.

Do I probably need to learn something about the Component Object Model?
Maybe. DirectX involves COM programming, but only to the extent that you work with DirectX. If you aren't familiar with what COM is (just the superficial level at least), then DirectX will look very confusing initially. The syntax will look bizarre if you don't realize the whole resource management sequence you must go through.
Oct 20 '07 #4

P: 39
Then, when I delve into sockets, gui's, DirectX, windows.h, etc it is so confusing that I've never made any progress whatsoever.
Well, the lazy (and quick... maybe not so lazy as quick) way to do GUI's is in Visual C++ 2005... You can download the express edition from microsoft.com for free, and it does the GUI stuff for you... It's kinda like a WYSIWYG editor, and then you just do the coding to tell the buttons what to do.
Oct 20 '07 #5

Expert 100+
P: 671
The easy way to do Windows GUIs is actually through C#. And as much as you might love C++, Microsoft has chosen .NET to expose their APIs now. If you're serious about learning modern windows programming, then truly consider C#. Well, except for DirectX, which is exposed in both C++ and C#.

Then again, suggesting Visual C++ doesn't really solve the OP's question. His problem is that he can't understand any real world code. When you jump from beginner textbook level to real world apps, the syntax will look very, very different. And that's what is troubling the OP.
Oct 20 '07 #6

P: 39
yeah... I can understand that... I am still in the begginer level textbooks...
I just thought I would suggest VC++ because it is really easy... Even I was able to make some programs with GUI's...
Oct 21 '07 #7

P: 90
If you already know C++, "what is next" depends on the depth of knowledge you want to go into. I can think in two paths:

Path number one. If you want to become more familiar with Microsoft code, you may follow the next learning path (with some book recomendations):
-Win32
Programming Windows - Charles Petzold 5th ed 1998
-OLE
MicroSoft - Inside OLE 2nd Edition, Kraig Brockschmidt
-COM , ATL, and COM+
COM+ Programming: A Practical Guide Using Visual C++ and ATL,Pradeep Tapadiya ,Publisher: Prentice Hall
Microsoft Press - Inside ATL, George Shepherd, Brad King
-DCOM
-.NET
- Windows Workflow Fundation and other new stuff.

The advantages of this path: you will get the whole picture of what Microsoft has been doing in the last 17 years.
The disadvantages: You will need a lot of time, at least one year to get into current technology. If you are in collegue it is an excelent time to follow this path. By the way, if you want to have some laughs, you can try learning MFC, it will help you know how not to create C++ libraries (Programming Windows With Mfc - 2Nd Edition, Prosise)

Path number two. If you are in a rush, just go into .NET and that's it.

The advantage: You get into current stuff asap.
The disadvantage: Most of .NET is just an evolution (and in some cases just a wrap) of Win32, ISAPI, OLE, COM, DCOM and COM+ stuff, .NET books usually take for granted you already know lots of the legacy technology and wont go into details on the .NET improvements.

I guess it all depends on you.
Oct 21 '07 #8

Post your reply

Sign in to post your reply or Sign up for a free account.