How to make something useful in C++?

Feb 8, 2009 at 5:56am
OK, well I have been reading up on tutorials about C++ and have taken a college class on C++ programming (community college). I have read through everything in the tutorial on this site also. I understand just about everything in it.

My problem is, I learned all this complicated stuff, but I have no idea how to make something truly useful. Like, I can use cin and cout to make some basic calculations on things and output and read in from files. I can make classes. That's all great, but how do I use these tools to actually make something? I don't know, it's weird. I have a good understanding of most of the basic to advanced topics of C++, but even if I had a simple idea for a program, I wouldn't even know where to start. What do I do now? What should I learn? What should I try to make?

Any suggestions would be great. Thanks.
Last edited on Feb 8, 2009 at 5:58am
Feb 8, 2009 at 6:33am
Well, it gets harder once you get to this point...you need to have a goal (as you know). Is there anything you are learning C++ to do? i.e. make a game, etc? If you are making a game, you can do something like a simple text game.
Feb 8, 2009 at 6:40am
What if I wanted to make something like an "auto" for an online (text based) game. I would design a program to send different commands to the server to do different things. Or I could make something simpler like a paint program like microsoft's basic one. Or I could make my own text editor to edit and save files like notepad/word pad.

Idk, I really don't care too much what I do, but the things I listed I would have absolutely no idea on how to get even the slightest bit started.

Thanks for the help.
Feb 8, 2009 at 7:29am
Here's an idea:
1. Download an open source project from your web site of choice (e.g. SourceForge). Preferably a small project, but it's better if it uses some GUI library. The visual feedback is important at first. It lets you know you're actually making progress.
2. Compile it.
3. Think up something you would like to change about it.
4. Read and understand the code until you know what part you would need to modify in order to make that change.
5. Write the modifications.

This process teaches you a few important skill of software development: how to build extraneous code, how to use libraries, and how to read and modify other people's code.

Another thing you can do is write something you actually need. Last year I had the same problem you're having. I was also frustrated that the free automatic wallpaper switchers I found didn't behave just like I wanted them to, so I wrote my own. 350 LOC (not counting libraries) and I still use it today.
Feb 10, 2009 at 1:23pm
closed account (z05DSL3A)
... That's all great, but how do I use these tools to actually make something? I don't know, it's weird. I have a good understanding of most of the basic to advanced topics of C++, but even if I had a simple idea for a program, I wouldn't even know where to start. What do I do now? What should I learn? What should I try to make?


It sounds like you are missing a Software development process[1]. Looking into Object-oriented analysis and design(OOAD)[2] may be a good next step.

As to what you should try to make; It doesn't matter too much, as long as you have an enthusiasm for it . Set your sights high and use this larger project to define smaller test projects to learn specific subjects. This will also help you run through the analysis, design, implementation and testing phases more often so you get used to doing them.




[1] http://en.wikipedia.org/wiki/Software_Process
[2] http://en.wikipedia.org/wiki/Object_Oriented_Analysis
Feb 10, 2009 at 3:37pm
Develop a simple game. Take something like Connect Four. Start by just providing a Window where two players can drop tokens and clear the screen. After that try to implement further features. Here are my suggestions (topics covered in parenthesis):

- Basic game (GUI, threading, Data structures, Design)
Use a toolkit like Gtk, Wx to build a simple windows. Design a class hierarchy to use.

- Highscore (Database, file access)
Store game results, playtime etc.

- Networking (TCP/IP, Sockets)
It's always fun to develop networking applications.

- AI (Algorithm)
What could be more fun than beating the machine?



Feb 10, 2009 at 4:09pm

1. Download an open source project from your web site of choice (e.g. SourceForge). Preferably a small project, but it's better if it uses some GUI library. The visual feedback is important at first. It lets you know you're actually making progress.
2. Compile it.
3. Think up something you would like to change about it.
4. Read and understand the code until you know what part you would need to modify in order to make that change.
5. Write the modifications.

This process teaches you a few important skill of software development: how to build extraneous code, how to use libraries, and how to read and modify other people's code.


Great advice man. I am going to follow this too.

Thanks
Topic archived. No new replies allowed.