I'd suggest that the first question to ask is whether Jesse's wife is an engineer-type or a liberal-arts-type. And unless she is clearly an enginerd at heart, I'd claim that all of the languages mentioned are horrible choices.
All these languages are top-heavy on obscure and (to normal humans) absurd syntax. (Well, OK, not so much VB, but as someone already pointed out, it's simply an abomination to start with). Ridiculous punctuation requirements just add insult to injury. Inheritance, polymorphism, casts, even typing of variables are all non-intuitive stumbling blocks to simply learning to work out logical sequences of instructions to make the computer do something interesting.
At the other extreme, languages like Logo are dead-simple to learn, but pretty limited in real-world utility. Plus they often don't have the traditional set of control structures or conventional I/O features.
So, in case you haven't guessed already, I would claim that the only readily-available and well-supported language for beginners who just want to 1) learn the elements of programming, and 2) make the computer do some simple-to-moderately-complex things they are interested in, is LiveCode (previously known as Apple's HyperCard).
1) super-easy, English-like programming language (with type-less variables)
2) rich drag&drop GUI builder
3) simple-to-use support for virtually all media types (JPGs, MPEGs, MP3s, HTML)
4) insanely easy methods to read and write files locally or remotely (via FTP or HTTP)
5) easy creation and manipulation of graphical objects (for games or applications that need visualization)
So here's a thought-exercise, which I'd love to actually attempt, if a suitable subject were willing:
You pick your favorite candidate language; I'll pick LiveCode. We each get 90 minutes with the subject. After the 90 minute session, how much can the subject actually do on her own?
Did you laugh out loud at the idea of teaching the subject enough to even do a Hello, World in your favorite language (start to finish, IDE through compiled executable), on her own, in just 90 minutes? Come on, be honest!
I did this at Sector67 this summer, in my LIveCode Summer Camp, with a dozen 9-12 year-olds and their parents. It worked.
<donning asbestos suit>
On Oct 6, 2012, at 9:41 PM, Scott Fradkin <sc...@fradkin.com> wrote:
> I would suggest Ruby. Ruby isn't as hard to learn as other languages. Tryruby.com or hackety.com (hackety hack) for resources. Ruby is a nice hybrid language so you get elements of a Perl/C like syntax mixed with the usefulness of a functional language.
> Java isn't really that hard, but at this point in time it may not be as useful as other languages.
> That being said, I don't know if there's really a "perfect" language for beginners. (Well, maybe Smalltalk) Each language has its pros and cons and idiosyncrasies. There's a book from the Pragmatic Programmers called "Seven Languages on Seven Weeks". It's a survey of seven different languages. It might be a good read for a beginner just to see how languages can be different.
> Also, different languages could appeal differently to each person, so a language that you or I think is great could be considered horrible by someone else.
> On Oct 6, 2012, at 9:18 PM, Bob Baddeley <bob.badde...@gmail.com> wrote:
>> Codeacademy also does python, so there's that.
>> n 10/06/2012 09:12 PM, Jesse Robinson wrote:
>>> I'm thinking VB.net or C# only because I think Visual Studio makes it easier to learn a language and also gives you quick gratification because of the auto gui it does. Just drop a button on a form, double click, add some code and you can see what it does. I'm leaning VB vs C# only because then she could possibly use her skills as vb scripts in excel.
>>> I have some good Java books, but I'm worried that Java is too hard to be a first language. Other thoughts were maybe Python, but I have no experience in Python so I wouldn't be able to help, and I don't know what experience it offers. I know lots of plugins and scripts for other programs are written in it, but don't know how standalone it is for her to learn.
>>> Also thought about processing, so maybe she could do Arduino work. She has no interest in hardware so there is no reason for her to learn that then.
>>> Any other suggestions?
>>> Also anyone know any good free courses online for one of these? I found some python ones, but not a C# or VB one.
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.