Thread: Is this a good choice?

  1. #1
    Registered User
    Join Date
    Dec 2007
    Posts
    2

    Is this a good choice?

    Hello,

    This is my first post and I'm newbie, so please be gentle.
    I want to learn to program, is it a good choice to begin with C++?
    Yeah, I know you say it's not, because it's very difficult.
    But I don't care if it's difficult or what, I just want to know C++ is now used in many programs/games?

    And what is better? C# or C++, those 2 are both Object-Oriented if I was right.
    And C isn't.
    If this is not correct please say so.

    So which of the 3 I could best choose.
    My choice is C++ because it's the newest, extended and most advanced.

    Sorry for my bad English, I'm Dutch.

    Yours sincerely,

    EvilDeeds

  2. #2
    Hurry Slowly vart's Avatar
    Join Date
    Oct 2006
    Location
    Rishon LeZion, Israel
    Posts
    6,788
    Quote Originally Posted by EvilDeeds View Post
    I want to learn to program, is it a good choice to begin with C++?
    Yeah, I know you say it's not, because it's very difficult.
    If you know the answer, why to ask the question?

    Quote Originally Posted by EvilDeeds View Post
    But I don't care if it's difficult or what,
    If you do not care about our opinion, why to ask?

    Quote Originally Posted by EvilDeeds View Post
    I just want to know C++ is now used in many programs/games?
    Yes

    Quote Originally Posted by EvilDeeds View Post
    And what is better? C# or C++, those 2 are both Object-Oriented if I was right.
    It depends. It depends on the task you want to solve.

    Quote Originally Posted by EvilDeeds View Post
    And C isn't.
    If this is not correct please say so.
    Yes, you have to work more hard to create OO code in C


    Quote Originally Posted by EvilDeeds View Post
    My choice is C++ because it's the newest, extended and most advanced.
    C# is newer.
    And I read something about F#... Newest does not means "best for the job"

    extended? about what?

    most advanced - use Assembler to be advanced...

    If you have made your choice, why to ask other people opinion? Isn't it just too late?
    All problems in computer science can be solved by another level of indirection,
    except for the problem of too many layers of indirection.
    – David J. Wheeler

  3. #3
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Right, this question comes up quite frequently, and it's not entirely easy to answer.

    You must first realize a few things:
    Programming [regardless of language] is like learning to drive a car.
    Learning C is like learning to drive a car of a certain type.
    Learning C++ is like learning to drive a distinctly different type of car [1].
    Learning C# is like learning to drive yet another type of car.

    Once you understand a few different programming languages, it becomes quite easy to learn another one.

    C++ and C# are to a great extent based on the C language, but both C++ and C# have object oriented extensions. Much of current development is done in C++, some use C# or Java.

    The right language for one project is not necessarily the right language for another project.

    I'm more and more of the opinion that C, C++ or C# are not suitable beginner languages. Python and Java are good beginner languages. In some ways, assembler is actually a better learning language than C - although you need to have "the right type of brain" to appreciate assembler programming.

    Python is a REALLY good starting point for another reason: The language itself relies on the layout of your code to determine what goes together, so you AUTOMATICALLY learn to properly indent your code, that is produce a layout graphically so that it's easy to read and blocks that belong together are equally "pushed to the right".


    [1] It's very difficult to make this comparison work really well, because most cars of similar age are not terribly different. The indicator stalk may be in a different place, reverse gear is perhaps beside 1st in one car, and next to 5th in another car, but it's not so different at all. But of course, if you go from a 1960's Ford to a modern BMW M5, there is quite a few things that are different.

    --
    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.

  4. #4
    Registered User
    Join Date
    Dec 2007
    Posts
    2
    Quote Originally Posted by matsp View Post
    C++ and C# are to a great extent based on the C language, but both C++ and C# have object oriented extensions. Much of current development is done in C++, some use C# or Java.
    Ok, so the most used language is C++?

    Quote Originally Posted by matsp View Post
    The right language for one project is not necessarily the right language for another project.
    But you can choose C++ and C# for any project, but sometimes it's easier with another language?

    Quote Originally Posted by matsp View Post
    I'm more and more of the opinion that C, C++ or C# are not suitable beginner languages. Python and Java are good beginner languages. In some ways, assembler is actually a better learning language than C - although you need to have "the right type of brain" to appreciate assembler programming.

    Python is a REALLY good starting point for another reason: The language itself relies on the layout of your code to determine what goes together, so you AUTOMATICALLY learn to properly indent your code, that is produce a layout graphically so that it's easy to read and blocks that belong together are equally "pushed to the right".
    I already heared it's not a good starting point, but I don't care how difficult it is to start with.
    I just want to learn it and this way it's also quite a challange?

  5. #5
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Quote Originally Posted by EvilDeeds View Post
    Ok, so the most used language is C++?



    But you can choose C++ and C# for any project, but sometimes it's easier with another language?



    I already heared it's not a good starting point, but I don't care how difficult it is to start with.
    I just want to learn it and this way it's also quite a challange?
    Yes, but if you want to learn to drive a racing car, and you GOAL is to drive a Formula 1 car, would you recommend that they START with a F1 car?

    The skill of "programming" (or software engineering) is many things, some of which are easier to learn in a "more userfriendly" environment, e.g. it's much easier to learn how to driva a gocart with no gears, only two pedals and a steering wheel, totaling 10 bhp (top speed 50 km/h), compared to a full-fledged F1 with 1000 bhp, a dozen buttons and gear paddles on the steering wheel, and three pedals (top speed 300+ km/h).

    Just because you START your learning on a "easier to use" language, doesn't mean that you won't be able to learn how to use the more powerful language later on.

    But if you start with C++, the chances are that you will struggle with BOTH the learning of how to write programs [how to split a problem into pieces for example], and with the language itself [such as the fact that C++ allows you to do things in a great number of ways, with almost identical effect], never mind that C++ is pretty poor at detecting stupidness from the programmer, and allows you to do all sorts of things that are "wrong" without telling you until the whole application crashes [and at this point, you probably don't get a particularly useful message, e.g. just "the application attempted an illegal operation"].

    --
    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.

  6. #6
    The larch
    Join Date
    May 2006
    Posts
    3,573
    What's stopping you from going through some beginners tutorials and seeing how well you are doing?

    The hard part of programming is that you have to express your ideas very clearly in a very strict language, something that people seldom do in real life, and not so much the syntax of this language which is rather small anyway. C++ makes things harder because you will not always get obvious feed-back if you do something wrong: code may appear to work, being terribly broken nevertheless.

    Also, learning a programming language doesn't mean you'll be stuck with it for lifetime. Learning another language becomes a lot easier, instead.
    I might be wrong.

    Thank you, anon. You sure know how to recognize different types of trees from quite a long way away.
    Quoted more than 1000 times (I hope).

  7. #7
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by EvilDeeds View Post
    Ok, so the most used language is C++?
    Yup, pretty much.

    Quote Originally Posted by EvilDeeds View Post
    But you can choose C++ and C# for any project, but sometimes it's easier with another language?
    It's easier to do GUI in C#, and it has a huge framework with functionality, but C++ is faster and more efficient, but harder to develop with.
    Some people recommend you learn more than one language and use the right tool for the job, but of course, that's up to you. I'm one of these one-tool-for-all-jobs kind of someone so I just stick to C++, as every mentions, it's up to you.
    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.

  8. #8
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    Quote Originally Posted by EvilDeeds View Post
    But you can choose C++ and C# for any project, but sometimes it's easier with another language?
    You can use C++ for almost any project (some small devices might only have a C & Assembly compiler), but for the mainstream OS's like Windows, UNIX, Mac... They should all have C++ compilers.
    As far as I know, C# is currently limited to Windows only.

    Java is almost identical to C++ (just like C#), and it has a MUCH larger and easier to use library of classes. Java is also catching up or even surpassing C++ in the number of jobs - just look at some job sites and you'll see how many want Java developers and how many want C++.
    So if you start with Java, it should make things a little easier for you, plus if you decide to learn C++ later, you already know most of the syntax rules, you just need to learn the different functions & classes.

  9. #9
    Registered User
    Join Date
    May 2003
    Posts
    1,619
    Quote Originally Posted by cpjust View Post
    As far as I know, C# is currently limited to Windows only.
    Untrue, there are several open-source C# compilers. Mono, for example, supports Windows, MacOSX, Linux, Solaris, BSD, and others.

    On the original post, I'd recommend beginning with either Java or C# and working up to C++. There are two very different learning curves ahead of you -- learning a programming language and learning to program. What I mean by this is that often, writing the code is the easiest part of any project, and the hardest part is designing it.

    To continue the car analogy, learning a programming language is like learning how to operate a car, and learning programming is like learning how to plan your route from point A to point B. The second task is really the hard part.

    C# and Java are pretty simple programming languages, so you spend less time learning how to work the car and can jump faster into learning how to plan your trip. And for the most part* once you learn how to plan your trip, it's the same route regardless of the language you choose to drive there with.

    Oh, and I am not a one-language kind of guy. In my life I've used over a dozen different programming languages (if you count all the varieties of assembly language I've used). Some tools work better or worse for different jobs, and some tools simply aren't appropriate for certain jobs. For example, you can't write device drivers in C# or Java, and really of any language C is the best for those. On the other hand, GUI work in C is very complex, where in C# it's trivially easy.

    * As long as the language uses a similar style of programming, for example, Java and C# are strictly object-oriented, C++ can be used object-oriented or procedural, etc.
    You ever try a pink golf ball, Wally? Why, the wind shear on a pink ball alone can take the head clean off a 90 pound midget at 300 yards.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Good resources for maths and electronics
    By nickname_changed in forum A Brief History of Cprogramming.com
    Replies: 8
    Last Post: 12-22-2004, 04:23 PM
  2. Good C++ books for a begginer
    By Rare177 in forum C++ Programming
    Replies: 13
    Last Post: 06-22-2004, 04:30 PM
  3. Language of choice after C++
    By gandalf_bar in forum A Brief History of Cprogramming.com
    Replies: 47
    Last Post: 06-15-2004, 01:20 AM
  4. Contest Results - May 27, 2002
    By ygfperson in forum A Brief History of Cprogramming.com
    Replies: 18
    Last Post: 06-18-2002, 01:27 PM
  5. i need links to good windows tuts...
    By Jackmar in forum Windows Programming
    Replies: 3
    Last Post: 05-18-2002, 11:16 PM