Y’know, something else that teaches programming in a really fun way is Lego Mindstorms. It’s kind of expensive to get into, though - I think the basic package runs $150 or so. Basically, it’s Legos with a processor, and it comes with a visual programming environment. You build a robot with the legos (it comes with some motors and such) then program it using a Windows based programming environment. It’s pretty cool, if he can stomach the initial investment.
Y’know, something else that teaches programming in a really fun way is Lego Mindstorms. It’s kind of expensive to get into, though - I think the basic package runs $150 or so. Basically, it’s Legos with a processor, and it comes with a visual programming environment. You build a robot with the legos (it comes with some motors and such) then program it using a Windows based programming environment. It’s pretty cool, if he can stomach the initial investment.
I don’t know why this didn’t occur to me before, but if you’re looking for something really basic, how about Logo? It’s kind of limited in what you can do with it (though apparently you can do a lot more now than just move a turtle around the screen) and the language is a subset of Lisp, of which there are manifold varieties to expand into if he decides he wants to do more.
Stranger
You can download Borland turbo C++ without the Integrated development environment for free. There are a huge number of C and C++ turtorial web pages.
You also must get a good text editor. I recomend downloading either Vim or emacs. Textpad is also available for free in a trial mode that is just a nag screen. All three of these do good contextual color coding of the text.
Windows versions of these are available.
Bah that did not make sense.
Textpad if you don’t register it will show a nag screen when you launch it. It is fully functional and does not expire.
You don’t need to spend anymoney to get good programming tools.
A simple version of BASIC is what I am referring to. An intepreter is all that is needed to run the code, no external libraries or anything like that.
To me, an IDE is more confusing then just typing interpreter progcode on the command line, and watching the output.
If you’re going to learn OOP for the first time, don’t fuck around with C++; it’s way too tortured and confusing for someone unfamiliar with programming concepts. I’d just go get a good book from the library on JAVA, and go to eclipse.org and get IBM’s Eclipse development environment. Plus, they have fun exercises like Code Rally and Code Ruler that are really interesting.
I’d go with some kind of freeware Pascal compiler for procedural programming- Pascal was written as an instructional language, so it’s pretty rigorous in terms of what you can and can’t do, while something like C lets you do anything you damn well please, consequences be damned. Pascal also has the advantage of being pretty modern in terms of program structure and data typing, unlike many scripting languages and older ones (BASIC, COBOL, etc…)
Just want to add my uneducated opinion - but I’m an idiot when it comes to math-y things and can barely grasp Javascript (I’m a journalist by education), but I was able to learn VB without any formal training. To me, it’s the MOST like … English.
I also suggest before your friend buys a book he might be wise to just use what is available for free online first. He may really latch on to something and really understand what he’s reading, and be able to follow online examples and THEN buy a book to enhance what he’s already found.
Oh and if your friend’s a student, he can probably get a very cheap (or free) copy of Visual Studio and maybe VS.NET too.
If he’s interested in .NET, by the way… there’s a free tool (vs.net is horribly expensive) http://www.asp.net/webmatrix/default.aspx?tabIndex=4&tabId=46 There’s also alot of free asp.net apps that he could download and de-construct, if he’s interested in that sort of programming.
Best of luck!
vb.net 2005 express, look for it at msdn.microsoft.com, it’s free too.
I’m finding the book “Game Programming For Teens” By Maneesh Sethi (Published by Premier Press) pretty helpful. It teaches Basic (more specifically Blitz Basic, which is very similar in syntax and logic to C/C++), and is obviously written so for youngish people just beginning so it’s very easy to understand and keep your attention. Plus, it’s applying the concepts to games you can play, rather than boring old business applications, which makes it pretty fun. The book is only $30 and includes the demo version of Blitz Basic, which allows you to run the code (but not compile it into an executable), and never expires.
Ok, the book is Big Java by Cay Horstmann. It begins very very simple. There isn’t actually a CD with it. The web site of the book is
http://he-cda.wiley.com/WileyCDA/HigherEdTitle/productCd-0471697036.html
The one I have is the first ed, but the general info stand.
I like the book because it takes sucha great approach to teaching. Instead of giving you a code snippet and saying “this does blah”, this book actually tells you what exactly you are doing. Anyway, if you want it, let me know and I’ll put it in a box.
Visual C++ Express and Visual C# Express are also free. Personally, I’d recommend C# instead of VB; these days, there isn’t much difference besides the amount of typing you need to do.
Learning code requires a combination of aptitude, motivation, and opportunity. Motivation is one of the hardest things to find… you need a reason to code. If your friend starts out creating something he’s familiar with… say, web pages… his motivation may take him farther than he’d get making toy programs in Visual Basic. If he’s your friend, I’d suggest being a real friend and help him create an opportunity to start with the LAMP platform (Linux, Apache, mySql, PHP) in as small steps as he can handle.
If you’re stipulating something that is dumbed down for a beginner who has a learning disability, really the best thing to suggest is something like pottery or sewing. Tackling computational concepts requires that one is willing and able to exert a certain amount of mental effort. If someone is frightened by shell prompts, curly braces, and semicolons probably will not do well with symbolic logic inherent to programming.
It’s changed a lot from the earliest versions.
Are you suggesting that Visual Basic isn’t a real programming language, used by professional programmers who are being paid to program? If so, you’re mistaken. VB is still widely used.
LAMP is great, but as a beginning environment/language - no way. VB, C#, etc. are so much more English like than C/C++/C#/php that it makes it much easier for the beginner to pick them up. And I’m a C/C++/C#/php nut. But it just ain’t right to expect someone to whom writing Word macros is a big step to suddenly understand a non-Windows, non-intuitive language without a standard IDE and very much not point-n-click.
I’ll second that; I can only imagine that people recommending C and some of the other languages are projecting their own ease of use; really, C is not an easy first language at all; sure, people do start with it, but I’m willing to bet that way more people drop out of learning C as a first language than others such as Pascal or BASIC.
And that’s what matters; not where you start, but how far you get; starting off with a language specifically designed for learning, then later progressing to a more ‘serious’ one (whatever that means, really), even if you pick up and have to unlearn some bad habits on the way is much better than hurling yourself in at the deep end and giving up because it is too hard.
Feh! The X86 has cushy multiply and divide instructions and all other sorts of bling-bling. What a crutch. Real programmers write their own subroutines for multiplication and division — preferably hand-tuned to the exact size of integer needed.
Want to help your friend learn programming? Here is a recommendation from the Board of Irresponsible People. Have him write a flight simulator entirely in 6502 assembly language.
It’s a great resumé stuffer.
Back in my day we entered our programs by hand-toggling them in through the front panel switches. Subroutines? Bah. You kids today.
Seriously, though, your post reminds me of the time I spent once building floating-point division routines in Data General Nova 1200 assembly language. What a pain.
And, just for the record, I did have a job once writing device drivers for S-100 buss computers where I had to toggle my bootstrap program in from front panel switches.
That isn’t what I said at all. I was saying that the immediate practical uses of web programming will probably motivate and interest a novice farther than the immediate practical uses of Visual Basic.
I’d second Delphi or Visual Basic. Not sure about VBA - the debugging process for VBA progs seems a bit more fraught than in ‘proper’ IDEs, at least IME with Excel VBA.
I would be amazed if a beginner found Perl easy or intuitive, even if the beginner did not have a learning disability.
If you really dislike the guy, get him programming in SAS.