It may be frowned upon around here... but when my friends asked me to point them in the right direction to learn programming I just gave them a copy of "Beggining Visual Basic", showed them some simple code and how to make a simple app with VS.
It may not be the best language around, but it's simple and you can make something that works in Windows ridiculously easy. If they show continuous interest, then they will hear about some other languages but most people just want to see something working with buttons and text boxes and then after a few weeks they lose interest.
It's like going to the gym, some of us love it but it's not for everybody. And if it's your first time, don't spend time with a complex routine... just run on the treadmill until you feel tired. If you like how it feels, then you will keep coming back, and if you don't, you didn't waste time doing the advanced exercises that are useless without continuous workouts.
Disclaimer: I told them that programming serious applications takes a lot of time, hard work and lots of reading and practicing. They just wanted to make toy applications. They were instructed to never deal with secure applications or production critical applications until reaching programming enlightement.
I started on VB. The whole "it rots your brain" argument is complete bullshit - there's nothing to keep you motivated through the hours (years) of work it takes to become a good developer like a programming language that lets you create a functional GUI in a few hours.
> I started on VB. The whole "it rots your brain" argument is complete bullshit
I started with Applesoft BASIC on the Apple II series and I'm not so sure about the bullshitness of the argument. Dijkstra was not talking about VB at the time. It's nearly impossible to explain recursion in terms of "classic" BASIC.
I'm lucky I also learned C and FORTH (through the wonderful GraFORTH environment). Because of that, the quality of my Basic code (my first job was programming educational software for Apple IIs) was much increased.
In order to properly assess the damage, you must ask yourself how comfortable you feel with concepts that cannot be expressed in your first (or "native") language.
Sure, but these days, Lua is almost certainly a better alternative, and actually provides neat things like first class function closures while maintaining it's simplicity.
What is more important is about easy learning and generated interest. VB provided a simplistic and verbose language which makes easy to understand and it pretty easy to learn.
I love C#, but I probably wouldn't recommend its power for someone only touching the basics and making simple things.
It may not be the best language around, but it's simple and you can make something that works in Windows ridiculously easy. If they show continuous interest, then they will hear about some other languages but most people just want to see something working with buttons and text boxes and then after a few weeks they lose interest.
It's like going to the gym, some of us love it but it's not for everybody. And if it's your first time, don't spend time with a complex routine... just run on the treadmill until you feel tired. If you like how it feels, then you will keep coming back, and if you don't, you didn't waste time doing the advanced exercises that are useless without continuous workouts.
Disclaimer: I told them that programming serious applications takes a lot of time, hard work and lots of reading and practicing. They just wanted to make toy applications. They were instructed to never deal with secure applications or production critical applications until reaching programming enlightement.