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