First programming language for high school students?
-
When your father taught you to drive, did he start with the chemical reactions of gasoline molecules involved in combustion? Chances are he didn't even bother with the principles of internal combustion. Point being, you can learn this stuff afterward--and in fact if it turns out he really is interested I would fully recommend learning the nitty gritty details of computers--but how it works is not how to use it, and laying this stuff on him will accomplish nothing but tax his memory. And now for a random psychological thought: the human mind needs order and structure to learn. If you start laying a bunch of lower principles on him, without having a logical place (i.e. understanding) to store that information, he will just have to try to remember it all without understanding its purpose (remember cramming for exams?). On the other hand, if you start with the purpose, the reasoning and the big picture, he can start to build that tree up in his mind and put the branches where they belong--and this time because it's (forgive the pun) rooted, they'll stay there.
“Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’) Built with home-grown CodeProject components! -”-”-
While I somewhat agree with the "jump in and drive" notion, programming is going to range from "Mechanic" to "Engineer working on NewPanaceaEngine #45," whereas driving gets you into your editor. If you have a good understanding of either Java or C# (especially in terms of how they manage memory for you, which will be important once you're working on algorithm implementation... probably sooner than one might think) they can be good learner-languages because they provide a VERY easy starting point, both can transition to a GUI quickly, both are applicable almost everywhere (too clunky for ad-hoc scripts, for example, but that's hardly something to worry about when you're trying to get started), and both have a nice $0 price tag complete with some nice development helpers. It's really just a matter of "pick your poison" as far as if you want to be locked into MS for a while, or locked into Sun for a while. Personally I'd go with C/C++ though- all the power you need if he really dives into things and wants to learn all that lower-level stuff the runtime languages have decided to shield you from, but easy to pare down to a simple subset for getting one's feet wet without being overwhelmed. Graphics might be a bit of a stumbling block (but really, anything more complex than a form is tricky no matter what you're writing in), but the ability to do almost any "type" of programming (OO, functional, assembler...) without changing your "base" language is a big plus IMO.
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
In my humble opinion the first language you should teach him is flow charting on paper. I know none of us actually do that anymore, but he needs to understand structure & logic of problem solving on the computer before he jumps into any language. If he can flowchart the problem using the common elements of computer languages it will not matter which language he uses. Languages are fundamentally the same, differing only in syntax, strictness and ease of use. Much like wives and girl friends are fundamentally the same, but each one is different. You have to learn the core rules of dealing with the opposite sex and then how to interface with each one. Now if you come up with a teaching program for that problem please post it!
-
killabyte wrote:
or Object Pascal for a first syntax to learn
Why on earth would you teach somebody just learning programming a dead language? Pascal hasn't been used in years. That's like teaching a baby Latin! Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do. I mean if he has trouble grasping it or it is too much of an overload maybe you could simplify things by breaking it down and focusing on a very simple language. I'll admit the initial overhead of C# (i.e. setting up classes, a static Main method, etc.) could be intimidating but you could always just say "ignore this for now and I'll explain it later". :) Just my 2 cents.
“Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’) Built with home-grown CodeProject components! -”-”-
logan1337 wrote:
Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do.
Because it sidesteps the holy war between the window and *nix camps. The 'official' compiler when I started college in 99 was borlands. IT was a compromise between the two camps. Past 'CS101' everyone either used GCC or VC6 as personal preference and targeted platform dictated. It was fun once, we had a comparative programming assignment where everyone wrote the same app and then evaluated each others code. The version of VC6 and the version of GCC being used disagreed on namespace issues. Unless you knew about it in advance and used the preprocessor to work around it there wasn't any cross platform compatibility. :doh:
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
When helping a student (high school) to choose which lanaguge to learn first, a meaningful analogy can and should be drawn between that student choosing his first computer language to learn and his first foreign language to learn. Which language is better for his career is irrelevant he will get to that soon enough. If my son chooses to learn Greek not Spanish I will be enthusiastic. If he wants to learn Turbo or XQuery I will also be enthusiastic. Why, because his enthsusiastic and free choice, not based on pragmatism, but his curiosity and intuition will help him continue down what hopefully be a very enjoyable and exciting journey. With that in mind, when choosing which language to "take" aka learn, what the young student needs is a "course" catalog elucidating the differences (benefits and qualities) between as many of the languages as possible. A resource such as: http://www2.latech.edu/~acm/HelloWorld.shtml or http://home.nvg.org/~sk/lang/lang.html are ideal. And these are only two examples from a quick search on DMOZ under http://www.dmoz.org/Computers/Programming/Languages/Comparison_and_Review/ Therefore, I think by and far the best (most enjoyable and educational for the student) help that a parent can give their child whom is choosing their first language to learn is to give them as descriptive a "catalog" with as many languages as you can find. So they can be excited about the decision they as what will always be (looked back upon many years later) as their first (perhaps of many) language.
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
I think you should start your son off with a functional Language. Yes I know, this is the religious war you were talking about avoiding. But if the Idea is to present him with the essence of what we do; IMHO that is a basic understanding of the implementations of algorythms, there is nothing that makes it clearer than a functional langusge. Yes, I kno it's not going to directly prepare him for a J-O-B, but he's in the 9th grade. As to which one, I personally favor Haskell.
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
IMO, every student should be forced to take a logic course before being taught any language. Logic is the basis for every programming language. If you don't know it, then you can't really learn howto program. If, then, else, and, or, nand, nor, xor. If you don't understand all of these concepts (and I truely mean understand them), you will never be a quality programmer. IMO, basic (not necessarily Visual) is the simplest implementation of logic out of any of the other languages. I would suggest teaching logic using basic initially. Followed by teaching application structure in various languages starting with Basic/VB, C, C++, C#, and last but not least, HTML. After that, they can choose which language (if any) they want to delve into in depth.
-
logan1337 wrote:
Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do.
Because it sidesteps the holy war between the window and *nix camps. The 'official' compiler when I started college in 99 was borlands. IT was a compromise between the two camps. Past 'CS101' everyone either used GCC or VC6 as personal preference and targeted platform dictated. It was fun once, we had a comparative programming assignment where everyone wrote the same app and then evaluated each others code. The version of VC6 and the version of GCC being used disagreed on namespace issues. Unless you knew about it in advance and used the preprocessor to work around it there wasn't any cross platform compatibility. :doh:
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall
dan neely wrote:
Because it sidesteps the holy war between the window and *nix camps.
Yes, that's a good point I hadn't thought of. I guess ideally we would have "standard" languages for programming like we do for XHTML, XML, etc.
“Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’) Built with home-grown CodeProject components! -”-”-
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
Take a look at this: http://phrogram.com/[^] My 14 year old loved the predicessor to www.phrogram.com which was www.kidsprogramminglanguage.com. I may need to buy this new version. As said in a previous post, kids (all learners) need to get some immediate gratification in order to build confidence and excitement. Once you accomplish that, their own motivations will take them far. I like this approach because at its core is the .NET framework. The writers have gone through a lot of effort to make the experience very visual. The point is that syntax is 2nd to helping someone get familiar with constructs. Teach the power of an "if" statement or a "loop" and don't get caught up in "curly backets or not" :doh: discussion. In KPL, you could dig down into the "real" code. I haven't investigated this version to see if that is allowed. Yes, a smart kid will get bored with the high-level language this provides, but the tool should allow them to go deep if they want. Use this tool to build their learning context. This tool introduces concepts that become complicated very quickly if they are trying to accomplish the task raw. Ever try to go directly at DirectX to produce a 3D game? Not entry level. However, this introduces the concepts, helps the kid build some momentum and lets them have some fun. Then, if they love it, they can take it head-on and will have established a context from which they can work. Good luck. The best teacher isn't the one who gives all the answers; its the one who asks the best questions. :-\
Joel Palmer Data Integration Engineer
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
vb.net is one of the best choices to learn programming and to produce applications faster. After seeing a complete application done easily kids would be impressed and attracted more and more by programming world. Through the years and when the experience grows the little programmer will have a better idea about what he/she wants ( kind of programming he/she prefers). In addition, it will be clear to him that there are more sphisticated programming languages and more powerful ones to do advanced tasks. I think that learning VB.NET or C# at the beginning and then to move to C/C++ to have full power ;)
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
For complete beginners (as I was ;) ) I recommend AutoHotkey. Although a script-language, it has everything but shiny graphics: advanced+easy GUI making (easier than MFC ;P ), very good file manipulation (great with text files), simple sound, PLUS, it can compile scripts to exe (what more do you need?). You should see what some people have done with it, in fact you can do anything that ntdll.dll or any other system dll has exported function for (pointers and buffers, no problemo), plus some COM stuff. That's basics, as a next step toward geekness, c++ is the one and only way.:cool:
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
I'd say teach him anything object oriented and try to use visual drawings to represent classes and objects. I agree with the people who said instant gratification is the key. I've found myself in many a situation where i'm trying to learn something and i've become quickly disinterested becuase i wasn't getting anywhere with it. I started off with c++ but didn't really get it. Then i started learning java and programming started to to make a little more sense to me and i understood why hello world was showing up on my screen by didn't understand how it was drawn yet. then i went to visual basic and started understanding logic better. I did a little web development project in PHP and really got a good understanding of logic. I finally graduated college, had to learn C# at my first job and now i can teach programming if i wanted to. I think that for anyone, if they're interested enough, as long as the understand programming logic they can easily learn any language. another suggestion is the use pseudocode techniques too help understand the logic that's going on. One learning tool i've used was a tool that let me drag objects on a screen and connect them to create a flow of logic. i think that was the biggest "boulder" to help knock the barrier between me and programming. it's called Visual Logic - http://www.visuallogic.org/[^]. I think you should definitely try this tool.
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
QBasic. Sidestep the whole Windows GUI thing altogether until he's ready for it. Download a whole bunch of QBasic games that he can play with, and if he wants to modify variables while playing, he can hit Ctrl-Break to change values on the fly. My first experiments with programming were changing how much energy I had left in Star Trek games in gw-basic (avoid that, he'll thank you for the GUI in the programming interface). There was even a game I enjoyed called "Archie" (the cockroach main character of the game) that explained some basic programming concepts in-game (the spaghetti code explanation still sticks with me). As he mods games, he'll gain an understanding of how they were put together, and he'll have plenty of source code to base his own ideas on. Eventually he'll grow tired of the limitations of the language. He'll want to do different things with variables that QBasic doesn't make easy. When he gets to this stage, it's the perfect time to springboard him into C++. When you introduce pointers, it'll be that much more real to him, because he will be able to see how they would have been useful in QBasic. Ditto for classes and the like (actually, years after the fact, I returned to QBasic and discovered that it did, in fact, have user-defined datatypes, which I would have liked to know what they were at the time). And after he's made a few of his own interfaces, he'll learn to appreciate the value of having newer languages make GUIs easy. Or maybe that was just me. :)
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
Just so you know, I'm currently 15 (at time of writing - 02/07/08) and I would personally recommend, as a first language, any of the 'Basic' family of languages. Not that I'm a particular VB .NET fan (I started programming before the release of .NET express editions so I didn't use it first), but I think that it is by far the most readable to a non-programmer and just by looking at a portion of code e.g.
If Str.Equals(OtherString) Then
' Do action
End Ifit is clearly obvious what the code does! Also, for that matter, .NET has excellent RAD capability and no one wants to start learning to program on the console (although I did...) as most fun or simple programs look a lot better and seem more fun with a GUI... Also, for that matter, the .NET languages also work on Linux and OS X via Mono[^] so they suit both platforms... After VB .NET, C# is an obvious progression at least temporarily and it is worth learning to be able to write both as one is normally better than the other for most projects... Finally, with a bit more experience, I found that scripting for websites is also a nice thing to learn as it helps with your syntax for languages such as C# if you learn PHP or Perl. The other obvious choices are Python and Ruby as they are rising fast and being used everywhere... (although Python is already used everywhere :-D ) Python, while being fairly easy to understand, is used everywhere and, as a quick and simple way to learn python for younger users, Guido van Robot[^] is an option which is a beginner's language based on python! Finally, I hope my fairly lengthy response has helped and maybe been of some use to you! Best of luck, TechKid P.S. As a side note, don't go for what I did which is to learn windows shell scripting and C++ first (many years ago) because, though it worked for me, it induced a large time delay as C++ is not very GUI friendly compared to the .NET languages. Since we have such useful and simple languages available now (which I didn't then), it is probably worth starting with one of them :-D
-
Sorry, I've at least had the decency to point out both my opinion and personal experience that lead to this opinion. If you feel that's bullshit, fine. If you could provide arguments as to why this is bullshit, all the better. I might consider it worthwhile, I'm not perfect after all. But please stop flaming, thank you.
Ignore him, he sounds like a dolt. My point is that there needs to be something that sparks interest and it must be easy at first. Without that initial spark of interest nothing in the world will cause that person to want to go through all the painful lessons of being a good programmer. You need to get them interested in an easy way and then let them take off with it on their own (learning the hard bits) or drop it if they have no further interest. People of all ages need the initial impression that something is easy and fun before they will take take it any further.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
-
I strongly advise against assembler. It lacks the structure of higher languages and without knowing how to properly design and structure a system you won't really learn a lot by mastering assembler! Assembler was my second language (after Pascal, and before Basic, and I know what I'm talking about - I'd never had been able to write an assembler program longer than a few hundred lines without the knowledge to properly design it first!
Stefan63 wrote:
I strongly advise against assembler. It lacks the structure of higher languages and without knowing how to properly design and structure a system you won't really learn a lot by mastering assembler!
Totally agree. I wrote some pretty lame assembly programs in school until I realized that I could write out BASIC pseudocode programs and translate the statements to their assembly counterparts. Raw assembly is very hard to get your head wrapped around without suitable context, either through a high-level language or very intimate knowledge of the underlying hardware.
Imagine that you are hired to build a bridge over a river which gets slightly wider every day; sometimes it shrinks but nobody can predict when. Your client provides no concrete or steel, only timber and cut stone (but they won't tell you what kind). The coefficient of gravity changes randomly from hour to hour, as does the viscosity of air. Your only tools are a hacksaw, a chainsaw, a rubber mallet, and a length of rope. Welcome to my world. -Me explaining my job to an engineer
-
QBasic. Sidestep the whole Windows GUI thing altogether until he's ready for it. Download a whole bunch of QBasic games that he can play with, and if he wants to modify variables while playing, he can hit Ctrl-Break to change values on the fly. My first experiments with programming were changing how much energy I had left in Star Trek games in gw-basic (avoid that, he'll thank you for the GUI in the programming interface). There was even a game I enjoyed called "Archie" (the cockroach main character of the game) that explained some basic programming concepts in-game (the spaghetti code explanation still sticks with me). As he mods games, he'll gain an understanding of how they were put together, and he'll have plenty of source code to base his own ideas on. Eventually he'll grow tired of the limitations of the language. He'll want to do different things with variables that QBasic doesn't make easy. When he gets to this stage, it's the perfect time to springboard him into C++. When you introduce pointers, it'll be that much more real to him, because he will be able to see how they would have been useful in QBasic. Ditto for classes and the like (actually, years after the fact, I returned to QBasic and discovered that it did, in fact, have user-defined datatypes, which I would have liked to know what they were at the time). And after he's made a few of his own interfaces, he'll learn to appreciate the value of having newer languages make GUIs easy. Or maybe that was just me. :)
Not just you. I broke out of QBASIC into VB5 because I was tired of writing my own graphics routines and trying to handle mouse and keyboard interrupts sucked. I broke out of VB6 to VC++6 because I was tired of trying to work with API declarations that bluescreened my system if I set them up incorrectly. I broke out of VC++6 to C# because I was tired of being stymied by MFC every time I tried to set up a simple GUI.
Imagine that you are hired to build a bridge over a river which gets slightly wider every day; sometimes it shrinks but nobody can predict when. Your client provides no concrete or steel, only timber and cut stone (but they won't tell you what kind). The coefficient of gravity changes randomly from hour to hour, as does the viscosity of air. Your only tools are a hacksaw, a chainsaw, a rubber mallet, and a length of rope. Welcome to my world. -Me explaining my job to an engineer
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David
-
killabyte wrote:
or Object Pascal for a first syntax to learn
Why on earth would you teach somebody just learning programming a dead language? Pascal hasn't been used in years. That's like teaching a baby Latin! Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do. I mean if he has trouble grasping it or it is too much of an overload maybe you could simplify things by breaking it down and focusing on a very simple language. I'll admit the initial overhead of C# (i.e. setting up classes, a static Main method, etc.) could be intimidating but you could always just say "ignore this for now and I'll explain it later". :) Just my 2 cents.
“Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’) Built with home-grown CodeProject components! -”-”-
well imho the syntax is quite seperate from the fundamentals of programming, i cited VB & Object Pascal because the syntax is easily interpretable for an absolute beginner and thus the concepts behind the code can be explained more easily. In the end a good programmer can pick up ANY syntax and tool set and produce a product from it. hell you wana talk dead languages i had to teach myself COBOL to maintain legacy code a while back and dare i say it but when they stopped making compilers for that i was still in nappies. programming fundamentally is a way of thinking, the syntax is just the medium by which u communicate with the 1s and 0s.
-
I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David