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. To introduce students on programming? Which language is more appropriate now?

To introduce students on programming? Which language is more appropriate now?

Scheduled Pinned Locked Moved The Lounge
c++csharphelpquestion
65 Posts 12 Posters 5 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.
  • C Christian Graus

    No, I'm really not. Learning assembler, or even C, is a retarded place to start because any widely used language today is built on a platform of OO. If that is a false god or not is irrelevant. Learning something that's super complicated and goes against the most basic principles of the widely used languages is like teaching someone all the bad habits possible, and then later trying to break them of them. When I was using C++ every day, my world was surrounded by people who wrote the most awful, awful code. Why ? Because they learned C first, and never bothered to learn to use C++ where there was a C construct that still worked. For example, file handles instead of iostreams. Microsoft CArray instead of std::vector. You name it, and people didn't bother to learn C++ because they knew C, and it worked in C++. Yes, I know CArray is not C. But it was used for roughly the same reasons. It's also not a bad comparison because the only sane reason to teach someone assembler, or even C, is the idea that people need to know exactly how a computer works, to program it. Beyond that, they are hardly highly productive languages, nor do they come with the sort of frameworks that .NET does ( which makes it even more productive ), so what's the use of knowing it ?

    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

    M Offline
    M Offline
    Mladen Jankovic
    wrote on last edited by
    #34

    Christian Graus wrote:

    so what's the use of knowing it ?

    Christian Graus wrote:

    people need to know exactly how a computer works, to program it.

    You said it yourself.

    [Genetic Algorithm Library]

    L C 2 Replies Last reply
    0
    • L Lost User

      Hmm, did I not read recently that good old C still is the most widely used language? And using object oriented languages does not automatically enable to write good code. If you want to see some evidence for that, I have here the sources for an ASP .Net website where all the code was put into static methods. That is the same website that regularily fell flat on its face because it used outrageous amounts of memory. To make it short: What's worse? A programmer who does not know how to efficiently use the two most imortant resources of the machine, CPU and memory? Or a programmer who still has to learn more about a good design (which I see as a never ending quest)?

      "I have what could be described as the most wide-open sense of humor on the site, and if I don't think something is funny, then it really isn't." - JSOC, 2011 -----
      "Friar Modest never was a prior" - Italian proverb

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #35

      Quite.

      "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

      1 Reply Last reply
      0
      • L Lost User

        Hmm, did I not read recently that good old C still is the most widely used language? And using object oriented languages does not automatically enable to write good code. If you want to see some evidence for that, I have here the sources for an ASP .Net website where all the code was put into static methods. That is the same website that regularily fell flat on its face because it used outrageous amounts of memory. To make it short: What's worse? A programmer who does not know how to efficiently use the two most imortant resources of the machine, CPU and memory? Or a programmer who still has to learn more about a good design (which I see as a never ending quest)?

        "I have what could be described as the most wide-open sense of humor on the site, and if I don't think something is funny, then it really isn't." - JSOC, 2011 -----
        "Friar Modest never was a prior" - Italian proverb

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

        CDP1802 wrote:

        Hmm, did I not read recently that good old C still is the most widely used language?

        If that's the case, i assume that's counting people programming old mainframe code that needs maintenance programmers. Or it could just be the most widely used in terms of users, much of most OSes and also Office being written in C. So what ?

        CDP1802 wrote:

        And using object oriented languages does not automatically enable to write good code

        Doh. Look at the quick questions for all the evidence you need of that. So what ? Does not knowing OO make you a better programmer ?

        CDP1802 wrote:

        To make it short: What's worse? A programmer who does not know how to efficiently use the two most imortant resources of the machine, CPU and memory? Or a programmer who still has to learn more about a good design (which I see as a never ending quest)?

        They are both useless. However, in this day and age, it's usually the case that a computer can handle the former, better than the latter. I never said it was not a good idea to teach either of those things ( how to use resources, and good design ). I said that you learn good design by learning OO from the start, and going back to learn the things that were at first hidden from you. Who do you think feels the greater level of achievement ? The guy who spends a week getting assembler to say 'hello world', or the guy who spends a week getting C# to play a basic game, or run a calculator, or replace notepad ?

        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

        L 1 Reply Last reply
        0
        • M Mladen Jankovic

          Christian Graus wrote:

          so what's the use of knowing it ?

          Christian Graus wrote:

          people need to know exactly how a computer works, to program it.

          You said it yourself.

          [Genetic Algorithm Library]

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

          Wow - way to totally misquote me. That's not worth responding to. The idea that someone needs to know exactly, in fine detail, how a computer works, to start learning to program it, is insanely retarded.

          Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

          1 Reply Last reply
          0
          • M Mladen Jankovic

            Christian Graus wrote:

            so what's the use of knowing it ?

            Christian Graus wrote:

            people need to know exactly how a computer works, to program it.

            You said it yourself.

            [Genetic Algorithm Library]

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #38

            I recognise that even my knowledge isnt as good as it should be. I never learnt assemebler to use but I have had to debug into it a lot, and I wish I knew it better. But for sure C is a good starting point because it is close enough to the machine to get to know about memory. (It also makes quite tidy assembler. If you ever have to debug into assembly that came form C++ then you have my condolences!)

            "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

            C 1 Reply Last reply
            0
            • L Lost User

              I recognise that even my knowledge isnt as good as it should be. I never learnt assemebler to use but I have had to debug into it a lot, and I wish I knew it better. But for sure C is a good starting point because it is close enough to the machine to get to know about memory. (It also makes quite tidy assembler. If you ever have to debug into assembly that came form C++ then you have my condolences!)

              "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

              fat_boy wrote:

              But for sure C is a good starting point because it is close enough to the machine to get to know about memory

              As I said, every terrible C++ programmer I've worked with, never was good at C++, precisely because they learned C first.

              Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

              L 1 Reply Last reply
              0
              • C Christian Graus

                fat_boy wrote:

                But for sure C is a good starting point because it is close enough to the machine to get to know about memory

                As I said, every terrible C++ programmer I've worked with, never was good at C++, precisely because they learned C first.

                Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #40

                So hang on, lets work out whats going on here, you are actually crap at C yes? Pointers actually scare the shit out of you, and thats why you are so anti C?

                "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                C 1 Reply Last reply
                0
                • L Lost User

                  Of course this is where the men and the boys get seperated: Those who really know how computers work and can make them fly, and those who can only write applications to process some data.

                  "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

                  Well, you see, you may be sufficiently insecure to talk crap like this, but I am not. I know more than my share about that stuff, I learned C++, proper C++ on the command line, then I learned MFC, then I went back to learn C and Win32, so that I could understand what MFC was hiding from me. I have not used C++ for some time because, in the windows world, it's a stupid choice, most of the time. As I said, the people who learned C first, didn't know it better than me, they just sucked at C++. Naturally, some people will learn 'how to write applications' and never learn how to 'make them fly'. So what ? The ones who learn in the ways I am suggesting, are in a better place to learn as much as they choose to, instead of being taught things that are over complicated, teach bad habits, and slow down the learning process.

                  Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                  L 1 Reply Last reply
                  0
                  • C Christian Graus

                    Well, you see, you may be sufficiently insecure to talk crap like this, but I am not. I know more than my share about that stuff, I learned C++, proper C++ on the command line, then I learned MFC, then I went back to learn C and Win32, so that I could understand what MFC was hiding from me. I have not used C++ for some time because, in the windows world, it's a stupid choice, most of the time. As I said, the people who learned C first, didn't know it better than me, they just sucked at C++. Naturally, some people will learn 'how to write applications' and never learn how to 'make them fly'. So what ? The ones who learn in the ways I am suggesting, are in a better place to learn as much as they choose to, instead of being taught things that are over complicated, teach bad habits, and slow down the learning process.

                    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #42

                    Christian Graus wrote:

                    Naturally, some people will learn 'how to write applications' and never learn how to 'make them fly'

                    I said computers fly, not applications. Clearly with out a good understanding of C you will never work in the kernel, and thats where the machine is, thats where the peripherals are. Thats where its engineered. Processes are just small VMs, you cant do much in the way of making a computer fly from a VM.

                    "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                    C 1 Reply Last reply
                    0
                    • L Lost User

                      So hang on, lets work out whats going on here, you are actually crap at C yes? Pointers actually scare the shit out of you, and thats why you are so anti C?

                      "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

                      You are an ignorant fool. I had about 7 articles published by Windows Developers Journal, all in C. I wrote a ton of code at work, in C, as well as C++, over many years, for windows and also the Palm platform ( I wrote a database platform for Palm as it did not come with one, for example, all in C ). Microsoft gave me an MVP award for my answering questions on forums when all I knew was C and C++. So, yes, I guess I suck at C, and that's why I want to stop other people from learning it, because of my insecurities. Are you actually illiterate, or are you just projecting your insecurities on to me and not reading anything I said ?

                      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                      L 1 Reply Last reply
                      0
                      • C Christian Graus

                        You are an ignorant fool. I had about 7 articles published by Windows Developers Journal, all in C. I wrote a ton of code at work, in C, as well as C++, over many years, for windows and also the Palm platform ( I wrote a database platform for Palm as it did not come with one, for example, all in C ). Microsoft gave me an MVP award for my answering questions on forums when all I knew was C and C++. So, yes, I guess I suck at C, and that's why I want to stop other people from learning it, because of my insecurities. Are you actually illiterate, or are you just projecting your insecurities on to me and not reading anything I said ?

                        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #44

                        :laugh: :laugh: Just testing a hypothesis Christian.

                        "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                        C 1 Reply Last reply
                        0
                        • L Lost User

                          Christian Graus wrote:

                          Naturally, some people will learn 'how to write applications' and never learn how to 'make them fly'

                          I said computers fly, not applications. Clearly with out a good understanding of C you will never work in the kernel, and thats where the machine is, thats where the peripherals are. Thats where its engineered. Processes are just small VMs, you cant do much in the way of making a computer fly from a VM.

                          "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

                          *sigh* I am trying to work out if you're just saying garbage to toy with me, or if you really think that, for example, children being taught to read should start with Tolstoy, because Dr Seuss is obviously not real literature and should be ignored.

                          Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                          L 1 Reply Last reply
                          0
                          • C Christian Graus

                            *sigh* I am trying to work out if you're just saying garbage to toy with me, or if you really think that, for example, children being taught to read should start with Tolstoy, because Dr Seuss is obviously not real literature and should be ignored.

                            Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #46

                            I was ever a fan of the deep end way of learning, because as adults, we arent children.

                            "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                            C 1 Reply Last reply
                            0
                            • L Lost User

                              I was ever a fan of the deep end way of learning, because as adults, we arent children.

                              "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

                              Actually, children have more malleable brains and learn more easily than adults. However, one assumes that he's talking about teaching children and not adults. At the core, you're saying that people should start with the most complicated task, and then work backwards. I say they should develop a framework of understanding and go deeper with time.

                              Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                              L 1 Reply Last reply
                              0
                              • C Christian Graus

                                Actually, children have more malleable brains and learn more easily than adults. However, one assumes that he's talking about teaching children and not adults. At the core, you're saying that people should start with the most complicated task, and then work backwards. I say they should develop a framework of understanding and go deeper with time.

                                Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #48

                                Well, he is tlaking about 15 to 16 year olds, certainly old enough to take it on the chin. Heck, we did at that age. All kinds of complex stuff, advanced maths, organic chemistry, if someone had thrown in stacks and assembler it wouldnt have been any harder.

                                "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                                C 1 Reply Last reply
                                0
                                • L Lost User

                                  Well, he is tlaking about 15 to 16 year olds, certainly old enough to take it on the chin. Heck, we did at that age. All kinds of complex stuff, advanced maths, organic chemistry, if someone had thrown in stacks and assembler it wouldnt have been any harder.

                                  "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

                                  Perhaps, but I don't think they approach any other subject by seeking to make it as complicated early on as possible, to make it as hard to learn as possible.

                                  Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                  L 1 Reply Last reply
                                  0
                                  • C Christian Graus

                                    Perhaps, but I don't think they approach any other subject by seeking to make it as complicated early on as possible, to make it as hard to learn as possible.

                                    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                    L Offline
                                    L Offline
                                    Lost User
                                    wrote on last edited by
                                    #50

                                    Well, you see (and I did learn about computers form the inside out, bottom up, not at 16, because we didnt have them then, but at 18) actually when learnt at a fundamental level like this it is actually easier to understand the machine then via a high level language like C# (if thats what you were proposing). The first language I learnt was actually BASIC, on a Spectrum. But then I just got hold of one and taught myself. And, depending on what you are programming different languages have different uses. So if I was throwing together a database app talking to a Jet engine I would probably use VB or some such. (Never got involved with the Microsoft javaesque languages and VM so I cant really comment on .Net suitability). Of course if you are anywhere near HW then C and assembler are crucial. And a lot of coding is. Not just in kernels but FW for a lot of devices, plus handhelds.

                                    "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                                    C 1 Reply Last reply
                                    0
                                    • L Lost User

                                      :laugh: :laugh: Just testing a hypothesis Christian.

                                      "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

                                      To put all this another way. If we each had a class, same age, same background. You taught assembler, I taught C#. In 6 months, our classes enter a programming contest. Each student needs to write the Windows calculator. As well as the functionality found in the windows calculator ( including scientific mode, hex, octal, etc ), the students would be free to add other features as they saw fit. They would be marked on functionality, appearance and robustness. All the things that matter in the real world. Which class do you think would win ?

                                      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                      L 2 Replies Last reply
                                      0
                                      • L Lost User

                                        Well, you see (and I did learn about computers form the inside out, bottom up, not at 16, because we didnt have them then, but at 18) actually when learnt at a fundamental level like this it is actually easier to understand the machine then via a high level language like C# (if thats what you were proposing). The first language I learnt was actually BASIC, on a Spectrum. But then I just got hold of one and taught myself. And, depending on what you are programming different languages have different uses. So if I was throwing together a database app talking to a Jet engine I would probably use VB or some such. (Never got involved with the Microsoft javaesque languages and VM so I cant really comment on .Net suitability). Of course if you are anywhere near HW then C and assembler are crucial. And a lot of coding is. Not just in kernels but FW for a lot of devices, plus handhelds.

                                        "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

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

                                        fat_boy wrote:

                                        Of course if you are anywhere near HW then C and assembler are crucial. And a lot of coding is. Not just in kernels but FW for a lot of devices, plus handhelds.

                                        Sure, there's a tiny number of applications still where C and assembler are needed. And for someone who is going to have to take those jobs, it's perhaps arguable that knowing high level languages is of no value. But, why would you assume that a class for beginning programmers should aim for 2% of the possible jobs, and close to zero possibility of the path a hobbyist would take ?

                                        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                        L 1 Reply Last reply
                                        0
                                        • C Christian Graus

                                          To put all this another way. If we each had a class, same age, same background. You taught assembler, I taught C#. In 6 months, our classes enter a programming contest. Each student needs to write the Windows calculator. As well as the functionality found in the windows calculator ( including scientific mode, hex, octal, etc ), the students would be free to add other features as they saw fit. They would be marked on functionality, appearance and robustness. All the things that matter in the real world. Which class do you think would win ?

                                          Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                          L Offline
                                          L Offline
                                          Lost User
                                          wrote on last edited by
                                          #53

                                          If you choose the examination to suit your chosen language then there is no competition Christian. And if you try to implement something on an Arm processor?

                                          "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                                          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