Thread: What next?

  1. #1
    Registered User
    Join Date
    Jun 2010
    Posts
    182

    What next?

    According to your experience, after learning the basic of a programming language
    like C, would you go deeper in the direction of the language itself, or
    maybe dive for a while in the API world and try to interact with the OS for the usual
    tasks of input data from keyboard, mouse, files, output data to display, printer, files,
    and so on.

    For my personal feeling, I think it'd better to deal for a while with some WIN API
    and to have some program doing things that I can "see" [like things displayed, or
    files created] instead of trying to deal with more complex algorithms and data structures.

    What would you suggest or warn about?

    Thanks

  2. #2
    Registered User
    Join Date
    Jul 2010
    Posts
    33
    I would advice not going down the Win API road, and that you do spend more time learning about algorithms and data structures, and try and implement them in C.

    I doubt very much if learning to program a windows GUI application in C will be any use to you, besides the fact that it takes a lot of code before you are actually doing something useful, it is also unlikely that C is the language to do it in nowadays. There are much easier options and Microsoft are focussing more on C# and C++ for that kind of stuff now anyway.

    I think it's more important to learn concepts that can be applied to all languages, for example the pseudocode for algorithms, than language specific ways of making the next widget.

    May I ask how long you have been learning C?

  3. #3
    Registered User
    Join Date
    Jun 2010
    Posts
    182
    Quote Originally Posted by CSaw View Post
    I would advice not going down the Win API road, and that you do spend more time learning about algorithms and data structures, and try and implement them in C.

    I doubt very much if learning to program a windows GUI application in C will be any use to you, besides the fact that it takes a lot of code before you are actually doing something useful, it is also unlikely that C is the language to do it in nowadays. There are much easier options and Microsoft are focussing more on C# and C++ for that kind of stuff now anyway.

    I think it's more important to learn concepts that can be applied to all languages, for example the pseudocode for algorithms, than language specific ways of making the next widget.

    May I ask how long you have been learning C?
    Well, interesting point of view, yours, I'll consider it for a while. Thanks.
    Actually I have spent a couple of months part time learning [books reading and
    some coding], not really much. I have some basic knowledge of loops, conditions,
    boolean logic, arrays, strings, pointers, functions, simple data structures, basic I/O
    displaying and files management.

    I'm at the crossroad of trying to dive a little into advanced data structures, file management,
    algorithms and similar things, or just trying to memorize in a better way what I've already
    studied, adding some colors and nice formatted displaying, giving precedence to the OS and
    not to the language.
    I'm not going into GUI really, the idea is to get Just a bit more manageable console.
    As a starting point. And upon that build more complex programs with more advanced
    topics, with the possibility to "see" them in a better way.

    The diversion won't take more than a month [more or less].

  4. #4
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    I completely agree with CSaw in that learning more generic concepts will help you the most. However I'd add a recommendation that you just choose a simple project that interests you, and try and complete that - learning everything you can/need along the way. You'll learn new concepts to solve the problems you encounter, and you'll gain valuable practice. For me, at least, I learn about programming much better by making real things. That way, when I learn a concept, I already know how I can use it, and I understand the thinking behind why that feature became necessary. On top of that, I find the excitement of building something myself helps motivate me to keep learning.

  5. #5
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    The problem with Windows is that it takes less time programming and more time thinking WTH is happening?!? Why doesn't this work?!
    And there's no easy way to find out.
    Windows is an extremely complex beast. If you want to do GUI programming, you should do with some sort of framework that handles these small details for you, so that you can do more actual programming than troubleshooting.
    But this is where you really need to move up in the chain. While C may be sufficient for smaller projects, when it comes to larger projects, it usually becomes much more difficult. Therefore, the best thing would be to choose a high-level language, such as C++, C#, Java, etc.

    Anyway, I echo sean. Find yourself a project--an application to do something, something simple to start with--and start programming it in C or whatever other language you find suitable. If the project is fun, then you'll get the motivation to continue doing it. And you'll learn loads on the way.
    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.

  6. #6
    Registered User
    Join Date
    Jun 2010
    Posts
    182
    Quote Originally Posted by sean View Post
    I completely agree with CSaw in that learning more generic concepts will help you the most. However I'd add a recommendation that you just choose a simple project that interests you, and try and complete that - learning everything you can/need along the way. You'll learn new concepts to solve the problems you encounter, and you'll gain valuable practice. For me, at least, I learn about programming much better by making real things. That way, when I learn a concept, I already know how I can use it, and I understand the thinking behind why that feature became necessary. On top of that, I find the excitement of building something myself helps motivate me to keep learning.
    I appreciate these suggestions
    A simple project is what I'm going to set up. After that I'll now what are the pieces
    of code, functions, API, whatever I need to implement it, learning and enjoying
    the path towards its realization.

    Elysia:
    The problem with Windows is that it takes less time programming and more time thinking WTH is happening?!? Why doesn't this work?!
    And there's no easy way to find out.
    Windows is an extremely complex beast. If you want to do GUI programming, you should do with some sort of framework that handles these small details for you, so that you can do more actual programming than troubleshooting.
    But this is where you really need to move up in the chain. While C may be sufficient for smaller projects, when it comes to larger projects, it usually becomes much more difficult. Therefore, the best thing would be to choose a high-level language, such as C++, C#, Java, etc.
    You are right. I don't think I'm going to do any GUI for the time being, just
    some small API calling to manage the console in a better way would be enough,
    in this way the other steps I'll do in the learning path would find some clean way
    to be displayed. Win Console API aren't that many, I think in a month they can be
    easily managed.

    Thanks both of you for your opinions. They will help me during the long path.

Popular pages Recent additions subscribe to a feed