Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. The right programming language to teach...

The right programming language to teach...

Scheduled Pinned Locked Moved The Lounge
csharpquestionc++javascript
43 Posts 19 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    Domenic Denicola
    wrote on last edited by
    #1

    Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

    M R C C A 12 Replies Last reply
    0
    • D Domenic Denicola

      Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

      M Offline
      M Offline
      Michael Dunn
      wrote on last edited by
      #2

      Since she has no coding knowledge at all, stay away from C++. Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Same reasoning for avoiding C#. I'd say start with BASIC. Not Visual Basic, BASIC, where your I/O is as simple as PRINT and INPUT. It has the basic logic (if/then/else) and flow control (for loops, and depending on the dialect, do/while), and that knowledge can be transferred to more complex languages later. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

      R D L D 4 Replies Last reply
      0
      • D Domenic Denicola

        Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

        R Offline
        R Offline
        Roger Wright
        wrote on last edited by
        #3

        While I agree that it would be nice to teach her C++ right away, especially since she seems to be able to learn it (lucky guy - what a treasure), I wouldn't recommend it. Money is bound to be an issue for a young person, and VC++ isn't cheap. On the other hand, Javascript has a c-like syntax, contains most of the important elements of higher level languages, and it's free for anyone with a Windows computer with Internet Explorer installed. Despite all the hair splitting that goes on around here about 'real' programming, a program is a set of instructions written in a defined format that make a computer do interesting and useful things. Javascript is no less a programming language than VC++, and the similarity in sytax will make the jump to C++ easier for her later. If she wants something more flexible and challenging, migrating to Java will add power and new concepts to her learning experience, and poise her on the edge of jumping into C++, still without costing a dime. And if that only whets her appetite for more, you can let her visit your computer to learn C++! Of course, I'm no expert on learning computer languages, either. My first was Assembly, and all I had to work with were the Intel 8080 chip data sheets and a pencil. Word of the day: Rotundacrat
        Extra Credit will be awarded for: Quasimobo...

        D 1 Reply Last reply
        0
        • M Michael Dunn

          Since she has no coding knowledge at all, stay away from C++. Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Same reasoning for avoiding C#. I'd say start with BASIC. Not Visual Basic, BASIC, where your I/O is as simple as PRINT and INPUT. It has the basic logic (if/then/else) and flow control (for loops, and depending on the dialect, do/while), and that knowledge can be transferred to more complex languages later. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

          R Offline
          R Offline
          Roger Wright
          wrote on last edited by
          #4

          I was going to suggest that, but I haven't seen a version of BASIC in many years. Is there a version still available out there? Word of the day: Rotundacrat
          Extra Credit will be awarded for: Quasimobo...

          M M 2 Replies Last reply
          0
          • R Roger Wright

            While I agree that it would be nice to teach her C++ right away, especially since she seems to be able to learn it (lucky guy - what a treasure), I wouldn't recommend it. Money is bound to be an issue for a young person, and VC++ isn't cheap. On the other hand, Javascript has a c-like syntax, contains most of the important elements of higher level languages, and it's free for anyone with a Windows computer with Internet Explorer installed. Despite all the hair splitting that goes on around here about 'real' programming, a program is a set of instructions written in a defined format that make a computer do interesting and useful things. Javascript is no less a programming language than VC++, and the similarity in sytax will make the jump to C++ easier for her later. If she wants something more flexible and challenging, migrating to Java will add power and new concepts to her learning experience, and poise her on the edge of jumping into C++, still without costing a dime. And if that only whets her appetite for more, you can let her visit your computer to learn C++! Of course, I'm no expert on learning computer languages, either. My first was Assembly, and all I had to work with were the Intel 8080 chip data sheets and a pencil. Word of the day: Rotundacrat
            Extra Credit will be awarded for: Quasimobo...

            D Offline
            D Offline
            Domenic Denicola
            wrote on last edited by
            #5

            Roger Wright wrote: VC++ isn't cheap. I forgot to add that: I have a copy of VS.NET Academic, which has activated itself on three different computers so far... :-D Does that change your opinion? And I assume your utter exclusion of C# means you think it'd be a bad idea, why? JavaScript does make some sense, but I'm always concerned about the problems of type unsafeness and other lenient evilnesses. I hate it when I see stuff like var test = "5"; test *= 3; test += "2";. I dunno, you still bring up a good point, and JavaScript certainly seems a lot more useful than BASIC.

            -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

            R 1 Reply Last reply
            0
            • M Michael Dunn

              Since she has no coding knowledge at all, stay away from C++. Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Same reasoning for avoiding C#. I'd say start with BASIC. Not Visual Basic, BASIC, where your I/O is as simple as PRINT and INPUT. It has the basic logic (if/then/else) and flow control (for loops, and depending on the dialect, do/while), and that knowledge can be transferred to more complex languages later. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

              D Offline
              D Offline
              Domenic Denicola
              wrote on last edited by
              #6

              Michael Dunn wrote: Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Very good point that I'd forgotten. It was quite interesting when I learned cout in chapter one, << in chapter three, and the reason why it all worked in chapter 13. Michael Dunn wrote: Same reasoning for avoiding C#. I beg to disagree here. Doing anything in C# (at least if your using a decent reference book) requires the use of classes and at least some rudimentary OO (fields, methods, and namespace acces at the very least). Yes, you can simply "parrot"

              using namespace System;

              class MyApp
              {
              void Main()
              {
              Console.Write("Hello, Universe!");
              }
              }

              , but it's a lot harder. A good book (or teacher) will have to explain what namespaces are, what classes are, what Main() is, and why it's Console.Write instead of simply Write. Whereas in C++, all you need to know is that cout << is magic and perhaps you'll get a small explanation of namespaces. Agree/disagree? Michael Dunn wrote: I'd say start with BASIC. Well, the immediate problem with that is that BASIC was before my time, and consequently I don't know it. :-O In terms of programming languages, I've got C++, C#, Perl, and PHP4. :rolleyes: That's why my more basic (no pun intended) options were all web technologies.

              -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

              M 1 Reply Last reply
              0
              • R Roger Wright

                I was going to suggest that, but I haven't seen a version of BASIC in many years. Is there a version still available out there? Word of the day: Rotundacrat
                Extra Credit will be awarded for: Quasimobo...

                M Offline
                M Offline
                Michael Dunn
                wrote on last edited by
                #7

                Well, MS included QBASIC and/or GWBASIC with old versions of DOS. I'd be surprised if they weren't available (or clones of those interpreters) on the net somewhere. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

                1 Reply Last reply
                0
                • D Domenic Denicola

                  Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

                  C Offline
                  C Offline
                  Christian Graus
                  wrote on last edited by
                  #8

                  C++ is perfect because it hides complexity ( when taught properly ), and then scales well as the student gets more advanced. Failing that, I'd suggest C# because it's a language that's likely to be around for a while, and is similar enough to C++ that the transition would be painless. If you want simple, without the stigma of VB, I'd agree with Javascript, or maybe Python. But I'd always start with C++, teach it right, and fall back to a 'dumb' language only if need be. Christian Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002 During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002

                  D 1 Reply Last reply
                  0
                  • D Domenic Denicola

                    Michael Dunn wrote: Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Very good point that I'd forgotten. It was quite interesting when I learned cout in chapter one, << in chapter three, and the reason why it all worked in chapter 13. Michael Dunn wrote: Same reasoning for avoiding C#. I beg to disagree here. Doing anything in C# (at least if your using a decent reference book) requires the use of classes and at least some rudimentary OO (fields, methods, and namespace acces at the very least). Yes, you can simply "parrot"

                    using namespace System;

                    class MyApp
                    {
                    void Main()
                    {
                    Console.Write("Hello, Universe!");
                    }
                    }

                    , but it's a lot harder. A good book (or teacher) will have to explain what namespaces are, what classes are, what Main() is, and why it's Console.Write instead of simply Write. Whereas in C++, all you need to know is that cout << is magic and perhaps you'll get a small explanation of namespaces. Agree/disagree? Michael Dunn wrote: I'd say start with BASIC. Well, the immediate problem with that is that BASIC was before my time, and consequently I don't know it. :-O In terms of programming languages, I've got C++, C#, Perl, and PHP4. :rolleyes: That's why my more basic (no pun intended) options were all web technologies.

                    -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

                    M Offline
                    M Offline
                    Michael Dunn
                    wrote on last edited by
                    #9

                    Domenic [Geekn] wrote: Agree/disagree? Disagree, because when teaching someone with no coding experience, all extraneous noise should be removed. I don't know if you've ever taken a beginning programming course, but even the littlest complication (such as, say, when to use an & before a variable with scanf()) can cause headaches. I've seen newbies get totally flustered on little syntax points in C, when they should be focusing on developing skills like writing code with good logic flow. In BASIC, you can show somebody

                    10 INPUT "What's your name?", NAME$
                    20 PRINT "Well hi there" NAME$

                    and it's so bloody simple that they learn it right away. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

                    D 1 Reply Last reply
                    0
                    • M Michael Dunn

                      Domenic [Geekn] wrote: Agree/disagree? Disagree, because when teaching someone with no coding experience, all extraneous noise should be removed. I don't know if you've ever taken a beginning programming course, but even the littlest complication (such as, say, when to use an & before a variable with scanf()) can cause headaches. I've seen newbies get totally flustered on little syntax points in C, when they should be focusing on developing skills like writing code with good logic flow. In BASIC, you can show somebody

                      10 INPUT "What's your name?", NAME$
                      20 PRINT "Well hi there" NAME$

                      and it's so bloody simple that they learn it right away. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

                      D Offline
                      D Offline
                      Domenic Denicola
                      wrote on last edited by
                      #10

                      Michael Dunn wrote: I don't know if you've ever taken a beginning programming course Nope :-D Just me and my good buddy, Beginning C++. The times we had... Michael Dunn wrote: I've seen newbies get totally flustered on little syntax points in C, when they should be focusing on developing skills like writing code with good logic flow. Another good point. I'm beginning to see that understanding of basic concepts should be ingrained first, in my case through XHTML then JavaScript, but perhaps BASIC in this case. Only after that comes "real code," with syntax. This is really good, because I never would've thought that through on my own. I'm thinking at this point to take the opinions found here and just present them as options, because they're all justified well.

                      -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

                      1 Reply Last reply
                      0
                      • D Domenic Denicola

                        Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

                        C Offline
                        C Offline
                        ColinDavies
                        wrote on last edited by
                        #11

                        Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Regardz Colin J Davies

                        Sonork ID 100.9197:Colin

                        You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

                        D M 2 Replies Last reply
                        0
                        • C Christian Graus

                          C++ is perfect because it hides complexity ( when taught properly ), and then scales well as the student gets more advanced. Failing that, I'd suggest C# because it's a language that's likely to be around for a while, and is similar enough to C++ that the transition would be painless. If you want simple, without the stigma of VB, I'd agree with Javascript, or maybe Python. But I'd always start with C++, teach it right, and fall back to a 'dumb' language only if need be. Christian Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002 During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002

                          D Offline
                          D Offline
                          Domenic Denicola
                          wrote on last edited by
                          #12

                          Christian Graus wrote: it hides complexity ( when taught properly ) How so? I can't remember very well what I thought of C++'s complexity when learning it, but I think my attitude was that I had nothing else to do with my life so I'm damn well going to understand every word this chapter says before I move on, no matter how complex it is. How would I teach C++ properly and still hide complexity? What do you think of Mike's point above, and my responses to it? Just wanting to expand on this a little more. Christian Graus wrote: I'd suggest C# because it's a language that's likely to be around for a while, and is similar enough to C++ that the transition would be painless So you don't think C# would be good in and of itself, only because it's a less-confusing version of C++ that's not going to die anytime soon? Or anything else? Wow, I just gave this message a once-over and realized all my questions sound really accusatory and critical. Please don't take them that way—they weren't meant to be. As I said to Mike, these are all great points, and I think I'm going to present them as options. I very much appreciate the feedback.

                          -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

                          S C 2 Replies Last reply
                          0
                          • C ColinDavies

                            Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Regardz Colin J Davies

                            Sonork ID 100.9197:Colin

                            You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

                            D Offline
                            D Offline
                            Domenic Denicola
                            wrote on last edited by
                            #13

                            Colin^Davies wrote: Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Stop making me laugh! I'm afraid to look at any of your messages in a public place nowadays! ;P Colin^Davies wrote: Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Well, C is out because it's evil and non-typesafe and not as useful or powerful as C++. FORTRAN is out because I have never seen a line of FORTRAN code in my life. So between C++ and C#, do you have an opinion? Thanks.

                            -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

                            C 1 Reply Last reply
                            0
                            • D Domenic Denicola

                              Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

                              A Offline
                              A Offline
                              Atlantys
                              wrote on last edited by
                              #14

                              I might be chastised for suggesting this, but how about trying Perl? I know, I know, technically it's a scripting language, but it does give all the basics of programming, so someone can learn the concepts. And then move onto C++ with the concepts of objects, etc (all the hard things), instead of just the $i = 0 non-type-specific concepts (gah, that doesn't make sense, but you know what i mean!). Maybe just C# (or even Java (gasp!). I've never used C#, but I do know Java, which I found is an easier (to learn) version of C++. My 2cents.

                              D 1 Reply Last reply
                              0
                              • D Domenic Denicola

                                Colin^Davies wrote: Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Stop making me laugh! I'm afraid to look at any of your messages in a public place nowadays! ;P Colin^Davies wrote: Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Well, C is out because it's evil and non-typesafe and not as useful or powerful as C++. FORTRAN is out because I have never seen a line of FORTRAN code in my life. So between C++ and C#, do you have an opinion? Thanks.

                                -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

                                C Offline
                                C Offline
                                ColinDavies
                                wrote on last edited by
                                #15

                                Domenic [Geekn] wrote: So between C++ and C#, do you have an opinion? I think C++ ers can switch to C# OK, and C# learners should be able to upgrade when necessary. So maybe it's which you are most comfortable with as a teacher. Regardz Colin J Davies

                                Sonork ID 100.9197:Colin

                                You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

                                1 Reply Last reply
                                0
                                • C ColinDavies

                                  Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Regardz Colin J Davies

                                  Sonork ID 100.9197:Colin

                                  You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

                                  M Offline
                                  M Offline
                                  Michael Dunn
                                  wrote on last edited by
                                  #16

                                  Your post confuses me. There's a reason why two of the letters in BASIC stand for beginner's and instruction. It's designed to be taught to beginners, thus it has simple syntax while still having decision and flow control capabilities that are present in all languages. Thus, you start with an easy-to-learn language (yes I said "easy") and develop skills that you can carry with you if you get more serious about programming and want to learn a "professional" language like C(++)(#) --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

                                  C 1 Reply Last reply
                                  0
                                  • A Atlantys

                                    I might be chastised for suggesting this, but how about trying Perl? I know, I know, technically it's a scripting language, but it does give all the basics of programming, so someone can learn the concepts. And then move onto C++ with the concepts of objects, etc (all the hard things), instead of just the $i = 0 non-type-specific concepts (gah, that doesn't make sense, but you know what i mean!). Maybe just C# (or even Java (gasp!). I've never used C#, but I do know Java, which I found is an easier (to learn) version of C++. My 2cents.

                                    D Offline
                                    D Offline
                                    Domenic Denicola
                                    wrote on last edited by
                                    #17

                                    Ya, I was conidering that, but: a) I don't know Perl completely. b) It's a lot of trouble to set up, even with the ActivePerl stuff. c) There are better alternatives at the same (or lower) difficulty level. c) It looks ugly naturally and can be made to look even uglier if you try.

                                    -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

                                    A B 2 Replies Last reply
                                    0
                                    • D Domenic Denicola

                                      Roger Wright wrote: VC++ isn't cheap. I forgot to add that: I have a copy of VS.NET Academic, which has activated itself on three different computers so far... :-D Does that change your opinion? And I assume your utter exclusion of C# means you think it'd be a bad idea, why? JavaScript does make some sense, but I'm always concerned about the problems of type unsafeness and other lenient evilnesses. I hate it when I see stuff like var test = "5"; test *= 3; test += "2";. I dunno, you still bring up a good point, and JavaScript certainly seems a lot more useful than BASIC.

                                      -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

                                      R Offline
                                      R Offline
                                      Roger Wright
                                      wrote on last edited by
                                      #18

                                      Domenic [Geekn] wrote: Does that change your opinion? Not really. I still think that the Javascript/Java/C++ scenario makes a logical progression for learning. I don't know enough about C# to have a valid opinion, so I'll venture none. I do know that C++ (especially as implemented in Windows/VS) is utterly baffling and difficult to comprehend compared to the dozen or so other languages I've mastered easily. I even like assembly and RTL - compared to VC++ they're easy, and I'd hate to see you scare off someone that has promise with unnecessary irrelevant confusion. Word of the day: Rotundacrat
                                      Extra Credit will be awarded for: Quasimobo...

                                      P 1 Reply Last reply
                                      0
                                      • M Michael Dunn

                                        Your post confuses me. There's a reason why two of the letters in BASIC stand for beginner's and instruction. It's designed to be taught to beginners, thus it has simple syntax while still having decision and flow control capabilities that are present in all languages. Thus, you start with an easy-to-learn language (yes I said "easy") and develop skills that you can carry with you if you get more serious about programming and want to learn a "professional" language like C(++)(#) --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

                                        C Offline
                                        C Offline
                                        ColinDavies
                                        wrote on last edited by
                                        #19

                                        Ok, you probably have a good point Mike. But I have seen people who started on something like BASIC and were unfortunate that they stuck with it, they never progressed to real professional languages. When they did change, their thinking was totally influenced by what they had learned with BASIC or Pascal. Learning the principles of simple flow and decisions in BASIC or whatever language are very similar, but when it comes to more advanced programming students need to switch to another language. I have seen where people didn't switch, and that's where my bias comes from. Regardz Colin J Davies

                                        Sonork ID 100.9197:Colin

                                        You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

                                        R 1 Reply Last reply
                                        0
                                        • C ColinDavies

                                          Ok, you probably have a good point Mike. But I have seen people who started on something like BASIC and were unfortunate that they stuck with it, they never progressed to real professional languages. When they did change, their thinking was totally influenced by what they had learned with BASIC or Pascal. Learning the principles of simple flow and decisions in BASIC or whatever language are very similar, but when it comes to more advanced programming students need to switch to another language. I have seen where people didn't switch, and that's where my bias comes from. Regardz Colin J Davies

                                          Sonork ID 100.9197:Colin

                                          You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

                                          R Offline
                                          R Offline
                                          Roger Wright
                                          wrote on last edited by
                                          #20

                                          Colin means me. I learned on procedural code, and even did a lot of event-driven programming for real time stuff, but the Windows model that pollutes C++ in VC++ is totally confusing. C++ by itself isn't all that difficult, though the designers went out of their way to make it more confusing than necessary. It's very difficult to grasp the concepts required to support the Windows platform coming from a strict step-by-step programming model. Not impossible, of course, but it sometimes seems more trouble than it's worth. Word of the day: Rotundacrat
                                          Extra Credit will be awarded for: Quasimobo...

                                          C 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups