What should be my next step?

This is a discussion on What should be my next step? within the C++ Programming forums, part of the General Programming Boards category; (I hope this is the right board for this type of question btw) Here's my story so far... introduced to ...

  1. #1
    Registered User
    Join Date
    Nov 2007
    Posts
    11

    Question What should be my next step?

    (I hope this is the right board for this type of question btw)
    Here's my story so far...

    introduced to programming by a friend in 8th grade who taught me a fair amount of TrueBasic. messed around with that for a year or two, didn't get into it too seriously.

    in 12th grade, i took a half-year long class in the basics of C++ that my high school offered. realized i'd like to pursue this.

    that class got me started with C++ console programming, which i've been doing ever since. every now and then i would learn something new on my own, and now i feel i have a good grasp on the basic fundamentals of C++ (loops, arrays, functions, classes, all that stuff).

    i'm now at the end of my second year of college, which has essentially taught me nothing new in programming. after getting a bunch of gen-eds out of the way, i was finally able to take my first programming class, in which we were taught javascript. the principles were the same as what i already knew and i picked that up quickly and easily. the second programming class, which i'm curently in, is teaching java, using Netbeans. again, i'm being taught all the same programming principles, just in a different language.

    so i'm not really learning anything new, and i checked over the syllabus and and won't be this semester at all. but i want to be learning and practicing new things.

    so my question is, what is my next logical step in advancing my programming knowledge (considering i want to stick with C++)? my teacher really didn't help when i asked him. i use Borland C++ Builder 5 to practice C++ on my own time. i've only ever done console programming up until a few days ago when i started trying to teach myself how to use Borland's built-in components (like buttons, lists, boxes, panels, etc). is this a good idea?

  2. #2
    C++まいる!Cをこわせ! Elysia's Avatar
    Join Date
    Oct 2007
    Posts
    22,437
    Next step, perhaps, is to set out in to the big, wide world. GUI, multi-thread programming, etc.
    Considering GUI, you might want to take a pick at some Framework provider such as MFC, GTK, Gnome, etc, and start learning this to make your user interface. This is not an easy thing.
    You might not want to mess with threads right away, though, so maybe GUI programming can come first. Good luck. This isn't easy.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  3. #3
    Dr Dipshi++ mike_g's Avatar
    Join Date
    Oct 2006
    Location
    On me hyperplane
    Posts
    1,218
    Is GUI programming in C++ really that hard?

    I don't know; I have never tried it, but I found using java w/ swing very easy once you get the hang of the basics.

  4. #4
    C++まいる!Cをこわせ! Elysia's Avatar
    Join Date
    Oct 2007
    Posts
    22,437
    Yes, it is. It is mostly because Windows programming, for example, is built around the Windows API which is to say a very poor API. It's purely C, making it mocking, difficult and tiresome to work with.
    Add to that that there may be a ton of messages you must handle and handle right or get ill effects that you have no idea to solve, it only makes the situation worse.
    Many frameworks (such as VB) handle all this for you, but C++ doesn't. That is why a good GUI Framework is necessary for doing GUI programming in C++.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  5. #5
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    21,431
    Is GUI programming in C++ really that hard?
    I do not think so, but what little GUI programming I tried in C++ I found tedious. Actually, I found it tedious/boring elsewhere too, even when it comes to creating forms in HTML. The difficult part is probably the design rather than the programming. Threads, on the other hand, are difficult to me, but perhaps I simply have not taken the time to dig in deep into the topic yet.
    C + C++ Compiler: MinGW port of GCC
    Version Control System: Bazaar

    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  6. #6
    C++まいる!Cをこわせ! Elysia's Avatar
    Join Date
    Oct 2007
    Posts
    22,437
    I haven't done GUI programming for anything other than Windows, though, so I can't speak for other systems.
    As for threads, they can be easy, they can be hard. If you spawn a thread to do some work, sure, it's easy. But when you need to start coordinating and synchronizing and updating the GUI at the same time, now it becomes difficult.
    Especially since GUI does not like to be updated from multiple threads and that message loops can only be run on the thread that created the window and some API sneer at multiple threads, only favoring the one thread that initialized something, and so on.
    It's a difficult world.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  7. #7
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    The Windows API is not noticeably worse than many other Windowing API's. There are some that are a little bit better than others, but in general, dealing with menus, windows, dialog boxes and such is complex. It makes for a lot of code however you go about doing it. You can HIDE some of that from the programmer (as VB does), and Frameworks will also help dealing with some of the complexity. But as long as the base-API is fairly generic and flexible, then the programming of it will involve a fair bit of code to manage that flexibility.

    [I work with embedded graphics system, and it's not majorly different from the Windows API, but it is written in C++ - but it's still a whole heap of code to get a simple window with a few menu-items to show up].

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  8. #8
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    21,431
    But as long as the base-API is fairly generic and flexible, then the programming of it will involve a fair bit of code to manage that flexibility.
    That's true, and I suppose that Joel Spolsky's "law of leaky abstractions" applies to GUI frameworks, so someone serious about GUI programming might have to learn the underlying API anyway.
    C + C++ Compiler: MinGW port of GCC
    Version Control System: Bazaar

    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  9. #9
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Quote Originally Posted by laserlight View Post
    That's true, and I suppose that Joel Spolsky's "law of leaky abstractions" applies to GUI frameworks, so someone serious about GUI programming might have to learn the underlying API anyway.
    Obviously, you can HIDE a lot of the flexibility to make a simple-to-use framework - and if you use C++, you can perhaps also make intermediate and advanced forms of the classes that are more flexible [and thus require a bit more effort].

    Making a class that produces a text-based window that has the following structure would make widnows real easy to use:
    Code:
    class TextWindow: public WindowBase
    {
        public:
           virtual void Open(string windowTitle);
           virtual void Close();
           virtual void AddText(int x, int y, string text); 
           virtual string GetText(int x, int y, string text, int len);
           ...     
    }
    But you'd struggle if you also want to have add graphical elements to that basic class, or use different close/minimize/maximize buttons or some such.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. debugging - step into issue
    By barneygumble742 in forum C++ Programming
    Replies: 7
    Last Post: 03-15-2009, 12:30 PM
  2. recursion
    By paulmedic555 in forum C Programming
    Replies: 26
    Last Post: 01-27-2005, 11:43 PM
  3. robot step sizes
    By n00by in forum C Programming
    Replies: 2
    Last Post: 04-29-2004, 03:29 PM
  4. step by step debug != run debug
    By bonkey in forum Windows Programming
    Replies: 8
    Last Post: 09-09-2002, 12:55 PM
  5. this sites Compiler Resources Specs.
    By Powerfull Army in forum C++ Programming
    Replies: 9
    Last Post: 07-08-2002, 06:12 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21