MetaChat REGISTER   ||   LOGIN   ||   IMAGES ARE OFF   ||   RECENT COMMENTS




artphoto by splunge
artphoto by TheophileEscargot
artphoto by Kronos_to_Earth
artphoto by ethylene

Home

About

Search

Archives

Mecha Wiki

Metachat Eye

Emcee

IRC Channels

IRC FAQ


 RSS


Comment Feed:

RSS

10 December 2006

Programmers of MetaChat: Please help me out with something.[More:]

My brother has expressed an interest in learning how to program. He doesn't have any programming experience at all, so he has to start from the Hello World stage. The problem is that I've been programming for 15 years, and learned it when BASIC was the first step kids took, so I don't know where to point him other than a shrug of the shoulders and a "Well, take some compsci classes" kind of crappy answer.

Perl, PHP, C and C++ are right out for various reasons, so I guess I'm torn between suggesting Ruby and Java. Ruby because it's so damn easy to make things happen with it (and immediate success in making the computer do what someone wants it to do is a great motivator), but Java is much closer to the structure of C & C++, which I think is important to learn from the beginning.

Unfortunately, I can't seem to find any non-credit programming classes at community colleges near him, so it'll probably have to be online or in a book. So does anyone have any thoughts or suggestions? If it's a tutorial that involves writing a game, that would be super rad, but as long as it's written for someone who doesn't even know what a main() function is from the start, I'd like to know about it.

Is Head First Java good for this sort of thing?
Dodgy gave me a great link for Ruby... which I can't find right now... Let me scratch around a bit.
posted by taz 10 December | 13:02
aha!
posted by taz 10 December | 13:04
Don't be put off by first appearances of the Poignant Guide, it's really quite good.
posted by tommasz 10 December | 13:25
on the off chance you want to do the Right Thing, there's a book called "How to Design Programs", available online at http://www.htdp.org/ which uses DrScheme, available at http://www.plt-scheme.org/software/drscheme/

this is from the sicp people, but for students completely new to programming.
posted by andrew cooke 10 December | 14:01
Chris Pine's Learn to Program is a Ruby tutorial for complete beginners. It's available online, and in an expanded version in book form.

The emphasis is on teaching programming concepts rather than Ruby specifics, although obviously you can't avoid the language-specific stuff completely. Having said that, Ruby is a pretty damn good language for beginners. The syntax is simple like Basic, but there's power and OO goodness in there for when you're ready for it.

I truly believe that starting a new programmer on something like Java or (god forbid) C is a recipe for madness and frustration. The C/C++/Java style is certainly important to learn at some point, but when you're at the level of "what's a variable?" then you want a language where you can just say "a = 5" without all the scaffolding and secret incantations that Java entails.
posted by chrismear 10 December | 14:11
Nothing wrong with C, it's really good at teaching people the low level details that make them great programmers later on.

I think the best thing to start with, though, would be something that can be run interactively in an interpreter (like BASIC). Getting instant feedback on what you're typing in is very helpful to a beginner. Since you're torn betwen Ruby and Java (two good choices), based on the interpreter alone I'd choose Ruby.
posted by knave 10 December | 18:51
The biggest turn on I had when I was learning to program was instant results. After a couple of weeks with a new language I could start to create programs which looked like the programs people sold or gave away in magazines. (This was in the old days when you didn't download or install from a floppy, instead you copied the code directly from the magazine)

To my mind, this is the one thing that's missing from the usual "beginner" languages.

People often talk about elegant coding and a language which is both clean and enforces good practice. This is fine for university graduates, but I don't think it does for the beginner hobbyist programmer.

I started with BASIC and GOTO and line numbers and ultimately it did no harm. In fact, because I was able to make my own games and code up something that my friends could use it fired my enthusiasm and did my a lot of good.

So, if I were to recommend a language I'd opt for either PHP or Microsoft VB .Net. Neither are great languages, but they allow the imagination to run a little wild. In contrast, Ruby, Java and C++ allow you to write (in those early days) to the console. "Hello World" Big Whoopdy Doo. Try showing that to your friends when they use Myspace and play XBox 360.

As for books, that's a harder one. My Bible won't be the same as your Bible. Go to the library and choose a book. If it doesn't work, try another one. If that one doesn't do enough try again. It doesn't matter though. As long as those first tentative steps capture the imagination, then all else will follow.

Alternatively, you could try something like This
posted by seanyboy 10 December | 19:57
COBOL, baby. 'Cause nothing fires the imagination like gettin' paid for throwin' down in deprecated procedural languages.
posted by paulsc 10 December | 23:51
Scheme would be amusing, but I'd rather not scare him off, and he's got plenty of time to learn it if he goes on to take computer science classes. And while I agree that PHP is fast and easy, and thus a reasonable choice as an introductory language, it's also a staggeringly inconsistant language with way too many functions in the core library.

So I'll give him those Ruby tutorials and see if he's into it.
posted by cmonkey 11 December | 15:15
Anyone know the song at the beginning of this Captain Morgan commercial? || BAKERS please help!

HOME  ||   REGISTER  ||   LOGIN