The right programming language to teach...
-
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
While I agree that it would be nice to teach her C++ right away, especially since she seems to be able to learn it (lucky guy - what a treasure), I wouldn't recommend it. Money is bound to be an issue for a young person, and VC++ isn't cheap. On the other hand, Javascript has a c-like syntax, contains most of the important elements of higher level languages, and it's free for anyone with a Windows computer with Internet Explorer installed. Despite all the hair splitting that goes on around here about 'real' programming, a program is a set of instructions written in a defined format that make a computer do interesting and useful things. Javascript is no less a programming language than VC++, and the similarity in sytax will make the jump to C++ easier for her later. If she wants something more flexible and challenging, migrating to Java will add power and new concepts to her learning experience, and poise her on the edge of jumping into C++, still without costing a dime. And if that only whets her appetite for more, you can let her visit your computer to learn C++! Of course, I'm no expert on learning computer languages, either. My first was Assembly, and all I had to work with were the Intel 8080 chip data sheets and a pencil. Word of the day: Rotundacrat
Extra Credit will be awarded for: Quasimobo... -
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_HelmI 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... -
While I agree that it would be nice to teach her C++ right away, especially since she seems to be able to learn it (lucky guy - what a treasure), I wouldn't recommend it. Money is bound to be an issue for a young person, and VC++ isn't cheap. On the other hand, Javascript has a c-like syntax, contains most of the important elements of higher level languages, and it's free for anyone with a Windows computer with Internet Explorer installed. Despite all the hair splitting that goes on around here about 'real' programming, a program is a set of instructions written in a defined format that make a computer do interesting and useful things. Javascript is no less a programming language than VC++, and the similarity in sytax will make the jump to C++ easier for her later. If she wants something more flexible and challenging, migrating to Java will add power and new concepts to her learning experience, and poise her on the edge of jumping into C++, still without costing a dime. And if that only whets her appetite for more, you can let her visit your computer to learn C++! Of course, I'm no expert on learning computer languages, either. My first was Assembly, and all I had to work with were the Intel 8080 chip data sheets and a pencil. Word of the day: Rotundacrat
Extra Credit will be awarded for: Quasimobo...Roger Wright wrote: VC++ isn't cheap. I forgot to add that: I have a copy of VS.NET Academic, which has activated itself on three different computers so far... :-D Does that change your opinion? And I assume your utter exclusion of C# means you think it'd be a bad idea, why? JavaScript does make some sense, but I'm always concerned about the problems of type unsafeness and other lenient evilnesses. I hate it when I see stuff like
var test = "5"; test *= 3; test += "2";
. I dunno, you still bring up a good point, and JavaScript certainly seems a lot more useful than BASIC.-Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
-
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: Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Very good point that I'd forgotten. It was quite interesting when I learned
cout
in chapter one,<<
in chapter three, and the reason why it all worked in chapter 13. Michael Dunn wrote: Same reasoning for avoiding C#. I beg to disagree here. Doing anything in C# (at least if your using a decent reference book) requires the use of classes and at least some rudimentary OO (fields, methods, and namespace acces at the very least). Yes, you can simply "parrot"using namespace System;
class MyApp
{
void Main()
{
Console.Write("Hello, Universe!");
}
}, but it's a lot harder. A good book (or teacher) will have to explain what namespaces are, what classes are, what
Main()
is, and why it'sConsole.Write
instead of simplyWrite
. Whereas in C++, all you need to know is thatcout <<
is magic and perhaps you'll get a small explanation of namespaces. Agree/disagree? Michael Dunn wrote: I'd say start with BASIC. Well, the immediate problem with that is that BASIC was before my time, and consequently I don't know it. :-O In terms of programming languages, I've got C++, C#, Perl, and PHP4. :rolleyes: That's why my more basic (no pun intended) options were all web technologies.-Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
-
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...Well, MS included QBASIC and/or GWBASIC with old versions of DOS. I'd be surprised if they weren't available (or clones of those interpreters) on the net somewhere. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm
-
Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were
C++ is perfect because it hides complexity ( when taught properly ), and then scales well as the student gets more advanced. Failing that, I'd suggest C# because it's a language that's likely to be around for a while, and is similar enough to C++ that the transition would be painless. If you want simple, without the stigma of VB, I'd agree with Javascript, or maybe Python. But I'd always start with C++, teach it right, and fall back to a 'dumb' language only if need be. Christian Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002 During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
-
Michael Dunn wrote: Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Very good point that I'd forgotten. It was quite interesting when I learned
cout
in chapter one,<<
in chapter three, and the reason why it all worked in chapter 13. Michael Dunn wrote: Same reasoning for avoiding C#. I beg to disagree here. Doing anything in C# (at least if your using a decent reference book) requires the use of classes and at least some rudimentary OO (fields, methods, and namespace acces at the very least). Yes, you can simply "parrot"using namespace System;
class MyApp
{
void Main()
{
Console.Write("Hello, Universe!");
}
}, but it's a lot harder. A good book (or teacher) will have to explain what namespaces are, what classes are, what
Main()
is, and why it'sConsole.Write
instead of simplyWrite
. Whereas in C++, all you need to know is thatcout <<
is magic and perhaps you'll get a small explanation of namespaces. Agree/disagree? Michael Dunn wrote: I'd say start with BASIC. Well, the immediate problem with that is that BASIC was before my time, and consequently I don't know it. :-O In terms of programming languages, I've got C++, C#, Perl, and PHP4. :rolleyes: That's why my more basic (no pun intended) options were all web technologies.-Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
Domenic [Geekn] wrote: Agree/disagree? Disagree, because when teaching someone with no coding experience, all extraneous noise should be removed. I don't know if you've ever taken a beginning programming course, but even the littlest complication (such as, say, when to use an
&
before a variable withscanf()
) can cause headaches. I've seen newbies get totally flustered on little syntax points in C, when they should be focusing on developing skills like writing code with good logic flow. In BASIC, you can show somebody10 INPUT "What's your name?", NAME$
20 PRINT "Well hi there" NAME$and it's so bloody simple that they learn it right away. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm
-
Domenic [Geekn] wrote: Agree/disagree? Disagree, because when teaching someone with no coding experience, all extraneous noise should be removed. I don't know if you've ever taken a beginning programming course, but even the littlest complication (such as, say, when to use an
&
before a variable withscanf()
) can cause headaches. I've seen newbies get totally flustered on little syntax points in C, when they should be focusing on developing skills like writing code with good logic flow. In BASIC, you can show somebody10 INPUT "What's your name?", NAME$
20 PRINT "Well hi there" NAME$and it's so bloody simple that they learn it right away. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm
Michael Dunn wrote: I don't know if you've ever taken a beginning programming course Nope :-D Just me and my good buddy, Beginning C++. The times we had... Michael Dunn wrote: I've seen newbies get totally flustered on little syntax points in C, when they should be focusing on developing skills like writing code with good logic flow. Another good point. I'm beginning to see that understanding of basic concepts should be ingrained first, in my case through XHTML then JavaScript, but perhaps BASIC in this case. Only after that comes "real code," with syntax. This is really good, because I never would've thought that through on my own. I'm thinking at this point to take the opinions found here and just present them as options, because they're all justified well.
-Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
-
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
Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Regardz Colin J Davies
Sonork ID 100.9197:Colin
You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.
-
C++ is perfect because it hides complexity ( when taught properly ), and then scales well as the student gets more advanced. Failing that, I'd suggest C# because it's a language that's likely to be around for a while, and is similar enough to C++ that the transition would be painless. If you want simple, without the stigma of VB, I'd agree with Javascript, or maybe Python. But I'd always start with C++, teach it right, and fall back to a 'dumb' language only if need be. Christian Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002 During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
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..."
-
Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Regardz Colin J Davies
Sonork ID 100.9197:Colin
You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.
Colin^Davies wrote: Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Stop making me laugh! I'm afraid to look at any of your messages in a public place nowadays! ;P Colin^Davies wrote: Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Well, C is out because it's evil and non-typesafe and not as useful or powerful as C++. FORTRAN is out because I have never seen a line of FORTRAN code in my life. So between C++ and C#, do you have an opinion? Thanks.
-Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
-
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 might be chastised for suggesting this, but how about trying Perl? I know, I know, technically it's a scripting language, but it does give all the basics of programming, so someone can learn the concepts. And then move onto C++ with the concepts of objects, etc (all the hard things), instead of just the
$i = 0
non-type-specific concepts (gah, that doesn't make sense, but you know what i mean!). Maybe just C# (or even Java (gasp!). I've never used C#, but I do know Java, which I found is an easier (to learn) version of C++. My 2cents. -
Colin^Davies wrote: Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Stop making me laugh! I'm afraid to look at any of your messages in a public place nowadays! ;P Colin^Davies wrote: Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Well, C is out because it's evil and non-typesafe and not as useful or powerful as C++. FORTRAN is out because I have never seen a line of FORTRAN code in my life. So between C++ and C#, do you have an opinion? Thanks.
-Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
Domenic [Geekn] wrote: So between C++ and C#, do you have an opinion? I think C++ ers can switch to C# OK, and C# learners should be able to upgrade when necessary. So maybe it's which you are most comfortable with as a teacher. Regardz Colin J Davies
Sonork ID 100.9197:Colin
You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.
-
Don't teach her BASIC, Learning something like BASIC or Pascal can ruin people for life. It's like forcing babies to walk before there time. Good languages to start with are C, C++ C# of FORTRAN. Programming isn't meant to be easy to start with. Regardz Colin J Davies
Sonork ID 100.9197:Colin
You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.
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
-
I might be chastised for suggesting this, but how about trying Perl? I know, I know, technically it's a scripting language, but it does give all the basics of programming, so someone can learn the concepts. And then move onto C++ with the concepts of objects, etc (all the hard things), instead of just the
$i = 0
non-type-specific concepts (gah, that doesn't make sense, but you know what i mean!). Maybe just C# (or even Java (gasp!). I've never used C#, but I do know Java, which I found is an easier (to learn) version of C++. My 2cents.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..."
-
Roger Wright wrote: VC++ isn't cheap. I forgot to add that: I have a copy of VS.NET Academic, which has activated itself on three different computers so far... :-D Does that change your opinion? And I assume your utter exclusion of C# means you think it'd be a bad idea, why? JavaScript does make some sense, but I'm always concerned about the problems of type unsafeness and other lenient evilnesses. I hate it when I see stuff like
var test = "5"; test *= 3; test += "2";
. I dunno, you still bring up a good point, and JavaScript certainly seems a lot more useful than BASIC.-Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
Domenic [Geekn] wrote: Does that change your opinion? Not really. I still think that the Javascript/Java/C++ scenario makes a logical progression for learning. I don't know enough about C# to have a valid opinion, so I'll venture none. I do know that C++ (especially as implemented in Windows/VS) is utterly baffling and difficult to comprehend compared to the dozen or so other languages I've mastered easily. I even like assembly and RTL - compared to VC++ they're easy, and I'd hate to see you scare off someone that has promise with unnecessary irrelevant confusion. Word of the day: Rotundacrat
Extra Credit will be awarded for: Quasimobo... -
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..."