473,396 Members | 1,734 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Hitting a wall: What should I learn next?

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
7 1963
sicarie
4,677 Expert Mod 4TB
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
JosAH
11,448 Expert 8TB
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
oler1s
671 Expert 512MB
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
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
oler1s
671 Expert 512MB
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
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
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

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

Similar topics

7
by: python | last post by:
Hello folks, I have been programming with Perl then with Python for about 7 years. But I have heard a lot of praise about PHP but I would like to know what is so nice with PHP and if it is worth...
4
by: Laura | last post by:
Here's the situation: I'm trying to use an update query to copy data from one row to another. Here is the situation: I have 5 companies that are linked to each other. I need to show all 5...
3
by: Todd Nathan | last post by:
Have ported Until 2.5.2 which is a highly portable embedded FORTH-like language system to BeOS. Turned on -Wall cause I'm anal about cleaning up ports if I'm doing them, and have all but ONE...
2
by: Ravi Uday | last post by:
Hi, Here is an explanation of -Wall option that is used with gcc .. -Wall All of the `-W' options combined. These are all the options which pertain to usage that we recommend avoiding...
2
by: 23s | last post by:
My site's login page has a form w/ 2 textboxes and a submit button. If I'm in either of those textboxes (i.e., either one of the textboxes has focus), in any given browser, hitting "enter" on my...
2
by: intrepid_dw | last post by:
Hi, all In debugging a C#-based .NET app that talks to a remote web service, I was observing a particular behavior in which this app would generate what I'd call a "burst" of calls to a web...
3
by: matej | last post by:
I am trying to write new GM script after couple of months of not working with Firefox at all, and I am hitting the wall even with the simplest preliminary steps to it. What I would like to achieve...
3
by: randommale9999 | last post by:
I was wondering how people are able to create ajax applications like star ratings scripts without having bots hit the scripts. I have a star rating script on my site which was getting hit by bots....
2
by: Sunfire | last post by:
I was wondering if there was a way to hit enter to insert blank lines while in the designer? I tried this but all it seems to want to do is insert code that really shouldn't be there. For example,...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.