Programming Beginner

Discussion in 'C++' started by Joshua Rulz, Nov 22, 2005.

  1. Joshua Rulz

    Joshua Rulz Guest

    Hi, i want to learn to program im quite skilled with computers and want
    to learn c++. is there anyone who can teach me or tell me a good
    website to learn it?

    all replies will be appreciated.
     
    Joshua Rulz, Nov 22, 2005
    #1
    1. Advertisements

  2. Joshua Rulz

    \/Gogineni\/ Guest

    \/Gogineni\/, Nov 22, 2005
    #2
    1. Advertisements

  3. Gogineni mentioned what seems to be a good site, but:

    1) be prepared for a long, long (and steep) learning
    curve.
    2) being skilled with computers does not mean being
    able to learn programming fast. I'm also quite
    skilled in driving, but that does not mean I can
    build good cars :)

    This does not mean you should not try it!

    Markus
     
    Markus Becker, Nov 22, 2005
    #3
  4. * Joshua Rulz:
    Your best bet is a book such as "You can do it!" or (if you're not a
    complete beginner) "Accelerated C++".

    Failing that, or as additional material, the only known nearly correct
    C++ tutorial on the web is

    <url: http://home.no.net/dubjai/win32cpptut/html/>.
     
    Alf P. Steinbach, Nov 22, 2005
    #4
  5. Joshua Rulz

    Divick Guest

    If you are familiar with C then the definitive guide would be Thinking
    in C++ by Bruce Eckel.

    If you have NEVER programmed before with any other object language and
    you want to learn object oriented programming then first learn Java
    which is easier to learn than C++ and later you can learn C++.

    If you HAVE programmed in any other object oriented language and you
    have not programmed in C then first learn C and then pointer
    fundamentals which are almost common in both C and C++ and then move on
    to learn the advanced concepts of C++.

    Divick
     
    Divick, Nov 22, 2005
    #5
  6. Joshua Rulz

    Ben Pope Guest

    Why learn Java first?
    Why learn C first?

    C++ is a different beast to both Java and C, there is no point in
    learning either of those two languages first.

    Ben Pope
     
    Ben Pope, Nov 22, 2005
    #6
  7. Joshua Rulz

    Marcus Kwok Guest

    Marcus Kwok, Nov 22, 2005
    #7
  8. Joshua Rulz

    Divick Guest

    Cool down man cool. There is no need to start holy war over this. It is
    a very subjective issue. Why to program in Java or C is based on my
    personal experience, which would definitely differ from person to
    person. I can definitely give you 100 reasons / logic to do so but what
    matters in the end is to get job done.

    One such reason is that you get to know the beauty of certain thing
    only when you know what is worse or better than it. If you have not
    programmed in other languages, then you don't really have that
    experience which can differentiate between good and bad.

    Well I don't want to delve in the philosophy of language design but I
    think there are definitely certain things that are better done in some
    language than other.

    I would also answer you questions:
    Because it is easier to learn than C++. There are no pointers and hence
    you tend to grasp the object oriented fundamentals more easily than if
    you program in C++. If you don't care about Object oriented
    fundamentals and you want to program in C++ then I would say you don't
    really need C++ and hence C would suffice. This also answers your next
    question.

    Above all debugging Java is very very easy. You don't need memory
    debugging tools. You don't need to care too much about memory
    management. Definitely it has again its pros and cons but for a
    beginner in programming it serves the purpose.

    And as far as FAQ's go, I don't think they are the words of THE GOD and
    hence there are certain things in FAQ at parashift to which someone may
    or may not agree.

    And if still you are not happy then sorry I am not a conformist and
    even I don't expect someone else to confirm to my ideas.

    Cheers,
    Divick
     
    Divick, Nov 23, 2005
    #8
  9. Joshua Rulz

    red floyd Guest

    The problem with learning Java first is that you then have to un-learn
    it. If you follow this group, you would note that many
    questions/issues/problems are "I'm trying to do this the Java way and it
    won't work. Why?"
     
    red floyd, Nov 23, 2005
    #9
  10. Joshua Rulz

    Mike Wahler Guest

    This paragraph imo reveals a deep misunderstanding of what
    C++ really is and what it can be used for.

    -Mike
     
    Mike Wahler, Nov 23, 2005
    #10
  11. Joshua Rulz

    Ben Pope Guest

    I believe you are referring to me, you left off the attribution. I'm cool!
    I intended no such thing, I was just short with my answers.
    I learnt Java first, and then C, and then C++. I think I was lead
    astray in both situations.

    Regarding C, there are more elegant ways of solving problems as simple
    as the classic "Hello World" in C++, than in C, so if you start with C,
    you're already on the wrong foot. Then we move onto arrays vs.
    std::vector, and char* (char[]) vs. std::string. From the moment you
    start learning C, you must unlearn many aspects and re-learn them in
    C++, because the C++ way is neater and safer.

    With Java, it's simplicity is great, but when you come to learn C++, you
    realise that there are many paradigms in Java that have neater
    equivalents in C++. Take for example exceptions and "finally", ok, it
    solves some problems, but not all - RAII is SO much neater. Because
    Java is less expressive than C++, it can be seen as simpler. The
    problem comes when means you forget to do things in C++ when you start
    writing code, like managing memory properly.
    Yeah, but there is only "One true way" :p.

    Seriously though, it's a waste of time, if you want to learn C++, learn
    C++. It's easier than learning some concepts from a bunch of languages,
    and then un-learning them to do C++.
    Of course. C++ is not a universal hammer. C is good for some things -
    usually in preference to C++ only when you don't have a C++ compiler for
    your platform, IMO, but thats me.

    Java is equally good for LOTs of things. I'm using it for some
    web-application stuff I'm doing, and I prefer it to C++ in that case,
    because there is an existing framework that already does 90% of what I
    need. It's also fast enough, but it's not going to cut it doing
    embedded network stacks, which is what I've been using C to do.
    Equally there are better languages than Java for learning "pure" OO.
    They're not as readily available though, I'll admit.
    Debugging C can be tricky on an embedded platform, especially as the
    probe effect tends to be much more prevalent, and the task is often
    inherently real-time. Debugging C++ in MSVC is at least as easy as Java
    in eclipse / netbeans. If you learn RAII soon, and use auto_ptr, or
    some other, possibly more suitable, smart pointer, then C++ is almost as
    easy as Java in terms of resource management.
    In fact, I would like to go one step further and say that learning C, or
    at least having knowledge of C, possibly introduces some peoples need to
    use pointers everywhere. If you told everybody that a pointer should
    not be used, and instead to wrap it in a boost::shared_ptr memory
    management would be as easy as Java. Like I said, learning RAII from
    early on is very beneficial.
    Of course.
    Of course. I didn't mention the FAQ, though.
    Don't be too concerned about my happiness, and certainly not to
    apologise for your opinion! It's as valid as anybody else's, even if
    it's wrong (joke!) :p

    I'm happy to agree to disagree on this issue, of course... I just feel
    it necessary to present both sides of the coin.

    I think that there are LOTS of things in both C and Java which can be
    misleading and/or dangerous (in terms of defined behaviour) when applied
    to C++. Learn C++ the C++ way first, and then by all means see what
    else is out there when the need arises. This is also more pragmatic as
    you can get started with your C++ coding today, rather than in a years
    time when you've half-heartedly learnt C and Java.

    Ben Pope
     
    Ben Pope, Nov 23, 2005
    #11
  12. Joshua Rulz

    Ben Pope Guest

    Divick wrote
    I believe you are referring to me, you left off the attribution. I'
    cool
    I intended no such thing, I was just short with my answers
    I learnt Java first, and then C, and then C++. I think I was lead
    astray in both situations

    Regarding C, there are more elegant ways of solving problems as simpl

    as the classic "Hello World" in C++, than in C, so if you start wit
    C,
    you're already on the wrong foot. Then we move onto arrays vs.
    std::vector, and char* (char[]) vs. std::string. From the moment you
    start learning C, you must unlearn many aspects and re-learn them in
    C++, because the C++ way is neater and safer

    With Java, it's simplicity is great, but when you come to learn C++
    you
    realise that there are many paradigms in Java that have neater
    equivalents in C++. Take for example exceptions and "finally", ok, i

    solves some problems, but not all - RAII is SO much neater. Because
    Java is less expressive than C++, it can be seen as simpler. The
    problem comes when means you forget to do things in C++ when you star

    writing code, like managing memory properly
    Yeah, but there is only "One true way" :p

    Seriously though, it's a waste of time, if you want to learn C++
    learn
    C++. It's easier than learning some concepts from a bunch o
    languages,
    and then un-learning them to do C++
    Of course. C++ is not a universal hammer. C is good for some thing
    -
    usually in preference to C++ only when you don't have a C++ compile
    for
    your platform, IMO, but thats me

    Java is equally good for LOTs of things. I'm using it for some
    web-application stuff I'm doing, and I prefer it to C++ in that case,
    because there is an existing framework that already does 90% of what

    need. It's also fast enough, but it's not going to cut it doing
    embedded network stacks, which is what I've been using C to do
    Equally there are better languages than Java for learning "pure" OO.
    They're not as readily available though, I'll admit
    Debugging C can be tricky on an embedded platform, especially as the
    probe effect tends to be much more prevalent, and the task is often
    inherently real-time. Debugging C++ in MSVC is at least as easy a
    Java
    in eclipse / netbeans. If you learn RAII soon, and use auto_ptr, or
    some other, possibly more suitable, smart pointer, then C++ is almos
    as
    easy as Java in terms of resource management
    In fact, I would like to go one step further and say that learning C
    or
    at least having knowledge of C, possibly introduces some peoples nee
    to
    use pointers everywhere. If you told everybody that a pointer should
    not be used, and instead to wrap it in a boost::shared_ptr memory
    management would be as easy as Java. Like I said, learning RAII from
    early on is very beneficial.
    Of course.
    Of course. I didn't mention the FAQ, though.
    Don't be too concerned about my happiness, and certainly not to
    apologise for your opinion! It's as valid as anybody else's, even if
    it's wrong (joke!) :p

    I'm happy to agree to disagree on this issue, of course... I just feel

    it necessary to present both sides of the coin.

    I think that there are LOTS of things in both C and Java which can be
    misleading and/or dangerous (in terms of defined behaviour) when
    applied
    to C++. Learn C++ the C++ way first, and then by all means see what
    else is out there when the need arises. This is also more pragmatic
    as
    you can get started with your C++ coding today, rather than in a years

    time when you've half-heartedly learnt C and Java.

    Ben Pope
     
    Ben Pope, Nov 23, 2005
    #12
  13. Joshua Rulz

    Ron House Guest

    Really? The class library is, imho, the killer in Java, because it is so
    interconnected that you must understand the concept of OO to come to
    grips with it. At the same time, you are trying to learn the real basics
    like io, variables, if statements... This is a real information
    overload, and simplifying it means leaving out or glossing over real
    issues. That's storing up misunderstandings for later.
    There certainly are pointers, but you can't see them. :)

    Again imho, hiding the pointer, having some names refer to what are
    actually pointers and some to the real object, just adds whole layers of
    confusion that a beginner can do without. Visible pointers are, imho,
    much clearer than the opposite. The killer in C and C++ is not the
    visible pointer, but the exposure of the machine implementation of the
    concept in the high level language. C++ has tried its best to close this
    down, but the underlying problem from C is still there somewhat. But
    well-taught programming style can avoid hitting the low level stuff.
    I see no reason why this should be true.
     
    Ron House, Nov 24, 2005
    #13
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.