The right programming language to teach...
-
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
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.
-
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.
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... -
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
Teach tongue# :rose:
MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.
-
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..."
-
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..."
In my engineering years, I and my pals were taught computing science with descriptive languages first, then academic languages (Pascal, Eiffel, Gamma), because the teachers knew very well at that time already that being proficient in specialized languages would do pain anytime the environment requires self-adapting. After one whole year of that, along with an understanding of main algorithms and data structures, we were given a staging week to learn C. Then language specialization began depending on your specialty : distributed computing, imaging, artifical intelligence, systems programming, ... From what good I remember, only the first year was worth it. This year contributed most to my ability to adapt a moving world. All what I did later made me a "university-level" specialist of several languages and technologies, but again none of these were actually used in the real world...:((
MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.
-
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
I think C++ is an excellent choice as a beginner language. This is the language that my school starts us out on and most people, including some that have never programmed before, succeed in learning it. I must admit that OO design is difficult for beginners to learn, but, if taught correctly, is not overbearing. A great resource for both teaching and learning C++ is http://www.umr.edu/~jerryh/cs53. The reference notes section of his page is a really good outline for teaching the material. Of course, I could be totally wrong about C++ as a first language. My school is respected as one of the toughest in the state. They could just be using C++ to weed out the students that are doing poorly (and then kick you into VC++ to finish the weeding process). Anyway, this is my 2 cents. Later. Brad Jennings Quoting Lewis Black: "If you're thinking about killing yourself, Rolla's the place to go."
-
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..."
It looks ugly naturally and can be made to look even uglier if you try. Yeah, you aren't kidding. It's humorous to try to write unreadable code though. I don't remember the website but there is a place that actually has a contest to see who can write the most unreadable Perl code. Brad Jennings
-
I think C++ is an excellent choice as a beginner language. This is the language that my school starts us out on and most people, including some that have never programmed before, succeed in learning it. I must admit that OO design is difficult for beginners to learn, but, if taught correctly, is not overbearing. A great resource for both teaching and learning C++ is http://www.umr.edu/~jerryh/cs53. The reference notes section of his page is a really good outline for teaching the material. Of course, I could be totally wrong about C++ as a first language. My school is respected as one of the toughest in the state. They could just be using C++ to weed out the students that are doing poorly (and then kick you into VC++ to finish the weeding process). Anyway, this is my 2 cents. Later. Brad Jennings Quoting Lewis Black: "If you're thinking about killing yourself, Rolla's the place to go."
Brad Jennings wrote: I think C++ is an excellent choice as a beginner language. Agreed. Brad Jennings wrote: I must admit that OO design is difficult for beginners to learn, but, if taught correctly, is not overbearing. The thing is though, you don't neeed to learn OO at day one, it can be gradually introduced. 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.
-
Brad Jennings wrote: I think C++ is an excellent choice as a beginner language. Agreed. Brad Jennings wrote: I must admit that OO design is difficult for beginners to learn, but, if taught correctly, is not overbearing. The thing is though, you don't neeed to learn OO at day one, it can be gradually introduced. 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.
The thing is though, you don't neeed to learn OO at day one, it can be gradually introduced. Agreed. Baby steps are the way to go. Brad Jennings
-
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...Yeah, QBasic is available for download, even from programmersheaven.com The following statement about your geekness is true. The previous statement about your geekness is false. GCS/IT/P d- s: a- C++++$ UL+>++++ P+ L++$ E- W+++$ N !o K+ w++$ O---- M-- PS- PE Y+ PGP--- t !5 X- tv b+++ DI++ D+ G++ e++ h--- r+++
-
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_HelmMichael Dunn wrote: Since she has no coding knowledge at all, stay away from C++. This is true. Michael Dunn wrote: Same reasoning for avoiding C#. I don't really agree there. Java is being used as a teaching language at some universities. C# is similar so it may not be a bad choice. Michael Dunn wrote: I'd say start with BASIC. Eeewww! BASIC is a poor choice to teach someone to program in. There is a lot in it that can breed really bad habits. In fact it's hard to write good wholesome code in it. I think a better choice than BASIC, if you want a good structured non-OO language is Pascal. It was designed specifically as a teaching language. I still wouldn't write off C# or Java though. Why not learn OO from the start?
-
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..."
Domenic [Geekn] wrote: How so? Because most people are taught C with classes, for example using FILE handles and char * instead of std::string and iostreams. int main { string s("This is a string"); cout << s; } is about as simple as it gets IMO Domenic [Geekn] wrote: 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? C# will live, despite it's problems, hence it's worth knowing. C# is fine for what it is, but C++ allows you to teach programming logic without having to teach OO, for example, and C++ also allows you to treat things like strings and files as objects, just as C# does. I think that is the right approach, it's also the approach to C++ that Stroustrup recommends. 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
-
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...I didn't mean you personally, But people like you. :-) 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.
-
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_HelmMichael Dunn wrote: Not Visual Basic, BASIC, where your I/O is as simple as PRINT and INPUT. You still have PRINT and INPUT at Visual Basic 6... "In an organization, each person rises to the level of his own incompetence." Peter's Principle
-
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
Python. Just visit http://www.python.org/doc/Newbies.html It's a usefull experience for you too.
-
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
Hi Domenic What everyone forgets to mentions is that learning any .NET language is a 2 part effort. Namely , C# and .NET Framework. This confused the hell out of me. But after realising I only had to get the syntax of C# right, it was a matter of a month or 2 to perfect the syntax. Then the next logical step is to start exploring the rich .NET framework, whick in any language can be quite scary doin it the 1st time. Now imagine this in a motor car race scenario. Learn to drive iow idling up and down the pits is like learning C#. Now once you can do that, you mite feel you are ready to go onto the race track, iow .NET framework. Now you could have chosen a different car (different .NET language), but u will still need to do the race track. If you have done C# and a bit of "racing the track", the track will be more fimiliar trying to drive it in another car, but remmeber the track stays the same, no matter what car. Now C/C++ and other non .NET languages, each has a different racetrack. It would make sense to chose a .NET language, as you have many different cars to race the track with, even race the track with 2 cars at the same time! I recommend go .NET and chose a language you are comfortable with. I also recommend downloading the "Thinking in (insert language here)" series. I've you (well she) have time, you could finish reading in a week each, with a basic concept of each language. This would be beneficial as each of them has the same style of introducing the language. My 2 cents :) Give them a chance! Do it for the kittens, dear God, the kittens!
-
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
I think the first thing you should consider is what she is hoping to achive by learning a programming language - web development, windows apps, embedded software etc? Phil
-
Michael Dunn wrote: Since she has no coding knowledge at all, stay away from C++. This is true. Michael Dunn wrote: Same reasoning for avoiding C#. I don't really agree there. Java is being used as a teaching language at some universities. C# is similar so it may not be a bad choice. Michael Dunn wrote: I'd say start with BASIC. Eeewww! BASIC is a poor choice to teach someone to program in. There is a lot in it that can breed really bad habits. In fact it's hard to write good wholesome code in it. I think a better choice than BASIC, if you want a good structured non-OO language is Pascal. It was designed specifically as a teaching language. I still wouldn't write off C# or Java though. Why not learn OO from the start?
Most Pascal compilers you can get today is/uses OO. - Anders Money talks, but all mine ever says is "Goodbye!"
-
Hi Domenic What everyone forgets to mentions is that learning any .NET language is a 2 part effort. Namely , C# and .NET Framework. This confused the hell out of me. But after realising I only had to get the syntax of C# right, it was a matter of a month or 2 to perfect the syntax. Then the next logical step is to start exploring the rich .NET framework, whick in any language can be quite scary doin it the 1st time. Now imagine this in a motor car race scenario. Learn to drive iow idling up and down the pits is like learning C#. Now once you can do that, you mite feel you are ready to go onto the race track, iow .NET framework. Now you could have chosen a different car (different .NET language), but u will still need to do the race track. If you have done C# and a bit of "racing the track", the track will be more fimiliar trying to drive it in another car, but remmeber the track stays the same, no matter what car. Now C/C++ and other non .NET languages, each has a different racetrack. It would make sense to chose a .NET language, as you have many different cars to race the track with, even race the track with 2 cars at the same time! I recommend go .NET and chose a language you are comfortable with. I also recommend downloading the "Thinking in (insert language here)" series. I've you (well she) have time, you could finish reading in a week each, with a basic concept of each language. This would be beneficial as each of them has the same style of introducing the language. My 2 cents :) Give them a chance! Do it for the kittens, dear God, the kittens!
I would teach languages with the strict point of view to solve real world customer problems, regardless of the underlying plumbering. So to provide long term skills. Many classes in the .NET framework are reached thanks to their names, and when you know their names are usually rooted because they help solving several-year-old issues, you come with the conclusion that only people who succeed (with tremendous power) are people with knowledge of what Windows programming was before .NET, and what it has become. (for instance, now that COM and visible interfaces are buried, how can a newbie get a marshaling issue to work?). So if we wanted a better platform : - the current MSDN search engine should be thrown to the trashcan, and replaced with a google-enabled one. - hierarchical trees should be well designed ("knowledge facets"), so that depending on your background (you need not have an IT diploma), you get your hands quick on the right stuff. - Java/C#/Eiffel or other clean procedural languages are here to stay. They don't obfuscate the logic, unlike what bloody MS introduced lately with the Attribute-programming style. - functional programming can be of help, but it somewhat requires people to mentally recurse, which itself is often perceived as the technical way of doing it, which is wrong. My -0.5 cent.
MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.
-
In my engineering years, I and my pals were taught computing science with descriptive languages first, then academic languages (Pascal, Eiffel, Gamma), because the teachers knew very well at that time already that being proficient in specialized languages would do pain anytime the environment requires self-adapting. After one whole year of that, along with an understanding of main algorithms and data structures, we were given a staging week to learn C. Then language specialization began depending on your specialty : distributed computing, imaging, artifical intelligence, systems programming, ... From what good I remember, only the first year was worth it. This year contributed most to my ability to adapt a moving world. All what I did later made me a "university-level" specialist of several languages and technologies, but again none of these were actually used in the real world...:((
MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.
I know what you mean. The year after I took the computer graphics classes in college, the Computer Science department switched from using PL/I (this was a long time ago), a procedural language, to Forth. What the hell were they thinking? All of the algorithms were procedural, yet they switch the programming for the class to a non-procedural language. For people that are supposedly the brightest around, they sure were stupid. Gary R. Wheeler