Newbie to Programming

Discussion in 'C++' started by Kato06, Sep 23, 2003.

  1. Kato06

    Kato06 Guest

    Good afternoon all. I'm interested in beginning to learn how to
    program. The problem is with so many different languages out there
    which one should I be considering?? I have no previous programming
    experience. Any help or suggestions would be greatly appreciated.
     
    Kato06, Sep 23, 2003
    #1
    1. Advertisements

  2. Kato06

    WW Guest

    http://www.python.org
     
    WW, Sep 23, 2003
    #2
    1. Advertisements

  3. Kato06

    jeffc Guest

    What are your longer term goals?
     
    jeffc, Sep 23, 2003
    #3
  4. Kato06

    Player Guest

    I was at the same point you find yourself at earlier last year, and I went
    through a myriad of choices following allsorts of advice from different
    people.

    I started with TCL then through that found Python, which did prove to be a
    good starting point as the syntax is fairly relaxed and user friendly, as
    programming language syntax goes.
    Anyway from there I went over to Scheme which I found to be a better
    language by far than both of the others I had tried previously.
    So I would say to you, that if you want to grasp the basics the of
    programming first before you start to fix on one particular language that
    you will favour over all, as most coders end up doing, I would say try
    Scheme and read the books HTDP and SICP. HTDP = How to Develop Computer
    Programs, and SICP = Structure and Interpretation Of Computer Programs,
    these books both centre around explaining programming and the development of
    good coding practices, through the use of the language Scheme.
    URL'S AS follows below:::
    http://mitpress.mit.edu/sicp/full-text/book/book.html
    http://www.htdp.org/

    After a while you will start to realise, that unless your a complete
    Unix/Linux/bsd fan and only use them, that learning to code for your windows
    orientated operating system is the must, and so you will no doubt end up
    either trying a free IDE like Bloodsheds DEV-C++ or go for the much more
    powerful and all together superb IDE of the Microsoft Visual Studio, were
    you can code in c++, c, java, and vb also.

    I would say to you that in if I were to go back and start again on my road
    to learning coding, but taking with me certain info about the languages and
    development environments I no of now, I would do the following......
    1-- Learn Scheme via HTDP AND SICP
    2-- Obtain Microsoft's Visual Studio .Net 2003 and learn on that all the
    powerful languages of C, C++, Java, J#, C#, VB .net

    If on the other hand you just want to get right into the big languages then
    I would say, Obtain MS Visual Studio .net 2003 and begin there and learn
    all the languages associated with it, as the new .net framework can be cross
    platform-OS capable, and quit frankly I cant sing it's praises enough.

    Hope I have been of some help to you :)

    Player
     
    Player, Sep 23, 2003
    #4
  5. Kato06

    jeffc Guest

    I think it's only "advanced" if you learn regular procedural programming
    first. They say that those who learn Object-Oriented programming first have
    it come more naturally and clearly to them, as opposed to those who learned
    structured programming for a long time, and then tried to switch. For
    example, some of the worst C++ code I've ever seen was written by reasonably
    experienced C programmers.
     
    jeffc, Sep 23, 2003
    #5
  6. Kato06

    Chris Dams Guest

    Hello,

    I think if you start programming the language does not matter that much.
    The programming paradigm does matter however. I would think starting
    within the procedural programming paradigm is best. Start by learning about
    bottom-up versus top-down programming. If you use C++ (after all, this is a
    C++ group), after a while, it is okay to use classes but even then I
    think you should wait a bit with putting so-called member-functions
    inside them. That is a bit more advanced. After you are confident with
    bottom-up and top-down programming you can learn about recursion, which
    is a rather interesting subject.

    Good luck,
    Chris Dams
     
    Chris Dams, Sep 23, 2003
    #6
  7. Kato06

    Noah Roberts Guest

    That depends, OO as in C++, or OO as in Objective-C/Smalltalk/Java/Every
    other OO? It can be rather difficult to make the transition from one to
    the other.

    as opposed to those who learned
    I wonder if it would be an even better idea to start with
    aspect-oriented programming now.

    NR
     
    Noah Roberts, Sep 23, 2003
    #7
  8. Kato06

    jeffc Guest

    On the other hand, objects model the world better for most inexperienced
    programmers. Haven't you been in a high level design review where some
    programmers inevitably start talking about arrays and files and data
    structures? Put a bunch of newbies with problem solving experience, but no
    programming experience, and they'll be talking in terms of objects and
    responsibility, naturally.
     
    jeffc, Sep 23, 2003
    #8
  9. Kato06

    jeffc Guest

    Well, you can get away with a lot in C++, as opposed to "pure" OO languages
    like Smalltalk. (That's why I said the worst C++ code I've seen was by C
    programmers who knew just enough OO to make a real mess.) But I meant
    "real" OO.
    Never heard of it.
     
    jeffc, Sep 23, 2003
    #9
  10. Kato06

    Noah Roberts Guest

    A flame war may start now, but I must say...C++ is not capable of it.
    This is why I was saying that a beginner who has learned "real" OO may
    find C++ difficult. There are many things in C++ that work completely
    differently then they will be used to and the transition can be quite
    difficult.

    About getting away with more, well it depends on what you are trying to
    get away with. I would say it works both ways on that end.
    One of the "post oop" ideas that seem to have the most weight behind it
    right now. A google search or a search at citeseer will turn up much
    information. There is an AspectJ and an Aspect-C++ that I know of.
    Both are extensions to Java and C++ respecively. I can't say I really
    understand it as I have studied it very little, don't really have the
    time for a brand new paradigm right now. Instead of centering around
    objects, which it still has, it centers around what they call "aspects"
    that seem to basically be states.

    NR
     
    Noah Roberts, Sep 23, 2003
    #10
  11. Kato06

    WW Guest

    IMO it is.
    The reason they find it difficult is because they have learnt as real OO:

    - high level langauges
    - something which is the worse OOD possible (cosmic, fc. Java, MFC etc.)
    Again: because C++ is a low level langauge and provides more opportunities.
    Also C++ is a not an interpreted language either, so it gives you pure OO
    but not reflection as in Java and classes are not fisrt class objects. But
    that is not part of pure OO either. So IMO people coming from _interpreted_
    (be it interpreted by an engine or interpreter or VM) or _dynamic_ languages
    find that transition hard. IMO at least what I have learnt as OO is all in
    there.
     
    WW, Sep 23, 2003
    #11
  12. Kato06

    Noah Roberts Guest

    On the other hand you have something like Objective-C and the Next API.
    And I agree, Java is shit as a language though not always interpreted
    (gcc).

    Dynamic messaging is a main component of OO IMHO. An OO language should
    have no need for such things as 'virtual' or templates. For instance,
    build a C++ container that can accept as members any and all objects,
    not just a single type or subtype. Certainly not as simple as in
    something like Objective-C or Java.

    NR
     
    Noah Roberts, Sep 23, 2003
    #12
  13. Kato06

    Chris Dams Guest

    Hello,

    I suppose it depends on how much experience someone first gets with
    procedural programming and how willing (s)he is to learn something new.
    The idea of "splitting a complicated task in simpler and perhaps even
    reusable ones" that is at the basis of procedural programming is something
    that for most people needs some getting used to and some trying out.
    After having written perhaps some simple game-like programs of, say,
    1000 lines, using structs without member functions it should, with a
    few good examples, be rather obvious that hiding the data causes less
    trouble if the data representation must be changed or when making sure
    that invariant conditions on the data representation remain satisfied.
    If someone has not seen procedures these remarks may be highly obscure.
    Trying too much at once is usually a bad idea.

    Bye,
    Chris Dams
     
    Chris Dams, Sep 23, 2003
    #13
  14. Kato06

    WW Guest

    I think not.
    I absolutely disagree.
    Yeah. I have a proposal to the language which can do that in one way.
    There is another proposal, which will do it another way (more like the Java
    way).

    But IMO this is not necessarily a good way to go. There are inheritly
    dynamic problem domains such as databases. But at other places making the
    code dynamic will just bring up the number of possible errors to infinite
    and the number of compile time detectable ones close to zero (syntax aside).

    IMO as you cannot buy a car or a furniture which can store anything from
    neutrinos via closthing up to space shuttle it makes absolutely no sense to
    do that in code. Unless you store them under a common type: such as
    abstract concepts etc.
    Thanks God. I don't have to write crap code with absolutely no internal
    structure, because the "clever ones" defining the structure cannot come up
    with just any mess they want to.
     
    WW, Sep 24, 2003
    #14
  15. and so you will no doubt end up
    Warning: MS Visual Studio doesn't compile standard Java.

    I haven't had much experience with Python, but while scheme is a relatively
    easy language to learn, especially if you are accustomed to math, it is not
    quite representative of most of the languages you would encounter. I think
    its a good idea to learn programming practice in scheme, but be prepared to
    learn completely new syntax when you move to Java, C, or C++.

    After you feel comfortable with Scheme, I would suggest moving to either
    Visual Basic or Java.

    Visual Basic is pretty easy to learn, and quick to get programs up and
    running, but be prepared to spend a lot of time figuring out which functions
    to use and what they do. Visual Basic is a good introduction to method
    based programming, and contians a few concepts involved with object oriented
    programming.

    Java is really neat because Sun lists all relevant functions in the default
    development environment, and how to use them and what they do. It does take
    a bit of searching if you don't already have an idea of which Class to use,
    but it is a lot easier than trying to figure out what function does what
    with Visual Studio or .NET, both of which have horrible documentation, and
    you would need to purchase a third party book in order to figure anything
    out. Another neat thing about Java is that you don't have to handle any of
    the ugly memory management stuff. Its a very good way to introduce yourself
    with Object Oriented Programming. There are a few downloadable IDE's for
    Java, but I can't recommend any of them since I haven't used them. (I'm an
    EMACS fan). JCreator and JBuilder are supposed to be good.
     
    Larry Lindsey, Sep 24, 2003
    #15
  16. Kato06

    jeffc Guest

    That's pretty much a red herring. According to Bertrand Meyer, Smalltalk is
    not a real programming language either. What, C++ is not a "pure" OO
    language because it doesn't support a single Object hierarchy? "So what?" I
    say.
    My whole point was related to those who don't have a transition to make.
     
    jeffc, Sep 24, 2003
    #16
  17. Kato06

    Ron Natalie Guest

    It doesn't compile standard C++ either.
     
    Ron Natalie, Sep 24, 2003
    #17
  18. Kato06

    WW Guest

    Khm. The latest is not so bad.
     
    WW, Sep 24, 2003
    #18
  19. Kato06

    Jerry Coffin Guest

    [ ... ]
    As has been pointed out here before, every compiler except Comeau's has
    some pretty obvious shortcomings in its implementation of C++ (Comeau
    _may_ have some, but if so they don't seem to be obvious).

    The current version of MS C++ is at least on a par with most of the
    competition though, and is decidedly better than many of them.
     
    Jerry Coffin, Sep 24, 2003
    #19
  20. Kato06

    WW Guest

    By Comeau you mean latest EDG frontend based? Or is Comeau some way
    different from the others?
     
    WW, Sep 24, 2003
    #20
    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.