Hi, I just signed up for an account here, so hello to everyone!
The reason I'm posting this, I have been reading through the C++ tutorials and learning for the first time how to program. Formerly I've done HTML/JavaScript/CSS and I've tried Java programming before but didn't stick to it and forgot most of what I learned(wasn't much to begin with).
What I know so far is data types, variables, control structures, loops, classes/objects, arrays, and functions.
For now, the only programs I have made are in a windows/ubuntu cmd/terminal. My goal is to develop applications that have GUI(like a calculator with buttons), and maybe one day video game programming(not right now though, way out of my league).
What would be some good Google search phrases/keywords I could use to find how to program GUI more specifically for Ubuntu because I'm leaning towards Ubuntu more of late, but also for Windows as well just be sure to specify what OS. I just want some good reading material, I'm not asking to be spoon fed at all.
Also any advice from experienced programmers who remember what it is like starting out is always great, I mostly just want to know what else I need to learn before going into GUI. I haven't learned how to write to text files or read from them yet, and there is a lot I don't know about input/output with strings. Everything after Pointers in the C++ tutorial, I haven't gotten into yet except classes. Pointers are still something I'm working on learning better also, the concept I understand but the syntax and how to use them sometimes confuses me.
I'm only a little farther ahead than you in programming (I took two semesters in college) but my advice to you is practice practice practice. You learn by doing. Pick a problem you want to solve using computer programming then solve it. Start simple. One of the first things I did was design a program that could play RACKO ( http://en.wikipedia.org/wiki/Racko ), then write a couple algorithms that could play it, run it a few hundred times, then see which algorithm (or playing style) was the strongest.
A project gives you something to focus on. Right now, you probably need to get better at mastering the basics of C++ before you go ahead and write a GUI. Try writing a command prompt calculator (enter two numbers, read them in using std::cin , enter an operator, do the calculation, etc) or analyze the statistics of golf or something. Anything! Just make sure your problem is interesting enough to keep you coming back.
What I know so far is data types, variables, control structures, loops, classes/objects, arrays, and functions.
Well, that doesn't sound too bad ;)
Linux's two main GUI toolkits, as you're probably aware, are GTK and QT. They're both cross-platform so work equally well on MS Windows. Why not pop along to the gtkmm tutorial pages (http://developer.gnome.org/gtkmm-tutorial/3.0/) and see how you find them? It starts off quite gently and makes a good introduction to working with third-party libraries.
Also I wouldn't worry too much about the pointers thing - that's a hangover from C that you can (and should) largely dispose of for C++. Worth learning so you can understand lower-level and legacy code, but something to be avoided in your own projects wherever possible.
Regards, keineahnung
Ah, glad you like it :)
Actually there's one main problem with that tutorial: it starts off with you writing GUI's by hand, but no-one with any experience does it that way - they all use Glade (the drag 'n' drop GUI designer - http://developer.gnome.org/gtkmm-tutorial/3.0/chapter-builder.html.en). It's easier, faster and gives better results.
So don't get too disheartened when you see stuff like:
Once you're ready to write proper applications you'll never use all that rubbish - you'll just create a GUI in glade and then write a couple of lines of code to load it in. Simples ;)
If you are a beginner , FYI , Learning Java is easier than C++ . Also Java has package Swing by which you can write cool GUI .
I disagree.
My personal dislike for Java aside, it is no more or less difficult to learn Java than it is to learn C++.
Java has a large central library that comes with it, whereas you need to go and find (and install) libraries for use with C++, which is, admittedly somewhat grevious if you are unfamiliar with the procedure on your chosen platform -- with is different from Java as it is its own platform, you see. A lot of people find the central library base for Java to be convenient, especially beginners.