I am intrigued by those who learn C++ or Java before C. I'm not saying that you can't do this, but C++ & Java are really extensions of C.
The C language contains all the "basic stuff" - I found it easier to learn this first.
C++ has exactly the same stuff as C, but has several extra concepts that are quite involved.
Java code is almost exactly the same as C++. The Java program will run on all kinds of machines.
C++ has classes, inheritance, operator & function overloading, templates, exception handling etc.
So, with C++ you need to think about the design of your classes:
- what classes are you going to have
- how are they related? Do a class structure diagram showing the inheritance
- what information/variables are going to be in each class
- what constructors is each class going to have?
- what functions is each class going to have? will they be overloaded?
- what operators class going to have? will they be overloaded?
Remember there will be classes to store you data structures and more classes for each dialog box.
These are just some of the extra concepts involved in C++, and to really get the hang of all this probably takes
just as long as learning all of C !!
Mind you the learning never stops.
It is possible to write C++ code that looks like a C program, but it has function overloading and other bits & pieces but 1 class or no classes. I am asserting that one is not really C++ programming until you have multiple classes with inheritance.
If you are new to programming and want to learn all this at once - then best of luck. This is the
"Learn to walk before you run" concept.
Now that I've bullied you into learning C first - I strongly recommend "C Programming" by Kernigan & Ritchie. It starts with "Hello World" & takes you through 1 step at a time. If you do the exercises @ the end of each chapter, it will prove most valuble experience.
When doing your programming, I recommend using an IDE (Integrated Devolpment Environment) like Kdevelop which comes standard with KDE. It's also a good idea to use the command line or emacs for your simple programs - so that you learn about details of compiling and linking.
There you have it - learn C first, then C++, then Java will be easy !!